You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by tq...@apache.org on 2025/06/25 15:41:35 UTC
(tvm-site) branch asf-site updated: deploying docs (apache/tvm@bcfd0afb5f62edf094d0d8e1e2122fb8fe906038)
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 b72e10dc83 deploying docs (apache/tvm@bcfd0afb5f62edf094d0d8e1e2122fb8fe906038)
b72e10dc83 is described below
commit b72e10dc832fa5db9c2995a941e7294caf6c30cd
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Wed Jun 25 15:41:23 2025 +0000
deploying docs (apache/tvm@bcfd0afb5f62edf094d0d8e1e2122fb8fe906038)
---
.../11c11e53c7dace51a8be968ee169ed0d/ir_module.zip | Bin 23868 -> 23868 bytes
.../tir_transformation.zip | Bin 15563 -> 15563 bytes
.../relax_creation.zip | Bin 22392 -> 22392 bytes
.../relax_transformation.zip | Bin 11460 -> 11460 bytes
.../optimize_llm.zip | Bin 54065 -> 54065 bytes
.../e2e_opt_model.zip | Bin 11213 -> 11213 bytes
.../quick_start.zip | Bin 16274 -> 16274 bytes
.../tir_creation.zip | Bin 24343 -> 24343 bytes
.../cross_compilation_and_rpc.zip | Bin 21652 -> 21652 bytes
.../customize_opt.zip | Bin 19789 -> 19789 bytes
.../relax/tutorials/sg_execution_times.rst.txt | 6 +-
.../tensor_ir/tutorials/sg_execution_times.rst.txt | 6 +-
.../tensor_ir/tutorials/tir_creation.rst.txt | 20 +-
.../tensor_ir/tutorials/tir_transformation.rst.txt | 6 +-
.../get_started/tutorials/ir_module.rst.txt | 8 +-
.../get_started/tutorials/quick_start.rst.txt | 4 +-
.../tutorials/sg_execution_times.rst.txt | 6 +-
.../how_to/tutorials/customize_opt.rst.txt | 4 +-
.../how_to/tutorials/e2e_opt_model.rst.txt | 2 +-
.../how_to/tutorials/sg_execution_times.rst.txt | 10 +-
docs/_sources/sg_execution_times.rst.txt | 26 +-
docs/commit_hash | 2 +-
.../relax/tutorials/sg_execution_times.html | 6 +-
.../tensor_ir/tutorials/sg_execution_times.html | 6 +-
.../tensor_ir/tutorials/tir_creation.html | 20 +-
.../tensor_ir/tutorials/tir_transformation.html | 6 +-
docs/get_started/tutorials/ir_module.html | 8 +-
docs/get_started/tutorials/quick_start.html | 4 +-
docs/get_started/tutorials/sg_execution_times.html | 6 +-
docs/how_to/tutorials/customize_opt.html | 4 +-
docs/how_to/tutorials/e2e_opt_model.html | 6 +-
docs/how_to/tutorials/sg_execution_times.html | 10 +-
docs/reference/api/doxygen/annotated.html | 255 +-
docs/reference/api/doxygen/arg__info_8h.html | 2 +-
docs/reference/api/doxygen/arg__info_8h__incl.svg | 1648 +++----
docs/reference/api/doxygen/array__utils_8h.html | 2 +-
.../api/doxygen/array__utils_8h__incl.svg | 1336 +++---
docs/reference/api/doxygen/attrs_8h.html | 14 +-
docs/reference/api/doxygen/attrs_8h__incl.svg | 1290 +++---
docs/reference/api/doxygen/attrs_8h_source.html | 1664 +++----
.../api/doxygen/axis__group__graph_8h.html | 2 +-
.../api/doxygen/axis__group__graph_8h__incl.svg | 2530 ++++++-----
docs/reference/api/doxygen/backend_8h.html | 2 +-
docs/reference/api/doxygen/backend_8h__incl.svg | 2496 +++++-----
docs/reference/api/doxygen/bias__add_8h.html | 2 +-
docs/reference/api/doxygen/bias__add_8h__incl.svg | 2976 ++++++------
.../reference/api/doxygen/binding__rewrite_8h.html | 2 +-
.../api/doxygen/binding__rewrite_8h__incl.svg | 2538 +++++------
docs/reference/api/doxygen/block__builder_8h.html | 2 +-
.../api/doxygen/block__builder_8h__incl.svg | 2006 ++++----
.../api/doxygen/block__dependence__info_8h.html | 2 +-
.../doxygen/block__dependence__info_8h__incl.svg | 1806 ++++----
docs/reference/api/doxygen/block__scope_8h.html | 2 +-
.../api/doxygen/block__scope_8h__incl.svg | 1788 ++++----
docs/reference/api/doxygen/bnn_8h.html | 2 +-
docs/reference/api/doxygen/bnn_8h__incl.svg | 2322 +++++-----
docs/reference/api/doxygen/broadcast_8h.html | 2 +-
docs/reference/api/doxygen/broadcast_8h__incl.svg | 2376 +++++-----
docs/reference/api/doxygen/builder_8h.html | 2 +-
docs/reference/api/doxygen/builder_8h__incl.svg | 1226 ++---
docs/reference/api/doxygen/ccl_8h.html | 5 +-
docs/reference/api/doxygen/ccl_8h__incl.svg | 2752 +++++------
docs/reference/api/doxygen/ccl_8h_source.html | 152 +-
docs/reference/api/doxygen/classes.html | 2 +-
... classtvm_1_1AttrsNodeReflAdapter-members.html} | 27 +-
.../doxygen/classtvm_1_1AttrsNodeReflAdapter.html | 373 ++
...asstvm_1_1AttrsNodeReflAdapter__coll__graph.svg | 82 +
...tvm_1_1AttrsNodeReflAdapter__inherit__graph.svg | 82 +
.../api/doxygen/classtvm_1_1BaseAttrsNode.html | 10 +-
.../classtvm_1_1BaseAttrsNode__inherit__graph.svg | 3562 +++++++--------
docs/reference/api/doxygen/codegen_8h.html | 2 +-
docs/reference/api/doxygen/codegen_8h__incl.svg | 1638 +++----
docs/reference/api/doxygen/constant__utils_8h.html | 2 +-
.../api/doxygen/constant__utils_8h__incl.svg | 2240 ++++-----
docs/reference/api/doxygen/cost__model_8h.html | 2 +-
.../reference/api/doxygen/cost__model_8h__incl.svg | 2314 +++++-----
docs/reference/api/doxygen/create_8h.html | 2 +-
docs/reference/api/doxygen/create_8h__incl.svg | 1612 +++----
docs/reference/api/doxygen/create_8h_source.html | 4 +-
docs/reference/api/doxygen/cublas_8h.html | 2 +-
docs/reference/api/doxygen/cublas_8h__incl.svg | 1356 +++---
docs/reference/api/doxygen/data__layout_8h.html | 2 +-
.../api/doxygen/data__layout_8h__incl.svg | 1238 ++---
.../api/doxygen/data__type__rewriter_8h.html | 2 +-
.../api/doxygen/data__type__rewriter_8h__incl.svg | 1098 ++---
docs/reference/api/doxygen/database_8h.html | 2 +-
docs/reference/api/doxygen/database_8h__incl.svg | 2228 ++++-----
.../api/doxygen/dataflow__matcher_8h.html | 2 +-
.../api/doxygen/dataflow__matcher_8h__incl.svg | 1800 ++++----
.../api/doxygen/dataflow__pattern_8h.html | 2 +-
.../api/doxygen/dataflow__pattern_8h__incl.svg | 1752 +++----
.../api/doxygen/dataflow__pattern_8h_source.html | 2 +-
.../api/doxygen/dataflow__pattern__functor_8h.html | 2 +-
.../dataflow__pattern__functor_8h__incl.svg | 1790 ++++----
docs/reference/api/doxygen/datatype_8h.html | 2 +-
docs/reference/api/doxygen/datatype_8h__incl.svg | 1612 +++----
docs/reference/api/doxygen/datatype_8h_source.html | 4 +-
docs/reference/api/doxygen/dense_8h.html | 2 +-
docs/reference/api/doxygen/dense_8h__incl.svg | 1366 +++---
.../api/doxygen/detail_2broadcast_8h.html | 2 +-
.../api/doxygen/detail_2broadcast_8h__incl.svg | 2316 +++++-----
docs/reference/api/doxygen/diagnostic_8h.html | 2 +-
docs/reference/api/doxygen/diagnostic_8h__incl.svg | 1206 ++---
docs/reference/api/doxygen/dilate_8h.html | 2 +-
docs/reference/api/doxygen/dilate_8h__incl.svg | 1378 +++---
.../api/doxygen/distributed_2struct__info_8h.html | 2 +-
.../doxygen/distributed_2struct__info_8h__incl.svg | 2444 +++++-----
docs/reference/api/doxygen/distributed_8h.html | 2 +-
.../reference/api/doxygen/distributed_8h__incl.svg | 2488 +++++-----
.../api/doxygen/distributed_8h_source.html | 4 +-
docs/reference/api/doxygen/einsum_8h.html | 2 +-
docs/reference/api/doxygen/einsum_8h__incl.svg | 2530 ++++++-----
docs/reference/api/doxygen/elemwise_8h.html | 2 +-
docs/reference/api/doxygen/elemwise_8h__incl.svg | 3974 ++++++++--------
docs/reference/api/doxygen/extern_8h.html | 2 +-
docs/reference/api/doxygen/extern_8h__incl.svg | 1358 +++---
docs/reference/api/doxygen/extracted__task_8h.html | 2 +-
.../api/doxygen/extracted__task_8h__incl.svg | 1208 ++---
.../api/doxygen/feature__extractor_8h.html | 2 +-
.../api/doxygen/feature__extractor_8h__incl.svg | 2184 ++++-----
docs/reference/api/doxygen/flatten_8h.html | 2 +-
docs/reference/api/doxygen/flatten_8h__incl.svg | 2326 +++++-----
docs/reference/api/doxygen/functions__.html | 3 +
docs/reference/api/doxygen/functions_func_i.html | 3 +-
docs/reference/api/doxygen/functions_func_l.html | 1 +
docs/reference/api/doxygen/functions_func_r.html | 5 +
docs/reference/api/doxygen/functions_func_s.html | 2 +
docs/reference/api/doxygen/functions_func_t.html | 12 +-
docs/reference/api/doxygen/functions_func_v.html | 14 +-
docs/reference/api/doxygen/functions_i.html | 3 +-
docs/reference/api/doxygen/functions_l.html | 3 +-
docs/reference/api/doxygen/functions_p.html | 4 +-
docs/reference/api/doxygen/functions_r.html | 7 +-
docs/reference/api/doxygen/functions_s.html | 6 +-
docs/reference/api/doxygen/functions_t.html | 16 +-
docs/reference/api/doxygen/functions_v.html | 10 +-
docs/reference/api/doxygen/functions_vars.html | 3 +
docs/reference/api/doxygen/fuse_8h.html | 2 +-
docs/reference/api/doxygen/fuse_8h__incl.svg | 1336 +++---
.../api/doxygen/global__var__supply_8h.html | 2 +-
.../api/doxygen/global__var__supply_8h__incl.svg | 1268 +++---
docs/reference/api/doxygen/group__norm_8h.html | 2 +-
.../reference/api/doxygen/group__norm_8h__incl.svg | 1354 +++---
docs/reference/api/doxygen/hierarchy.html | 279 +-
docs/reference/api/doxygen/image_8h.html | 2 +-
docs/reference/api/doxygen/image_8h__incl.svg | 1612 +++----
docs/reference/api/doxygen/image_8h_source.html | 4 +-
docs/reference/api/doxygen/index_8h.html | 2 +-
docs/reference/api/doxygen/index_8h__incl.svg | 1612 +++----
docs/reference/api/doxygen/index_8h_source.html | 4 +-
docs/reference/api/doxygen/inherit_graph_12.svg | 1864 ++++----
docs/reference/api/doxygen/inherit_graph_13.svg | 4786 ++++++++++----------
docs/reference/api/doxygen/inherit_graph_60.svg | 552 +--
docs/reference/api/doxygen/inherit_graph_61.svg | 696 +--
docs/reference/api/doxygen/inherits.html | 2 +-
docs/reference/api/doxygen/instance__norm_8h.html | 2 +-
.../api/doxygen/instance__norm_8h__incl.svg | 1366 +++---
docs/reference/api/doxygen/int__solver_8h.html | 2 +-
.../reference/api/doxygen/int__solver_8h__incl.svg | 1388 +++---
docs/reference/api/doxygen/ir_2analysis_8h.html | 2 +-
.../api/doxygen/ir_2analysis_8h__incl.svg | 1190 ++---
docs/reference/api/doxygen/ir_2frame_8h.html | 2 +-
docs/reference/api/doxygen/ir_2frame_8h__incl.svg | 1306 +++---
docs/reference/api/doxygen/ir_2function_8h.html | 2 +-
.../api/doxygen/ir_2function_8h__incl.svg | 1802 ++++----
.../api/doxygen/ir_2function_8h_source.html | 6 +-
docs/reference/api/doxygen/ir_2ir_8h.html | 2 +-
docs/reference/api/doxygen/ir_2ir_8h__incl.svg | 1366 +++---
docs/reference/api/doxygen/ir_2module_8h.html | 2 +-
docs/reference/api/doxygen/ir_2module_8h__incl.svg | 1168 ++---
.../api/doxygen/ir_2module_8h_source.html | 6 +-
docs/reference/api/doxygen/ir_2op_8h.html | 2 +-
docs/reference/api/doxygen/ir_2op_8h__incl.svg | 1948 ++++----
docs/reference/api/doxygen/ir_2op_8h_source.html | 2 +-
docs/reference/api/doxygen/ir_2transform_8h.html | 2 +-
.../api/doxygen/ir_2transform_8h__incl.svg | 1312 +++---
docs/reference/api/doxygen/ir__docsifier_8h.html | 2 +-
.../api/doxygen/ir__docsifier_8h__incl.svg | 1402 +++---
.../api/doxygen/iter__affine__map_8h.html | 2 +-
.../api/doxygen/iter__affine__map_8h__incl.svg | 1340 +++---
docs/reference/api/doxygen/layer__norm_8h.html | 2 +-
.../reference/api/doxygen/layer__norm_8h__incl.svg | 1366 +++---
docs/reference/api/doxygen/linear__algebra_8h.html | 2 +-
.../api/doxygen/linear__algebra_8h__incl.svg | 1612 +++----
.../api/doxygen/linear__algebra_8h_source.html | 4 +-
.../api/doxygen/local__response__norm_8h.html | 2 +-
.../api/doxygen/local__response__norm_8h__incl.svg | 1366 +++---
docs/reference/api/doxygen/manipulate_8h.html | 2 +-
docs/reference/api/doxygen/manipulate_8h__incl.svg | 1684 +++----
.../api/doxygen/manipulate_8h_source.html | 4 +-
docs/reference/api/doxygen/mapping_8h.html | 2 +-
docs/reference/api/doxygen/mapping_8h__incl.svg | 1366 +++---
.../api/doxygen/measure__callback_8h.html | 2 +-
.../api/doxygen/measure__callback_8h__incl.svg | 3188 ++++++-------
.../api/doxygen/measure__candidate_8h.html | 2 +-
.../api/doxygen/measure__candidate_8h__incl.svg | 2142 ++++-----
docs/reference/api/doxygen/mutator_8h.html | 2 +-
docs/reference/api/doxygen/mutator_8h__incl.svg | 1974 ++++----
docs/reference/api/doxygen/namespaces.html | 255 +-
docs/reference/api/doxygen/namespacetvm.html | 3 +
docs/reference/api/doxygen/nested__msg_8h.html | 2 +-
.../reference/api/doxygen/nested__msg_8h__incl.svg | 2452 +++++-----
docs/reference/api/doxygen/operation_8h.html | 2 +-
docs/reference/api/doxygen/operation_8h__incl.svg | 1326 +++---
docs/reference/api/doxygen/pad__utils_8h.html | 2 +-
docs/reference/api/doxygen/pad__utils_8h__incl.svg | 1354 +++---
docs/reference/api/doxygen/pooling_8h.html | 2 +-
docs/reference/api/doxygen/pooling_8h__incl.svg | 3342 +++++++-------
docs/reference/api/doxygen/postproc_8h.html | 2 +-
docs/reference/api/doxygen/postproc_8h__incl.svg | 1956 ++++----
docs/reference/api/doxygen/profiler_8h.html | 2 +-
docs/reference/api/doxygen/profiler_8h__incl.svg | 1248 ++---
docs/reference/api/doxygen/qdq_8h.html | 2 +-
docs/reference/api/doxygen/qdq_8h__incl.svg | 1612 +++----
docs/reference/api/doxygen/qdq_8h_source.html | 4 +-
docs/reference/api/doxygen/ravel__unravel_8h.html | 2 +-
.../api/doxygen/ravel__unravel_8h__incl.svg | 1342 +++---
docs/reference/api/doxygen/reduction_8h.html | 2 +-
docs/reference/api/doxygen/reduction_8h__incl.svg | 3104 ++++++-------
docs/reference/api/doxygen/relax_2analysis_8h.html | 2 +-
.../api/doxygen/relax_2analysis_8h__incl.svg | 2514 +++++-----
.../reference/api/doxygen/relax_2attrs_2nn_8h.html | 2 +-
.../api/doxygen/relax_2attrs_2nn_8h__incl.svg | 1610 +++----
.../api/doxygen/relax_2attrs_2nn_8h_source.html | 4 +-
.../reference/api/doxygen/relax_2attrs_2op_8h.html | 2 +-
.../api/doxygen/relax_2attrs_2op_8h__incl.svg | 1682 +++----
.../api/doxygen/relax_2attrs_2op_8h_source.html | 4 +-
.../relax_2distributed_2global__info_8h.html | 2 +-
.../relax_2distributed_2global__info_8h__incl.svg | 1182 ++---
.../doxygen/relax_2distributed_2transform_8h.html | 2 +-
.../relax_2distributed_2transform_8h__incl.svg | 2548 +++++------
docs/reference/api/doxygen/relax_2expr_8h.html | 2 +-
.../reference/api/doxygen/relax_2expr_8h__incl.svg | 1602 +++----
.../api/doxygen/relax_2expr_8h_source.html | 4 +-
.../api/doxygen/relax_2expr__functor_8h.html | 2 +-
.../api/doxygen/relax_2expr__functor_8h__incl.svg | 2352 +++++-----
docs/reference/api/doxygen/relax_2frame_8h.html | 2 +-
.../api/doxygen/relax_2frame_8h__incl.svg | 2210 ++++-----
docs/reference/api/doxygen/relax_2ir_8h.html | 2 +-
docs/reference/api/doxygen/relax_2ir_8h__incl.svg | 2690 +++++------
.../api/doxygen/relax_2op__attr__types_8h.html | 2 +-
.../doxygen/relax_2op__attr__types_8h__incl.svg | 2584 +++++------
.../reference/api/doxygen/relax_2transform_8h.html | 2 +-
.../api/doxygen/relax_2transform_8h__incl.svg | 2488 +++++-----
docs/reference/api/doxygen/relax_2type_8h.html | 2 +-
.../reference/api/doxygen/relax_2type_8h__incl.svg | 2136 ++++-----
docs/reference/api/doxygen/relax_2utils_8h.html | 2 +-
.../api/doxygen/relax_2utils_8h__incl.svg | 1814 ++++----
docs/reference/api/doxygen/reorg_8h.html | 2 +-
docs/reference/api/doxygen/reorg_8h__incl.svg | 3208 ++++++-------
.../api/doxygen/replace__global__vars_8h.html | 2 +-
.../api/doxygen/replace__global__vars_8h__incl.svg | 1178 ++---
docs/reference/api/doxygen/rms__norm_8h.html | 2 +-
docs/reference/api/doxygen/rms__norm_8h__incl.svg | 3176 ++++++-------
docs/reference/api/doxygen/rocblas_8h.html | 2 +-
docs/reference/api/doxygen/rocblas_8h__incl.svg | 1356 +++---
docs/reference/api/doxygen/runner_8h.html | 2 +-
docs/reference/api/doxygen/runner_8h__incl.svg | 1692 +++----
docs/reference/api/doxygen/sampling_8h.html | 2 +-
docs/reference/api/doxygen/sampling_8h__incl.svg | 1612 +++----
docs/reference/api/doxygen/sampling_8h_source.html | 4 +-
docs/reference/api/doxygen/schedule_8h.html | 2 +-
docs/reference/api/doxygen/schedule_8h__incl.svg | 1928 ++++----
docs/reference/api/doxygen/schedule__rule_8h.html | 2 +-
.../api/doxygen/schedule__rule_8h__incl.svg | 1970 ++++----
.../api/doxygen/script_2ir__builder_2base_8h.html | 2 +-
.../doxygen/script_2ir__builder_2base_8h__incl.svg | 824 ++--
docs/reference/api/doxygen/search/all_1.js | 2 +-
docs/reference/api/doxygen/search/all_10.js | 178 +-
docs/reference/api/doxygen/search/all_11.js | 401 +-
docs/reference/api/doxygen/search/all_12.js | 14 +-
docs/reference/api/doxygen/search/all_13.js | 388 +-
docs/reference/api/doxygen/search/all_14.js | 726 +--
docs/reference/api/doxygen/search/all_15.js | 716 +--
docs/reference/api/doxygen/search/all_16.js | 136 +-
docs/reference/api/doxygen/search/all_17.js | 230 +-
docs/reference/api/doxygen/search/all_18.js | 104 +-
docs/reference/api/doxygen/search/all_19.js | 2 +-
docs/reference/api/doxygen/search/all_1a.js | 98 +-
docs/reference/api/doxygen/search/all_2.js | 426 +-
docs/reference/api/doxygen/search/all_3.js | 108 +-
docs/reference/api/doxygen/search/all_4.js | 448 +-
docs/reference/api/doxygen/search/all_5.js | 460 +-
docs/reference/api/doxygen/search/all_6.js | 286 +-
docs/reference/api/doxygen/search/all_7.js | 672 +--
docs/reference/api/doxygen/search/all_8.js | 266 +-
docs/reference/api/doxygen/search/all_9.js | 64 +-
docs/reference/api/doxygen/search/all_a.js | 593 ++-
docs/reference/api/doxygen/search/all_b.js | 8 +-
docs/reference/api/doxygen/search/all_c.js | 542 +--
docs/reference/api/doxygen/search/all_d.js | 249 +-
docs/reference/api/doxygen/search/all_e.js | 357 +-
docs/reference/api/doxygen/search/all_f.js | 149 +-
docs/reference/api/doxygen/search/classes_0.js | 293 +-
docs/reference/api/doxygen/search/classes_1.js | 126 +-
docs/reference/api/doxygen/search/classes_10.js | 226 +-
docs/reference/api/doxygen/search/classes_11.js | 174 +-
docs/reference/api/doxygen/search/classes_12.js | 8 +-
docs/reference/api/doxygen/search/classes_13.js | 42 +-
docs/reference/api/doxygen/search/classes_14.js | 30 +-
docs/reference/api/doxygen/search/classes_2.js | 96 +-
docs/reference/api/doxygen/search/classes_3.js | 132 +-
docs/reference/api/doxygen/search/classes_4.js | 76 +-
docs/reference/api/doxygen/search/classes_5.js | 66 +-
docs/reference/api/doxygen/search/classes_6.js | 32 +-
docs/reference/api/doxygen/search/classes_7.js | 8 +-
docs/reference/api/doxygen/search/classes_8.js | 138 +-
docs/reference/api/doxygen/search/classes_9.js | 58 +-
docs/reference/api/doxygen/search/classes_a.js | 90 +-
docs/reference/api/doxygen/search/classes_b.js | 34 +-
docs/reference/api/doxygen/search/classes_c.js | 42 +-
docs/reference/api/doxygen/search/classes_d.js | 140 +-
docs/reference/api/doxygen/search/classes_e.js | 2 +-
docs/reference/api/doxygen/search/classes_f.js | 70 +-
docs/reference/api/doxygen/search/defines_0.js | 6 +-
docs/reference/api/doxygen/search/defines_1.js | 2 +-
docs/reference/api/doxygen/search/defines_2.js | 4 +-
docs/reference/api/doxygen/search/defines_3.js | 2 +-
docs/reference/api/doxygen/search/defines_4.js | 4 +-
docs/reference/api/doxygen/search/defines_5.js | 10 +-
docs/reference/api/doxygen/search/defines_6.js | 4 +-
docs/reference/api/doxygen/search/defines_7.js | 4 +-
docs/reference/api/doxygen/search/defines_8.js | 136 +-
docs/reference/api/doxygen/search/defines_9.js | 2 +-
docs/reference/api/doxygen/search/enums_0.js | 6 +-
docs/reference/api/doxygen/search/enums_1.js | 6 +-
docs/reference/api/doxygen/search/enums_2.js | 6 +-
docs/reference/api/doxygen/search/enums_3.js | 10 +-
docs/reference/api/doxygen/search/enums_4.js | 6 +-
docs/reference/api/doxygen/search/enums_5.js | 4 +-
docs/reference/api/doxygen/search/enums_6.js | 4 +-
docs/reference/api/doxygen/search/enums_7.js | 2 +-
docs/reference/api/doxygen/search/enums_8.js | 2 +-
docs/reference/api/doxygen/search/enums_9.js | 6 +-
docs/reference/api/doxygen/search/enums_a.js | 4 +-
docs/reference/api/doxygen/search/enums_b.js | 6 +-
docs/reference/api/doxygen/search/enums_c.js | 2 +-
docs/reference/api/doxygen/search/enums_d.js | 8 +-
docs/reference/api/doxygen/search/enums_e.js | 10 +-
docs/reference/api/doxygen/search/enums_f.js | 2 +-
docs/reference/api/doxygen/search/enumvalues_0.js | 2 +-
docs/reference/api/doxygen/search/enumvalues_1.js | 2 +-
docs/reference/api/doxygen/search/enumvalues_2.js | 2 +-
docs/reference/api/doxygen/search/enumvalues_3.js | 2 +-
docs/reference/api/doxygen/search/enumvalues_4.js | 414 +-
docs/reference/api/doxygen/search/enumvalues_5.js | 2 +-
docs/reference/api/doxygen/search/enumvalues_6.js | 2 +-
docs/reference/api/doxygen/search/enumvalues_7.js | 2 +-
docs/reference/api/doxygen/search/enumvalues_8.js | 2 +-
docs/reference/api/doxygen/search/files_0.js | 14 +-
docs/reference/api/doxygen/search/files_1.js | 30 +-
docs/reference/api/doxygen/search/files_10.js | 32 +-
docs/reference/api/doxygen/search/files_11.js | 2 +-
docs/reference/api/doxygen/search/files_12.js | 6 +-
docs/reference/api/doxygen/search/files_13.js | 4 +-
docs/reference/api/doxygen/search/files_2.js | 16 +-
docs/reference/api/doxygen/search/files_3.js | 30 +-
docs/reference/api/doxygen/search/files_4.js | 18 +-
docs/reference/api/doxygen/search/files_5.js | 12 +-
docs/reference/api/doxygen/search/files_6.js | 6 +-
docs/reference/api/doxygen/search/files_7.js | 26 +-
docs/reference/api/doxygen/search/files_8.js | 6 +-
docs/reference/api/doxygen/search/files_9.js | 14 +-
docs/reference/api/doxygen/search/files_a.js | 14 +-
docs/reference/api/doxygen/search/files_b.js | 10 +-
docs/reference/api/doxygen/search/files_c.js | 18 +-
docs/reference/api/doxygen/search/files_d.js | 2 +-
docs/reference/api/doxygen/search/files_e.js | 20 +-
docs/reference/api/doxygen/search/files_f.js | 44 +-
docs/reference/api/doxygen/search/functions_0.js | 10 +-
docs/reference/api/doxygen/search/functions_1.js | 246 +-
docs/reference/api/doxygen/search/functions_10.js | 190 +-
docs/reference/api/doxygen/search/functions_11.js | 8 +-
docs/reference/api/doxygen/search/functions_12.js | 227 +-
docs/reference/api/doxygen/search/functions_13.js | 380 +-
docs/reference/api/doxygen/search/functions_14.js | 259 +-
docs/reference/api/doxygen/search/functions_15.js | 112 +-
docs/reference/api/doxygen/search/functions_16.js | 136 +-
docs/reference/api/doxygen/search/functions_17.js | 58 +-
docs/reference/api/doxygen/search/functions_18.js | 2 +-
docs/reference/api/doxygen/search/functions_19.js | 98 +-
docs/reference/api/doxygen/search/functions_2.js | 176 +-
docs/reference/api/doxygen/search/functions_3.js | 270 +-
docs/reference/api/doxygen/search/functions_4.js | 218 +-
docs/reference/api/doxygen/search/functions_5.js | 142 +-
docs/reference/api/doxygen/search/functions_6.js | 382 +-
docs/reference/api/doxygen/search/functions_7.js | 226 +-
docs/reference/api/doxygen/search/functions_8.js | 46 +-
docs/reference/api/doxygen/search/functions_9.js | 374 +-
docs/reference/api/doxygen/search/functions_a.js | 8 +-
docs/reference/api/doxygen/search/functions_b.js | 2 +-
docs/reference/api/doxygen/search/functions_c.js | 156 +-
docs/reference/api/doxygen/search/functions_d.js | 175 +-
docs/reference/api/doxygen/search/functions_e.js | 88 +-
docs/reference/api/doxygen/search/functions_f.js | 106 +-
docs/reference/api/doxygen/search/namespaces_0.js | 4 +-
docs/reference/api/doxygen/search/namespaces_1.js | 64 +-
docs/reference/api/doxygen/search/related_0.js | 2 +-
docs/reference/api/doxygen/search/related_1.js | 6 +-
docs/reference/api/doxygen/search/related_2.js | 2 +-
docs/reference/api/doxygen/search/related_3.js | 6 +-
docs/reference/api/doxygen/search/related_4.js | 10 +-
docs/reference/api/doxygen/search/related_5.js | 2 +-
docs/reference/api/doxygen/search/related_6.js | 6 +-
docs/reference/api/doxygen/search/related_7.js | 6 +-
docs/reference/api/doxygen/search/related_8.js | 10 +-
docs/reference/api/doxygen/search/related_9.js | 2 +-
docs/reference/api/doxygen/search/related_a.js | 4 +-
docs/reference/api/doxygen/search/related_b.js | 10 +-
docs/reference/api/doxygen/search/related_c.js | 2 +-
docs/reference/api/doxygen/search/related_d.js | 8 +-
docs/reference/api/doxygen/search/related_e.js | 8 +-
docs/reference/api/doxygen/search/typedefs_0.js | 4 +-
docs/reference/api/doxygen/search/typedefs_1.js | 4 +-
docs/reference/api/doxygen/search/typedefs_2.js | 4 +-
docs/reference/api/doxygen/search/typedefs_3.js | 8 +-
docs/reference/api/doxygen/search/typedefs_4.js | 12 +-
docs/reference/api/doxygen/search/typedefs_5.js | 124 +-
docs/reference/api/doxygen/search/typedefs_6.js | 8 +-
docs/reference/api/doxygen/search/typedefs_7.js | 4 +-
docs/reference/api/doxygen/search/typedefs_8.js | 4 +-
docs/reference/api/doxygen/search/typedefs_9.js | 14 +-
docs/reference/api/doxygen/search/typedefs_a.js | 6 +-
docs/reference/api/doxygen/search/typedefs_b.js | 6 +-
docs/reference/api/doxygen/search/typedefs_c.js | 36 +-
docs/reference/api/doxygen/search/variables_0.js | 16 +-
docs/reference/api/doxygen/search/variables_1.js | 70 +-
docs/reference/api/doxygen/search/variables_10.js | 2 +-
docs/reference/api/doxygen/search/variables_11.js | 86 +-
docs/reference/api/doxygen/search/variables_12.js | 126 +-
docs/reference/api/doxygen/search/variables_13.js | 84 +-
docs/reference/api/doxygen/search/variables_14.js | 18 +-
docs/reference/api/doxygen/search/variables_15.js | 50 +-
docs/reference/api/doxygen/search/variables_16.js | 16 +-
docs/reference/api/doxygen/search/variables_2.js | 66 +-
docs/reference/api/doxygen/search/variables_3.js | 76 +-
docs/reference/api/doxygen/search/variables_4.js | 104 +-
docs/reference/api/doxygen/search/variables_5.js | 60 +-
docs/reference/api/doxygen/search/variables_6.js | 112 +-
docs/reference/api/doxygen/search/variables_7.js | 12 +-
docs/reference/api/doxygen/search/variables_8.js | 10 +-
docs/reference/api/doxygen/search/variables_9.js | 84 +-
docs/reference/api/doxygen/search/variables_a.js | 130 +-
docs/reference/api/doxygen/search/variables_b.js | 40 +-
docs/reference/api/doxygen/search/variables_c.js | 90 +-
docs/reference/api/doxygen/search/variables_d.js | 28 +-
docs/reference/api/doxygen/search/variables_e.js | 34 +-
docs/reference/api/doxygen/search/variables_f.js | 74 +-
docs/reference/api/doxygen/search_8h.html | 2 +-
docs/reference/api/doxygen/search_8h__incl.svg | 1612 +++----
docs/reference/api/doxygen/search_8h_source.html | 4 +-
.../reference/api/doxygen/search__strategy_8h.html | 2 +-
.../api/doxygen/search__strategy_8h__incl.svg | 2526 ++++++-----
docs/reference/api/doxygen/softmax_8h.html | 2 +-
docs/reference/api/doxygen/softmax_8h__incl.svg | 3178 ++++++-------
docs/reference/api/doxygen/sorting_8h.html | 2 +-
docs/reference/api/doxygen/sorting_8h__incl.svg | 1684 +++----
docs/reference/api/doxygen/sorting_8h_source.html | 6 +-
.../reference/api/doxygen/space__generator_8h.html | 2 +-
.../api/doxygen/space__generator_8h__incl.svg | 2376 +++++-----
docs/reference/api/doxygen/state_8h.html | 2 +-
docs/reference/api/doxygen/state_8h__incl.svg | 1848 ++++----
docs/reference/api/doxygen/statistical_8h.html | 2 +-
.../reference/api/doxygen/statistical_8h__incl.svg | 1612 +++----
.../api/doxygen/statistical_8h_source.html | 4 +-
docs/reference/api/doxygen/stmt__functor_8h.html | 2 +-
.../api/doxygen/stmt__functor_8h__incl.svg | 1084 ++---
docs/reference/api/doxygen/strided__slice_8h.html | 2 +-
.../api/doxygen/strided__slice_8h__incl.svg | 2272 +++++-----
docs/reference/api/doxygen/struct__info_8h.html | 2 +-
.../api/doxygen/struct__info_8h__incl.svg | 2018 +++++----
.../api/doxygen/struct__info__functor_8h.html | 2 +-
.../api/doxygen/struct__info__functor_8h__incl.svg | 2472 +++++-----
...ructtvm_1_1relax_1_1AllGatherAttrs-members.html | 19 +-
.../structtvm_1_1relax_1_1AllGatherAttrs.html | 104 +-
...tvm_1_1relax_1_1AllGatherAttrs__coll__graph.svg | 111 +-
..._1_1relax_1_1AllGatherAttrs__inherit__graph.svg | 111 +-
...ructtvm_1_1relax_1_1AllReduceAttrs-members.html | 19 +-
.../structtvm_1_1relax_1_1AllReduceAttrs.html | 104 +-
...tvm_1_1relax_1_1AllReduceAttrs__coll__graph.svg | 127 +-
..._1_1relax_1_1AllReduceAttrs__inherit__graph.svg | 111 +-
...1_1relax_1_1ScatterCollectiveAttrs-members.html | 19 +-
...ructtvm_1_1relax_1_1ScatterCollectiveAttrs.html | 104 +-
...elax_1_1ScatterCollectiveAttrs__coll__graph.svg | 113 +-
...x_1_1ScatterCollectiveAttrs__inherit__graph.svg | 113 +-
docs/reference/api/doxygen/task__scheduler_8h.html | 2 +-
.../api/doxygen/task__scheduler_8h__incl.svg | 3302 +++++++-------
docs/reference/api/doxygen/tensor_8h.html | 2 +-
docs/reference/api/doxygen/tensor_8h__incl.svg | 1196 ++---
docs/reference/api/doxygen/tensor__utils_8h.html | 2 +-
.../api/doxygen/tensor__utils_8h__incl.svg | 1342 +++---
docs/reference/api/doxygen/thread__bind_8h.html | 2 +-
.../api/doxygen/thread__bind_8h__incl.svg | 1954 ++++----
docs/reference/api/doxygen/tir_2analysis_8h.html | 2 +-
.../api/doxygen/tir_2analysis_8h__incl.svg | 1946 ++++----
docs/reference/api/doxygen/tir_2builtin_8h.html | 2 +-
.../api/doxygen/tir_2builtin_8h__incl.svg | 2250 ++++-----
docs/reference/api/doxygen/tir_2frame_8h.html | 2 +-
docs/reference/api/doxygen/tir_2frame_8h__incl.svg | 1666 +++----
docs/reference/api/doxygen/tir_2function_8h.html | 2 +-
.../api/doxygen/tir_2function_8h__incl.svg | 2204 ++++-----
.../api/doxygen/tir_2function_8h_source.html | 2 +-
docs/reference/api/doxygen/tir_2ir_8h.html | 2 +-
docs/reference/api/doxygen/tir_2ir_8h__incl.svg | 1998 ++++----
docs/reference/api/doxygen/tir_2op_8h.html | 2 +-
docs/reference/api/doxygen/tir_2op_8h__incl.svg | 1344 +++---
docs/reference/api/doxygen/tir_2transform_8h.html | 2 +-
.../api/doxygen/tir_2transform_8h__incl.svg | 1790 ++++----
docs/reference/api/doxygen/tir_2utils_8h.html | 2 +-
docs/reference/api/doxygen/tir_2utils_8h__incl.svg | 1818 ++++----
docs/reference/api/doxygen/tir__pattern_8h.html | 2 +-
.../api/doxygen/tir__pattern_8h__incl.svg | 2214 ++++-----
docs/reference/api/doxygen/topi_2nn_8h.html | 2 +-
docs/reference/api/doxygen/topi_2nn_8h__incl.svg | 3220 ++++++-------
docs/reference/api/doxygen/topi_2transform_8h.html | 2 +-
.../api/doxygen/topi_2transform_8h__incl.svg | 2844 ++++++------
docs/reference/api/doxygen/tune__context_8h.html | 2 +-
.../api/doxygen/tune__context_8h__incl.svg | 3118 ++++++-------
docs/reference/api/doxygen/virtual__device_8h.html | 2 +-
.../api/doxygen/virtual__device_8h__incl.svg | 1352 +++---
.../api/doxygen/virtual__device_8h_source.html | 4 +-
docs/reference/api/doxygen/winograd_8h.html | 2 +-
docs/reference/api/doxygen/winograd_8h__incl.svg | 1936 ++++----
.../api/typedoc/classes/ArtifactCache.html | 14 +-
.../typedoc/classes/ArtifactIndexedDBCache.html | 16 +-
docs/reference/api/typedoc/classes/DLDataType.html | 14 +-
docs/reference/api/typedoc/classes/DLDevice.html | 12 +-
docs/reference/api/typedoc/classes/Instance.html | 112 +-
.../classes/LinearCongruentialGenerator.html | 16 +-
docs/reference/api/typedoc/classes/Module.html | 16 +-
docs/reference/api/typedoc/classes/NDArray.html | 34 +-
docs/reference/api/typedoc/classes/RPCServer.html | 16 +-
docs/reference/api/typedoc/classes/Scalar.html | 8 +-
docs/reference/api/typedoc/classes/TVMArray.html | 16 +-
docs/reference/api/typedoc/classes/TVMObject.html | 12 +-
.../api/typedoc/classes/VirtualMachine.html | 10 +-
.../classes/_internal_.AsyncifyHandler.html | 14 +-
.../classes/_internal_.CachedCallStack.html | 38 +-
.../classes/_internal_.CanvasRenderManager.html | 10 +-
.../typedoc/classes/_internal_.Environment.html | 14 +-
.../api/typedoc/classes/_internal_.FFILibrary.html | 22 +-
.../api/typedoc/classes/_internal_.Memory.html | 42 +-
.../typedoc/classes/_internal_.PackedFuncCell.html | 12 +-
.../typedoc/classes/_internal_.RuntimeContext.html | 72 +-
.../typedoc/classes/_internal_.WebGPUContext.html | 28 +-
.../enums/_internal_.AsyncifyStateKind.html | 8 +-
.../typedoc/enums/_internal_.RPCServerState.html | 14 +-
docs/reference/api/typedoc/functions/assert.html | 2 +-
.../api/typedoc/functions/createPolyfillWASI.html | 2 +-
.../api/typedoc/functions/deleteNDArrayCache.html | 2 +-
.../api/typedoc/functions/detectGPUDevice.html | 2 +-
.../api/typedoc/functions/hasNDArrayInCache.html | 2 +-
.../api/typedoc/functions/instantiate.html | 2 +-
docs/reference/api/typedoc/functions/wasmPath.html | 2 +-
.../typedoc/interfaces/ArtifactCacheTemplate.html | 10 +-
.../api/typedoc/interfaces/Disposable.html | 4 +-
.../typedoc/interfaces/GPUDeviceDetectOutput.html | 8 +-
.../api/typedoc/interfaces/InitProgressReport.html | 8 +-
.../api/typedoc/interfaces/LibraryProvider.html | 6 +-
.../interfaces/_internal_.FunctionInfo.html | 8 +-
.../interfaces/_internal_.NDArrayCacheEntry.html | 14 +-
.../interfaces/_internal_.NDArrayShardEntry.html | 10 +-
.../api/typedoc/types/InitProgressCallback.html | 2 +-
docs/reference/api/typedoc/types/PackedFunc.html | 2 +-
.../typedoc/types/_internal_.AsyncPackedFunc.html | 2 +-
.../types/_internal_.FObjectConstructor.html | 2 +-
.../types/_internal_.FTVMFFIWasmSafeCallType.html | 2 +-
.../types/_internal_.FTVMWasmAllocSpace.html | 2 +-
.../types/_internal_.FTVMWasmFreeSpace.html | 2 +-
.../api/typedoc/types/_internal_.Pointer.html | 2 +-
.../typedoc/types/_internal_.TVMObjectBase.html | 2 +-
docs/searchindex.js | 2 +-
docs/sg_execution_times.html | 26 +-
573 files changed, 135260 insertions(+), 132419 deletions(-)
diff --git a/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip b/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip
index 35f07d41c7..3ec2ee56ac 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 494df6c281..6d52aacd8b 100644
Binary files a/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip and b/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip differ
diff --git a/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip b/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip
index 6fc1e46ec5..4279e65e37 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 a2a427395f..9ab0f45aa0 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 e837cd109d..0f38a5b364 100644
Binary files a/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip and b/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip differ
diff --git a/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip b/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip
index b829d35531..64be886b85 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 07ee0e6c1d..6a0e8723c1 100644
Binary files a/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip and b/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip differ
diff --git a/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip b/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip
index 3c92a8d557..1447bccec2 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 ab4192a918..2bda21690e 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 ffe032f7bb..bb02cfd42a 100644
Binary files a/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip and b/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip differ
diff --git a/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt b/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt
index 18a74cb4a1..ac303d3769 100644
--- a/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
Computation times
=================
-**00:00.205** total execution time for 2 files **from deep_dive/relax/tutorials**:
+**00:00.200** 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.125
+ - 00:00.124
- 0.0
* - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``relax_transformation.py``)
- - 00:00.081
+ - 00:00.077
- 0.0
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt b/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt
index 300ebcc456..4ee284fcc9 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
Computation times
=================
-**00:00.528** total execution time for 2 files **from deep_dive/tensor_ir/tutorials**:
+**00:00.504** total execution time for 2 files **from deep_dive/tensor_ir/tutorials**:
.. container::
@@ -33,8 +33,8 @@ Computation times
- Time
- Mem (MB)
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``tir_transformation.py``)
- - 00:00.334
+ - 00:00.315
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``tir_creation.py``)
- - 00:00.194
+ - 00:00.189
- 0.0
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt
index d5ff8f2578..bb047622d4 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt
@@ -325,17 +325,17 @@ Now let's check the runtime dynamic shape inference:
.. code-block:: none
- [[0.50128466 1.5984251 1.0376468 1.2026813 ]
- [0.605647 1.8725249 1.3468504 1.6159861 ]
- [0.32310537 0.92843723 0.5816231 0.97208256]
- [0.50517666 1.5734797 1.1542304 1.7870845 ]]
- [[29.698477 31.602932 31.634016 ... 31.706938 32.325047 32.445705]
- [31.662731 33.877068 33.9989 ... 37.177383 33.89135 36.147427]
- [32.81469 33.14144 34.365616 ... 37.389305 33.487305 33.34224 ]
+ [[1.2857893 0.9915192 1.4713079 0.6957141 ]
+ [0.3525172 0.17172535 0.2947947 0.2619654 ]
+ [1.4906268 0.98240197 1.7732863 0.9639554 ]
+ [0.50740147 0.44671318 0.72222096 0.38773426]]
+ [[37.015003 35.713165 33.47771 ... 33.505318 34.582542 34.552826]
+ [31.741625 29.254879 30.236496 ... 27.14432 28.656965 29.296635]
+ [33.1388 31.486141 30.74068 ... 31.78043 33.716312 33.046127]
...
- [33.754333 35.164482 35.68094 ... 37.57872 35.58587 35.9543 ]
- [33.6938 37.179516 36.395313 ... 40.500004 37.36097 37.38988 ]
- [29.307981 31.404142 32.460537 ... 34.14331 31.98691 31.745188]]
+ [35.783478 29.48497 31.642384 ... 32.23302 32.940548 32.842125]
+ [33.64603 32.297707 32.13486 ... 33.01928 33.56862 31.237396]
+ [36.642944 32.921776 33.594215 ... 32.369408 34.95089 33.99938 ]]
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt
index a2e29364af..a530d0a3ed 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt
@@ -123,7 +123,7 @@ original implementation.
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 2.3019 2.3019 2.3019 2.3019 0.0000
+ 2.2324 2.2324 2.2324 2.2324 0.0000
@@ -295,7 +295,7 @@ action involves reordering these two loops.
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.8744 0.8744 0.8744 0.8744 0.0000
+ 0.8478 0.8478 0.8478 0.8478 0.0000
@@ -423,7 +423,7 @@ from the reduction update via the **decompose_reduction** primitive.
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.3309 0.3309 0.3309 0.3309 0.0000
+ 0.3200 0.3200 0.3200 0.3200 0.0000
diff --git a/docs/_sources/get_started/tutorials/ir_module.rst.txt b/docs/_sources/get_started/tutorials/ir_module.rst.txt
index 6a34ceb0b3..ddefb11631 100644
--- a/docs/_sources/get_started/tutorials/ir_module.rst.txt
+++ b/docs/_sources/get_started/tutorials/ir_module.rst.txt
@@ -698,8 +698,8 @@ We can deploy the IRModule on CPU by specifying the target as ``llvm``.
.. code-block:: none
- [[-0.15627423 0.22185694 0.09046012 -0.00212502 -0.20214447 0.1035155
- -0.09662055 0.06637569 -0.17440528 -0.1597577 ]]
+ [[ 0.01890696 -0.062233 -0.01724833 -0.19314823 -0.00830066 0.12291789
+ 0.0477877 -0.2721552 -0.03856178 0.02878223]]
@@ -765,8 +765,8 @@ Now we can compile the IRModule on GPU, the similar way as we did on CPU.
.. code-block:: none
- [[-0.1562742 0.22185695 0.09046011 -0.00212503 -0.20214441 0.10351549
- -0.09662054 0.06637569 -0.17440522 -0.15975776]]
+ [[ 0.01890696 -0.06223299 -0.01724833 -0.19314823 -0.00830068 0.12291788
+ 0.04778765 -0.27215517 -0.03856173 0.02878229]]
diff --git a/docs/_sources/get_started/tutorials/quick_start.rst.txt b/docs/_sources/get_started/tutorials/quick_start.rst.txt
index ad002cef67..3031e4e914 100644
--- a/docs/_sources/get_started/tutorials/quick_start.rst.txt
+++ b/docs/_sources/get_started/tutorials/quick_start.rst.txt
@@ -230,8 +230,8 @@ different devices.
.. code-block:: none
- [[25836.158 25105.467 23576.324 27804.982 27160.27 26808.32 25695.498
- 25239.93 26554.46 26140.53 ]]
+ [[24543.857 24529.363 24468.58 25630.945 23305.309 24096.209 24947.404
+ 27274.164 25537.938 26088.918]]
diff --git a/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt b/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt
index 65fc8e00b7..0b83afe3dc 100644
--- a/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
Computation times
=================
-**00:09.523** total execution time for 2 files **from get_started/tutorials**:
+**00:08.117** 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:09.319
+ - 00:07.921
- 0.0
* - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``quick_start.py``)
- - 00:00.204
+ - 00:00.195
- 0.0
diff --git a/docs/_sources/how_to/tutorials/customize_opt.rst.txt b/docs/_sources/how_to/tutorials/customize_opt.rst.txt
index 7a8e35a204..7cd5a7facb 100644
--- a/docs/_sources/how_to/tutorials/customize_opt.rst.txt
+++ b/docs/_sources/how_to/tutorials/customize_opt.rst.txt
@@ -420,8 +420,8 @@ We can build and deploy the optimized model to the TVM runtime.
.. code-block:: none
- [[25361.053 24533.549 23187.748 23817.092 23451.47 24233.762 25375.553
- 23836.404 24005.291 22638.754]]
+ [[24353.219 25429.436 25515.496 24780.89 24222.59 25167.453 27043.54
+ 25352.988 25704.145 24420.469]]
diff --git a/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt b/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt
index 64a1799b2c..605967b6e6 100644
--- a/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt
+++ b/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt
@@ -59,7 +59,7 @@ PyTorch.
.. code-block:: none
Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
- 0%| | 0.00/44.7M [00:00<?, ?B/s] 31%|███▏ | 14.0M/44.7M [00:00<00:00, 147MB/s] 74%|███████▍ | 33.2M/44.7M [00:00<00:00, 179MB/s] 100%|██████████| 44.7M/44.7M [00:00<00:00, 182MB/s]
+ 0%| | 0.00/44.7M [00:00<?, ?B/s] 34%|███▍ | 15.4M/44.7M [00:00<00:00, 161MB/s] 88%|████████▊ | 39.2M/44.7M [00:00<00:00, 213MB/s] 100%|██████████| 44.7M/44.7M [00:00<00:00, 210MB/s]
diff --git a/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt b/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt
index 8420dbdd53..70e6dfd71f 100644
--- a/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
Computation times
=================
-**00:58.953** total execution time for 4 files **from how_to/tutorials**:
+**00:56.440** total execution time for 4 files **from how_to/tutorials**:
.. container::
@@ -33,14 +33,14 @@ Computation times
- Time
- Mem (MB)
* - :ref:`sphx_glr_how_to_tutorials_optimize_llm.py` (``optimize_llm.py``)
- - 00:56.840
+ - 00:54.594
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``customize_opt.py``)
- - 00:01.077
+ - 00:01.012
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``e2e_opt_model.py``)
- - 00:00.818
+ - 00:00.641
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
- - 00:00.218
+ - 00:00.192
- 0.0
diff --git a/docs/_sources/sg_execution_times.rst.txt b/docs/_sources/sg_execution_times.rst.txt
index 67b5971d09..f7683a5b05 100644
--- a/docs/_sources/sg_execution_times.rst.txt
+++ b/docs/_sources/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
Computation times
=================
-**01:09.210** total execution time for 10 files **from all galleries**:
+**01:05.261** total execution time for 10 files **from all galleries**:
.. container::
@@ -33,32 +33,32 @@ Computation times
- Time
- Mem (MB)
* - :ref:`sphx_glr_how_to_tutorials_optimize_llm.py` (``../how_to/tutorials/optimize_llm.py``)
- - 00:56.840
+ - 00:54.594
- 0.0
* - :ref:`sphx_glr_get_started_tutorials_ir_module.py` (``../get_started/tutorials/ir_module.py``)
- - 00:09.319
+ - 00:07.921
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``../how_to/tutorials/customize_opt.py``)
- - 00:01.077
+ - 00:01.012
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``../how_to/tutorials/e2e_opt_model.py``)
- - 00:00.818
+ - 00:00.641
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``../deep_dive/tensor_ir/tutorials/tir_transformation.py``)
- - 00:00.334
- - 0.0
- * - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``../how_to/tutorials/cross_compilation_and_rpc.py``)
- - 00:00.218
+ - 00:00.315
- 0.0
* - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``../get_started/tutorials/quick_start.py``)
- - 00:00.204
+ - 00:00.195
+ - 0.0
+ * - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``../how_to/tutorials/cross_compilation_and_rpc.py``)
+ - 00:00.192
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``../deep_dive/tensor_ir/tutorials/tir_creation.py``)
- - 00:00.194
+ - 00:00.189
- 0.0
* - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_creation.py` (``../deep_dive/relax/tutorials/relax_creation.py``)
- - 00:00.125
+ - 00:00.124
- 0.0
* - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``../deep_dive/relax/tutorials/relax_transformation.py``)
- - 00:00.081
+ - 00:00.077
- 0.0
diff --git a/docs/commit_hash b/docs/commit_hash
index 03219eb32b..1bd39f810d 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-437d00afcd5496700703427cc4ce316a35d35baa
+bcfd0afb5f62edf094d0d8e1e2122fb8fe906038
diff --git a/docs/deep_dive/relax/tutorials/sg_execution_times.html b/docs/deep_dive/relax/tutorials/sg_execution_times.html
index 45df401613..45b068c688 100644
--- a/docs/deep_dive/relax/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/relax/tutorials/sg_execution_times.html
@@ -299,7 +299,7 @@
<section id="computation-times">
<span id="sphx-glr-deep-dive-relax-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:00.205</strong> total execution time for 2 files <strong>from deep_dive/relax/tutorials</strong>:</p>
+<p><strong>00:00.200</strong> total execution time for 2 files <strong>from deep_dive/relax/tutorials</strong>:</p>
<div class="docutils container">
<style scoped>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -321,11 +321,11 @@ $(document).ready( function () {
</thead>
<tbody>
<tr class="row-even"><td><p><a class="reference internal" href="relax_creation.html#sphx-glr-deep-dive-relax-tutorials-relax-creation-py"><span class="std std-ref">Relax Creation</span></a> (<code class="docutils literal notranslate"><span class="pre">relax_creation.py</span></code>)</p></td>
-<td><p>00:00.125</p></td>
+<td><p>00:00.124</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.081</p></td>
+<td><p>00:00.077</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 e92ab7d880..946211313c 100644
--- a/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
@@ -299,7 +299,7 @@
<section id="computation-times">
<span id="sphx-glr-deep-dive-tensor-ir-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:00.528</strong> total execution time for 2 files <strong>from deep_dive/tensor_ir/tutorials</strong>:</p>
+<p><strong>00:00.504</strong> total execution time for 2 files <strong>from deep_dive/tensor_ir/tutorials</strong>:</p>
<div class="docutils container">
<style scoped>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -321,11 +321,11 @@ $(document).ready( function () {
</thead>
<tbody>
<tr class="row-even"><td><p><a class="reference internal" href="tir_transformation.html#sphx-glr-deep-dive-tensor-ir-tutorials-tir-transformation-py"><span class="std std-ref">Transformation</span></a> (<code class="docutils literal notranslate"><span class="pre">tir_transformation.py</span></code>)</p></td>
-<td><p>00:00.334</p></td>
+<td><p>00:00.315</p></td>
<td><p>0.0</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="tir_creation.html#sphx-glr-deep-dive-tensor-ir-tutorials-tir-creation-py"><span class="std std-ref">TensorIR Creation</span></a> (<code class="docutils literal notranslate"><span class="pre">tir_creation.py</span></code>)</p></td>
-<td><p>00:00.194</p></td>
+<td><p>00:00.189</p></td>
<td><p>0.0</p></td>
</tr>
</tbody>
diff --git a/docs/deep_dive/tensor_ir/tutorials/tir_creation.html b/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
index e51f9587a9..8f15cd5fd8 100644
--- a/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
+++ b/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
@@ -517,17 +517,17 @@ be used to ascertain the shape and data type of a TensorIR.</p>
<span class="nb">print</span><span class="p">(</span><span class="n">evaluate_dynamic_shape</span><span class="p">(</span><span class="n">dyn_shape_lib</span><span class="p">,</span> <span class="n">m</span><span class="o">=</span><span class="mi">64</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">64</span><span class="p">,</span> <a href="../../../reference/api/python/tir/tir.html#tvm.tir.IterVar" title="tvm.tir.IterVar" class="sphx-glr-ba [...]
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[0.50128466 1.5984251 1.0376468 1.2026813 ]
- [0.605647 1.8725249 1.3468504 1.6159861 ]
- [0.32310537 0.92843723 0.5816231 0.97208256]
- [0.50517666 1.5734797 1.1542304 1.7870845 ]]
-[[29.698477 31.602932 31.634016 ... 31.706938 32.325047 32.445705]
- [31.662731 33.877068 33.9989 ... 37.177383 33.89135 36.147427]
- [32.81469 33.14144 34.365616 ... 37.389305 33.487305 33.34224 ]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[1.2857893 0.9915192 1.4713079 0.6957141 ]
+ [0.3525172 0.17172535 0.2947947 0.2619654 ]
+ [1.4906268 0.98240197 1.7732863 0.9639554 ]
+ [0.50740147 0.44671318 0.72222096 0.38773426]]
+[[37.015003 35.713165 33.47771 ... 33.505318 34.582542 34.552826]
+ [31.741625 29.254879 30.236496 ... 27.14432 28.656965 29.296635]
+ [33.1388 31.486141 30.74068 ... 31.78043 33.716312 33.046127]
...
- [33.754333 35.164482 35.68094 ... 37.57872 35.58587 35.9543 ]
- [33.6938 37.179516 36.395313 ... 40.500004 37.36097 37.38988 ]
- [29.307981 31.404142 32.460537 ... 34.14331 31.98691 31.745188]]
+ [35.783478 29.48497 31.642384 ... 32.23302 32.940548 32.842125]
+ [33.64603 32.297707 32.13486 ... 33.01928 33.56862 31.237396]
+ [36.642944 32.921776 33.594215 ... 32.369408 34.95089 33.99938 ]]
</pre></div>
</div>
</section>
diff --git a/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html b/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
index f2d29a5e39..342cddec80 100644
--- a/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
+++ b/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
@@ -389,7 +389,7 @@ original implementation.</p>
</div>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 2.3019 2.3019 2.3019 2.3019 0.0000
+ 2.2324 2.2324 2.2324 2.2324 0.0000
</pre></div>
</div>
<section id="initialization-schedule">
@@ -485,7 +485,7 @@ class Module:
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.8744 0.8744 0.8744 0.8744 0.0000
+ 0.8478 0.8478 0.8478 0.8478 0.0000
</pre></div>
</div>
</section>
@@ -579,7 +579,7 @@ class Module:
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.3309 0.3309 0.3309 0.3309 0.0000
+ 0.3200 0.3200 0.3200 0.3200 0.0000
</pre></div>
</div>
</section>
diff --git a/docs/get_started/tutorials/ir_module.html b/docs/get_started/tutorials/ir_module.html
index a7d4aee922..b7ae60dcab 100644
--- a/docs/get_started/tutorials/ir_module.html
+++ b/docs/get_started/tutorials/ir_module.html
@@ -819,8 +819,8 @@ backends.</p>
<span class="nb">print</span><span class="p">(</span><span class="n">cpu_out</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.15627423 0.22185694 0.09046012 -0.00212502 -0.20214447 0.1035155
- -0.09662055 0.06637569 -0.17440528 -0.1597577 ]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[ 0.01890696 -0.062233 -0.01724833 -0.19314823 -0.00830066 0.12291789
+ 0.0477877 -0.2721552 -0.03856178 0.02878223]]
</pre></div>
</div>
</section>
@@ -854,8 +854,8 @@ the details of <code class="docutils literal notranslate"><span class="pre">DLig
<span class="k">assert</span> <span class="n">np</span><span class="o">.</span><span class="n">allclose</span><span class="p">(</span><span class="n">cpu_out</span><span class="p">,</span> <span class="n">gpu_out</span><span class="p">,</span> <span class="n">atol</span><span class="o">=</span><span class="mf">1e-3</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.1562742 0.22185695 0.09046011 -0.00212503 -0.20214441 0.10351549
- -0.09662054 0.06637569 -0.17440522 -0.15975776]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[ 0.01890696 -0.06223299 -0.01724833 -0.19314823 -0.00830068 0.12291788
+ 0.04778765 -0.27215517 -0.03856173 0.02878229]]
</pre></div>
</div>
</section>
diff --git a/docs/get_started/tutorials/quick_start.html b/docs/get_started/tutorials/quick_start.html
index 7181f5299a..e7e290e36f 100644
--- a/docs/get_started/tutorials/quick_start.html
+++ b/docs/get_started/tutorials/quick_start.html
@@ -465,8 +465,8 @@ different devices.</p>
<span class="nb">print</span><span class="p">(</span><a href="../../reference/api/python/runtime/vm.html#tvm.runtime.vm.VirtualMachine" title="tvm.runtime.vm.VirtualMachine" class="sphx-glr-backref-module-tvm-runtime-vm sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">vm</span></a><span class="p">[</span><span class="s2">"forward"</span><span class="p">](</span><span class="n">tvm_data</span><span class="p">,</span> <span class="o">*</span><a href="http [...]
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[25836.158 25105.467 23576.324 27804.982 27160.27 26808.32 25695.498
- 25239.93 26554.46 26140.53 ]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[24543.857 24529.363 24468.58 25630.945 23305.309 24096.209 24947.404
+ 27274.164 25537.938 26088.918]]
</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 d585874a90..a0a53fb283 100644
--- a/docs/get_started/tutorials/sg_execution_times.html
+++ b/docs/get_started/tutorials/sg_execution_times.html
@@ -299,7 +299,7 @@
<section id="computation-times">
<span id="sphx-glr-get-started-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:09.523</strong> total execution time for 2 files <strong>from get_started/tutorials</strong>:</p>
+<p><strong>00:08.117</strong> total execution time for 2 files <strong>from get_started/tutorials</strong>:</p>
<div class="docutils container">
<style scoped>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -321,11 +321,11 @@ $(document).ready( function () {
</thead>
<tbody>
<tr class="row-even"><td><p><a class="reference internal" href="ir_module.html#sphx-glr-get-started-tutorials-ir-module-py"><span class="std std-ref">IRModule</span></a> (<code class="docutils literal notranslate"><span class="pre">ir_module.py</span></code>)</p></td>
-<td><p>00:09.319</p></td>
+<td><p>00:07.921</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.204</p></td>
+<td><p>00:00.195</p></td>
<td><p>0.0</p></td>
</tr>
</tbody>
diff --git a/docs/how_to/tutorials/customize_opt.html b/docs/how_to/tutorials/customize_opt.html
index e5bb1510e1..ae24173425 100644
--- a/docs/how_to/tutorials/customize_opt.html
+++ b/docs/how_to/tutorials/customize_opt.html
@@ -614,8 +614,8 @@ pushing the performance to the limit. The current optimization may not be the be
<span class="nb">print</span><span class="p">(</span><span class="n">gpu_out</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[25361.053 24533.549 23187.748 23817.092 23451.47 24233.762 25375.553
- 23836.404 24005.291 22638.754]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[24353.219 25429.436 25515.496 24780.89 24222.59 25167.453 27043.54
+ 25352.988 25704.145 24420.469]]
</pre></div>
</div>
</section>
diff --git a/docs/how_to/tutorials/e2e_opt_model.html b/docs/how_to/tutorials/e2e_opt_model.html
index fcafe84930..b13aee832b 100644
--- a/docs/how_to/tutorials/e2e_opt_model.html
+++ b/docs/how_to/tutorials/e2e_opt_model.html
@@ -336,9 +336,9 @@ PyTorch.</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
0%| | 0.00/44.7M [00:00<?, ?B/s]
- 31%|███▏ | 14.0M/44.7M [00:00<00:00, 147MB/s]
- 74%|███████▍ | 33.2M/44.7M [00:00<00:00, 179MB/s]
-100%|██████████| 44.7M/44.7M [00:00<00:00, 182MB/s]
+ 34%|███▍ | 15.4M/44.7M [00:00<00:00, 161MB/s]
+ 88%|████████▊ | 39.2M/44.7M [00:00<00:00, 213MB/s]
+100%|██████████| 44.7M/44.7M [00:00<00:00, 210MB/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 5f46f4d46d..67a6fd4b79 100644
--- a/docs/how_to/tutorials/sg_execution_times.html
+++ b/docs/how_to/tutorials/sg_execution_times.html
@@ -299,7 +299,7 @@
<section id="computation-times">
<span id="sphx-glr-how-to-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:58.953</strong> total execution time for 4 files <strong>from how_to/tutorials</strong>:</p>
+<p><strong>00:56.440</strong> total execution time for 4 files <strong>from how_to/tutorials</strong>:</p>
<div class="docutils container">
<style scoped>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -321,19 +321,19 @@ $(document).ready( function () {
</thead>
<tbody>
<tr class="row-even"><td><p><a class="reference internal" href="optimize_llm.html#sphx-glr-how-to-tutorials-optimize-llm-py"><span class="std std-ref">Optimize Large Language Model</span></a> (<code class="docutils literal notranslate"><span class="pre">optimize_llm.py</span></code>)</p></td>
-<td><p>00:56.840</p></td>
+<td><p>00:54.594</p></td>
<td><p>0.0</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="customize_opt.html#sphx-glr-how-to-tutorials-customize-opt-py"><span class="std std-ref">Customize Optimization</span></a> (<code class="docutils literal notranslate"><span class="pre">customize_opt.py</span></code>)</p></td>
-<td><p>00:01.077</p></td>
+<td><p>00:01.012</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.818</p></td>
+<td><p>00:00.641</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.218</p></td>
+<td><p>00:00.192</p></td>
<td><p>0.0</p></td>
</tr>
</tbody>
diff --git a/docs/reference/api/doxygen/annotated.html b/docs/reference/api/doxygen/annotated.html
index 918a7ea18c..dabd903622 100644
--- a/docs/reference/api/doxygen/annotated.html
+++ b/docs/reference/api/doxygen/annotated.html
@@ -843,134 +843,135 @@ $(function() {
<tr id="row_1_19_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrsNode.html" target="_self">DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the [...]
<tr id="row_1_20_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrs.html" target="_self">DictAttrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior,...">DictAttrsNode</a> </td></tr>
<tr id="row_1_21_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">AttrsNode</a></td><td class="desc">The base class of the all the Use "curiously recurring template pattern" </td></tr>
-<tr id="row_1_22_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticNode.html" target="_self">DiagnosticNode</a></td><td class="desc">A compiler diagnostic message </td></tr>
-<tr id="row_1_23_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Diagnostic.html" target="_self">Diagnostic</a></td><td class="desc"></td></tr>
-<tr id="row_1_24_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticBuilder.html" target="_self">DiagnosticBuilder</a></td><td class="desc">A wrapper around std::stringstream to build a diagnostic </td></tr>
-<tr id="row_1_25_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticRendererNode.html" target="_self">DiagnosticRendererNode</a></td><td class="desc">Display diagnostics in a given display format </td></tr>
-<tr id="row_1_26_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticRenderer.html" target="_self">DiagnosticRenderer</a></td><td class="desc"></td></tr>
-<tr id="row_1_27_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticContextNode.html" target="_self">DiagnosticContextNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_28_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticContext.html" target="_self">DiagnosticContext</a></td><td class="desc"></td></tr>
-<tr id="row_1_29_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFuncNode.html" target="_self">EnvFuncNode</a></td><td class="desc">A serializable function backed by TVM's global environment </td></tr>
-<tr id="row_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFunc.html" target="_self">EnvFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1EnvFuncNode.html" title="A serializable function backed by TVM's global environment.">EnvFuncNode</a> </td></tr>
-<tr id="row_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc.html" target="_self">TypedEnvFunc</a></td><td class="desc">Please refer to <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#TypedEnvFuncAnchor">TypedEnvFunc<R(Args..)></a> </td></tr>
-<tr id="row_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">TypedEnvFunc< R(Args...)></a></td><td class="desc">A typed version of <a class="el" href="classtvm_1_1EnvFunc.html" title="Managed reference to EnvFuncNode.">EnvFunc</a>. It is backed by a GlobalFuncNode intern [...]
-<tr id="row_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExprNode.html" target="_self">BaseExprNode</a></td><td class="desc">Base type of all the expressions </td></tr>
-<tr id="row_1_34_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExpr.html" target="_self">BaseExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseExprNode.html" title="Base type of all the expressions.">BaseExprNode</a> </td></tr>
-<tr id="row_1_35_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprNode.html" target="_self">PrimExprNode</a></td><td class="desc">Base node of all primitive expressions </td></tr>
-<tr id="row_1_36_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExpr.html" target="_self">PrimExpr</a></td><td class="desc">Reference to <a class="el" href="classtvm_1_1PrimExprNode.html" title="Base node of all primitive expressions.">PrimExprNode</a> </td></tr>
-<tr id="row_1_37_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprConvertibleNode.html" target="_self">PrimExprConvertibleNode</a></td><td class="desc">Base class for other IR constructs that can be converted to <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode.">PrimExpr</a>. This is useful for the F [...]
-<tr id="row_1_38_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprConvertible.html" target="_self">PrimExprConvertible</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1PrimExprConvertibleNode.html" title="Base class for other IR constructs that can be converted to PrimExpr. This is useful for the FFI t [...]
-<tr id="row_1_39_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelaxExprNode.html" target="_self">RelaxExprNode</a></td><td class="desc">Base node of all non-primitive expressions </td></tr>
-<tr id="row_1_40_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelaxExpr.html" target="_self">RelaxExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelaxExprNode.html" title="Base node of all non-primitive expressions.">RelaxExprNode</a> </td></tr>
-<tr id="row_1_41_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarNode.html" target="_self">GlobalVarNode</a></td><td class="desc">Global variable that lives in the top-level module </td></tr>
-<tr id="row_1_42_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVar.html" target="_self">GlobalVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalVarNode.html" title="Global variable that lives in the top-level module.">GlobalVarNode</a> </td></tr>
-<tr id="row_1_43_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImmNode.html" target="_self">IntImmNode</a></td><td class="desc">Constant integer literals in the program </td></tr>
-<tr id="row_1_44_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImm.html" target="_self">IntImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IntImmNode.html" title="Constant integer literals in the program.">IntImmNode</a> </td></tr>
-<tr id="row_1_45_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImmNode.html" target="_self">FloatImmNode</a></td><td class="desc">Constant floating point literals in the program </td></tr>
-<tr id="row_1_46_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImm.html" target="_self">FloatImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1FloatImmNode.html" title="Constant floating point literals in the program.">FloatImmNode</a> </td></tr>
-<tr id="row_1_47_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Bool.html" target="_self">Bool</a></td><td class="desc">Boolean constant </td></tr>
-<tr id="row_1_48_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Integer.html" target="_self">Integer</a></td><td class="desc">Container of constant int that adds more constructors </td></tr>
-<tr id="row_1_49_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RangeNode.html" target="_self">RangeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range container">Range</a> over one dimension </td></tr>
-<tr id="row_1_50_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Range.html" target="_self">Range</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range container">Range</a> container <br />
+<tr id="row_1_22_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">AttrsNodeReflAdapter</a></td><td class="desc">Adapter for <a class="el" href="classtvm_1_1AttrsNode.html" title="The base class of the all the Use "curiously recurring template pattern".">AttrsNode</a> with the new reflect [...]
+<tr id="row_1_23_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticNode.html" target="_self">DiagnosticNode</a></td><td class="desc">A compiler diagnostic message </td></tr>
+<tr id="row_1_24_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Diagnostic.html" target="_self">Diagnostic</a></td><td class="desc"></td></tr>
+<tr id="row_1_25_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticBuilder.html" target="_self">DiagnosticBuilder</a></td><td class="desc">A wrapper around std::stringstream to build a diagnostic </td></tr>
+<tr id="row_1_26_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticRendererNode.html" target="_self">DiagnosticRendererNode</a></td><td class="desc">Display diagnostics in a given display format </td></tr>
+<tr id="row_1_27_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticRenderer.html" target="_self">DiagnosticRenderer</a></td><td class="desc"></td></tr>
+<tr id="row_1_28_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticContextNode.html" target="_self">DiagnosticContextNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_29_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticContext.html" target="_self">DiagnosticContext</a></td><td class="desc"></td></tr>
+<tr id="row_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFuncNode.html" target="_self">EnvFuncNode</a></td><td class="desc">A serializable function backed by TVM's global environment </td></tr>
+<tr id="row_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFunc.html" target="_self">EnvFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1EnvFuncNode.html" title="A serializable function backed by TVM's global environment.">EnvFuncNode</a> </td></tr>
+<tr id="row_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc.html" target="_self">TypedEnvFunc</a></td><td class="desc">Please refer to <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#TypedEnvFuncAnchor">TypedEnvFunc<R(Args..)></a> </td></tr>
+<tr id="row_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">TypedEnvFunc< R(Args...)></a></td><td class="desc">A typed version of <a class="el" href="classtvm_1_1EnvFunc.html" title="Managed reference to EnvFuncNode.">EnvFunc</a>. It is backed by a GlobalFuncNode intern [...]
+<tr id="row_1_34_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExprNode.html" target="_self">BaseExprNode</a></td><td class="desc">Base type of all the expressions </td></tr>
+<tr id="row_1_35_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExpr.html" target="_self">BaseExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseExprNode.html" title="Base type of all the expressions.">BaseExprNode</a> </td></tr>
+<tr id="row_1_36_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprNode.html" target="_self">PrimExprNode</a></td><td class="desc">Base node of all primitive expressions </td></tr>
+<tr id="row_1_37_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExpr.html" target="_self">PrimExpr</a></td><td class="desc">Reference to <a class="el" href="classtvm_1_1PrimExprNode.html" title="Base node of all primitive expressions.">PrimExprNode</a> </td></tr>
+<tr id="row_1_38_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprConvertibleNode.html" target="_self">PrimExprConvertibleNode</a></td><td class="desc">Base class for other IR constructs that can be converted to <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode.">PrimExpr</a>. This is useful for the F [...]
+<tr id="row_1_39_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprConvertible.html" target="_self">PrimExprConvertible</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1PrimExprConvertibleNode.html" title="Base class for other IR constructs that can be converted to PrimExpr. This is useful for the FFI t [...]
+<tr id="row_1_40_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelaxExprNode.html" target="_self">RelaxExprNode</a></td><td class="desc">Base node of all non-primitive expressions </td></tr>
+<tr id="row_1_41_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelaxExpr.html" target="_self">RelaxExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelaxExprNode.html" title="Base node of all non-primitive expressions.">RelaxExprNode</a> </td></tr>
+<tr id="row_1_42_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarNode.html" target="_self">GlobalVarNode</a></td><td class="desc">Global variable that lives in the top-level module </td></tr>
+<tr id="row_1_43_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVar.html" target="_self">GlobalVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalVarNode.html" title="Global variable that lives in the top-level module.">GlobalVarNode</a> </td></tr>
+<tr id="row_1_44_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImmNode.html" target="_self">IntImmNode</a></td><td class="desc">Constant integer literals in the program </td></tr>
+<tr id="row_1_45_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImm.html" target="_self">IntImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IntImmNode.html" title="Constant integer literals in the program.">IntImmNode</a> </td></tr>
+<tr id="row_1_46_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImmNode.html" target="_self">FloatImmNode</a></td><td class="desc">Constant floating point literals in the program </td></tr>
+<tr id="row_1_47_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImm.html" target="_self">FloatImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1FloatImmNode.html" title="Constant floating point literals in the program.">FloatImmNode</a> </td></tr>
+<tr id="row_1_48_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Bool.html" target="_self">Bool</a></td><td class="desc">Boolean constant </td></tr>
+<tr id="row_1_49_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Integer.html" target="_self">Integer</a></td><td class="desc">Container of constant int that adds more constructors </td></tr>
+<tr id="row_1_50_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RangeNode.html" target="_self">RangeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range container">Range</a> over one dimension </td></tr>
+<tr id="row_1_51_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Range.html" target="_self">Range</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range container">Range</a> container <br />
</td></tr>
-<tr id="row_1_51_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFuncNode.html" target="_self">BaseFuncNode</a></td><td class="desc">Base node of all functions </td></tr>
-<tr id="row_1_52_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFunc.html" target="_self">BaseFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseFuncNode.html" title="Base node of all functions.">BaseFuncNode</a> </td></tr>
-<tr id="row_1_53_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalInfoNode.html" target="_self">GlobalInfoNode</a></td><td class="desc"><a class="el" href="classtvm_1_1GlobalInfo.html" title="Managed reference to GlobalInfoNode.">GlobalInfo</a> are globally static object that are referred by the IR itself. Base node for all global i [...]
-<tr id="row_1_54_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalInfo.html" target="_self">GlobalInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalInfoNode.html" title="GlobalInfo are globally static object that are referred by the IR itself. Base node for all global in...">GlobalInfoNode</a> [...]
-<tr id="row_1_55_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VDeviceNode.html" target="_self">VDeviceNode</a></td><td class="desc">A global info subclass for virtual devices </td></tr>
-<tr id="row_1_56_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VDevice.html" target="_self">VDevice</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1VDeviceNode.html" title="A global info subclass for virtual devices.">VDeviceNode</a> </td></tr>
-<tr id="row_1_57_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DummyGlobalInfoNode.html" target="_self">DummyGlobalInfoNode</a></td><td class="desc">A dummy global info sub-class for testing purpose </td></tr>
-<tr id="row_1_58_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DummyGlobalInfo.html" target="_self">DummyGlobalInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1DummyGlobalInfoNode.html" title="A dummy global info sub-class for testing purpose.">DummyGlobalInfoNode</a> </td></tr>
-<tr id="row_1_59_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarSupplyNode.html" target="_self">GlobalVarSupplyNode</a></td><td class="desc"><a class="el" href="classtvm_1_1GlobalVarSupply.html" title="Managed reference class to GlobalVarSupplyNode.">GlobalVarSupply</a> can be used to generate unique GlobalVars </td></tr>
-<tr id="row_1_60_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarSupply.html" target="_self">GlobalVarSupply</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1GlobalVarSupplyNode.html" title="GlobalVarSupply can be used to generate unique GlobalVars.">GlobalVarSupplyNode</a> </td></tr>
-<tr id="row_1_61_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModuleNode.html" target="_self">IRModuleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode.">IRModule</a> that holds functions and type definitions </td></tr>
-<tr id="row_1_62_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModule.html" target="_self">IRModule</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions.">IRModuleNode</a> </td></tr>
-<tr id="row_1_63_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NameSupplyNode.html" target="_self">NameSupplyNode</a></td><td class="desc"><a class="el" href="classtvm_1_1NameSupply.html" title="Managed reference class to NameSupplyNode.">NameSupply</a> can be used to generate unique names </td></tr>
-<tr id="row_1_64_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NameSupply.html" target="_self">NameSupply</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1NameSupplyNode.html" title="NameSupply can be used to generate unique names.">NameSupplyNode</a> </td></tr>
-<tr id="row_1_65_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpAttrMap.html" target="_self">OpAttrMap</a></td><td class="desc">Map<Op,ValueType> used to store meta-information about <a class="el" href="classtvm_1_1Op.html" title="Managed reference class to OpNode.">Op</a> </td></tr>
-<tr id="row_1_66_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpNode.html" target="_self">OpNode</a></td><td class="desc">Primitive Op(builtin intrinsics) </td></tr>
-<tr id="row_1_67_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Op.html" target="_self">Op</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1OpNode.html" title="Primitive Op(builtin intrinsics)">OpNode</a> </td></tr>
-<tr id="row_1_68_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpRegEntry.html" target="_self">OpRegEntry</a></td><td class="desc">Helper structure to register operators </td></tr>
-<tr id="row_1_69_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceNameNode.html" target="_self">SourceNameNode</a></td><td class="desc">The name of a source fragment </td></tr>
-<tr id="row_1_70_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceName.html" target="_self">SourceName</a></td><td class="desc">The source name of a file span </td></tr>
-<tr id="row_1_71_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SpanNode.html" target="_self">SpanNode</a></td><td class="desc">Stores locations in frontend source that generated a node </td></tr>
-<tr id="row_1_72_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Span.html" target="_self">Span</a></td><td class="desc"></td></tr>
-<tr id="row_1_73_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SequentialSpanNode.html" target="_self">SequentialSpanNode</a></td><td class="desc">Store a list of spans for an expr generated from mulitple source exprs </td></tr>
-<tr id="row_1_74_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SequentialSpan.html" target="_self">SequentialSpan</a></td><td class="desc">Reference class of <a class="el" href="classtvm_1_1SequentialSpanNode.html" title="Store a list of spans for an expr generated from mulitple source exprs.">SequentialSpanNode</a> </td></tr>
-<tr id="row_1_75_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceNode.html" target="_self">SourceNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_76_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Source.html" target="_self">Source</a></td><td class="desc"></td></tr>
-<tr id="row_1_77_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceMapObj.html" target="_self">SourceMapObj</a></td><td class="desc">Stores locations in frontend source that generated a node </td></tr>
-<tr id="row_1_78_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceMap.html" target="_self">SourceMap</a></td><td class="desc"></td></tr>
-<tr id="row_1_79_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeNode.html" target="_self">TypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode.">Type</a> is the base type of all types </td></tr>
-<tr id="row_1_80_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Type.html" target="_self">Type</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeNode.html" title="Type is the base type of all types.">TypeNode</a> </td></tr>
-<tr id="row_1_81_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimTypeNode.html" target="_self">PrimTypeNode</a></td><td class="desc">Primitive data types used in the low-level IR </td></tr>
-<tr id="row_1_82_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimType.html" target="_self">PrimType</a></td><td class="desc"></td></tr>
-<tr id="row_1_83_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerTypeNode.html" target="_self">PointerTypeNode</a></td><td class="desc">Low-level raw pointer type </td></tr>
-<tr id="row_1_84_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerType.html" target="_self">PointerType</a></td><td class="desc"></td></tr>
-<tr id="row_1_85_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleTypeNode.html" target="_self">TupleTypeNode</a></td><td class="desc">The type of tuple values </td></tr>
-<tr id="row_1_86_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleType.html" target="_self">TupleType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TupleTypeNode.html" title="The type of tuple values.">TupleTypeNode</a> </td></tr>
-<tr id="row_1_87_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncTypeNode.html" target="_self">FuncTypeNode</a></td><td class="desc">Function type </td></tr>
-<tr id="row_1_88_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncType.html" target="_self">FuncType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1FuncTypeNode.html" title="Function type.">FuncTypeNode</a> </td></tr>
-<tr id="row_1_89_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor.html" target="_self">TypeFunctor</a></td><td class="desc"></td></tr>
-<tr id="row_1_90_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html" target="_self">TypeFunctor< R(const Type &n, Args...)></a></td><td class="desc"></td></tr>
-<tr id="row_1_91_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVisitor.html" target="_self">TypeVisitor</a></td><td class="desc">A type visitor that recursively visit types </td></tr>
-<tr id="row_1_92_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeMutator.html" target="_self">TypeMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeMutator.html" title="TypeMutator that mutates expressions.">TypeMutator</a> that mutates expressions </td></tr>
-<tr id="row_1_93_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html" target="_self">AttrRegistryMapContainerMap</a></td><td class="desc">Generic attribute map </td></tr>
-<tr id="row_1_94_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistryMap.html" target="_self">AttrRegistryMap</a></td><td class="desc">Map<Key, ValueType> used to store meta-data </td></tr>
-<tr id="row_1_95_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor.html" target="_self">NodeFunctor</a></td><td class="desc">A dynamically dispatched functor on the type of the first argument </td></tr>
-<tr id="row_1_96_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08_4.html" target="_self">NodeFunctor< R(const ObjectRef &n, Args...)></a></td><td class="desc"></td></tr>
-<tr id="row_1_97_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ObjectPathNode.html" target="_self">ObjectPathNode</a></td><td class="desc">Path to an object from some root object </td></tr>
-<tr id="row_1_98_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ObjectPath.html" target="_self">ObjectPath</a></td><td class="desc"></td></tr>
-<tr id="row_1_99_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RootPathNode.html" target="_self">RootPathNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_100_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RootPath.html" target="_self">RootPath</a></td><td class="desc"></td></tr>
-<tr id="row_1_101_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttributeAccessPathNode.html" target="_self">AttributeAccessPathNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_102_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttributeAccessPath.html" target="_self">AttributeAccessPath</a></td><td class="desc"></td></tr>
-<tr id="row_1_103_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1UnknownAttributeAccessPathNode.html" target="_self">UnknownAttributeAccessPathNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_104_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1UnknownAttributeAccessPath.html" target="_self">UnknownAttributeAccessPath</a></td><td class="desc"></td></tr>
-<tr id="row_1_105_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ArrayIndexPathNode.html" target="_self">ArrayIndexPathNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_106_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ArrayIndexPath.html" target="_self">ArrayIndexPath</a></td><td class="desc"></td></tr>
-<tr id="row_1_107_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MissingArrayElementPathNode.html" target="_self">MissingArrayElementPathNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_108_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MissingArrayElementPath.html" target="_self">MissingArrayElementPath</a></td><td class="desc"></td></tr>
-<tr id="row_1_109_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MapValuePathNode.html" target="_self">MapValuePathNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_110_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MapValuePath.html" target="_self">MapValuePath</a></td><td class="desc"></td></tr>
-<tr id="row_1_111_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MissingMapEntryPathNode.html" target="_self">MissingMapEntryPathNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_112_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MissingMapEntryPath.html" target="_self">MissingMapEntryPath</a></td><td class="desc"></td></tr>
-<tr id="row_1_113_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrVisitor.html" target="_self">AttrVisitor</a></td><td class="desc">Visitor class to get the attributes of an AST/IR node. The content is going to be called for each field </td></tr>
-<tr id="row_1_114_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_114_" class="arrow" onclick="toggleFolder('1_114_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable.html" target="_self">ReflectionVTable</a></td><td class="desc">Virtual function table to support IR/AST node reflection </td></tr>
-<tr id="row_1_114_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" target="_self">Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" title="Registry of a reflection table.">Registry</a> of a reflection table </td></tr>
-<tr id="row_1_115_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReprPrinter.html" target="_self">ReprPrinter</a></td><td class="desc">A printer class to print the AST/IR nodes </td></tr>
-<tr id="row_1_116_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrinterConfigNode.html" target="_self">PrinterConfigNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_117_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrinterConfig.html" target="_self">PrinterConfig</a></td><td class="desc"></td></tr>
-<tr id="row_1_118_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TVMScriptPrinter.html" target="_self">TVMScriptPrinter</a></td><td class="desc">Legacy behavior of <a class="el" href="classtvm_1_1ReprPrinter.html" title="A printer class to print the AST/IR nodes.">ReprPrinter</a> </td></tr>
-<tr id="row_1_119_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueEqual.html" target="_self">BaseValueEqual</a></td><td class="desc">Equality definition of base value class </td></tr>
-<tr id="row_1_120_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ObjectPathPairNode.html" target="_self">ObjectPathPairNode</a></td><td class="desc">Pair of <code><a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a></code>s, one for each object being tested for structural equality </td></tr>
-<tr id="row_1_121_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ObjectPathPair.html" target="_self">ObjectPathPair</a></td><td class="desc"></td></tr>
-<tr id="row_1_122_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralEqual.html" target="_self">StructuralEqual</a></td><td class="desc">Content-aware structural equality comparator for objects </td></tr>
-<tr id="row_1_123_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_123_" class="arrow" onclick="toggleFolder('1_123_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer.html" target="_self">SEqualReducer</a></td><td class="desc">A Reducer class to reduce the structural equality result of two objects </td></tr>
-<tr id="row_1_123_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors. </td></tr>
-<tr id="row_1_124_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualHandlerDefault.html" target="_self">SEqualHandlerDefault</a></td><td class="desc">The default handler for equality testing </td></tr>
-<tr id="row_1_125_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueHash.html" target="_self">BaseValueHash</a></td><td class="desc">Hash definition of base value classes </td></tr>
-<tr id="row_1_126_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralHash.html" target="_self">StructuralHash</a></td><td class="desc">Content-aware structural hashing </td></tr>
-<tr id="row_1_127_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_127_" class="arrow" onclick="toggleFolder('1_127_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer.html" target="_self">SHashReducer</a></td><td class="desc">A Reducer class to reduce the structural hash value </td></tr>
-<tr id="row_1_127_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors </td></tr>
-<tr id="row_1_128_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashHandlerDefault.html" target="_self">SHashHandlerDefault</a></td><td class="desc">The default handler for hash key computation </td></tr>
-<tr id="row_1_129_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1NDArrayContainerTrait.html" target="_self">NDArrayContainerTrait</a></td><td class="desc"></td></tr>
-<tr id="row_1_130_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1With.html" target="_self">With</a></td><td class="desc">RAII wrapper function to enter and exit a context object similar to python's with syntax </td></tr>
-<tr id="row_1_131_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTagNode.html" target="_self">TargetTagNode</a></td><td class="desc">A target tag </td></tr>
-<tr id="row_1_132_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTag.html" target="_self">TargetTag</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetTagNode.html" title="A target tag.">TargetTagNode</a> </td></tr>
-<tr id="row_1_133_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTagRegEntry.html" target="_self">TargetTagRegEntry</a></td><td class="desc"></td></tr>
-<tr id="row_1_134_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetNode.html" target="_self">TargetNode</a></td><td class="desc">Compilation target </td></tr>
-<tr id="row_1_135_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Target.html" target="_self">Target</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetNode.html" title="Compilation target.">TargetNode</a> </td></tr>
-<tr id="row_1_136_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfoNode.html" target="_self">MemoryInfoNode</a></td><td class="desc">Memory information of special memory region. Use <a class="el" href="classtvm_1_1MemoryInfo.html" title="Defines memory info.">MemoryInfo</a> as its container type </td></tr>
-<tr id="row_1_137_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfo.html" target="_self">MemoryInfo</a></td><td class="desc">Defines memory info </td></tr>
-<tr id="row_1_138_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindAttrMap.html" target="_self">TargetKindAttrMap</a></td><td class="desc">Map<TargetKind, ValueType> used to store meta-information about <a class="el" href="classtvm_1_1TargetKind.html" title="Managed reference class to TargetKindNode.">TargetKind</a> </td></tr>
-<tr id="row_1_139_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindNode.html" target="_self">TargetKindNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Target.html" title="Managed reference class to TargetNode.">Target</a> kind, specifies the kind of the target </td></tr>
-<tr id="row_1_140_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKind.html" target="_self">TargetKind</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetKindNode.html" title="Target kind, specifies the kind of the target.">TargetKindNode</a> </td></tr>
-<tr id="row_1_141_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindRegEntry.html" target="_self">TargetKindRegEntry</a></td><td class="desc">Helper structure to register <a class="el" href="classtvm_1_1TargetKind.html" title="Managed reference class to TargetKindNode.">TargetKind</a> </td></tr>
-<tr id="row_1_142_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDeviceNode.html" target="_self">VirtualDeviceNode</a></td><td class="desc">Describes at compile time the constraints on where data is to be stored at runtime down to the (virtual) device and memory scope level, and how to compile code to compute that data. Used by t [...]
-<tr id="row_1_143_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDevice.html" target="_self">VirtualDevice</a></td><td class="desc">Managed reference class to <code><a class="el" href="classtvm_1_1VirtualDeviceNode.html" title="Describes at compile time the constraints on where data is to be stored at runtime down to the (virtu.. [...]
-<tr id="row_1_144_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDeviceCache.html" target="_self">VirtualDeviceCache</a></td><td class="desc">A cache of <code>VirtualDevices</code>. This can be used: </td></tr>
-<tr id="row_1_145_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistry.html" target="_self">AttrRegistry</a></td><td class="desc"></td></tr>
+<tr id="row_1_52_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFuncNode.html" target="_self">BaseFuncNode</a></td><td class="desc">Base node of all functions </td></tr>
+<tr id="row_1_53_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFunc.html" target="_self">BaseFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseFuncNode.html" title="Base node of all functions.">BaseFuncNode</a> </td></tr>
+<tr id="row_1_54_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalInfoNode.html" target="_self">GlobalInfoNode</a></td><td class="desc"><a class="el" href="classtvm_1_1GlobalInfo.html" title="Managed reference to GlobalInfoNode.">GlobalInfo</a> are globally static object that are referred by the IR itself. Base node for all global i [...]
+<tr id="row_1_55_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalInfo.html" target="_self">GlobalInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalInfoNode.html" title="GlobalInfo are globally static object that are referred by the IR itself. Base node for all global in...">GlobalInfoNode</a> [...]
+<tr id="row_1_56_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VDeviceNode.html" target="_self">VDeviceNode</a></td><td class="desc">A global info subclass for virtual devices </td></tr>
+<tr id="row_1_57_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VDevice.html" target="_self">VDevice</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1VDeviceNode.html" title="A global info subclass for virtual devices.">VDeviceNode</a> </td></tr>
+<tr id="row_1_58_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DummyGlobalInfoNode.html" target="_self">DummyGlobalInfoNode</a></td><td class="desc">A dummy global info sub-class for testing purpose </td></tr>
+<tr id="row_1_59_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DummyGlobalInfo.html" target="_self">DummyGlobalInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1DummyGlobalInfoNode.html" title="A dummy global info sub-class for testing purpose.">DummyGlobalInfoNode</a> </td></tr>
+<tr id="row_1_60_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarSupplyNode.html" target="_self">GlobalVarSupplyNode</a></td><td class="desc"><a class="el" href="classtvm_1_1GlobalVarSupply.html" title="Managed reference class to GlobalVarSupplyNode.">GlobalVarSupply</a> can be used to generate unique GlobalVars </td></tr>
+<tr id="row_1_61_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarSupply.html" target="_self">GlobalVarSupply</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1GlobalVarSupplyNode.html" title="GlobalVarSupply can be used to generate unique GlobalVars.">GlobalVarSupplyNode</a> </td></tr>
+<tr id="row_1_62_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModuleNode.html" target="_self">IRModuleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode.">IRModule</a> that holds functions and type definitions </td></tr>
+<tr id="row_1_63_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModule.html" target="_self">IRModule</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions.">IRModuleNode</a> </td></tr>
+<tr id="row_1_64_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NameSupplyNode.html" target="_self">NameSupplyNode</a></td><td class="desc"><a class="el" href="classtvm_1_1NameSupply.html" title="Managed reference class to NameSupplyNode.">NameSupply</a> can be used to generate unique names </td></tr>
+<tr id="row_1_65_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NameSupply.html" target="_self">NameSupply</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1NameSupplyNode.html" title="NameSupply can be used to generate unique names.">NameSupplyNode</a> </td></tr>
+<tr id="row_1_66_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpAttrMap.html" target="_self">OpAttrMap</a></td><td class="desc">Map<Op,ValueType> used to store meta-information about <a class="el" href="classtvm_1_1Op.html" title="Managed reference class to OpNode.">Op</a> </td></tr>
+<tr id="row_1_67_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpNode.html" target="_self">OpNode</a></td><td class="desc">Primitive Op(builtin intrinsics) </td></tr>
+<tr id="row_1_68_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Op.html" target="_self">Op</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1OpNode.html" title="Primitive Op(builtin intrinsics)">OpNode</a> </td></tr>
+<tr id="row_1_69_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpRegEntry.html" target="_self">OpRegEntry</a></td><td class="desc">Helper structure to register operators </td></tr>
+<tr id="row_1_70_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceNameNode.html" target="_self">SourceNameNode</a></td><td class="desc">The name of a source fragment </td></tr>
+<tr id="row_1_71_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceName.html" target="_self">SourceName</a></td><td class="desc">The source name of a file span </td></tr>
+<tr id="row_1_72_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SpanNode.html" target="_self">SpanNode</a></td><td class="desc">Stores locations in frontend source that generated a node </td></tr>
+<tr id="row_1_73_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Span.html" target="_self">Span</a></td><td class="desc"></td></tr>
+<tr id="row_1_74_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SequentialSpanNode.html" target="_self">SequentialSpanNode</a></td><td class="desc">Store a list of spans for an expr generated from mulitple source exprs </td></tr>
+<tr id="row_1_75_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SequentialSpan.html" target="_self">SequentialSpan</a></td><td class="desc">Reference class of <a class="el" href="classtvm_1_1SequentialSpanNode.html" title="Store a list of spans for an expr generated from mulitple source exprs.">SequentialSpanNode</a> </td></tr>
+<tr id="row_1_76_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceNode.html" target="_self">SourceNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_77_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Source.html" target="_self">Source</a></td><td class="desc"></td></tr>
+<tr id="row_1_78_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceMapObj.html" target="_self">SourceMapObj</a></td><td class="desc">Stores locations in frontend source that generated a node </td></tr>
+<tr id="row_1_79_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceMap.html" target="_self">SourceMap</a></td><td class="desc"></td></tr>
+<tr id="row_1_80_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeNode.html" target="_self">TypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode.">Type</a> is the base type of all types </td></tr>
+<tr id="row_1_81_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Type.html" target="_self">Type</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeNode.html" title="Type is the base type of all types.">TypeNode</a> </td></tr>
+<tr id="row_1_82_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimTypeNode.html" target="_self">PrimTypeNode</a></td><td class="desc">Primitive data types used in the low-level IR </td></tr>
+<tr id="row_1_83_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimType.html" target="_self">PrimType</a></td><td class="desc"></td></tr>
+<tr id="row_1_84_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerTypeNode.html" target="_self">PointerTypeNode</a></td><td class="desc">Low-level raw pointer type </td></tr>
+<tr id="row_1_85_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerType.html" target="_self">PointerType</a></td><td class="desc"></td></tr>
+<tr id="row_1_86_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleTypeNode.html" target="_self">TupleTypeNode</a></td><td class="desc">The type of tuple values </td></tr>
+<tr id="row_1_87_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleType.html" target="_self">TupleType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TupleTypeNode.html" title="The type of tuple values.">TupleTypeNode</a> </td></tr>
+<tr id="row_1_88_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncTypeNode.html" target="_self">FuncTypeNode</a></td><td class="desc">Function type </td></tr>
+<tr id="row_1_89_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncType.html" target="_self">FuncType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1FuncTypeNode.html" title="Function type.">FuncTypeNode</a> </td></tr>
+<tr id="row_1_90_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor.html" target="_self">TypeFunctor</a></td><td class="desc"></td></tr>
+<tr id="row_1_91_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html" target="_self">TypeFunctor< R(const Type &n, Args...)></a></td><td class="desc"></td></tr>
+<tr id="row_1_92_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVisitor.html" target="_self">TypeVisitor</a></td><td class="desc">A type visitor that recursively visit types </td></tr>
+<tr id="row_1_93_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeMutator.html" target="_self">TypeMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeMutator.html" title="TypeMutator that mutates expressions.">TypeMutator</a> that mutates expressions </td></tr>
+<tr id="row_1_94_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html" target="_self">AttrRegistryMapContainerMap</a></td><td class="desc">Generic attribute map </td></tr>
+<tr id="row_1_95_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistryMap.html" target="_self">AttrRegistryMap</a></td><td class="desc">Map<Key, ValueType> used to store meta-data </td></tr>
+<tr id="row_1_96_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor.html" target="_self">NodeFunctor</a></td><td class="desc">A dynamically dispatched functor on the type of the first argument </td></tr>
+<tr id="row_1_97_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08_4.html" target="_self">NodeFunctor< R(const ObjectRef &n, Args...)></a></td><td class="desc"></td></tr>
+<tr id="row_1_98_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ObjectPathNode.html" target="_self">ObjectPathNode</a></td><td class="desc">Path to an object from some root object </td></tr>
+<tr id="row_1_99_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ObjectPath.html" target="_self">ObjectPath</a></td><td class="desc"></td></tr>
+<tr id="row_1_100_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RootPathNode.html" target="_self">RootPathNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_101_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RootPath.html" target="_self">RootPath</a></td><td class="desc"></td></tr>
+<tr id="row_1_102_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttributeAccessPathNode.html" target="_self">AttributeAccessPathNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_103_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttributeAccessPath.html" target="_self">AttributeAccessPath</a></td><td class="desc"></td></tr>
+<tr id="row_1_104_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1UnknownAttributeAccessPathNode.html" target="_self">UnknownAttributeAccessPathNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_105_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1UnknownAttributeAccessPath.html" target="_self">UnknownAttributeAccessPath</a></td><td class="desc"></td></tr>
+<tr id="row_1_106_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ArrayIndexPathNode.html" target="_self">ArrayIndexPathNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_107_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ArrayIndexPath.html" target="_self">ArrayIndexPath</a></td><td class="desc"></td></tr>
+<tr id="row_1_108_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MissingArrayElementPathNode.html" target="_self">MissingArrayElementPathNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_109_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MissingArrayElementPath.html" target="_self">MissingArrayElementPath</a></td><td class="desc"></td></tr>
+<tr id="row_1_110_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MapValuePathNode.html" target="_self">MapValuePathNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_111_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MapValuePath.html" target="_self">MapValuePath</a></td><td class="desc"></td></tr>
+<tr id="row_1_112_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MissingMapEntryPathNode.html" target="_self">MissingMapEntryPathNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_113_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MissingMapEntryPath.html" target="_self">MissingMapEntryPath</a></td><td class="desc"></td></tr>
+<tr id="row_1_114_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrVisitor.html" target="_self">AttrVisitor</a></td><td class="desc">Visitor class to get the attributes of an AST/IR node. The content is going to be called for each field </td></tr>
+<tr id="row_1_115_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_115_" class="arrow" onclick="toggleFolder('1_115_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable.html" target="_self">ReflectionVTable</a></td><td class="desc">Virtual function table to support IR/AST node reflection </td></tr>
+<tr id="row_1_115_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" target="_self">Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" title="Registry of a reflection table.">Registry</a> of a reflection table </td></tr>
+<tr id="row_1_116_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReprPrinter.html" target="_self">ReprPrinter</a></td><td class="desc">A printer class to print the AST/IR nodes </td></tr>
+<tr id="row_1_117_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrinterConfigNode.html" target="_self">PrinterConfigNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_118_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrinterConfig.html" target="_self">PrinterConfig</a></td><td class="desc"></td></tr>
+<tr id="row_1_119_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TVMScriptPrinter.html" target="_self">TVMScriptPrinter</a></td><td class="desc">Legacy behavior of <a class="el" href="classtvm_1_1ReprPrinter.html" title="A printer class to print the AST/IR nodes.">ReprPrinter</a> </td></tr>
+<tr id="row_1_120_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueEqual.html" target="_self">BaseValueEqual</a></td><td class="desc">Equality definition of base value class </td></tr>
+<tr id="row_1_121_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ObjectPathPairNode.html" target="_self">ObjectPathPairNode</a></td><td class="desc">Pair of <code><a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a></code>s, one for each object being tested for structural equality </td></tr>
+<tr id="row_1_122_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ObjectPathPair.html" target="_self">ObjectPathPair</a></td><td class="desc"></td></tr>
+<tr id="row_1_123_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralEqual.html" target="_self">StructuralEqual</a></td><td class="desc">Content-aware structural equality comparator for objects </td></tr>
+<tr id="row_1_124_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_124_" class="arrow" onclick="toggleFolder('1_124_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer.html" target="_self">SEqualReducer</a></td><td class="desc">A Reducer class to reduce the structural equality result of two objects </td></tr>
+<tr id="row_1_124_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors. </td></tr>
+<tr id="row_1_125_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualHandlerDefault.html" target="_self">SEqualHandlerDefault</a></td><td class="desc">The default handler for equality testing </td></tr>
+<tr id="row_1_126_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueHash.html" target="_self">BaseValueHash</a></td><td class="desc">Hash definition of base value classes </td></tr>
+<tr id="row_1_127_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralHash.html" target="_self">StructuralHash</a></td><td class="desc">Content-aware structural hashing </td></tr>
+<tr id="row_1_128_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_128_" class="arrow" onclick="toggleFolder('1_128_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer.html" target="_self">SHashReducer</a></td><td class="desc">A Reducer class to reduce the structural hash value </td></tr>
+<tr id="row_1_128_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors </td></tr>
+<tr id="row_1_129_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashHandlerDefault.html" target="_self">SHashHandlerDefault</a></td><td class="desc">The default handler for hash key computation </td></tr>
+<tr id="row_1_130_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1NDArrayContainerTrait.html" target="_self">NDArrayContainerTrait</a></td><td class="desc"></td></tr>
+<tr id="row_1_131_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1With.html" target="_self">With</a></td><td class="desc">RAII wrapper function to enter and exit a context object similar to python's with syntax </td></tr>
+<tr id="row_1_132_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTagNode.html" target="_self">TargetTagNode</a></td><td class="desc">A target tag </td></tr>
+<tr id="row_1_133_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTag.html" target="_self">TargetTag</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetTagNode.html" title="A target tag.">TargetTagNode</a> </td></tr>
+<tr id="row_1_134_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTagRegEntry.html" target="_self">TargetTagRegEntry</a></td><td class="desc"></td></tr>
+<tr id="row_1_135_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetNode.html" target="_self">TargetNode</a></td><td class="desc">Compilation target </td></tr>
+<tr id="row_1_136_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Target.html" target="_self">Target</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetNode.html" title="Compilation target.">TargetNode</a> </td></tr>
+<tr id="row_1_137_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfoNode.html" target="_self">MemoryInfoNode</a></td><td class="desc">Memory information of special memory region. Use <a class="el" href="classtvm_1_1MemoryInfo.html" title="Defines memory info.">MemoryInfo</a> as its container type </td></tr>
+<tr id="row_1_138_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfo.html" target="_self">MemoryInfo</a></td><td class="desc">Defines memory info </td></tr>
+<tr id="row_1_139_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindAttrMap.html" target="_self">TargetKindAttrMap</a></td><td class="desc">Map<TargetKind, ValueType> used to store meta-information about <a class="el" href="classtvm_1_1TargetKind.html" title="Managed reference class to TargetKindNode.">TargetKind</a> </td></tr>
+<tr id="row_1_140_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindNode.html" target="_self">TargetKindNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Target.html" title="Managed reference class to TargetNode.">Target</a> kind, specifies the kind of the target </td></tr>
+<tr id="row_1_141_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKind.html" target="_self">TargetKind</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetKindNode.html" title="Target kind, specifies the kind of the target.">TargetKindNode</a> </td></tr>
+<tr id="row_1_142_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindRegEntry.html" target="_self">TargetKindRegEntry</a></td><td class="desc">Helper structure to register <a class="el" href="classtvm_1_1TargetKind.html" title="Managed reference class to TargetKindNode.">TargetKind</a> </td></tr>
+<tr id="row_1_143_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDeviceNode.html" target="_self">VirtualDeviceNode</a></td><td class="desc">Describes at compile time the constraints on where data is to be stored at runtime down to the (virtual) device and memory scope level, and how to compile code to compute that data. Used by t [...]
+<tr id="row_1_144_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDevice.html" target="_self">VirtualDevice</a></td><td class="desc">Managed reference class to <code><a class="el" href="classtvm_1_1VirtualDeviceNode.html" title="Describes at compile time the constraints on where data is to be stored at runtime down to the (virtu.. [...]
+<tr id="row_1_145_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDeviceCache.html" target="_self">VirtualDeviceCache</a></td><td class="desc">A cache of <code>VirtualDevices</code>. This can be used: </td></tr>
+<tr id="row_1_146_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistry.html" target="_self">AttrRegistry</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classGlobalVar.html" target="_self">GlobalVar</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMParallelGroupEnv.html" target="_self">TVMParallelGroupEnv</a></td><td class="desc">Environment for TVM parallel task </td></tr>
</table>
diff --git a/docs/reference/api/doxygen/arg__info_8h.html b/docs/reference/api/doxygen/arg__info_8h.html
index 8ba81bc3b9..70bade9b9c 100644
--- a/docs/reference/api/doxygen/arg__info_8h.html
+++ b/docs/reference/api/doxygen/arg__info_8h.html
@@ -82,7 +82,7 @@ $(function() {
</div><div class="textblock"><div class="dynheader">
Include dependency graph for arg_info.h:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="arg__info_8h__incl.svg" width="5112" height="1366"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="arg__info_8h__incl.svg" width="5048" height="1380"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div><div class="textblock"><div class="dynheader">
diff --git a/docs/reference/api/doxygen/arg__info_8h__incl.svg b/docs/reference/api/doxygen/arg__info_8h__incl.svg
index 45ea7edeac..9795578437 100644
--- a/docs/reference/api/doxygen/arg__info_8h__incl.svg
+++ b/docs/reference/api/doxygen/arg__info_8h__incl.svg
@@ -4,18 +4,18 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: include/tvm/meta_schedule/arg_info.h Pages: 1 -->
-<svg width="3834pt" height="1024pt"
- viewBox="0.00 0.00 3834.00 1024.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 1020)">
+<svg width="3786pt" height="1035pt"
+ viewBox="0.00 0.00 3785.76 1035.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 1031)">
<title>include/tvm/meta_schedule/arg_info.h</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1020 3830,-1020 3830,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1031 3781.76,-1031 3781.76,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
-<polygon fill="#bfbfbf" stroke="black" points="319,-985.5 319,-1015.5 471,-1015.5 471,-985.5 319,-985.5"/>
-<text text-anchor="start" x="327" y="-1003.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="395" y="-992.5" font-family="Helvetica,sans-Serif" font-size="10.00">/arg_info.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="374.76,-996.5 374.76,-1026.5 526.76,-1026.5 526.76,-996.5 374.76,-996.5"/>
+<text text-anchor="start" x="382.76" y="-1014.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="450.76" y="-1003.5" font-family="Helvetica,sans-Serif" font-size="10.00">/arg_info.h</text>
</a>
</g>
</g>
@@ -23,1874 +23,1890 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="479.5,-56.5 479.5,-75.5 618.5,-75.5 618.5,-56.5 479.5,-56.5"/>
-<text text-anchor="middle" x="549" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/shape.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="535.26,-56.5 535.26,-75.5 674.26,-75.5 674.26,-56.5 535.26,-56.5"/>
+<text text-anchor="middle" x="604.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/shape.h</text>
</a>
</g>
</g>
<!-- Node1->Node2 -->
<g id="edge1" class="edge">
<title>Node1->Node2</title>
-<path fill="none" stroke="midnightblue" d="M318.84,-992.83C204.06,-980.64 0,-949.73 0,-884 0,-884 0,-884 0,-378 0,-164.91 317.01,-96.09 469.24,-75.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="470.02,-78.75 479.47,-73.97 469.1,-71.81 470.02,-78.75"/>
+<path fill="none" stroke="midnightblue" d="M374.42,-1000.48C273.07,-985.01 106.76,-951.07 106.76,-895 106.76,-895 106.76,-895 106.76,-193.5 106.76,-108.27 384.25,-79.79 524.95,-70.84"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="525.49,-74.31 535.25,-70.2 525.06,-67.32 525.49,-74.31"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="ir_2module_8h.html" target="_top" xlink:title="IRModule that holds the functions and type definitions.">
-<polygon fill="white" stroke="black" points="1318.5,-817.5 1318.5,-836.5 1413.5,-836.5 1413.5,-817.5 1318.5,-817.5"/>
-<text text-anchor="middle" x="1366" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/module.h</text>
+<polygon fill="white" stroke="black" points="1332.26,-828.5 1332.26,-847.5 1427.26,-847.5 1427.26,-828.5 1332.26,-828.5"/>
+<text text-anchor="middle" x="1379.76" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/module.h</text>
</a>
</g>
</g>
<!-- Node1->Node3 -->
<g id="edge2" class="edge">
<title>Node1->Node3</title>
-<path fill="none" stroke="midnightblue" d="M471.19,-986.04C659.17,-952.84 1141.83,-867.59 1308.43,-838.17"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1309.23,-841.58 1318.47,-836.39 1308.02,-834.69 1309.23,-841.58"/>
+<path fill="none" stroke="midnightblue" d="M526.78,-996.47C708.38,-962.94 1164.1,-878.81 1323.59,-849.37"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1324.46,-852.77 1333.66,-847.51 1323.19,-845.88 1324.46,-852.77"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes.">
-<polygon fill="white" stroke="black" points="1340.5,-481.5 1340.5,-500.5 1439.5,-500.5 1439.5,-481.5 1340.5,-481.5"/>
-<text text-anchor="middle" x="1390" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
+<polygon fill="white" stroke="black" points="1383.26,-481.5 1383.26,-500.5 1482.26,-500.5 1482.26,-481.5 1383.26,-481.5"/>
+<text text-anchor="middle" x="1432.76" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
</a>
</g>
</g>
<!-- Node1->Node10 -->
-<g id="edge174" class="edge">
+<g id="edge175" class="edge">
<title>Node1->Node10</title>
-<path fill="none" stroke="midnightblue" d="M409.65,-985.49C465.07,-933.24 668.97,-747.65 870,-649 1004.38,-583.06 1050.92,-601.01 1194,-557 1250.93,-539.49 1316.53,-517.33 1355.56,-503.93"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1357.04,-507.12 1365.36,-500.56 1354.76,-500.5 1357.04,-507.12"/>
+<path fill="none" stroke="midnightblue" d="M462.61,-996.44C514,-935.8 718.8,-697.46 803.76,-649 953.58,-563.55 1013.95,-600.83 1180.76,-557 1212.47,-548.67 1220.07,-545.4 1251.76,-537 1297.68,-524.83 1350.41,-511.83 1387.07,-502.95"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1388.06,-506.31 1396.96,-500.56 1386.42,-499.5 1388.06,-506.31"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes.">
-<polygon fill="white" stroke="black" points="1329.5,-313.5 1329.5,-332.5 1450.5,-332.5 1450.5,-313.5 1329.5,-313.5"/>
-<text text-anchor="middle" x="1390" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/reflection.h</text>
+<polygon fill="white" stroke="black" points="1372.26,-313.5 1372.26,-332.5 1493.26,-332.5 1493.26,-313.5 1372.26,-313.5"/>
+<text text-anchor="middle" x="1432.76" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/reflection.h</text>
</a>
</g>
</g>
<!-- Node1->Node12 -->
-<g id="edge175" class="edge">
+<g id="edge176" class="edge">
<title>Node1->Node12</title>
-<path fill="none" stroke="midnightblue" d="M404.17,-985.33C413.98,-970.6 430.39,-947.2 447,-929 498.64,-872.42 517.96,-864.57 578,-817 706.76,-714.99 733.26,-680.96 872,-593 1050.1,-480.09 1280.94,-372.99 1361.09,-336.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1362.84,-339.92 1370.53,-332.63 1359.97,-333.53 1362.84,-339.92"/>
+<path fill="none" stroke="midnightblue" d="M457.39,-996.45C464.55,-981.83 476.69,-958.51 489.76,-940 543.24,-864.22 771.91,-617.59 806.76,-593 1004.37,-453.59 1285.6,-365.29 1390.86,-335.37"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1392.1,-338.66 1400.78,-332.58 1390.21,-331.92 1392.1,-338.66"/>
</g>
<!-- Node16 -->
<g id="node16" class="node">
<title>Node16</title>
<g id="a_node16"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime.">
-<polygon fill="white" stroke="black" points="1137.5,-118 1137.5,-137 1256.5,-137 1256.5,-118 1137.5,-118"/>
-<text text-anchor="middle" x="1197" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/object.h</text>
+<polygon fill="white" stroke="black" points="1155.26,-118 1155.26,-137 1274.26,-137 1274.26,-118 1155.26,-118"/>
+<text text-anchor="middle" x="1214.76" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/object.h</text>
</a>
</g>
</g>
<!-- Node1->Node16 -->
-<g id="edge177" class="edge">
+<g id="edge178" class="edge">
<title>Node1->Node16</title>
-<path fill="none" stroke="midnightblue" d="M376.6,-985.23C365.6,-975.91 352.06,-962.92 343,-949 326.2,-923.19 319,-914.8 319,-884 319,-884 319,-884 319,-770 319,-687.75 318.79,-654.85 373,-593 398.43,-563.98 419.95,-578.49 452,-557 493,-529.51 496.51,-514.24 533,-481 616.33,-405.09 630.06,-376.79 723,-313 776.27,-276.44 792.77,-271.79 852,-246 895.69,-226.97 908.69,-227.54 953,-210 985.01,-197.32 991.63,-190.74 1024,-179 1067.24,-163.32 1117.86,-149 1153.13,-139.64"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1154.32,-142.95 1163.1,-137.02 1152.54,-136.18 1154.32,-142.95"/>
+<path fill="none" stroke="midnightblue" d="M420.81,-996.37C387.03,-978.11 336.76,-942.9 336.76,-895 336.76,-895 336.76,-895 336.76,-663.5 336.76,-649.41 502.31,-490.44 512.76,-481 544.11,-452.67 773.49,-263.92 811.76,-246 881.31,-213.43 911.96,-244.12 980.76,-210 999.68,-200.62 998.04,-188.76 1016.76,-179 1056.7,-158.19 1105.72,-145.6 1144.99,-138.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1145.8,-141.61 1155.01,-136.38 1144.55,-134.72 1145.8,-141.61"/>
</g>
<!-- Node28 -->
<g id="node28" class="node">
<title>Node28</title>
<g id="a_node28"><a xlink:href="data__type_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1597,-118 1597,-137 1735,-137 1735,-118 1597,-118"/>
-<text text-anchor="middle" x="1666" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
+<polygon fill="white" stroke="black" points="1576.76,-118 1576.76,-137 1714.76,-137 1714.76,-118 1576.76,-118"/>
+<text text-anchor="middle" x="1645.76" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
</a>
</g>
</g>
<!-- Node1->Node28 -->
-<g id="edge176" class="edge">
+<g id="edge177" class="edge">
<title>Node1->Node28</title>
-<path fill="none" stroke="midnightblue" d="M387.13,-985.41C376,-964.13 357,-922.21 357,-884 357,-884 357,-884 357,-770 357,-690.61 505.66,-531.4 567,-481 759.2,-323.07 836.09,-315.33 1075,-246 1192.11,-212.02 1236.82,-262.26 1347,-210 1365.18,-201.38 1362.01,-188.01 1380,-179 1389.94,-174.02 1522.06,-151.91 1603.2,-138.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1604.01,-142.07 1613.32,-137 1602.88,-135.16 1604.01,-142.07"/>
+<path fill="none" stroke="midnightblue" d="M442.89,-996.41C431.76,-975.13 412.76,-933.21 412.76,-895 412.76,-895 412.76,-895 412.76,-781 412.76,-634.97 444.62,-585.37 546.76,-481 717.66,-306.37 809.03,-313.84 1043.76,-246 1171.07,-209.2 1219.72,-266.16 1339.76,-210 1357.99,-201.47 1354.81,-188.09 1372.76,-179 1391.04,-169.75 1505.43,-150.51 1580.23,-138.64"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1581.17,-142.03 1590.5,-137.01 1580.08,-135.12 1581.17,-142.03"/>
</g>
-<!-- Node59 -->
-<g id="node59" class="node">
-<title>Node59</title>
-<g id="a_node59"><a xlink:href="tir_2function_8h.html" target="_top" xlink:title="TIR Function.">
-<polygon fill="white" stroke="black" points="2595.5,-929.5 2595.5,-948.5 2696.5,-948.5 2696.5,-929.5 2595.5,-929.5"/>
-<text text-anchor="middle" x="2646" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/function.h</text>
+<!-- Node60 -->
+<g id="node60" class="node">
+<title>Node60</title>
+<g id="a_node60"><a xlink:href="tir_2function_8h.html" target="_top" xlink:title="TIR Function.">
+<polygon fill="white" stroke="black" points="2665.26,-940.5 2665.26,-959.5 2766.26,-959.5 2766.26,-940.5 2665.26,-940.5"/>
+<text text-anchor="middle" x="2715.76" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/function.h</text>
</a>
</g>
</g>
-<!-- Node1->Node59 -->
-<g id="edge178" class="edge">
-<title>Node1->Node59</title>
-<path fill="none" stroke="midnightblue" d="M471.18,-997.49C820.87,-988.24 2268.61,-949.98 2584.82,-941.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2585.25,-945.11 2595.15,-941.34 2585.06,-938.11 2585.25,-945.11"/>
+<!-- Node1->Node60 -->
+<g id="edge179" class="edge">
+<title>Node1->Node60</title>
+<path fill="none" stroke="midnightblue" d="M526.77,-1008.5C877.65,-999.29 2337.21,-960.94 2654.65,-952.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2655.12,-956.09 2665.02,-952.33 2654.93,-949.1 2655.12,-956.09"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2598,-185 2598,-204 2732,-204 2732,-185 2598,-185"/>
-<text text-anchor="middle" x="2665" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/array.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2590.76,-185 2590.76,-204 2724.76,-204 2724.76,-185 2590.76,-185"/>
+<text text-anchor="middle" x="2657.76" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/array.h</text>
</a>
</g>
</g>
<!-- Node3->Node4 -->
<g id="edge3" class="edge">
<title>Node3->Node4</title>
-<path fill="none" stroke="midnightblue" d="M1413.61,-824.18C1617.65,-816.05 2412.3,-781.04 2508,-725 2562.39,-693.15 2574.56,-672.63 2595,-613 2630.16,-510.41 2573.07,-475.41 2594,-369 2605.79,-309.04 2638.49,-243.69 2655.07,-213.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2658.26,-214.59 2660.03,-204.15 2652.13,-211.21 2658.26,-214.59"/>
+<path fill="none" stroke="midnightblue" d="M1427.48,-836.24C1640.32,-832.73 2494.89,-817.09 2545.76,-792 2633.32,-748.82 2665.79,-686.81 2638.76,-593 2608.73,-488.75 2510.25,-472.81 2541.76,-369 2561.59,-303.68 2615.06,-240.53 2641.92,-211.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2644.68,-213.91 2649.03,-204.25 2639.61,-209.09 2644.68,-213.91"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="3056.5,-252 3056.5,-271 3187.5,-271 3187.5,-252 3056.5,-252"/>
-<text text-anchor="middle" x="3122" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/map.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2972.26,-252 2972.26,-271 3103.26,-271 3103.26,-252 2972.26,-252"/>
+<text text-anchor="middle" x="3037.76" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/map.h</text>
</a>
</g>
</g>
<!-- Node3->Node5 -->
<g id="edge4" class="edge">
<title>Node3->Node5</title>
-<path fill="none" stroke="midnightblue" d="M1413.72,-825.65C1617.39,-823.93 2408.3,-815.12 2514,-781 2810.86,-685.18 3055.3,-357.66 3110.38,-279.4"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3113.3,-281.33 3116.15,-271.12 3107.56,-277.32 3113.3,-281.33"/>
+<path fill="none" stroke="midnightblue" d="M1427.34,-836.81C1636.99,-835.76 2472.91,-829.23 2583.76,-792 2841.64,-705.38 2996.54,-363.02 3030.61,-280.48"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3033.87,-281.75 3034.39,-271.16 3027.38,-279.11 3033.87,-281.75"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2983.5,-118 2983.5,-137 3072.5,-137 3072.5,-118 2983.5,-118"/>
-<text text-anchor="middle" x="3028" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/string.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2899.26,-118 2899.26,-137 2988.26,-137 2988.26,-118 2899.26,-118"/>
+<text text-anchor="middle" x="2943.76" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/string.h</text>
</a>
</g>
</g>
<!-- Node3->Node6 -->
<g id="edge5" class="edge">
<title>Node3->Node6</title>
-<path fill="none" stroke="midnightblue" d="M1413.82,-825.96C1718.96,-825.43 3381,-817.82 3381,-716 3381,-716 3381,-716 3381,-658 3381,-531.11 3446,-506.89 3446,-380 3446,-380 3446,-380 3446,-322 3446,-240.77 3182.75,-166.6 3074.08,-139.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3074.91,-136.05 3064.36,-137.04 3073.23,-142.84 3074.91,-136.05"/>
+<path fill="none" stroke="midnightblue" d="M1427.47,-836.66C1705.43,-834.6 3110.09,-822.7 3299.76,-792 3397.05,-776.25 3511.76,-825.55 3511.76,-727 3511.76,-727 3511.76,-727 3511.76,-663.5 3511.76,-471.38 3533.1,-384.31 3399.76,-246 3362.37,-207.22 3349.11,-198.15 3298.76,-179 3197.55,-140.5 3069.98,-131 2998.6,-128.87"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2998.58,-125.37 2988.49,-128.61 2998.39,-132.37 2998.58,-125.37"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM.">
-<polygon fill="white" stroke="black" points="2196.5,-649.5 2196.5,-668.5 2275.5,-668.5 2275.5,-649.5 2196.5,-649.5"/>
-<text text-anchor="middle" x="2236" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
+<polygon fill="white" stroke="black" points="2133.26,-655 2133.26,-674 2212.26,-674 2212.26,-655 2133.26,-655"/>
+<text text-anchor="middle" x="2172.76" y="-662" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
</a>
</g>
</g>
<!-- Node3->Node7 -->
<g id="edge6" class="edge">
<title>Node3->Node7</title>
-<path fill="none" stroke="midnightblue" d="M1413.75,-822.73C1527.9,-814.14 1824.93,-787.16 2065,-725 2116.83,-711.58 2174.54,-687.65 2207.92,-672.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2209.77,-675.88 2217.46,-668.6 2206.91,-669.49 2209.77,-675.88"/>
+<path fill="none" stroke="midnightblue" d="M1419.87,-828.49C1501.3,-811.21 1691.86,-770.67 1851.76,-736 1948.42,-715.04 2061.36,-690.14 2124.21,-676.25"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2125.23,-679.61 2134.23,-674.03 2123.71,-672.77 2125.23,-679.61"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="source__map_8h.html" target="_top" xlink:title="A map from source names to source code.">
-<polygon fill="white" stroke="black" points="1067.5,-537.5 1067.5,-556.5 1184.5,-556.5 1184.5,-537.5 1067.5,-537.5"/>
-<text text-anchor="middle" x="1126" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/source_map.h</text>
+<polygon fill="white" stroke="black" points="1054.26,-537.5 1054.26,-556.5 1171.26,-556.5 1171.26,-537.5 1054.26,-537.5"/>
+<text text-anchor="middle" x="1112.76" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/source_map.h</text>
</a>
</g>
</g>
<!-- Node3->Node8 -->
-<g id="edge167" class="edge">
+<g id="edge168" class="edge">
<title>Node3->Node8</title>
-<path fill="none" stroke="midnightblue" d="M1318.42,-822.92C1236.05,-817.08 1070.55,-802.99 1017,-781 941.02,-749.8 906.45,-742.6 870,-669 831.29,-590.85 969.19,-562.9 1057.49,-553.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1057.89,-556.59 1067.47,-552.06 1057.16,-549.63 1057.89,-556.59"/>
+<path fill="none" stroke="midnightblue" d="M1331.95,-831.89C1204.63,-817.15 863,-769.75 803.76,-680 743.76,-589.09 935.68,-560.57 1043.95,-551.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1044.45,-555.27 1054.15,-551.01 1043.91,-548.29 1044.45,-555.27"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="243.5,-56.5 243.5,-75.5 288.5,-75.5 288.5,-56.5 243.5,-56.5"/>
-<text text-anchor="middle" x="266" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">utility</text>
+<polygon fill="white" stroke="#bfbfbf" points="255.26,-56.5 255.26,-75.5 300.26,-75.5 300.26,-56.5 255.26,-56.5"/>
+<text text-anchor="middle" x="277.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">utility</text>
</a>
</g>
</g>
<!-- Node3->Node22 -->
-<g id="edge172" class="edge">
+<g id="edge173" class="edge">
<title>Node3->Node22</title>
-<path fill="none" stroke="midnightblue" d="M1318.48,-825.74C1168.86,-824.56 708.85,-817.92 565,-781 564.13,-780.78 448.79,-725.43 448,-725 405.52,-702.11 394.59,-696.58 355,-669 220.27,-575.16 176.15,-540.98 114,-389 95.01,-342.57 103.12,-327.07 100,-277 95.4,-203.1 69.97,-163.68 123,-112 152.72,-83.03 200.91,-72.69 233.02,-69.01"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="233.63,-72.47 243.24,-68 232.95,-65.5 233.63,-72.47"/>
+<path fill="none" stroke="midnightblue" d="M1332.24,-837.08C1189.01,-836.86 763.35,-832.71 631.76,-792 619.63,-788.25 249.5,-565.14 239.76,-557 78.12,-421.95 -57.34,-274.42 76.76,-112 97.8,-86.51 193.26,-74.37 244.69,-69.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="245.3,-73.05 254.95,-68.68 244.68,-66.08 245.3,-73.05"/>
</g>
<!-- Node25 -->
<g id="node25" class="node">
<title>Node25</title>
<g id="a_node25"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="421.5,-118 421.5,-137 468.5,-137 468.5,-118 421.5,-118"/>
-<text text-anchor="middle" x="445" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
+<polygon fill="white" stroke="#bfbfbf" points="401.26,-118 401.26,-137 448.26,-137 448.26,-118 401.26,-118"/>
+<text text-anchor="middle" x="424.76" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
</a>
</g>
</g>
<!-- Node3->Node25 -->
-<g id="edge173" class="edge">
+<g id="edge174" class="edge">
<title>Node3->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1318.45,-826.14C1175.68,-826.08 752.54,-822.33 622,-781 531.63,-752.39 305.19,-639.77 259,-557 190.15,-433.61 254.97,-368.73 325,-246 342.78,-214.84 344.65,-204.38 370,-179 384.61,-164.38 404.03,-151.44 419.45,-142.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="421.52,-145.16 428.45,-137.15 418.04,-139.09 421.52,-145.16"/>
+<path fill="none" stroke="midnightblue" d="M1331.86,-836.94C1195.44,-836.29 807.05,-830.96 686.76,-792 535.25,-742.93 533.18,-660.13 388.76,-593 334.39,-567.73 297.95,-602.37 258.76,-557 168.31,-452.3 217.26,-372.74 272.76,-246 287.25,-212.91 291.29,-202.46 318.76,-179 340.23,-160.66 369.5,-147.39 391.84,-139.06"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="393.02,-142.36 401.25,-135.69 390.66,-135.77 393.02,-142.36"/>
</g>
<!-- Node27 -->
<g id="node27" class="node">
<title>Node27</title>
<g id="a_node27"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2930,-56.5 2930,-75.5 2974,-75.5 2974,-56.5 2930,-56.5"/>
-<text text-anchor="middle" x="2952" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
+<polygon fill="white" stroke="#bfbfbf" points="2845.76,-56.5 2845.76,-75.5 2889.76,-75.5 2889.76,-56.5 2845.76,-56.5"/>
+<text text-anchor="middle" x="2867.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
</a>
</g>
</g>
<!-- Node3->Node27 -->
-<g id="edge169" class="edge">
+<g id="edge170" class="edge">
<title>Node3->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1413.51,-822.03C1624.25,-804.4 2464.56,-733.6 2475,-725 2498.24,-705.87 2494,-690.1 2494,-660 2494,-660 2494,-660 2494,-378 2494,-279.99 2510.96,-238.29 2589,-179 2692.43,-100.41 2851.59,-76.45 2919.49,-69.58"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2919.96,-73.05 2929.58,-68.62 2919.3,-66.09 2919.96,-73.05"/>
+<path fill="none" stroke="midnightblue" d="M1427.37,-835.61C1631.37,-829.27 2425.46,-800.61 2514.76,-736 2562.99,-701.11 2555.74,-671.3 2567.76,-613 2569.56,-604.29 2570.5,-601.46 2567.76,-593 2561.69,-574.22 2548.58,-575.52 2541.76,-557 2524.5,-510.14 2534.76,-494.9 2532.76,-445 2527.94,-324.89 2502.05,-268.98 2581.76,-179 2649.5,-102.53 2776.02,-77.79 2835.41,-70.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2836.18,-73.61 2845.69,-68.95 2835.34,-66.66 2836.18,-73.61"/>
</g>
<!-- Node46 -->
<g id="node46" class="node">
<title>Node46</title>
<g id="a_node46"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM.">
-<polygon fill="white" stroke="black" points="1550,-593.5 1550,-612.5 1630,-612.5 1630,-593.5 1550,-593.5"/>
-<text text-anchor="middle" x="1590" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/type.h</text>
+<polygon fill="white" stroke="black" points="1410.76,-593.5 1410.76,-612.5 1490.76,-612.5 1490.76,-593.5 1410.76,-593.5"/>
+<text text-anchor="middle" x="1450.76" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/type.h</text>
</a>
</g>
</g>
<!-- Node3->Node46 -->
-<g id="edge168" class="edge">
+<g id="edge169" class="edge">
<title>Node3->Node46</title>
-<path fill="none" stroke="midnightblue" d="M1374.78,-817.3C1408.44,-783.94 1529.54,-663.92 1573.72,-620.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1576.4,-622.41 1581.04,-612.88 1571.47,-617.44 1576.4,-622.41"/>
+<path fill="none" stroke="midnightblue" d="M1377.79,-828.48C1375.22,-815.95 1371.52,-791.9 1375.76,-772 1388.2,-713.62 1422.44,-650.95 1440.03,-621.36"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1443.12,-623.02 1445.3,-612.65 1437.13,-619.4 1443.12,-623.02"/>
</g>
<!-- Node48 -->
<g id="node48" class="node">
<title>Node48</title>
<g id="a_node48"><a xlink:href="ir_2function_8h.html" target="_top" xlink:title="Function nodes.">
-<polygon fill="white" stroke="black" points="2811,-761.5 2811,-780.5 2909,-780.5 2909,-761.5 2811,-761.5"/>
-<text text-anchor="middle" x="2860" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/function.h</text>
+<polygon fill="white" stroke="black" points="2930.76,-772.5 2930.76,-791.5 3028.76,-791.5 3028.76,-772.5 2930.76,-772.5"/>
+<text text-anchor="middle" x="2979.76" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/function.h</text>
</a>
</g>
</g>
<!-- Node3->Node48 -->
<g id="edge125" class="edge">
<title>Node3->Node48</title>
-<path fill="none" stroke="midnightblue" d="M1413.73,-824.96C1588.4,-821.03 2209.38,-806.05 2721,-781 2747.1,-779.72 2775.93,-777.92 2800.54,-776.26"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2801.07,-779.73 2810.81,-775.56 2800.59,-772.75 2801.07,-779.73"/>
-</g>
-<!-- Node51 -->
-<g id="node51" class="node">
-<title>Node51</title>
-<g id="a_node51"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="575.5,-481.5 575.5,-500.5 668.5,-500.5 668.5,-481.5 575.5,-481.5"/>
-<text text-anchor="middle" x="622" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
-</a>
-</g>
-</g>
-<!-- Node3->Node51 -->
-<g id="edge170" class="edge">
-<title>Node3->Node51</title>
-<path fill="none" stroke="midnightblue" d="M1318.46,-826.2C1166.36,-826.42 698.61,-823.59 647,-781 562.35,-711.14 593.62,-645.67 609,-537 610.27,-528.04 612.89,-518.37 615.45,-510.3"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="618.77,-511.4 618.66,-500.8 612.14,-509.16 618.77,-511.4"/>
+<path fill="none" stroke="midnightblue" d="M1427.65,-835.38C1659.46,-827.56 2664.37,-793.64 2920.29,-785.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2920.62,-788.5 2930.49,-784.66 2920.38,-781.5 2920.62,-788.5"/>
</g>
<!-- Node52 -->
<g id="node52" class="node">
<title>Node52</title>
-<g id="a_node52"><a xlink:href="ir_2global__info_8h.html" target="_top" xlink:title="GlobalInfo are globally static object that are referred by the IR itself.">
-<polygon fill="white" stroke="black" points="1268,-761.5 1268,-780.5 1380,-780.5 1380,-761.5 1268,-761.5"/>
-<text text-anchor="middle" x="1324" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/global_info.h</text>
+<g id="a_node52"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="555.26,-481.5 555.26,-500.5 648.26,-500.5 648.26,-481.5 555.26,-481.5"/>
+<text text-anchor="middle" x="601.76" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
</a>
</g>
</g>
<!-- Node3->Node52 -->
-<g id="edge145" class="edge">
+<g id="edge171" class="edge">
<title>Node3->Node52</title>
-<path fill="none" stroke="midnightblue" d="M1359.06,-817.08C1353.07,-809.38 1344.25,-798.03 1336.95,-788.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1339.71,-786.5 1330.81,-780.75 1334.18,-790.79 1339.71,-786.5"/>
+<path fill="none" stroke="midnightblue" d="M1332.04,-837.11C1182.71,-836.5 727.75,-827.06 618.76,-736 593.36,-714.78 594.76,-698.6 594.76,-665.5 594.76,-665.5 594.76,-665.5 594.76,-602 594.76,-569.88 597.77,-532.6 599.84,-510.73"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="603.35,-510.84 600.85,-500.55 596.38,-510.15 603.35,-510.84"/>
</g>
-<!-- Node58 -->
-<g id="node58" class="node">
-<title>Node58</title>
-<g id="a_node58"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="879,-649.5 879,-668.5 965,-668.5 965,-649.5 879,-649.5"/>
-<text text-anchor="middle" x="922" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_set</text>
+<!-- Node53 -->
+<g id="node53" class="node">
+<title>Node53</title>
+<g id="a_node53"><a xlink:href="ir_2global__info_8h.html" target="_top" xlink:title="GlobalInfo are globally static object that are referred by the IR itself.">
+<polygon fill="white" stroke="black" points="1384.76,-772.5 1384.76,-791.5 1496.76,-791.5 1496.76,-772.5 1384.76,-772.5"/>
+<text text-anchor="middle" x="1440.76" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/global_info.h</text>
</a>
</g>
</g>
-<!-- Node3->Node58 -->
-<g id="edge171" class="edge">
-<title>Node3->Node58</title>
-<path fill="none" stroke="midnightblue" d="M1318.34,-822.53C1243.11,-816.48 1100.7,-802.57 1055,-781 1002.5,-756.22 956.09,-703.59 934.62,-676.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="937.24,-674.31 928.33,-668.57 931.72,-678.61 937.24,-674.31"/>
+<!-- Node3->Node53 -->
+<g id="edge146" class="edge">
+<title>Node3->Node53</title>
+<path fill="none" stroke="midnightblue" d="M1389.56,-828.32C1398.58,-820.34 1412.17,-808.31 1423.08,-798.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1425.61,-801.08 1430.78,-791.83 1420.97,-795.84 1425.61,-801.08"/>
+</g>
+<!-- Node59 -->
+<g id="node59" class="node">
+<title>Node59</title>
+<g id="a_node59"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="812.76,-655 812.76,-674 898.76,-674 898.76,-655 812.76,-655"/>
+<text text-anchor="middle" x="855.76" y="-662" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_set</text>
+</a>
+</g>
+</g>
+<!-- Node3->Node59 -->
+<g id="edge172" class="edge">
+<title>Node3->Node59</title>
+<path fill="none" stroke="midnightblue" d="M1331.97,-829.24C1255.6,-815.9 1102.21,-785.21 979.76,-736 941.63,-720.67 900.82,-695.59 876.83,-679.84"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="878.48,-676.73 868.22,-674.11 874.6,-682.56 878.48,-676.73"/>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="midnightblue" d="M2251.27,-649.44C2275.22,-636.24 2323.3,-610.57 2366,-593 2561.09,-512.72 2635.41,-552.38 2817,-445 2902.65,-394.35 2923.3,-367.35 2965,-277 2986.44,-230.55 3009.36,-174.78 3020.73,-146.64"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3024.01,-147.87 3024.5,-137.29 3017.51,-145.26 3024.01,-147.87"/>
+<path fill="none" stroke="midnightblue" d="M2186.29,-654.9C2232.79,-625.74 2391.13,-529.73 2534.76,-481 2616.15,-453.38 2644.85,-476.64 2724.76,-445 2767.86,-427.93 2775.34,-416.37 2812.76,-389 2844.09,-366.09 2858.2,-365.27 2879.76,-333 2920.21,-272.45 2936.22,-184.93 2941.52,-147.09"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2945.01,-147.39 2942.83,-137.02 2938.07,-146.49 2945.01,-147.39"/>
</g>
<!-- Node7->Node8 -->
<g id="edge8" class="edge">
<title>Node7->Node8</title>
-<path fill="none" stroke="midnightblue" d="M2196.14,-657.35C2067.79,-654.95 1666.35,-645.01 1541,-613 1520.58,-607.79 1518.27,-598.78 1498,-593 1442.68,-577.22 1286.23,-561.76 1194.8,-553.72"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1195.06,-550.23 1184.8,-552.84 1194.46,-557.2 1195.06,-550.23"/>
+<path fill="none" stroke="midnightblue" d="M2133.17,-661.31C1980.6,-652.83 1437.48,-622.13 1401.76,-613 1381.34,-607.78 1378.85,-599.39 1358.76,-593 1325.99,-582.57 1239.56,-567.81 1178.44,-558.08"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1178.91,-554.61 1168.48,-556.5 1177.81,-561.53 1178.91,-554.61"/>
</g>
<!-- Node7->Node10 -->
<g id="edge118" class="edge">
<title>Node7->Node10</title>
-<path fill="none" stroke="midnightblue" d="M2196.18,-652.99C2108.68,-641.4 1893.64,-609.58 1720,-557 1697.88,-550.3 1694.23,-543.31 1672,-537 1596.86,-515.68 1507.41,-503.56 1449.71,-497.39"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1449.98,-493.9 1439.67,-496.34 1449.25,-500.86 1449.98,-493.9"/>
+<path fill="none" stroke="midnightblue" d="M2136.06,-655C2013.15,-626.51 1616.05,-534.48 1479.44,-502.82"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1480.21,-499.4 1469.68,-500.56 1478.63,-506.22 1480.21,-499.4"/>
</g>
<!-- Node7->Node16 -->
<g id="edge119" class="edge">
<title>Node7->Node16</title>
-<path fill="none" stroke="midnightblue" d="M2196.43,-657.77C2063.11,-656.67 1631.2,-650.25 1498,-613 1479.62,-607.86 1478.3,-598.4 1460,-593 1374.19,-567.67 1132.47,-608.06 1059,-557 937.47,-472.54 851.39,-364.54 940,-246 973.85,-200.72 1012,-236.39 1062,-210 1081.28,-199.83 1081.79,-190.98 1100,-179 1122.08,-164.47 1148.83,-150.81 1168.64,-141.37"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1170.2,-144.5 1177.76,-137.09 1167.22,-138.17 1170.2,-144.5"/>
+<path fill="none" stroke="midnightblue" d="M2133.12,-661.5C1975.04,-653.49 1396.4,-623.55 1358.76,-613 1340.38,-607.85 1338.95,-598.77 1320.76,-593 1203.27,-555.71 1146.18,-628.49 1045.76,-557 922.27,-469.09 812,-365.11 905.76,-246 947.9,-192.47 993.74,-240.29 1054.76,-210 1074.28,-200.31 1074.05,-190.18 1092.76,-179 1120.04,-162.71 1153.54,-149.26 1178.53,-140.34"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1179.71,-143.64 1188,-137.04 1177.4,-137.03 1179.71,-143.64"/>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<title>Node24</title>
<g id="a_node24"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2083.5,-56.5 2083.5,-75.5 2152.5,-75.5 2152.5,-56.5 2083.5,-56.5"/>
-<text text-anchor="middle" x="2118" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
+<polygon fill="white" stroke="#bfbfbf" points="2096.26,-56.5 2096.26,-75.5 2165.26,-75.5 2165.26,-56.5 2096.26,-56.5"/>
+<text text-anchor="middle" x="2130.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
</a>
</g>
</g>
<!-- Node7->Node24 -->
<g id="edge124" class="edge">
<title>Node7->Node24</title>
-<path fill="none" stroke="midnightblue" d="M2237.6,-649.37C2248.01,-592.7 2304.82,-273.07 2280,-179 2271.27,-145.9 2268.15,-134.09 2242,-112 2219.37,-92.89 2187.96,-81.6 2162.41,-75.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2163.12,-71.68 2152.59,-72.77 2161.5,-78.49 2163.12,-71.68"/>
+<path fill="none" stroke="midnightblue" d="M2176.03,-654.84C2199.58,-591.87 2340.3,-204.26 2272.76,-112 2250.71,-81.87 2208.36,-71.42 2175.63,-68.02"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2175.64,-64.51 2165.38,-67.15 2175.05,-71.49 2175.64,-64.51"/>
</g>
<!-- Node7->Node27 -->
<g id="edge123" class="edge">
<title>Node7->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2268.93,-649.47C2373.69,-622.15 2708.44,-533.4 2981,-445 3088.39,-410.17 3135.04,-418.3 3209,-333 3274.29,-257.7 3257.2,-162.02 3171,-112 3111.32,-77.38 3028.94,-69.14 2984.15,-67.34"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.24,-63.84 2974.13,-67.02 2984.02,-70.84 2984.24,-63.84"/>
+<path fill="none" stroke="midnightblue" d="M2201.94,-654.92C2272.22,-634.3 2456.48,-580.42 2610.76,-537 2925.16,-448.52 3087.47,-565.6 3316.76,-333 3365.17,-283.89 3365.86,-241.05 3335.76,-179 3314.77,-135.72 3295.21,-130.39 3250.76,-112 3187.41,-85.79 2980.29,-72.72 2899.99,-68.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2900.12,-65.04 2889.96,-68.03 2899.77,-72.03 2900.12,-65.04"/>
</g>
<!-- Node40 -->
<g id="node40" class="node">
<title>Node40</title>
<g id="a_node40"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2043.5,-118 2043.5,-137 2108.5,-137 2108.5,-118 2043.5,-118"/>
-<text text-anchor="middle" x="2076" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
+<polygon fill="white" stroke="#bfbfbf" points="2066.26,-118 2066.26,-137 2131.26,-137 2131.26,-118 2066.26,-118"/>
+<text text-anchor="middle" x="2098.76" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
</a>
</g>
</g>
<!-- Node7->Node40 -->
<g id="edge121" class="edge">
<title>Node7->Node40</title>
-<path fill="none" stroke="midnightblue" d="M2223.18,-649.32C2185.21,-622.46 2076,-536.48 2076,-436 2076,-436 2076,-436 2076,-378 2076,-286.59 2163.6,-263.2 2128,-179 2121.91,-164.59 2109.47,-152.27 2098.29,-143.4"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2100.22,-140.48 2090.11,-137.32 2096.04,-146.09 2100.22,-140.48"/>
+<path fill="none" stroke="midnightblue" d="M2163.01,-654.74C2133.38,-627.36 2044.53,-539.58 2013.76,-445 2011.01,-436.55 2011.73,-433.65 2013.76,-425 2038.19,-321.1 2096.33,-313.9 2120.76,-210 2123.91,-196.59 2123.57,-192.49 2120.76,-179 2118.38,-167.59 2113.28,-155.59 2108.59,-146.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2111.56,-144.29 2103.81,-137.07 2105.37,-147.55 2111.56,-144.29"/>
</g>
<!-- Node41 -->
<g id="node41" class="node">
<title>Node41</title>
<g id="a_node41"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2332,-185 2332,-204 2376,-204 2376,-185 2332,-185"/>
-<text text-anchor="middle" x="2354" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">limits</text>
+<polygon fill="white" stroke="#bfbfbf" points="2324.76,-185 2324.76,-204 2368.76,-204 2368.76,-185 2324.76,-185"/>
+<text text-anchor="middle" x="2346.76" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">limits</text>
</a>
</g>
</g>
<!-- Node7->Node41 -->
<g id="edge122" class="edge">
<title>Node7->Node41</title>
-<path fill="none" stroke="midnightblue" d="M2239.22,-649.32C2251.45,-616.07 2295.36,-493.5 2318,-389 2325.21,-355.7 2322.09,-346.55 2328,-313 2334.23,-277.63 2343.81,-236.79 2349.44,-213.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2352.85,-214.55 2351.85,-204 2346.06,-212.87 2352.85,-214.55"/>
+<path fill="none" stroke="midnightblue" d="M2182.56,-654.85C2207.21,-632.39 2271.56,-569.25 2296.76,-501 2325.88,-422.13 2302.99,-395.77 2317.76,-313 2324.07,-277.63 2334.89,-237.08 2341.38,-214.05"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2344.8,-214.84 2344.18,-204.26 2338.07,-212.91 2344.8,-214.84"/>
</g>
<!-- Node7->Node46 -->
<g id="edge111" class="edge">
<title>Node7->Node46</title>
-<path fill="none" stroke="midnightblue" d="M2196.08,-654.66C2083.57,-645.26 1764.05,-618.55 1640.05,-608.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1640.33,-604.69 1630.07,-607.35 1639.74,-611.67 1640.33,-604.69"/>
+<path fill="none" stroke="midnightblue" d="M2133.17,-660.24C2010.57,-650.13 1637.25,-619.37 1501.12,-608.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1501.22,-604.65 1490.97,-607.31 1500.65,-611.62 1501.22,-604.65"/>
</g>
<!-- Node47 -->
<g id="node47" class="node">
<title>Node47</title>
<g id="a_node47"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2522,-593.5 2522,-612.5 2586,-612.5 2586,-593.5 2522,-593.5"/>
-<text text-anchor="middle" x="2554" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
+<polygon fill="white" stroke="#bfbfbf" points="2494.76,-593.5 2494.76,-612.5 2558.76,-612.5 2558.76,-593.5 2494.76,-593.5"/>
+<text text-anchor="middle" x="2526.76" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
</a>
</g>
</g>
<!-- Node7->Node47 -->
<g id="edge120" class="edge">
<title>Node7->Node47</title>
-<path fill="none" stroke="midnightblue" d="M2275.63,-651.27C2335.75,-641.06 2449.54,-621.74 2511.38,-611.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2512.3,-614.63 2521.58,-609.51 2511.13,-607.73 2512.3,-614.63"/>
+<path fill="none" stroke="midnightblue" d="M2212.34,-656.85C2279.61,-645.54 2415.65,-622.68 2484.62,-611.08"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2485.42,-614.5 2494.7,-609.39 2484.26,-607.6 2485.42,-614.5"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1455.5,-252 1455.5,-271 1556.5,-271 1556.5,-252 1455.5,-252"/>
-<text text-anchor="middle" x="1506" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/function.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1448.26,-252 1448.26,-271 1549.26,-271 1549.26,-252 1448.26,-252"/>
+<text text-anchor="middle" x="1498.76" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/function.h</text>
</a>
</g>
</g>
<!-- Node8->Node9 -->
<g id="edge9" class="edge">
<title>Node8->Node9</title>
-<path fill="none" stroke="midnightblue" d="M1145.31,-537.32C1199.87,-512.09 1357.83,-434.11 1460,-333 1475.85,-317.31 1489.15,-295.28 1497.3,-280.04"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1500.42,-281.63 1501.9,-271.14 1494.2,-278.42 1500.42,-281.63"/>
+<path fill="none" stroke="midnightblue" d="M1155.89,-537.45C1240.37,-518.1 1426.1,-462.22 1502.76,-333 1512.12,-317.22 1509.17,-295.79 1505.1,-280.72"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1508.41,-279.55 1502.1,-271.03 1501.72,-281.62 1508.41,-279.55"/>
</g>
<!-- Node8->Node10 -->
<g id="edge10" class="edge">
<title>Node8->Node10</title>
-<path fill="none" stroke="midnightblue" d="M1167.83,-537.44C1214.08,-527.98 1288.61,-512.74 1338.44,-502.55"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1339.27,-505.95 1348.36,-500.52 1337.87,-499.09 1339.27,-505.95"/>
+<path fill="none" stroke="midnightblue" d="M1163.47,-537.44C1220.36,-527.84 1312.57,-512.28 1372.94,-502.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1373.8,-505.5 1383.08,-500.38 1372.64,-498.6 1373.8,-505.5"/>
</g>
<!-- Node8->Node16 -->
<g id="edge106" class="edge">
<title>Node8->Node16</title>
-<path fill="none" stroke="midnightblue" d="M1118.14,-537.39C1079.01,-494.06 908.67,-299.78 951,-246 993.14,-192.47 1039.2,-240.73 1100,-210 1104.49,-207.73 1152.22,-166.98 1179.01,-143.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1181.59,-146.38 1186.89,-137.21 1177.02,-141.07 1181.59,-146.38"/>
+<path fill="none" stroke="midnightblue" d="M1104.47,-537.44C1069.29,-500.07 937.23,-348.52 1005.76,-246 1029.02,-211.21 1056.83,-231.45 1092.76,-210 1111.47,-198.83 1112.93,-191.54 1130.76,-179 1150.02,-165.46 1173,-151.8 1190.06,-142.11"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1191.86,-145.11 1198.86,-137.16 1188.43,-139.01 1191.86,-145.11"/>
</g>
<!-- Node8->Node22 -->
<g id="edge109" class="edge">
<title>Node8->Node22</title>
-<path fill="none" stroke="midnightblue" d="M1095.04,-537.42C988.67,-506.86 631.65,-395.11 393,-210 357.68,-182.61 347.5,-176.58 318,-143 301.75,-124.5 286.23,-100.75 276.44,-84.76"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="279.28,-82.7 271.14,-75.93 273.28,-86.3 279.28,-82.7"/>
+<path fill="none" stroke="midnightblue" d="M1082.05,-537.41C976.54,-506.82 622.5,-394.97 386.76,-210 352.37,-183.02 340.77,-178.13 314.76,-143 301.42,-124.98 290.83,-101.41 284.45,-85.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="287.56,-83.65 280.73,-75.54 281.02,-86.14 287.56,-83.65"/>
</g>
<!-- Node8->Node25 -->
<g id="edge110" class="edge">
<title>Node8->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1111.89,-537.42C1073.85,-514.2 966.14,-447.91 879,-389 843.64,-365.1 835.59,-357.99 801,-333 766.7,-308.22 756.95,-303.55 724,-277 711.25,-266.73 628.29,-186.98 614,-179 570.62,-154.79 514.36,-140.98 478.96,-134.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.15,-130.59 468.68,-132.21 477.87,-137.48 479.15,-130.59"/>
+<path fill="none" stroke="midnightblue" d="M1098.37,-537.35C1060.07,-514.21 952.74,-448.62 866.76,-389 798.68,-341.79 781.97,-329.34 717.76,-277 705.01,-266.6 621.22,-186.84 606.76,-179 558.81,-152.99 496.32,-139.46 458.44,-133.17"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="458.87,-129.7 448.44,-131.59 457.77,-136.61 458.87,-129.7"/>
</g>
<!-- Node8->Node27 -->
<g id="edge108" class="edge">
<title>Node8->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1184.9,-542.92C1469.95,-527.93 2695.88,-462.69 2775,-445 2972.01,-400.94 3083.69,-444.07 3197,-277 3246.19,-204.47 3199.9,-192.21 3082,-112 3052.06,-91.63 3011.98,-79.6 2984.28,-73.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.83,-69.72 2974.31,-70.99 2983.32,-76.56 2984.83,-69.72"/>
+<path fill="none" stroke="midnightblue" d="M1171.6,-543.27C1443.34,-530.54 2570.25,-476.28 2724.76,-445 2845,-420.66 3245.76,-385.18 3245.76,-262.5 3245.76,-262.5 3245.76,-262.5 3245.76,-193.5 3245.76,-120.86 2991.55,-82.29 2900.07,-70.76"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2900.35,-67.27 2890,-69.51 2899.49,-74.21 2900.35,-67.27"/>
</g>
<!-- Node45 -->
<g id="node45" class="node">
<title>Node45</title>
<g id="a_node45"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1105.5,-481.5 1105.5,-500.5 1160.5,-500.5 1160.5,-481.5 1105.5,-481.5"/>
-<text text-anchor="middle" x="1133" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">fstream</text>
+<polygon fill="white" stroke="#bfbfbf" points="1085.26,-481.5 1085.26,-500.5 1140.26,-500.5 1140.26,-481.5 1085.26,-481.5"/>
+<text text-anchor="middle" x="1112.76" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">fstream</text>
</a>
</g>
</g>
<!-- Node8->Node45 -->
<g id="edge107" class="edge">
<title>Node8->Node45</title>
-<path fill="none" stroke="midnightblue" d="M1127.16,-537.08C1128.08,-529.93 1129.42,-519.64 1130.58,-510.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1134.05,-511.12 1131.87,-500.75 1127.11,-510.22 1134.05,-511.12"/>
+<path fill="none" stroke="midnightblue" d="M1112.76,-537.08C1112.76,-530.01 1112.76,-519.86 1112.76,-510.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1116.26,-510.75 1112.76,-500.75 1109.26,-510.75 1116.26,-510.75"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1107.5,-252 1107.5,-271 1208.5,-271 1208.5,-252 1107.5,-252"/>
-<text text-anchor="middle" x="1158" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/memory.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1062.26,-252 1062.26,-271 1163.26,-271 1163.26,-252 1062.26,-252"/>
+<text text-anchor="middle" x="1112.76" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/memory.h</text>
</a>
</g>
</g>
<!-- Node10->Node11 -->
<g id="edge11" class="edge">
<title>Node10->Node11</title>
-<path fill="none" stroke="midnightblue" d="M1381.19,-481.36C1346.52,-447.36 1219.21,-322.52 1174.03,-278.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1176.41,-275.65 1166.82,-271.15 1171.51,-280.65 1176.41,-275.65"/>
+<path fill="none" stroke="midnightblue" d="M1421.13,-481.39C1386.12,-455.51 1278.57,-376.35 1187.76,-313 1169.96,-300.58 1149.5,-286.84 1134.45,-276.83"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1136.12,-273.74 1125.86,-271.13 1132.25,-279.57 1136.12,-273.74"/>
</g>
<!-- Node10->Node12 -->
<g id="edge12" class="edge">
<title>Node10->Node12</title>
-<path fill="none" stroke="midnightblue" d="M1390,-481.08C1390,-454.95 1390,-378.21 1390,-342.58"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1393.5,-342.57 1390,-332.57 1386.5,-342.57 1393.5,-342.57"/>
+<path fill="none" stroke="midnightblue" d="M1432.76,-481.08C1432.76,-454.95 1432.76,-378.21 1432.76,-342.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1436.26,-342.57 1432.76,-332.57 1429.26,-342.57 1436.26,-342.57"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison.">
-<polygon fill="white" stroke="black" points="1744.5,-246.5 1744.5,-276.5 1857.5,-276.5 1857.5,-246.5 1744.5,-246.5"/>
-<text text-anchor="start" x="1752.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
-<text text-anchor="middle" x="1801" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
+<polygon fill="white" stroke="black" points="1737.26,-246.5 1737.26,-276.5 1850.26,-276.5 1850.26,-246.5 1737.26,-246.5"/>
+<text text-anchor="start" x="1745.26" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="1793.76" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
</a>
</g>
</g>
<!-- Node10->Node13 -->
<g id="edge98" class="edge">
<title>Node10->Node13</title>
-<path fill="none" stroke="midnightblue" d="M1410.99,-481.47C1463.28,-459.84 1602.88,-399.8 1710,-333 1733.9,-318.09 1759.07,-298.23 1776.86,-283.39"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1779.58,-285.68 1784.96,-276.55 1775.06,-280.33 1779.58,-285.68"/>
+<path fill="none" stroke="midnightblue" d="M1446.47,-481.36C1498.95,-448.29 1687.83,-329.26 1762.79,-282.02"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1764.76,-284.92 1771.35,-276.62 1761.02,-278.99 1764.76,-284.92"/>
</g>
<!-- Node10->Node16 -->
<g id="edge101" class="edge">
<title>Node10->Node16</title>
-<path fill="none" stroke="midnightblue" d="M1364.63,-481.46C1303.28,-459.24 1147.6,-393.17 1088,-277 1081.71,-264.74 1081.72,-258.26 1088,-246 1100.48,-221.63 1118.61,-229.34 1138,-210 1157.75,-190.3 1175.81,-163.47 1186.61,-146.07"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1189.9,-147.4 1192.09,-137.04 1183.91,-143.77 1189.9,-147.4"/>
+<path fill="none" stroke="midnightblue" d="M1382.91,-481.49C1291.68,-462.93 1099.87,-409.34 1019.76,-277 973.14,-199.98 1116.38,-218.66 1130.76,-210 1159.63,-192.62 1186.35,-163.55 1201.59,-145.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1204.52,-147.17 1208.11,-137.2 1199.09,-142.76 1204.52,-147.17"/>
</g>
<!-- Node20 -->
<g id="node20" class="node">
<title>Node20</title>
<g id="a_node20"><a xlink:href="runtime_2base_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="952.5,-56.5 952.5,-75.5 1065.5,-75.5 1065.5,-56.5 952.5,-56.5"/>
-<text text-anchor="middle" x="1009" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/base.h</text>
+<polygon fill="white" stroke="black" points="945.26,-56.5 945.26,-75.5 1058.26,-75.5 1058.26,-56.5 945.26,-56.5"/>
+<text text-anchor="middle" x="1001.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/base.h</text>
</a>
</g>
</g>
<!-- Node10->Node20 -->
<g id="edge100" class="edge">
<title>Node10->Node20</title>
-<path fill="none" stroke="midnightblue" d="M1356.36,-481.44C1325.83,-473.3 1279.79,-460.08 1241,-445 986.8,-346.17 938.82,-286.1 688,-179 646.09,-161.11 617.96,-180.45 592,-143 584.15,-131.68 582.8,-122.25 592,-112 603.54,-99.15 827.12,-80.62 942.03,-71.9"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="942.42,-75.38 952.13,-71.13 941.9,-68.4 942.42,-75.38"/>
+<path fill="none" stroke="midnightblue" d="M1382.84,-484.23C1335.55,-477.84 1263.01,-465.62 1202.76,-445 982.92,-369.77 936.17,-327.58 735.76,-210 724.3,-203.28 642.99,-154.73 636.76,-143 630.3,-130.83 627.63,-122.32 636.76,-112 646.53,-100.95 832.49,-82.4 935.11,-72.94"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="935.43,-76.42 945.07,-72.02 934.79,-69.45 935.43,-76.42"/>
</g>
<!-- Node10->Node22 -->
<g id="edge104" class="edge">
<title>Node10->Node22</title>
-<path fill="none" stroke="midnightblue" d="M1340.34,-488.83C1264.82,-486.05 1117.06,-476.67 996,-445 735.27,-376.8 667.53,-349.61 437,-210 420.31,-199.89 323.81,-116.98 283.59,-82.23"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="285.76,-79.48 275.91,-75.59 281.19,-84.78 285.76,-79.48"/>
+<path fill="none" stroke="midnightblue" d="M1383.05,-489.66C1298.83,-488.06 1123.27,-480.33 979.76,-445 786.15,-397.33 745.52,-358.99 563.76,-277 503.06,-249.62 485.55,-246.34 429.76,-210 390.61,-184.5 382.78,-175.02 348.76,-143 328.13,-123.58 306.11,-99.41 292.16,-83.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="294.52,-80.99 285.3,-75.78 289.25,-85.6 294.52,-80.99"/>
</g>
<!-- Node10->Node24 -->
<g id="edge103" class="edge">
<title>Node10->Node24</title>
-<path fill="none" stroke="midnightblue" d="M1420.54,-481.49C1449.01,-473.23 1492.44,-459.81 1529,-445 1593.09,-419.04 1845.83,-295.23 1867,-277 1934.93,-218.51 1911.09,-165.53 1983,-112 2009.56,-92.23 2045.32,-80.82 2073.36,-74.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2074.26,-77.83 2083.31,-72.32 2072.8,-70.99 2074.26,-77.83"/>
+<path fill="none" stroke="midnightblue" d="M1457.94,-481.41C1542.45,-452.03 1813.2,-353.16 1859.76,-277 1866.95,-265.24 1867.07,-257.68 1859.76,-246 1840.36,-214.99 1805.16,-241.01 1785.76,-210 1778.45,-198.32 1778.99,-191 1785.76,-179 1814.09,-128.82 1842.96,-132.65 1896.76,-112 1959.91,-87.76 2037.85,-76.13 2085.92,-70.89"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2086.42,-74.35 2096,-69.83 2085.7,-67.39 2086.42,-74.35"/>
</g>
<!-- Node10->Node25 -->
<g id="edge105" class="edge">
<title>Node10->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1340.42,-488.25C1275.06,-484.82 1157.11,-474.71 1061,-445 915,-399.87 879.47,-373.53 761,-277 710.5,-235.85 710.05,-208.57 652,-179 583.57,-144.15 556.65,-164.75 483,-143 480.42,-142.24 477.77,-141.38 475.13,-140.48"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="476.3,-137.18 465.71,-137.07 473.92,-143.76 476.3,-137.18"/>
+<path fill="none" stroke="midnightblue" d="M1383.24,-490.06C1308,-488.88 1161.12,-481.55 1042.76,-445 900.8,-401.17 868.94,-370.84 753.76,-277 703.26,-235.85 703.02,-208.14 644.76,-179 571.02,-142.11 542.01,-165.78 462.76,-143 460.18,-142.26 457.52,-141.42 454.87,-140.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="456.05,-137.22 445.45,-137.12 453.67,-143.81 456.05,-137.22"/>
</g>
<!-- Node10->Node27 -->
<g id="edge102" class="edge">
<title>Node10->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1439.56,-489.1C1675.91,-484.7 2679.74,-464.93 2743,-445 2764.75,-438.15 2899.65,-349.86 2915,-333 2938.82,-306.83 2952,-297.89 2952,-262.5 2952,-262.5 2952,-262.5 2952,-193.5 2952,-155.2 2952,-110.38 2952,-85.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2955.5,-85.59 2952,-75.59 2948.5,-85.59 2955.5,-85.59"/>
+<path fill="none" stroke="midnightblue" d="M1482.61,-489.83C1702.28,-488.89 2578.16,-482.76 2694.76,-445 2705.39,-441.56 2856.39,-342.8 2861.76,-333 2906.99,-250.47 2884.03,-130.83 2872.77,-85.42"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2876.1,-84.34 2870.21,-75.54 2869.33,-86.09 2876.1,-84.34"/>
</g>
<!-- Node31 -->
<g id="node31" class="node">
<title>Node31</title>
<g id="a_node31"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1613.5,-246.5 1613.5,-276.5 1726.5,-276.5 1726.5,-246.5 1613.5,-246.5"/>
-<text text-anchor="start" x="1621.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
-<text text-anchor="middle" x="1670" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
+<polygon fill="white" stroke="black" points="1606.26,-246.5 1606.26,-276.5 1719.26,-276.5 1719.26,-246.5 1606.26,-246.5"/>
+<text text-anchor="start" x="1614.26" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="1662.76" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
</a>
</g>
</g>
<!-- Node10->Node31 -->
<g id="edge99" class="edge">
<title>Node10->Node31</title>
-<path fill="none" stroke="midnightblue" d="M1400.63,-481.36C1441,-448.56 1585.46,-331.19 1644.54,-283.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1647.06,-285.65 1652.62,-276.62 1642.65,-280.21 1647.06,-285.65"/>
+<path fill="none" stroke="midnightblue" d="M1441.6,-481.38C1459.44,-463.96 1501.03,-423.33 1535.76,-389 1573.07,-352.13 1616.31,-308.97 1641.49,-283.79"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1644.11,-286.12 1648.7,-276.58 1639.16,-281.17 1644.11,-286.12"/>
</g>
<!-- Node42 -->
<g id="node42" class="node">
<title>Node42</title>
<g id="a_node42"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes.">
-<polygon fill="white" stroke="black" points="2602.5,-425.5 2602.5,-444.5 2733.5,-444.5 2733.5,-425.5 2602.5,-425.5"/>
-<text text-anchor="middle" x="2668" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/repr_printer.h</text>
+<polygon fill="white" stroke="black" points="2554.26,-425.5 2554.26,-444.5 2685.26,-444.5 2685.26,-425.5 2554.26,-425.5"/>
+<text text-anchor="middle" x="2619.76" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/repr_printer.h</text>
</a>
</g>
</g>
<!-- Node10->Node42 -->
<g id="edge83" class="edge">
<title>Node10->Node42</title>
-<path fill="none" stroke="midnightblue" d="M1439.71,-487.9C1635.68,-479.62 2355.59,-449.2 2592.13,-439.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2592.51,-442.69 2602.36,-438.77 2592.22,-435.7 2592.51,-442.69"/>
+<path fill="none" stroke="midnightblue" d="M1482.63,-487.73C1668.32,-479.28 2320.45,-449.62 2543.94,-439.45"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2544.11,-442.95 2553.94,-438.99 2543.79,-435.95 2544.11,-442.95"/>
</g>
<!-- Node12->Node5 -->
<g id="edge13" class="edge">
<title>Node12->Node5</title>
-<path fill="none" stroke="midnightblue" d="M1450.63,-319.92C1713.65,-310.88 2755.71,-275.08 3046.37,-265.1"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3046.51,-268.6 3056.39,-264.75 3046.27,-261.6 3046.51,-268.6"/>
+<path fill="none" stroke="midnightblue" d="M1493.72,-319.74C1743.17,-310.49 2685.99,-275.54 2961.63,-265.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2962.07,-268.81 2971.93,-264.94 2961.81,-261.81 2962.07,-268.81"/>
</g>
<!-- Node12->Node9 -->
<g id="edge14" class="edge">
<title>Node12->Node9</title>
-<path fill="none" stroke="midnightblue" d="M1406.62,-313.48C1425.92,-303.58 1457.96,-287.14 1480.43,-275.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1482.11,-278.69 1489.41,-271.01 1478.92,-272.46 1482.11,-278.69"/>
+<path fill="none" stroke="midnightblue" d="M1442.22,-313.48C1452.51,-304.2 1469.18,-289.17 1481.76,-277.83"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1484.24,-280.3 1489.32,-271.01 1479.55,-275.11 1484.24,-280.3"/>
</g>
<!-- Node12->Node11 -->
<g id="edge15" class="edge">
<title>Node12->Node11</title>
-<path fill="none" stroke="midnightblue" d="M1356.76,-313.48C1315.76,-302.96 1245.97,-285.06 1200.95,-273.51"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1201.73,-270.1 1191.18,-271.01 1200,-276.88 1201.73,-270.1"/>
+<path fill="none" stroke="midnightblue" d="M1380.38,-313.46C1328.74,-304.88 1247.64,-290.95 1177.76,-277 1171.95,-275.84 1165.86,-274.56 1159.84,-273.26"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1160.34,-269.79 1149.82,-271.07 1158.84,-276.63 1160.34,-269.79"/>
</g>
<!-- Node12->Node13 -->
<g id="edge16" class="edge">
<title>Node12->Node13</title>
-<path fill="none" stroke="midnightblue" d="M1450.57,-315.8C1517.67,-308.55 1629.28,-295.38 1734.21,-277.23"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1735.09,-280.63 1744.34,-275.46 1733.89,-273.73 1735.09,-280.63"/>
+<path fill="none" stroke="midnightblue" d="M1493.34,-314.03C1551.09,-306.15 1640.7,-293.2 1727.11,-277.24"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1727.9,-280.66 1737.09,-275.38 1726.62,-273.77 1727.9,-280.66"/>
</g>
<!-- Node12->Node16 -->
<g id="edge79" class="edge">
<title>Node12->Node16</title>
-<path fill="none" stroke="midnightblue" d="M1384.86,-313.39C1375.11,-297.77 1352.43,-264.64 1325,-246 1284.19,-218.28 1253.91,-245.83 1220,-210 1203.93,-193.02 1198.95,-165.69 1197.48,-147.42"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1200.98,-147.19 1196.96,-137.39 1193.99,-147.56 1200.98,-147.19"/>
+<path fill="none" stroke="midnightblue" d="M1415.63,-313.43C1364.15,-287.64 1214.24,-212.42 1212.76,-210 1201.17,-191.09 1204.52,-164.8 1208.86,-147.25"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1212.36,-147.71 1211.71,-137.14 1205.63,-145.81 1212.36,-147.71"/>
</g>
<!-- Node12->Node20 -->
<g id="edge76" class="edge">
<title>Node12->Node20</title>
-<path fill="none" stroke="midnightblue" d="M1365.74,-313.49C1344.63,-305.56 1313.64,-292.62 1289,-277 1271.17,-265.69 1272.48,-254.14 1253,-246 1161.87,-207.9 889.92,-268.03 810,-210 773.34,-183.39 753.25,-147.01 782,-112 802.01,-87.64 882.78,-76.24 942.3,-71.06"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="942.73,-74.53 952.41,-70.22 942.15,-67.56 942.73,-74.53"/>
+<path fill="none" stroke="midnightblue" d="M1371.89,-315.02C1333.53,-308.84 1283.86,-297.49 1243.76,-277 1224.96,-267.39 1227.21,-254.22 1207.76,-246 1041.3,-175.66 976.78,-258.72 802.76,-210 772.71,-201.59 768.32,-191.59 739.76,-179 699.58,-161.29 672.51,-179.27 647.76,-143 639.99,-131.62 638.65,-122.34 647.76,-112 657.16,-101.33 835.34,-82.8 935.24,-73.19"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="935.62,-76.67 945.24,-72.23 934.96,-69.7 935.62,-76.67"/>
</g>
<!-- Node12->Node24 -->
<g id="edge81" class="edge">
<title>Node12->Node24</title>
-<path fill="none" stroke="midnightblue" d="M1394.55,-313.37C1403.03,-298.01 1422.61,-265.67 1447,-246 1502.57,-201.18 1525.51,-202.28 1593,-179 1658.22,-156.5 1680.08,-168.96 1744,-143 1768.93,-132.87 1770.62,-120.93 1796,-112 1890.83,-78.65 2009.55,-69.92 2073.03,-67.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2073.22,-71.19 2083.1,-67.39 2073,-64.2 2073.22,-71.19"/>
+<path fill="none" stroke="midnightblue" d="M1430.93,-313.06C1428.34,-297.79 1425.36,-266.33 1439.76,-246 1517.36,-136.43 1606.23,-207.92 1723.76,-143 1741.38,-133.27 1738.53,-120.52 1756.76,-112 1786.04,-98.33 1993.01,-78.95 2085.87,-70.82"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2086.42,-74.28 2096.08,-69.93 2085.81,-67.31 2086.42,-74.28"/>
</g>
<!-- Node12->Node25 -->
<g id="edge82" class="edge">
<title>Node12->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1357.39,-313.47C1330.64,-305.81 1292.24,-293.27 1261,-277 1240.1,-266.12 1240.11,-254.14 1218,-246 1033.05,-177.87 968.62,-251.78 776,-210 736.29,-201.39 729.31,-189.27 690,-179 595.84,-154.4 566.55,-173.1 474,-143 472.38,-142.47 470.74,-141.87 469.1,-141.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="470.54,-138.02 459.99,-137.06 467.64,-144.39 470.54,-138.02"/>
+<path fill="none" stroke="midnightblue" d="M1372.21,-316.33C1327.5,-310.52 1265.94,-299.08 1215.76,-277 1194.2,-267.51 1194.84,-254.23 1172.76,-246 1003.84,-183.04 944.78,-248.89 768.76,-210 729.09,-201.24 721.92,-189.82 682.76,-179 671.98,-176.02 526.45,-148 458.84,-135.03"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="459.18,-131.53 448.7,-133.08 457.86,-138.4 459.18,-131.53"/>
</g>
<!-- Node12->Node27 -->
<g id="edge80" class="edge">
<title>Node12->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1450.52,-321.29C1561.88,-319.17 1794.5,-310.71 1867,-277 1961.9,-232.88 1939.13,-153.98 2035,-112 2117.34,-75.94 2766.62,-68.49 2919.73,-67.23"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2919.91,-70.73 2929.88,-67.15 2919.86,-63.73 2919.91,-70.73"/>
+<path fill="none" stroke="midnightblue" d="M1493.55,-319.07C1594.9,-313.6 1793.76,-300.25 1859.76,-277 1911.62,-258.73 1921.33,-244.97 1963.76,-210 2010.34,-171.62 2002.92,-137.21 2057.76,-112 2129.24,-79.14 2692.95,-69.36 2835.23,-67.4"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2835.53,-70.9 2845.48,-67.27 2835.43,-63.9 2835.53,-70.9"/>
</g>
<!-- Node12->Node28 -->
<g id="edge77" class="edge">
<title>Node12->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1391.55,-313.16C1394.36,-298.55 1401.12,-268.72 1413,-246 1430.59,-212.35 1434.13,-199.63 1466,-179 1489.2,-163.98 1557.14,-148.71 1607.43,-138.96"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1608.39,-142.34 1617.55,-137.02 1607.07,-135.46 1608.39,-142.34"/>
+<path fill="none" stroke="midnightblue" d="M1425.61,-313.36C1418.99,-304.76 1409.6,-290.87 1405.76,-277 1402.08,-263.72 1401.24,-259.01 1405.76,-246 1418.23,-210.14 1427.06,-199.89 1458.76,-179 1480.54,-164.65 1544.58,-149.15 1591.68,-139.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1592.67,-142.53 1601.75,-137.05 1591.24,-135.68 1592.67,-142.53"/>
</g>
<!-- Node12->Node31 -->
<g id="edge46" class="edge">
<title>Node12->Node31</title>
-<path fill="none" stroke="midnightblue" d="M1430.12,-313.48C1475.39,-303.86 1549.73,-288.06 1603.67,-276.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1604.44,-280.01 1613.49,-274.51 1602.98,-273.16 1604.44,-280.01"/>
+<path fill="none" stroke="midnightblue" d="M1465.71,-313.48C1500.29,-304.53 1555.5,-290.25 1598.69,-279.07"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1599.75,-282.42 1608.55,-276.52 1598,-275.64 1599.75,-282.42"/>
</g>
<!-- Node32 -->
<g id="node32" class="node">
<title>Node32</title>
<g id="a_node32"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device-independent managed NDArray abstraction.">
-<polygon fill="white" stroke="black" points="818.5,-185 818.5,-204 943.5,-204 943.5,-185 818.5,-185"/>
-<text text-anchor="middle" x="881" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/ndarray.h</text>
+<polygon fill="white" stroke="black" points="811.26,-185 811.26,-204 936.26,-204 936.26,-185 811.26,-185"/>
+<text text-anchor="middle" x="873.76" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/ndarray.h</text>
</a>
</g>
</g>
<!-- Node12->Node32 -->
<g id="edge78" class="edge">
<title>Node12->Node32</title>
-<path fill="none" stroke="midnightblue" d="M1379.9,-313.32C1358.55,-295.15 1309.14,-254.14 1289,-246 1229.82,-222.08 1054.18,-206.93 953.7,-199.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="953.83,-196.48 943.62,-199.29 953.36,-203.46 953.83,-196.48"/>
+<path fill="none" stroke="midnightblue" d="M1397.31,-313.48C1368.18,-305.83 1326.27,-293.29 1291.76,-277 1268.8,-266.16 1267.58,-254.82 1243.76,-246 1145.19,-209.51 1023.07,-198.98 946.77,-196.17"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="946.42,-192.66 936.31,-195.82 946.19,-199.65 946.42,-192.66"/>
</g>
<!-- Node13->Node4 -->
<g id="edge17" class="edge">
<title>Node13->Node4</title>
-<path fill="none" stroke="midnightblue" d="M1857.69,-256.24C2007.89,-244.94 2416.29,-214.21 2587.66,-201.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2588.16,-204.79 2597.87,-200.55 2587.63,-197.81 2588.16,-204.79"/>
+<path fill="none" stroke="midnightblue" d="M1850.45,-256.24C2000.65,-244.94 2409.05,-214.21 2580.43,-201.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2580.92,-204.79 2590.63,-200.55 2580.39,-197.81 2580.92,-204.79"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures.">
-<polygon fill="white" stroke="black" points="1228.5,-185 1228.5,-204 1337.5,-204 1337.5,-185 1228.5,-185"/>
-<text text-anchor="middle" x="1283" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/functor.h</text>
+<polygon fill="white" stroke="black" points="1221.26,-185 1221.26,-204 1330.26,-204 1330.26,-185 1221.26,-185"/>
+<text text-anchor="middle" x="1275.76" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/functor.h</text>
</a>
</g>
</g>
<!-- Node13->Node14 -->
<g id="edge18" class="edge">
<title>Node13->Node14</title>
-<path fill="none" stroke="midnightblue" d="M1744.35,-247.48C1741.53,-246.95 1738.74,-246.46 1736,-246 1598.6,-223.09 1435.97,-207.81 1347.77,-200.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1347.91,-197 1337.65,-199.67 1347.33,-203.97 1347.91,-197"/>
+<path fill="none" stroke="midnightblue" d="M1737.11,-247.48C1734.29,-246.95 1731.5,-246.46 1728.76,-246 1591.36,-223.09 1428.73,-207.81 1340.53,-200.5"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1340.67,-197 1330.41,-199.67 1340.09,-203.97 1340.67,-197"/>
</g>
<!-- Node26 -->
<g id="node26" class="node">
<title>Node26</title>
<g id="a_node26"><a xlink:href="object__path_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1726,-185 1726,-204 1858,-204 1858,-185 1726,-185"/>
-<text text-anchor="middle" x="1792" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/object_path.h</text>
+<polygon fill="white" stroke="black" points="1794.76,-185 1794.76,-204 1926.76,-204 1926.76,-185 1794.76,-185"/>
+<text text-anchor="middle" x="1860.76" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/object_path.h</text>
</a>
</g>
</g>
<!-- Node13->Node26 -->
<g id="edge31" class="edge">
<title>Node13->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1799.05,-246.4C1797.74,-236.96 1796.01,-224.45 1794.59,-214.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1798.04,-213.62 1793.2,-204.19 1791.11,-214.58 1798.04,-213.62"/>
+<path fill="none" stroke="midnightblue" d="M1808.3,-246.4C1818.95,-236.06 1833.42,-222.02 1844.47,-211.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1847.06,-213.67 1851.8,-204.19 1842.18,-208.65 1847.06,-213.67"/>
</g>
<!-- Node13->Node27 -->
<g id="edge45" class="edge">
<title>Node13->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1821.89,-246.37C1835.38,-236.82 1852.97,-223.51 1867,-210 1907.7,-170.8 1897.43,-137.21 1948,-112 2036.54,-67.87 2756.15,-66.61 2919.23,-66.9"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2919.56,-70.4 2929.57,-66.92 2919.58,-63.4 2919.56,-70.4"/>
+<path fill="none" stroke="midnightblue" d="M1850.32,-247.94C1877.78,-240.03 1910.26,-227.86 1935.76,-210 1982.05,-177.59 1966.29,-137.41 2016.76,-112 2090.89,-74.68 2688.86,-68.21 2835.42,-67.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2835.58,-70.68 2845.56,-67.11 2835.54,-63.68 2835.58,-70.68"/>
</g>
<!-- Node13->Node28 -->
<g id="edge36" class="edge">
<title>Node13->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1770.25,-246.49C1753.21,-237.69 1732.42,-225.14 1717,-210 1697.89,-191.23 1682.69,-163.96 1674.02,-146.23"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1677.11,-144.58 1669.68,-137.02 1670.78,-147.56 1677.11,-144.58"/>
+<path fill="none" stroke="midnightblue" d="M1767.5,-246.39C1751.43,-237.13 1730.94,-224.14 1714.76,-210 1692.27,-190.33 1670.75,-163.13 1657.89,-145.67"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1660.38,-143.14 1651.69,-137.09 1654.71,-147.24 1660.38,-143.14"/>
</g>
<!-- Node30 -->
<g id="node30" class="node">
<title>Node30</title>
<g id="a_node30"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1622.5,-185 1622.5,-204 1669.5,-204 1669.5,-185 1622.5,-185"/>
-<text text-anchor="middle" x="1646" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">cmath</text>
+<polygon fill="white" stroke="#bfbfbf" points="1615.26,-185 1615.26,-204 1662.26,-204 1662.26,-185 1615.26,-185"/>
+<text text-anchor="middle" x="1638.76" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">cmath</text>
</a>
</g>
</g>
<!-- Node13->Node30 -->
<g id="edge44" class="edge">
<title>Node13->Node30</title>
-<path fill="none" stroke="midnightblue" d="M1767.37,-246.4C1740.05,-234.94 1701.89,-218.94 1675.69,-207.95"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1676.86,-204.65 1666.29,-204.01 1674.15,-211.1 1676.86,-204.65"/>
+<path fill="none" stroke="midnightblue" d="M1760.13,-246.4C1732.81,-234.94 1694.65,-218.94 1668.45,-207.95"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1669.62,-204.65 1659.05,-204.01 1666.92,-211.1 1669.62,-204.65"/>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<title>Node15</title>
<g id="a_node15"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1419.5,-56.5 1419.5,-75.5 1544.5,-75.5 1544.5,-56.5 1419.5,-56.5"/>
-<text text-anchor="middle" x="1482" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/logging.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1406.26,-56.5 1406.26,-75.5 1531.26,-75.5 1531.26,-56.5 1406.26,-56.5"/>
+<text text-anchor="middle" x="1468.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/logging.h</text>
</a>
</g>
</g>
<!-- Node14->Node15 -->
<g id="edge19" class="edge">
<title>Node14->Node15</title>
-<path fill="none" stroke="midnightblue" d="M1319.49,-184.98C1373.49,-172.2 1468.89,-148.96 1474,-143 1487.33,-127.45 1487.49,-103.02 1485.52,-86.07"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1488.91,-85.09 1483.95,-75.73 1481.99,-86.15 1488.91,-85.09"/>
+<path fill="none" stroke="midnightblue" d="M1313.82,-184.93C1363.18,-173.48 1444.16,-153.42 1453.76,-143 1467.83,-127.73 1470.39,-103.24 1470.2,-86.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1473.68,-85.64 1469.74,-75.8 1466.68,-85.95 1473.68,-85.64"/>
</g>
<!-- Node14->Node16 -->
<g id="edge20" class="edge">
<title>Node14->Node16</title>
-<path fill="none" stroke="midnightblue" d="M1271.4,-184.73C1257.35,-174.11 1233.45,-156.05 1216.53,-143.26"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1218.5,-140.36 1208.41,-137.13 1214.28,-145.95 1218.5,-140.36"/>
+<path fill="none" stroke="midnightblue" d="M1267.53,-184.73C1257.93,-174.5 1241.85,-157.36 1229.96,-144.69"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1232.25,-142.02 1222.86,-137.13 1227.15,-146.81 1232.25,-142.02"/>
</g>
<!-- Node14->Node22 -->
<g id="edge29" class="edge">
<title>Node14->Node22</title>
-<path fill="none" stroke="midnightblue" d="M1284.22,-184.93C1286.09,-167.99 1287.46,-130.27 1266,-112 1264.82,-111 471.78,-76.05 298.98,-68.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="298.88,-64.94 288.74,-68 298.57,-71.94 298.88,-64.94"/>
+<path fill="none" stroke="midnightblue" d="M1221.17,-192.39C1111.67,-189.43 857.72,-178.96 647.76,-143 594.74,-133.92 583.29,-123.61 530.76,-112 452.23,-94.64 358.84,-79.42 310.46,-71.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="310.98,-68.47 300.56,-70.41 309.92,-75.38 310.98,-68.47"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1563,-56.5 1563,-75.5 1613,-75.5 1613,-56.5 1563,-56.5"/>
-<text text-anchor="middle" x="1588" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">cstring</text>
+<polygon fill="white" stroke="#bfbfbf" points="1549.76,-56.5 1549.76,-75.5 1599.76,-75.5 1599.76,-56.5 1549.76,-56.5"/>
+<text text-anchor="middle" x="1574.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">cstring</text>
</a>
</g>
</g>
<!-- Node14->Node23 -->
<g id="edge27" class="edge">
<title>Node14->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1322.59,-184.96C1379.09,-172.62 1477.76,-150.46 1493,-143 1524.58,-127.53 1555.27,-100.04 1572.87,-82.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1575.42,-85.09 1579.99,-75.53 1570.46,-80.16 1575.42,-85.09"/>
+<path fill="none" stroke="midnightblue" d="M1317.27,-184.93C1366.79,-174.35 1446.33,-156.16 1473.76,-143 1506.68,-127.2 1539.47,-99.84 1558.4,-82.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1560.89,-85.07 1565.84,-75.7 1556.13,-79.94 1560.89,-85.07"/>
</g>
<!-- Node14->Node24 -->
<g id="edge28" class="edge">
<title>Node14->Node24</title>
-<path fill="none" stroke="midnightblue" d="M1323.49,-184.94C1332.85,-182.97 1342.77,-180.9 1352,-179 1431.05,-162.7 1454.05,-170.31 1530,-143 1557.5,-133.11 1559.97,-120.3 1588,-112 1678.5,-85.21 1962.37,-72.51 2073.12,-68.48"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2073.42,-71.97 2083.29,-68.12 2073.17,-64.98 2073.42,-71.97"/>
+<path fill="none" stroke="midnightblue" d="M1316.25,-184.95C1382.24,-171 1506.18,-144.7 1510.76,-143 1537.8,-132.98 1540.12,-120.22 1567.76,-112 1592.47,-104.65 1956.64,-79 2085.77,-70.08"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2086.36,-73.55 2096.09,-69.37 2085.88,-66.57 2086.36,-73.55"/>
</g>
<!-- Node14->Node25 -->
<g id="edge30" class="edge">
<title>Node14->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1228.32,-189.98C1111.45,-182.34 828.69,-163.32 592,-143 553.2,-139.67 508.71,-135.19 478.93,-132.09"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="478.97,-128.58 468.66,-131.02 478.24,-135.54 478.97,-128.58"/>
+<path fill="none" stroke="midnightblue" d="M1220.9,-189.97C1102.96,-182.28 816.52,-163.09 576.76,-143 536.12,-139.59 489.42,-135.04 458.63,-131.96"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="458.74,-128.45 448.44,-130.93 458.04,-135.41 458.74,-128.45"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1083.5,-56.5 1083.5,-75.5 1164.5,-75.5 1164.5,-56.5 1083.5,-56.5"/>
-<text text-anchor="middle" x="1124" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/cast.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1076.26,-56.5 1076.26,-75.5 1157.26,-75.5 1157.26,-56.5 1076.26,-56.5"/>
+<text text-anchor="middle" x="1116.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/cast.h</text>
</a>
</g>
</g>
<!-- Node16->Node17 -->
<g id="edge21" class="edge">
<title>Node16->Node17</title>
-<path fill="none" stroke="midnightblue" d="M1186.54,-117.98C1175.05,-108.61 1156.37,-93.38 1142.41,-82.01"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1144.4,-79.11 1134.44,-75.51 1139.98,-84.54 1144.4,-79.11"/>
+<path fill="none" stroke="midnightblue" d="M1200.72,-117.98C1184.71,-108.25 1158.31,-92.23 1139.39,-80.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1141.14,-77.71 1130.78,-75.51 1137.51,-83.69 1141.14,-77.71"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1182.5,-56.5 1182.5,-75.5 1273.5,-75.5 1273.5,-56.5 1182.5,-56.5"/>
-<text text-anchor="middle" x="1228" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/object.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1175.26,-56.5 1175.26,-75.5 1266.26,-75.5 1266.26,-56.5 1175.26,-56.5"/>
+<text text-anchor="middle" x="1220.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/object.h</text>
</a>
</g>
</g>
<!-- Node16->Node18 -->
<g id="edge22" class="edge">
<title>Node16->Node18</title>
-<path fill="none" stroke="midnightblue" d="M1201.44,-117.98C1205.95,-109.32 1213.07,-95.65 1218.81,-84.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1222.05,-85.99 1223.57,-75.51 1215.84,-82.76 1222.05,-85.99"/>
+<path fill="none" stroke="midnightblue" d="M1215.62,-117.98C1216.47,-109.58 1217.79,-96.48 1218.88,-85.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1222.38,-85.81 1219.9,-75.51 1215.42,-85.11 1222.38,-85.81"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1291.5,-56.5 1291.5,-75.5 1392.5,-75.5 1392.5,-56.5 1291.5,-56.5"/>
-<text text-anchor="middle" x="1342" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/optional.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1284.26,-56.5 1284.26,-75.5 1385.26,-75.5 1385.26,-56.5 1284.26,-56.5"/>
+<text text-anchor="middle" x="1334.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/optional.h</text>
</a>
</g>
</g>
<!-- Node16->Node19 -->
<g id="edge23" class="edge">
<title>Node16->Node19</title>
-<path fill="none" stroke="midnightblue" d="M1217.77,-117.98C1242.43,-107.86 1283.75,-90.9 1311.9,-79.35"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1313.34,-82.54 1321.26,-75.51 1310.68,-76.07 1313.34,-82.54"/>
+<path fill="none" stroke="midnightblue" d="M1231.95,-117.98C1252,-108.03 1285.36,-91.49 1308.62,-79.96"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1310.2,-83.09 1317.6,-75.51 1307.09,-76.82 1310.2,-83.09"/>
</g>
<!-- Node16->Node20 -->
<g id="edge24" class="edge">
<title>Node16->Node20</title>
-<path fill="none" stroke="midnightblue" d="M1170.06,-117.98C1137.4,-107.64 1082.18,-90.16 1045.66,-78.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1046.48,-75.19 1035.89,-75.51 1044.36,-81.86 1046.48,-75.19"/>
+<path fill="none" stroke="midnightblue" d="M1184.24,-117.98C1146.84,-107.53 1083.33,-89.79 1041.97,-78.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1042.79,-74.83 1032.22,-75.51 1040.91,-81.57 1042.79,-74.83"/>
</g>
<!-- Node16->Node22 -->
<g id="edge26" class="edge">
<title>Node16->Node22</title>
-<path fill="none" stroke="midnightblue" d="M1137.27,-121.48C1101.52,-118.55 1055.17,-114.87 1014,-112 737.61,-92.74 403.43,-74.38 298.88,-68.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="298.83,-65.25 288.65,-68.21 298.45,-72.24 298.83,-65.25"/>
+<path fill="none" stroke="midnightblue" d="M1155.03,-121.47C1119.28,-118.54 1072.93,-114.86 1031.76,-112 752.85,-92.63 415.53,-74.31 310.55,-68.73"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="310.46,-65.22 300.29,-68.18 310.09,-72.21 310.46,-65.22"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="966,-0.5 966,-19.5 1052,-19.5 1052,-0.5 966,-0.5"/>
-<text text-anchor="middle" x="1009" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/c_api.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="958.76,-0.5 958.76,-19.5 1044.76,-19.5 1044.76,-0.5 958.76,-0.5"/>
+<text text-anchor="middle" x="1001.76" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/c_api.h</text>
</a>
</g>
</g>
<!-- Node20->Node21 -->
<g id="edge25" class="edge">
<title>Node20->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1009,-56.08C1009,-49.01 1009,-38.86 1009,-29.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1012.5,-29.75 1009,-19.75 1005.5,-29.75 1012.5,-29.75"/>
+<path fill="none" stroke="midnightblue" d="M1001.76,-56.08C1001.76,-49.01 1001.76,-38.86 1001.76,-29.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1005.26,-29.75 1001.76,-19.75 998.26,-29.75 1005.26,-29.75"/>
</g>
<!-- Node26->Node6 -->
<g id="edge33" class="edge">
<title>Node26->Node6</title>
-<path fill="none" stroke="midnightblue" d="M1858.02,-190.03C2076.33,-178.55 2772.51,-141.94 2973.3,-131.38"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2973.52,-134.87 2983.32,-130.85 2973.15,-127.88 2973.52,-134.87"/>
+<path fill="none" stroke="midnightblue" d="M1926.88,-189.53C2124.31,-177.68 2707.12,-142.7 2888.94,-131.79"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2889.3,-135.28 2899.07,-131.18 2888.88,-128.29 2889.3,-135.28"/>
</g>
<!-- Node26->Node16 -->
<g id="edge34" class="edge">
<title>Node26->Node16</title>
-<path fill="none" stroke="midnightblue" d="M1728.39,-184.99C1712.29,-182.93 1695.02,-180.81 1679,-179 1514.82,-160.48 1473.17,-161.61 1309,-143 1295.28,-141.45 1280.64,-139.65 1266.62,-137.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1266.9,-134.37 1256.54,-136.56 1266.01,-141.31 1266.9,-134.37"/>
+<path fill="none" stroke="midnightblue" d="M1794.7,-188.55C1665.79,-178.74 1384.88,-156.62 1288.76,-143 1280.74,-141.86 1272.28,-140.43 1264.06,-138.91"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1264.67,-135.46 1254.19,-137.02 1263.35,-142.34 1264.67,-135.46"/>
</g>
<!-- Node26->Node19 -->
<g id="edge32" class="edge">
<title>Node26->Node19</title>
-<path fill="none" stroke="midnightblue" d="M1727.49,-184.99C1711.64,-182.96 1694.71,-180.85 1679,-179 1604.42,-170.22 1393.56,-198.52 1343,-143 1329.08,-127.71 1331.82,-102.67 1336.05,-85.54"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1339.51,-86.18 1338.88,-75.61 1332.77,-84.26 1339.51,-86.18"/>
+<path fill="none" stroke="midnightblue" d="M1794.59,-188.45C1652.56,-177.45 1330.63,-151.64 1322.76,-143 1308.48,-127.31 1316.54,-101.84 1324.71,-84.76"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1327.86,-86.29 1329.37,-75.81 1321.65,-83.06 1327.86,-86.29"/>
</g>
<!-- Node26->Node27 -->
<g id="edge35" class="edge">
<title>Node26->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1804.31,-184.73C1833.32,-164.08 1904.01,-114.01 1910,-112 2007.63,-79.23 2754.68,-69.17 2919.77,-67.33"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2919.83,-70.83 2929.79,-67.22 2919.76,-63.83 2919.83,-70.83"/>
+<path fill="none" stroke="midnightblue" d="M1866.04,-184.79C1877.25,-167.23 1905.3,-127.9 1940.76,-112 2023.67,-74.81 2680.28,-68.22 2835.13,-67.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2835.42,-70.68 2845.39,-67.11 2835.37,-63.68 2835.42,-70.68"/>
</g>
<!-- Node28->Node2 -->
<g id="edge37" class="edge">
<title>Node28->Node2</title>
-<path fill="none" stroke="midnightblue" d="M1596.72,-120.72C1560.23,-117.81 1514.71,-114.4 1474,-112 1101.62,-90.02 1004.89,-105.05 628.83,-76"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="629,-72.5 618.76,-75.22 628.46,-79.48 629,-72.5"/>
+<path fill="none" stroke="midnightblue" d="M1576.47,-120.79C1539.98,-117.9 1494.47,-114.49 1453.76,-112 1115.14,-91.3 1026.97,-103.17 684.72,-76.02"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="684.77,-72.51 674.52,-75.2 684.21,-79.49 684.77,-72.51"/>
</g>
<!-- Node28->Node15 -->
<g id="edge40" class="edge">
<title>Node28->Node15</title>
-<path fill="none" stroke="midnightblue" d="M1639.64,-117.98C1607.66,-107.64 1553.62,-90.16 1517.88,-78.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1518.91,-75.26 1508.31,-75.51 1516.75,-81.92 1518.91,-75.26"/>
+<path fill="none" stroke="midnightblue" d="M1620.4,-117.98C1589.78,-107.68 1538.1,-90.31 1503.72,-78.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1504.67,-75.38 1494.07,-75.51 1502.44,-82.01 1504.67,-75.38"/>
</g>
<!-- Node28->Node20 -->
<g id="edge39" class="edge">
<title>Node28->Node20</title>
-<path fill="none" stroke="midnightblue" d="M1596.78,-121.03C1467.14,-110.7 1191.2,-88.38 1075.53,-75.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1075.82,-72.5 1065.5,-74.9 1075.06,-79.46 1075.82,-72.5"/>
+<path fill="none" stroke="midnightblue" d="M1576.55,-120.88C1449.25,-110.46 1181.47,-88.23 1068.39,-76"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1068.59,-72.5 1058.26,-74.89 1067.82,-79.46 1068.59,-72.5"/>
</g>
<!-- Node28->Node23 -->
<g id="edge41" class="edge">
<title>Node28->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1654.82,-117.98C1642.43,-108.52 1622.21,-93.1 1607.25,-81.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1609.23,-78.79 1599.15,-75.51 1604.98,-84.36 1609.23,-78.79"/>
+<path fill="none" stroke="midnightblue" d="M1635.59,-117.98C1624.41,-108.61 1606.24,-93.38 1592.67,-82.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1594.83,-79.25 1584.91,-75.51 1590.33,-84.61 1594.83,-79.25"/>
</g>
<!-- Node28->Node24 -->
<g id="edge43" class="edge">
<title>Node28->Node24</title>
-<path fill="none" stroke="midnightblue" d="M1712.46,-117.95C1724.35,-115.88 1737.13,-113.76 1749,-112 1865.59,-94.72 2003.62,-79.19 2073.17,-71.71"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2073.76,-75.17 2083.33,-70.62 2073.01,-68.21 2073.76,-75.17"/>
+<path fill="none" stroke="midnightblue" d="M1691.78,-117.94C1703.79,-115.85 1716.74,-113.72 1728.76,-112 1857.97,-93.5 2011.46,-78.14 2085.86,-71.12"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2086.63,-74.56 2096.25,-70.14 2085.97,-67.59 2086.63,-74.56"/>
</g>
<!-- Node28->Node27 -->
<g id="edge42" class="edge">
<title>Node28->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1735.01,-119.83C1765.35,-117.08 1801.42,-114.06 1834,-112 2262.99,-84.87 2785.67,-71.02 2919.56,-67.76"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2920,-71.25 2929.91,-67.51 2919.83,-64.25 2920,-71.25"/>
+<path fill="none" stroke="midnightblue" d="M1708.78,-118C1727.42,-115.74 1747.89,-113.51 1766.76,-112 2188.26,-78.18 2702.69,-69.22 2835.35,-67.4"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2835.67,-70.89 2845.62,-67.26 2835.57,-63.89 2835.67,-70.89"/>
</g>
<!-- Node29 -->
<g id="node29" class="node">
<title>Node29</title>
<g id="a_node29"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1631.5,-56.5 1631.5,-75.5 1720.5,-75.5 1720.5,-56.5 1631.5,-56.5"/>
-<text text-anchor="middle" x="1676" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/dtype.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1618.26,-56.5 1618.26,-75.5 1707.26,-75.5 1707.26,-56.5 1618.26,-56.5"/>
+<text text-anchor="middle" x="1662.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/dtype.h</text>
</a>
</g>
</g>
<!-- Node28->Node29 -->
<g id="edge38" class="edge">
<title>Node28->Node29</title>
-<path fill="none" stroke="midnightblue" d="M1667.43,-117.98C1668.84,-109.58 1671.05,-96.48 1672.86,-85.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1676.36,-85.95 1674.57,-75.51 1669.46,-84.79 1676.36,-85.95"/>
+<path fill="none" stroke="midnightblue" d="M1648.2,-117.98C1650.62,-109.49 1654.42,-96.2 1657.53,-85.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1660.95,-86.09 1660.33,-75.51 1654.22,-84.16 1660.95,-86.09"/>
</g>
<!-- Node31->Node14 -->
<g id="edge47" class="edge">
<title>Node31->Node14</title>
-<path fill="none" stroke="midnightblue" d="M1613.46,-248.73C1608.58,-247.78 1603.7,-246.86 1599,-246 1512.22,-230.21 1411.55,-214.58 1347.58,-204.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1348.05,-201.52 1337.64,-203.5 1347.01,-208.44 1348.05,-201.52"/>
+<path fill="none" stroke="midnightblue" d="M1606.22,-248.73C1601.34,-247.78 1596.46,-246.86 1591.76,-246 1504.98,-230.21 1404.31,-214.58 1340.35,-204.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1340.81,-201.52 1330.4,-203.5 1339.78,-208.44 1340.81,-201.52"/>
</g>
<!-- Node31->Node27 -->
<g id="edge75" class="edge">
<title>Node31->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1644.33,-246.4C1618.08,-230.18 1583.69,-202.72 1603,-179 1652.86,-117.76 1701.04,-164.59 1777,-143 1815.68,-132.01 1822.55,-119.81 1862,-112 2072.01,-70.41 2761.16,-67.18 2919.41,-67"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2919.87,-70.5 2929.87,-66.99 2919.87,-63.5 2919.87,-70.5"/>
+<path fill="none" stroke="midnightblue" d="M1637.16,-246.45C1610.97,-230.28 1576.62,-202.86 1595.76,-179 1596.1,-178.58 1896.23,-112.07 1896.76,-112 2084.43,-86.96 2689.09,-71.24 2835.58,-67.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2835.79,-71.24 2845.7,-67.5 2835.62,-64.24 2835.79,-71.24"/>
</g>
<!-- Node31->Node28 -->
<g id="edge48" class="edge">
<title>Node31->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1618.02,-246.47C1586.69,-236.84 1551.14,-223.43 1542,-210 1518.69,-175.75 1573.61,-152.36 1617.67,-139.71"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1618.73,-143.05 1627.44,-137.03 1616.87,-136.3 1618.73,-143.05"/>
+<path fill="none" stroke="midnightblue" d="M1610.78,-246.47C1579.45,-236.84 1543.9,-223.43 1534.76,-210 1527.01,-198.61 1527.3,-190.59 1534.76,-179 1547.23,-159.63 1569.16,-147.6 1590.25,-140.17"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1591.41,-143.48 1599.85,-137.07 1589.25,-136.81 1591.41,-143.48"/>
</g>
<!-- Node31->Node30 -->
<g id="edge72" class="edge">
<title>Node31->Node30</title>
-<path fill="none" stroke="midnightblue" d="M1664.79,-246.4C1661.27,-236.86 1656.59,-224.18 1652.78,-213.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1655.96,-212.36 1649.21,-204.19 1649.39,-214.79 1655.96,-212.36"/>
+<path fill="none" stroke="midnightblue" d="M1657.55,-246.4C1654.03,-236.86 1649.35,-224.18 1645.54,-213.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1648.72,-212.36 1641.97,-204.19 1642.15,-214.79 1648.72,-212.36"/>
</g>
<!-- Node31->Node32 -->
<g id="edge49" class="edge">
<title>Node31->Node32</title>
-<path fill="none" stroke="midnightblue" d="M1613.41,-251.93C1598.05,-249.79 1581.41,-247.64 1566,-246 1343.69,-222.33 1079.61,-206.25 954.17,-199.33"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.1,-195.82 943.93,-198.77 953.72,-202.81 954.1,-195.82"/>
+<path fill="none" stroke="midnightblue" d="M1606.17,-251.93C1590.81,-249.79 1574.17,-247.64 1558.76,-246 1336.45,-222.33 1072.37,-206.25 946.93,-199.33"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="946.86,-195.82 936.69,-198.77 946.48,-202.81 946.86,-195.82"/>
</g>
<!-- Node31->Node40 -->
<g id="edge73" class="edge">
<title>Node31->Node40</title>
-<path fill="none" stroke="midnightblue" d="M1648.69,-246.44C1625.6,-229.54 1594.52,-200.73 1614,-179 1627.93,-163.47 1920.91,-140.07 2032.95,-131.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2033.51,-135.12 2043.22,-130.89 2032.98,-128.14 2033.51,-135.12"/>
+<path fill="none" stroke="midnightblue" d="M1641.43,-246.42C1618.32,-229.5 1587.21,-200.66 1606.76,-179 1636.64,-145.89 1942.08,-133.26 2056.12,-129.68"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2056.34,-133.17 2066.23,-129.37 2056.13,-126.18 2056.34,-133.17"/>
</g>
<!-- Node31->Node41 -->
<g id="edge74" class="edge">
<title>Node31->Node41</title>
-<path fill="none" stroke="midnightblue" d="M1726.79,-247.51C1729.9,-246.96 1732.98,-246.45 1736,-246 1958.73,-212.59 2230.17,-200.06 2321.94,-196.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2322.12,-200.09 2331.98,-196.23 2321.86,-193.1 2322.12,-200.09"/>
+<path fill="none" stroke="midnightblue" d="M1719.55,-247.51C1722.66,-246.96 1725.74,-246.45 1728.76,-246 1951.49,-212.59 2222.93,-200.06 2314.7,-196.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2314.88,-200.09 2324.74,-196.23 2314.62,-193.1 2314.88,-200.09"/>
</g>
<!-- Node32->Node2 -->
<g id="edge51" class="edge">
<title>Node32->Node2</title>
-<path fill="none" stroke="midnightblue" d="M818.32,-185.44C738.94,-174.78 610.23,-155.87 592,-143 572.3,-129.1 560.49,-103.15 554.36,-85.48"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="557.62,-84.2 551.26,-75.73 550.95,-86.32 557.62,-84.2"/>
+<path fill="none" stroke="midnightblue" d="M811.25,-185.32C753.64,-176.76 673.32,-161.94 647.76,-143 628.4,-128.65 616.5,-102.8 610.26,-85.28"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="613.54,-84.04 607.1,-75.63 606.89,-86.22 613.54,-84.04"/>
</g>
<!-- Node32->Node6 -->
<g id="edge53" class="edge">
<title>Node32->Node6</title>
-<path fill="none" stroke="midnightblue" d="M943.78,-190.54C1011.82,-187.39 1123.6,-182.41 1220,-179 1911.96,-154.54 2753.24,-134.75 2973.26,-129.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2973.35,-133.23 2983.26,-129.51 2973.19,-126.23 2973.35,-133.23"/>
+<path fill="none" stroke="midnightblue" d="M936.54,-190.56C1004.58,-187.43 1116.36,-182.47 1212.76,-179 1872.72,-155.26 2674.52,-135.08 2888.9,-129.83"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2889.04,-133.33 2898.95,-129.58 2888.87,-126.33 2889.04,-133.33"/>
</g>
<!-- Node32->Node16 -->
<g id="edge62" class="edge">
<title>Node32->Node16</title>
-<path fill="none" stroke="midnightblue" d="M922.64,-184.94C980.03,-173.13 1083.38,-151.87 1145.54,-139.09"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1146.43,-142.47 1155.52,-137.03 1145.02,-135.62 1146.43,-142.47"/>
+<path fill="none" stroke="midnightblue" d="M919.61,-184.92C972.81,-174.95 1063.17,-157.94 1140.76,-143 1147.41,-141.72 1154.4,-140.36 1161.31,-139.02"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1162.19,-142.41 1171.34,-137.06 1160.85,-135.54 1162.19,-142.41"/>
</g>
<!-- Node32->Node19 -->
<g id="edge52" class="edge">
<title>Node32->Node19</title>
-<path fill="none" stroke="midnightblue" d="M906.5,-184.94C965.27,-165.25 1106.9,-117.95 1129,-112 1181.03,-98 1241.17,-85.64 1284.25,-77.43"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1285.09,-80.83 1294.27,-75.54 1283.8,-73.95 1285.09,-80.83"/>
+<path fill="none" stroke="midnightblue" d="M903.99,-184.93C938.75,-175.04 997.47,-158.17 1047.76,-143 1091.9,-129.68 1102.31,-124.26 1146.76,-112 1193.68,-99.05 1247.78,-86.33 1285.87,-77.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1286.69,-81.14 1295.68,-75.53 1285.15,-74.31 1286.69,-81.14"/>
</g>
<!-- Node32->Node20 -->
<g id="edge54" class="edge">
<title>Node32->Node20</title>
-<path fill="none" stroke="midnightblue" d="M916.05,-184.99C951.46,-175.61 1002.53,-159.62 1014,-143 1025.58,-126.22 1021.39,-102.07 1016.23,-85.53"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1019.47,-84.18 1012.86,-75.91 1012.87,-86.5 1019.47,-84.18"/>
+<path fill="none" stroke="midnightblue" d="M919.99,-184.96C961.66,-176.21 1018.39,-161.31 1031.76,-143 1045.15,-124.66 1030.06,-99.54 1016.88,-83.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1019.5,-80.97 1010.32,-75.68 1014.2,-85.54 1019.5,-80.97"/>
</g>
<!-- Node32->Node22 -->
<g id="edge70" class="edge">
<title>Node32->Node22</title>
-<path fill="none" stroke="midnightblue" d="M818.31,-185.07C739.61,-174.22 609.2,-155.32 562,-143 523.5,-132.95 516.23,-123.05 478,-112 415.35,-93.89 340.36,-79.68 298.46,-72.38"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="298.99,-68.93 288.54,-70.68 297.81,-75.82 298.99,-68.93"/>
+<path fill="none" stroke="midnightblue" d="M814.59,-184.98C754.44,-175.96 658.71,-160.61 576.76,-143 523.33,-131.52 510.72,-125.52 457.76,-112 406.34,-98.88 346.56,-84.01 310.47,-75.08"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="311.06,-71.61 300.51,-72.61 309.38,-78.41 311.06,-71.61"/>
</g>
<!-- Node32->Node25 -->
<g id="edge71" class="edge">
<title>Node32->Node25</title>
-<path fill="none" stroke="midnightblue" d="M818.42,-185.67C746.5,-176.45 624.98,-160.2 521,-143 507.09,-140.7 491.82,-137.85 478.63,-135.28"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.06,-131.8 468.57,-133.31 477.7,-138.67 479.06,-131.8"/>
+<path fill="none" stroke="midnightblue" d="M814.6,-184.94C719.08,-171.11 533.94,-144.31 458.24,-133.35"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="458.71,-129.88 448.31,-131.91 457.71,-136.81 458.71,-129.88"/>
</g>
<!-- Node32->Node28 -->
<g id="edge55" class="edge">
<title>Node32->Node28</title>
-<path fill="none" stroke="midnightblue" d="M943.58,-188.32C1085.31,-176.58 1430.57,-147.99 1586.84,-135.05"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1587.18,-138.54 1596.86,-134.22 1586.61,-131.56 1587.18,-138.54"/>
+<path fill="none" stroke="midnightblue" d="M936.28,-188.24C1075.76,-176.49 1412.17,-148.17 1566.26,-135.19"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1566.92,-138.65 1576.59,-134.32 1566.33,-131.68 1566.92,-138.65"/>
</g>
<!-- Node33 -->
<g id="node33" class="node">
<title>Node33</title>
<g id="a_node33"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="791,-118 791,-137 937,-137 937,-118 791,-118"/>
-<text text-anchor="middle" x="864" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/ndarray.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="808.76,-118 808.76,-137 954.76,-137 954.76,-118 808.76,-118"/>
+<text text-anchor="middle" x="881.76" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/ndarray.h</text>
</a>
</g>
</g>
<!-- Node32->Node33 -->
<g id="edge50" class="edge">
<title>Node32->Node33</title>
-<path fill="none" stroke="midnightblue" d="M878.71,-184.73C876.18,-175.09 872.06,-159.3 868.81,-146.91"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="872.17,-145.92 866.26,-137.13 865.4,-147.69 872.17,-145.92"/>
+<path fill="none" stroke="midnightblue" d="M874.84,-184.73C876.02,-175.18 877.93,-159.62 879.45,-147.28"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="882.95,-147.48 880.7,-137.13 876,-146.62 882.95,-147.48"/>
</g>
<!-- Node34 -->
<g id="node34" class="node">
<title>Node34</title>
<g id="a_node34"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API.">
-<polygon fill="white" stroke="black" points="1351.5,-112.5 1351.5,-142.5 1464.5,-142.5 1464.5,-112.5 1351.5,-112.5"/>
-<text text-anchor="start" x="1359.5" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/device</text>
-<text text-anchor="middle" x="1408" y="-119.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
+<polygon fill="white" stroke="black" points="1331.26,-112.5 1331.26,-142.5 1444.26,-142.5 1444.26,-112.5 1331.26,-112.5"/>
+<text text-anchor="start" x="1339.26" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/device</text>
+<text text-anchor="middle" x="1387.76" y="-119.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
</a>
</g>
</g>
<!-- Node32->Node34 -->
<g id="edge56" class="edge">
<title>Node32->Node34</title>
-<path fill="none" stroke="midnightblue" d="M943.52,-185.79C1043.53,-173.45 1238.62,-149.39 1341.24,-136.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1341.68,-140.21 1351.18,-135.51 1340.82,-133.26 1341.68,-140.21"/>
+<path fill="none" stroke="midnightblue" d="M936.32,-186.11C1016.75,-176.54 1160.74,-159.15 1283.76,-143 1295.76,-141.42 1308.54,-139.69 1320.87,-137.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1321.68,-141.41 1331.11,-136.57 1320.72,-134.47 1321.68,-141.41"/>
</g>
<!-- Node36 -->
<g id="node36" class="node">
<title>Node36</title>
<g id="a_node36"><a xlink:href="serializer_8h.html" target="_top" xlink:title="Serializer extension to support TVM data types Include this file to enable serialization of DLDataTyp...">
-<polygon fill="white" stroke="black" points="601,-118 601,-137 735,-137 735,-118 601,-118"/>
-<text text-anchor="middle" x="668" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/serializer.h</text>
+<polygon fill="white" stroke="black" points="656.76,-118 656.76,-137 790.76,-137 790.76,-118 656.76,-118"/>
+<text text-anchor="middle" x="723.76" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/serializer.h</text>
</a>
</g>
</g>
<!-- Node32->Node36 -->
<g id="edge63" class="edge">
<title>Node32->Node36</title>
-<path fill="none" stroke="midnightblue" d="M847.96,-184.87C807.84,-173.38 740.91,-153.01 700.88,-140.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="701.91,-136.81 691.32,-137.06 699.75,-143.47 701.91,-136.81"/>
+<path fill="none" stroke="midnightblue" d="M849.08,-184.87C821.05,-173.75 775.95,-154.32 748.08,-141.43"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="749.53,-138.25 738.99,-137.17 746.56,-144.58 749.53,-138.25"/>
</g>
<!-- Node39 -->
<g id="node39" class="node">
<title>Node39</title>
<g id="a_node39"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="955,-118 955,-137 1005,-137 1005,-118 955,-118"/>
-<text text-anchor="middle" x="980" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">atomic</text>
+<polygon fill="white" stroke="#bfbfbf" points="972.76,-118 972.76,-137 1022.76,-137 1022.76,-118 972.76,-118"/>
+<text text-anchor="middle" x="997.76" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">atomic</text>
</a>
</g>
</g>
<!-- Node32->Node39 -->
<g id="edge68" class="edge">
<title>Node32->Node39</title>
-<path fill="none" stroke="midnightblue" d="M894.35,-184.73C910.75,-173.96 938.8,-155.55 958.31,-142.74"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="960.42,-145.54 966.86,-137.13 956.58,-139.69 960.42,-145.54"/>
+<path fill="none" stroke="midnightblue" d="M890.23,-184.87C911.16,-173.89 947.54,-154.82 972.12,-141.94"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="973.99,-144.91 981.23,-137.17 970.74,-138.71 973.99,-144.91"/>
</g>
<!-- Node32->Node40 -->
<g id="edge69" class="edge">
<title>Node32->Node40</title>
-<path fill="none" stroke="midnightblue" d="M943.57,-190.1C1156.98,-178.49 1853.05,-140.63 2033.15,-130.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2033.49,-134.32 2043.29,-130.28 2033.11,-127.33 2033.49,-134.32"/>
+<path fill="none" stroke="midnightblue" d="M936.62,-190.16C1154.4,-178.61 1873.36,-140.46 2056.18,-130.76"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2056.41,-134.25 2066.21,-130.23 2056.04,-127.26 2056.41,-134.25"/>
</g>
<!-- Node34->Node15 -->
<g id="edge60" class="edge">
<title>Node34->Node15</title>
-<path fill="none" stroke="midnightblue" d="M1425.54,-112.4C1436.84,-103.31 1451.54,-91.49 1463.11,-82.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1465.63,-84.65 1471.23,-75.66 1461.25,-79.2 1465.63,-84.65"/>
+<path fill="none" stroke="midnightblue" d="M1406.96,-112.4C1419.58,-103.13 1436.05,-91.03 1448.82,-81.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1450.99,-84.4 1456.97,-75.66 1446.84,-78.76 1450.99,-84.4"/>
</g>
<!-- Node34->Node19 -->
<g id="edge58" class="edge">
<title>Node34->Node19</title>
-<path fill="none" stroke="midnightblue" d="M1392.36,-112.4C1382.37,-103.4 1369.42,-91.72 1359.15,-82.47"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1361.37,-79.75 1351.6,-75.66 1356.69,-84.95 1361.37,-79.75"/>
+<path fill="none" stroke="midnightblue" d="M1375.2,-112.4C1367.42,-103.66 1357.4,-92.41 1349.28,-83.3"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1351.74,-80.8 1342.47,-75.66 1346.51,-85.45 1351.74,-80.8"/>
</g>
<!-- Node34->Node20 -->
<g id="edge59" class="edge">
<title>Node34->Node20</title>
-<path fill="none" stroke="midnightblue" d="M1351.26,-118.04C1278.57,-107.2 1152.8,-88.44 1075.64,-76.94"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1075.95,-73.45 1065.55,-75.43 1074.92,-80.37 1075.95,-73.45"/>
+<path fill="none" stroke="midnightblue" d="M1331.22,-117.78C1261.02,-106.96 1141.51,-88.54 1067.35,-77.11"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1067.62,-73.61 1057.2,-75.55 1066.55,-80.53 1067.62,-73.61"/>
</g>
<!-- Node34->Node27 -->
<g id="edge61" class="edge">
<title>Node34->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1464.7,-121.24C1500.12,-118.13 1546.68,-114.34 1588,-112 2119.37,-81.85 2768.41,-69.96 2919.51,-67.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2919.96,-71 2929.91,-67.34 2919.85,-64 2919.96,-71"/>
+<path fill="none" stroke="midnightblue" d="M1444.46,-121.26C1479.88,-118.16 1526.45,-114.38 1567.76,-112 2072.55,-82.95 2688.76,-70.29 2835.37,-67.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2835.55,-71.07 2845.49,-67.39 2835.43,-64.07 2835.55,-71.07"/>
</g>
<!-- Node35 -->
<g id="node35" class="node">
<title>Node35</title>
<g id="a_node35"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1821.5,-56.5 1821.5,-75.5 1898.5,-75.5 1898.5,-56.5 1821.5,-56.5"/>
-<text text-anchor="middle" x="1860" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/any.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1912.26,-56.5 1912.26,-75.5 1989.26,-75.5 1989.26,-56.5 1912.26,-56.5"/>
+<text text-anchor="middle" x="1950.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/any.h</text>
</a>
</g>
</g>
<!-- Node34->Node35 -->
<g id="edge57" class="edge">
<title>Node34->Node35</title>
-<path fill="none" stroke="midnightblue" d="M1464.79,-119.02C1554.35,-107.23 1726.88,-84.52 1811.2,-73.42"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1811.82,-76.87 1821.28,-72.1 1810.91,-69.93 1811.82,-76.87"/>
+<path fill="none" stroke="midnightblue" d="M1444.32,-120.52C1554.85,-108.84 1797.79,-83.17 1901.86,-72.17"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1902.51,-75.62 1912.08,-71.09 1901.77,-68.66 1902.51,-75.62"/>
</g>
<!-- Node36->Node20 -->
<g id="edge66" class="edge">
<title>Node36->Node20</title>
-<path fill="none" stroke="midnightblue" d="M715.53,-117.94C726.52,-115.98 738.17,-113.91 749,-112 817.52,-99.94 896.25,-86.35 948.96,-77.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="949.88,-80.68 959.14,-75.54 948.69,-73.79 949.88,-80.68"/>
+<path fill="none" stroke="midnightblue" d="M763.59,-117.98C813.24,-107.35 898.11,-89.18 951.99,-77.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="952.96,-81.02 962,-75.51 951.49,-74.18 952.96,-81.02"/>
</g>
<!-- Node36->Node32 -->
<g id="edge67" class="edge">
<title>Node36->Node32</title>
-<path fill="none" stroke="midnightblue" d="M700.81,-137.06C740.81,-148.52 807.74,-168.89 847.88,-181.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="846.88,-185.12 857.48,-184.87 849.04,-178.46 846.88,-185.12"/>
+<path fill="none" stroke="midnightblue" d="M748.27,-137.06C776.31,-148.18 821.58,-167.69 849.5,-180.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="848.06,-183.79 858.6,-184.87 851.04,-177.45 848.06,-183.79"/>
</g>
<!-- Node37 -->
<g id="node37" class="node">
<title>Node37</title>
<g id="a_node37"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="637,-56.5 637,-75.5 699,-75.5 699,-56.5 637,-56.5"/>
-<text text-anchor="middle" x="668" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/io.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="692.76,-56.5 692.76,-75.5 754.76,-75.5 754.76,-56.5 692.76,-56.5"/>
+<text text-anchor="middle" x="723.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/io.h</text>
</a>
</g>
</g>
<!-- Node36->Node37 -->
<g id="edge64" class="edge">
<title>Node36->Node37</title>
-<path fill="none" stroke="midnightblue" d="M668,-117.98C668,-109.58 668,-96.48 668,-85.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="671.5,-85.51 668,-75.51 664.5,-85.51 671.5,-85.51"/>
+<path fill="none" stroke="midnightblue" d="M723.76,-117.98C723.76,-109.58 723.76,-96.48 723.76,-85.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="727.26,-85.51 723.76,-75.51 720.26,-85.51 727.26,-85.51"/>
</g>
<!-- Node38 -->
<g id="node38" class="node">
<title>Node38</title>
<g id="a_node38"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="717.5,-56.5 717.5,-75.5 814.5,-75.5 814.5,-56.5 717.5,-56.5"/>
-<text text-anchor="middle" x="766" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/serializer.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="773.26,-56.5 773.26,-75.5 870.26,-75.5 870.26,-56.5 773.26,-56.5"/>
+<text text-anchor="middle" x="821.76" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/serializer.h</text>
</a>
</g>
</g>
<!-- Node36->Node38 -->
<g id="edge65" class="edge">
<title>Node36->Node38</title>
-<path fill="none" stroke="midnightblue" d="M682.04,-117.98C698.05,-108.25 724.45,-92.23 743.37,-80.74"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="745.25,-83.69 751.99,-75.51 741.62,-77.71 745.25,-83.69"/>
+<path fill="none" stroke="midnightblue" d="M737.8,-117.98C753.81,-108.25 780.21,-92.23 799.13,-80.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="801.01,-83.69 807.75,-75.51 797.38,-77.71 801.01,-83.69"/>
</g>
<!-- Node42->Node14 -->
<g id="edge84" class="edge">
<title>Node42->Node14</title>
-<path fill="none" stroke="midnightblue" d="M2602.15,-432.87C2316.26,-427.24 1192.9,-397.53 1099,-277 1090.53,-266.13 1090.65,-256.96 1099,-246 1113.64,-226.8 1171.29,-213.09 1218.21,-204.84"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1219.07,-208.25 1228.34,-203.11 1217.9,-201.34 1219.07,-208.25"/>
+<path fill="none" stroke="midnightblue" d="M2554.24,-432.12C2310.68,-424.67 1466.32,-394.6 1363.76,-333 1318.32,-305.71 1292.3,-244.9 1281.59,-214.12"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1284.79,-212.65 1278.32,-204.25 1278.14,-214.85 1284.79,-212.65"/>
</g>
<!-- Node42->Node27 -->
<g id="edge97" class="edge">
<title>Node42->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2691.16,-425.38C2714.15,-416.68 2750.31,-402.62 2781,-389 2806.8,-377.55 2877.06,-354.79 2895,-333 2915.62,-307.95 2914,-294.95 2914,-262.5 2914,-262.5 2914,-262.5 2914,-193.5 2914,-153.35 2931.78,-108.95 2943.01,-84.89"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2946.29,-86.15 2947.49,-75.63 2939.99,-83.1 2946.29,-86.15"/>
+<path fill="none" stroke="midnightblue" d="M2641.62,-425.36C2663.72,-416.54 2698.82,-402.28 2728.76,-389 2742.03,-383.12 2838.81,-345.14 2846.76,-333 2853.49,-322.72 2851.72,-124.11 2853.76,-112 2855.27,-103.02 2858.11,-93.35 2860.84,-85.28"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2864.16,-86.39 2864.25,-75.79 2857.58,-84.02 2864.16,-86.39"/>
</g>
<!-- Node43 -->
<g id="node43" class="node">
<title>Node43</title>
<g id="a_node43"><a xlink:href="script__printer_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2602.5,-369.5 2602.5,-388.5 2741.5,-388.5 2741.5,-369.5 2602.5,-369.5"/>
-<text text-anchor="middle" x="2672" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/script_printer.h</text>
+<polygon fill="white" stroke="black" points="2550.26,-369.5 2550.26,-388.5 2689.26,-388.5 2689.26,-369.5 2550.26,-369.5"/>
+<text text-anchor="middle" x="2619.76" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/script_printer.h</text>
</a>
</g>
</g>
<!-- Node42->Node43 -->
<g id="edge85" class="edge">
<title>Node42->Node43</title>
-<path fill="none" stroke="midnightblue" d="M2668.66,-425.08C2669.18,-418.01 2669.94,-407.86 2670.59,-398.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2674.1,-398.98 2671.35,-388.75 2667.12,-398.47 2674.1,-398.98"/>
+<path fill="none" stroke="midnightblue" d="M2619.76,-425.08C2619.76,-418.01 2619.76,-407.86 2619.76,-398.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2623.26,-398.75 2619.76,-388.75 2616.26,-398.75 2623.26,-398.75"/>
</g>
<!-- Node44 -->
<g id="node44" class="node">
<title>Node44</title>
<g id="a_node44"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2826,-313.5 2826,-332.5 2886,-332.5 2886,-313.5 2826,-313.5"/>
-<text text-anchor="middle" x="2856" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
+<polygon fill="white" stroke="#bfbfbf" points="2777.76,-313.5 2777.76,-332.5 2837.76,-332.5 2837.76,-313.5 2777.76,-313.5"/>
+<text text-anchor="middle" x="2807.76" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
<!-- Node42->Node44 -->
<g id="edge96" class="edge">
<title>Node42->Node44</title>
-<path fill="none" stroke="midnightblue" d="M2684.38,-425.48C2701.23,-416.62 2728.17,-402.24 2751,-389 2780.08,-372.13 2812.93,-351.54 2834.02,-338.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2836.01,-341 2842.56,-332.67 2832.25,-335.1 2836.01,-341"/>
+<path fill="none" stroke="midnightblue" d="M2634.96,-425.46C2650.9,-416.48 2676.67,-401.88 2698.76,-389 2728.74,-371.52 2763.09,-350.95 2785.08,-337.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2786.95,-340.67 2793.7,-332.5 2783.33,-334.67 2786.95,-340.67"/>
</g>
<!-- Node43->Node4 -->
<g id="edge87" class="edge">
<title>Node43->Node4</title>
-<path fill="none" stroke="midnightblue" d="M2671.66,-369.2C2670.59,-341.19 2667.23,-253.71 2665.73,-214.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2669.22,-214.07 2665.33,-204.21 2662.22,-214.34 2669.22,-214.07"/>
+<path fill="none" stroke="midnightblue" d="M2623.45,-369.28C2630.56,-352.03 2646.05,-312.15 2652.76,-277 2656.82,-255.73 2657.81,-230.83 2657.96,-214.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2661.46,-214.15 2657.95,-204.16 2654.46,-214.16 2661.46,-214.15"/>
</g>
<!-- Node43->Node5 -->
<g id="edge88" class="edge">
<title>Node43->Node5</title>
-<path fill="none" stroke="midnightblue" d="M2691.61,-369.49C2712.18,-360.52 2745.44,-345.94 2774,-333 2793.2,-324.3 2796.86,-319.22 2817,-313 2893.14,-289.47 2983.56,-276.25 3046.09,-269.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3046.7,-272.74 3056.26,-268.19 3045.94,-265.78 3046.7,-272.74"/>
+<path fill="none" stroke="midnightblue" d="M2640.57,-369.41C2662.01,-360.51 2696.35,-346.08 2725.76,-333 2745.02,-324.44 2748.69,-319.44 2768.76,-313 2832.55,-292.54 2907.66,-279.3 2962.27,-271.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2962.81,-274.99 2972.23,-270.14 2961.84,-268.06 2962.81,-274.99"/>
</g>
<!-- Node43->Node6 -->
<g id="edge89" class="edge">
<title>Node43->Node6</title>
-<path fill="none" stroke="midnightblue" d="M2684.25,-369.41C2736.57,-332.75 2941.51,-189.11 3007.45,-142.9"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3009.62,-145.66 3015.8,-137.05 3005.6,-139.93 3009.62,-145.66"/>
+<path fill="none" stroke="midnightblue" d="M2633.55,-369.39C2647.46,-360.58 2669.45,-346.33 2687.76,-333 2780.07,-265.8 2885,-178.26 2926.02,-143.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2928.41,-146.15 2933.77,-137.02 2923.88,-140.81 2928.41,-146.15"/>
</g>
<!-- Node43->Node12 -->
<g id="edge92" class="edge">
<title>Node43->Node12</title>
-<path fill="none" stroke="midnightblue" d="M2602.16,-375.06C2379.08,-365.66 1685.19,-336.43 1460.78,-326.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1460.91,-323.48 1450.77,-326.56 1460.62,-330.48 1460.91,-323.48"/>
+<path fill="none" stroke="midnightblue" d="M2549.94,-374.82C2339.82,-365.26 1714.83,-336.83 1503.5,-327.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1503.6,-323.72 1493.46,-326.76 1503.29,-330.71 1503.6,-323.72"/>
</g>
<!-- Node43->Node14 -->
<g id="edge90" class="edge">
<title>Node43->Node14</title>
-<path fill="none" stroke="midnightblue" d="M2602.3,-376.55C2395.3,-371.45 1787.3,-350.45 1605,-277 1584.46,-268.73 1586.18,-255.11 1566,-246 1495.73,-214.28 1407.22,-202.45 1348.07,-198.06"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1347.96,-194.54 1337.74,-197.35 1347.48,-201.53 1347.96,-194.54"/>
+<path fill="none" stroke="midnightblue" d="M2550.15,-376.22C2349.2,-370.29 1771.47,-347.4 1597.76,-277 1577.24,-268.68 1578.94,-255.11 1558.76,-246 1488.5,-214.28 1399.98,-202.45 1340.83,-198.06"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1340.72,-194.54 1330.51,-197.35 1340.24,-201.53 1340.72,-194.54"/>
</g>
<!-- Node43->Node26 -->
<g id="edge91" class="edge">
<title>Node43->Node26</title>
-<path fill="none" stroke="midnightblue" d="M2630.74,-369.44C2486.1,-339.45 2002.26,-239.1 1843.18,-206.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1843.68,-202.64 1833.17,-204.04 1842.26,-209.5 1843.68,-202.64"/>
+<path fill="none" stroke="midnightblue" d="M2584.17,-369.44C2459.79,-339.54 2044.6,-239.7 1906.14,-206.41"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1906.82,-202.97 1896.27,-204.04 1905.18,-209.78 1906.82,-202.97"/>
</g>
<!-- Node43->Node27 -->
<g id="edge95" class="edge">
<title>Node43->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2678.66,-369.33C2705.07,-335.12 2805.61,-206.84 2900,-112 2910.53,-101.42 2923.17,-90.45 2933.36,-81.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2935.72,-84.57 2941.23,-75.53 2931.28,-79.16 2935.72,-84.57"/>
+<path fill="none" stroke="midnightblue" d="M2626.32,-369.4C2633.19,-360.37 2644.29,-345.73 2653.76,-333 2726.47,-235.3 2733.19,-201.52 2815.76,-112 2825.75,-101.17 2838.2,-90.32 2848.41,-81.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2850.73,-84.61 2856.36,-75.64 2846.36,-79.15 2850.73,-84.61"/>
</g>
<!-- Node43->Node28 -->
<g id="edge93" class="edge">
<title>Node43->Node28</title>
-<path fill="none" stroke="midnightblue" d="M2663.6,-369.49C2631.24,-337.37 2510.26,-223.06 2385,-179 2325.94,-158.23 1919.77,-139.07 1745.33,-131.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1745.32,-128.19 1735.18,-131.27 1745.03,-135.19 1745.32,-128.19"/>
+<path fill="none" stroke="midnightblue" d="M2612.99,-369.49C2586.86,-337.36 2488.45,-223.02 2377.76,-179 2318.36,-155.38 1902.07,-137.75 1725.09,-131.24"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1725.17,-127.74 1715.05,-130.88 1724.92,-134.74 1725.17,-127.74"/>
</g>
<!-- Node43->Node35 -->
<g id="edge86" class="edge">
<title>Node43->Node35</title>
-<path fill="none" stroke="midnightblue" d="M2666.67,-369.08C2658.69,-356.06 2642.75,-331.4 2626,-313 2555.46,-235.51 2529.81,-216.6 2432,-179 2246.81,-107.81 2009.78,-79.97 1908.93,-70.84"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1909.01,-67.33 1898.74,-69.94 1908.4,-74.3 1909.01,-67.33"/>
+<path fill="none" stroke="midnightblue" d="M2616.24,-369.37C2610.64,-356.28 2598.78,-331.04 2583.76,-313 2523.76,-240.93 2504.73,-220.76 2420.76,-179 2277.71,-107.86 2087.37,-80.58 1999.28,-71.28"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1999.61,-67.79 1989.3,-70.25 1998.9,-74.76 1999.61,-67.79"/>
</g>
<!-- Node43->Node44 -->
<g id="edge94" class="edge">
<title>Node43->Node44</title>
-<path fill="none" stroke="midnightblue" d="M2701.16,-369.44C2732.51,-360.24 2782.53,-345.56 2817.2,-335.39"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2818.37,-338.69 2826.98,-332.52 2816.4,-331.97 2818.37,-338.69"/>
+<path fill="none" stroke="midnightblue" d="M2649.55,-369.44C2681.59,-360.24 2732.69,-345.56 2768.11,-335.39"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2769.47,-338.64 2778.11,-332.52 2767.53,-331.91 2769.47,-338.64"/>
</g>
<!-- Node46->Node4 -->
<g id="edge112" class="edge">
<title>Node46->Node4</title>
-<path fill="none" stroke="midnightblue" d="M1630.11,-595.38C1670.23,-588.16 1733.36,-575.16 1786,-557 1861.18,-531.07 1875.02,-512.61 1948,-481 2209.46,-367.73 2531.33,-245.63 2632.8,-207.53"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2634.06,-210.8 2642.19,-204.01 2631.6,-204.25 2634.06,-210.8"/>
+<path fill="none" stroke="midnightblue" d="M1476.62,-593.38C1528.84,-575.97 1650.57,-535.34 1752.76,-501 2091.85,-387.07 2502.06,-248.23 2622.77,-207.35"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2624.23,-210.55 2632.58,-204.03 2621.98,-203.92 2624.23,-210.55"/>
</g>
<!-- Node46->Node8 -->
<g id="edge113" class="edge">
<title>Node46->Node8</title>
-<path fill="none" stroke="midnightblue" d="M1549.93,-595.07C1545.24,-594.33 1540.52,-593.62 1536,-593 1416.28,-576.47 1276.2,-562.17 1194.65,-554.35"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1194.8,-550.85 1184.52,-553.39 1194.14,-557.82 1194.8,-550.85"/>
+<path fill="none" stroke="midnightblue" d="M1410.66,-595.28C1405.98,-594.51 1401.26,-593.73 1396.76,-593 1321.57,-580.78 1235.12,-567.14 1177.54,-558.11"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1177.91,-554.63 1167.49,-556.54 1176.83,-561.54 1177.91,-554.63"/>
</g>
<!-- Node46->Node10 -->
<g id="edge114" class="edge">
<title>Node46->Node10</title>
-<path fill="none" stroke="midnightblue" d="M1574.31,-593.37C1539.62,-574.29 1456.22,-528.42 1414.56,-505.51"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1416.07,-502.34 1405.62,-500.59 1412.7,-508.48 1416.07,-502.34"/>
+<path fill="none" stroke="midnightblue" d="M1449.35,-593.37C1446.44,-575.62 1439.74,-534.67 1435.8,-510.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1439.24,-509.89 1434.17,-500.59 1432.33,-511.03 1439.24,-509.89"/>
</g>
<!-- Node46->Node16 -->
<g id="edge116" class="edge">
<title>Node46->Node16</title>
-<path fill="none" stroke="midnightblue" d="M1549.76,-598.94C1427.86,-589.61 1070.24,-561.92 1059,-557 957.54,-512.63 919.69,-490.32 875,-389 849.35,-330.85 835.69,-295.94 875,-246 917.14,-192.47 961.39,-236.86 1024,-210 1047.34,-199.99 1049.46,-190.7 1072,-179 1101.53,-163.68 1136.8,-149.8 1162.33,-140.49"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1163.73,-143.71 1171.95,-137.03 1161.36,-137.12 1163.73,-143.71"/>
+<path fill="none" stroke="midnightblue" d="M1410.41,-598.99C1314.48,-591.63 1078.34,-572.19 1045.76,-557 920.42,-498.54 871.97,-464.7 829.76,-333 817.96,-296.18 805.14,-275.81 829.76,-246 883.66,-180.74 938.22,-241.54 1016.76,-210 1040.33,-200.54 1041.88,-190.03 1064.76,-179 1099.45,-162.28 1141.12,-148.73 1171.73,-139.89"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1172.99,-143.17 1181.65,-137.08 1171.08,-136.44 1172.99,-143.17"/>
</g>
<!-- Node46->Node27 -->
<g id="edge117" class="edge">
<title>Node46->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1630.22,-599.61C1842.26,-586.55 2830.78,-519.45 3104,-389 3198.35,-343.95 3263.52,-268.81 3210,-179 3162.23,-98.84 3042,-75.94 2984.12,-69.49"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.37,-66 2974.07,-68.46 2983.66,-72.96 2984.37,-66"/>
+<path fill="none" stroke="midnightblue" d="M1491.06,-597.7C1686.16,-576.84 2534.01,-485.46 2796.76,-445 2927.36,-424.89 2962.34,-427.46 3088.76,-389 3201.49,-354.7 3321.76,-380.33 3321.76,-262.5 3321.76,-262.5 3321.76,-262.5 3321.76,-193.5 3321.76,-105.88 3004,-76.33 2900.16,-69.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2900.18,-65.5 2889.97,-68.32 2899.7,-72.49 2900.18,-65.5"/>
</g>
<!-- Node46->Node28 -->
<g id="edge115" class="edge">
<title>Node46->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1555.44,-593.42C1420.73,-558.45 945.62,-420.29 1099,-246 1140.59,-198.74 1320.87,-231.61 1380,-210 1403.85,-201.28 1404.52,-188.68 1428,-179 1459.47,-166.02 1545.65,-149.37 1605.18,-138.81"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1605.99,-142.22 1615.23,-137.04 1604.77,-135.33 1605.99,-142.22"/>
+<path fill="none" stroke="midnightblue" d="M1430.75,-593.41C1362.13,-562.71 1136.13,-450.88 1053.76,-277 1047.86,-264.55 1044.58,-256.27 1053.76,-246 1101.29,-192.8 1305.81,-234.64 1372.76,-210 1395.9,-201.48 1396.11,-188.74 1418.76,-179 1448.59,-166.18 1530.55,-149.53 1587.35,-138.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1588.1,-142.35 1597.29,-137.09 1586.82,-135.47 1588.1,-142.35"/>
</g>
<!-- Node48->Node4 -->
<g id="edge126" class="edge">
<title>Node48->Node4</title>
-<path fill="none" stroke="midnightblue" d="M2909.11,-766.02C2969.18,-760.24 3066.3,-747.65 3094,-725 3126.42,-698.49 3180,-619.8 3180,-492 3180,-492 3180,-492 3180,-434 3180,-350.1 3253.45,-308.06 3197,-246 3167.02,-213.04 2882.56,-201.11 2742.36,-197.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2742.2,-193.7 2732.11,-196.93 2742.01,-200.7 2742.2,-193.7"/>
+<path fill="none" stroke="midnightblue" d="M2988.37,-772.41C3020.52,-739.39 3131.76,-616.15 3131.76,-492 3131.76,-492 3131.76,-492 3131.76,-322 3131.76,-287.18 3138.98,-268.91 3112.76,-246 3084.93,-221.68 2857.3,-206.04 2734.93,-199.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2735.04,-195.81 2724.87,-198.76 2734.66,-202.8 2735.04,-195.81"/>
</g>
<!-- Node48->Node5 -->
<g id="edge127" class="edge">
<title>Node48->Node5</title>
-<path fill="none" stroke="midnightblue" d="M2909.08,-768.96C2980.34,-764.54 3104,-744.69 3104,-660 3104,-660 3104,-660 3104,-378 3104,-343.45 3111.96,-303.78 3117.29,-281.07"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3120.75,-281.67 3119.72,-271.12 3113.95,-280.01 3120.75,-281.67"/>
+<path fill="none" stroke="midnightblue" d="M2979.76,-772.31C2979.76,-753.06 2979.76,-705.4 2979.76,-665.5 2979.76,-665.5 2979.76,-665.5 2979.76,-602 2979.76,-480.23 3015.02,-453.61 3031.76,-333 3034.19,-315.53 3035.78,-295.47 3036.71,-281.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3040.2,-281.41 3037.32,-271.22 3033.22,-280.99 3040.2,-281.41"/>
</g>
<!-- Node48->Node6 -->
<g id="edge128" class="edge">
<title>Node48->Node6</title>
-<path fill="none" stroke="midnightblue" d="M2909.21,-765.9C2973.91,-759.74 3083.3,-746.5 3117,-725 3164.61,-694.63 3160.67,-667.06 3177,-613 3224.5,-455.79 3306.6,-385.54 3220,-246 3184.96,-189.54 3111.77,-156.25 3066.57,-140.25"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3067.69,-136.94 3057.09,-137.01 3065.42,-143.56 3067.69,-136.94"/>
+<path fill="none" stroke="midnightblue" d="M2997.33,-772.44C3065.08,-738.06 3304.65,-603.3 3285.76,-425 3276.67,-339.22 3275.72,-302.75 3210.76,-246 3145.28,-188.79 3047.54,-155.47 2990.26,-139.72"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2990.96,-136.29 2980.39,-137.08 2989.14,-143.05 2990.96,-136.29"/>
</g>
<!-- Node48->Node7 -->
-<g id="edge142" class="edge">
+<g id="edge143" class="edge">
<title>Node48->Node7</title>
-<path fill="none" stroke="midnightblue" d="M2810.69,-768.67C2698.35,-765.17 2426.48,-753.9 2340,-725 2306.93,-713.95 2273.61,-690.44 2253.89,-674.93"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2256.06,-672.18 2246.08,-668.64 2251.67,-677.64 2256.06,-672.18"/>
+<path fill="none" stroke="midnightblue" d="M2930.5,-779.15C2804.58,-774.14 2473.26,-759.1 2365.76,-736 2304.87,-722.91 2237.27,-694.89 2200.43,-678.39"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2201.44,-675 2190.89,-674.06 2198.55,-681.38 2201.44,-675"/>
</g>
<!-- Node48->Node24 -->
-<g id="edge144" class="edge">
+<g id="edge145" class="edge">
<title>Node48->Node24</title>
-<path fill="none" stroke="midnightblue" d="M2859.87,-761.44C2859.6,-742.94 2859,-697.81 2859,-660 2859,-660 2859,-660 2859,-546 2859,-419.96 2677.27,-539.62 2594,-445 2533.89,-376.7 2602.63,-317.2 2546,-246 2448.22,-123.06 2251.02,-83.55 2162.63,-71.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2163.02,-68.23 2152.66,-70.42 2162.13,-75.17 2163.02,-68.23"/>
+<path fill="none" stroke="midnightblue" d="M2964.15,-772.4C2902.8,-738.03 2674.7,-604.6 2532.76,-445 2441.83,-342.76 2467.51,-282.28 2377.76,-179 2346.21,-142.69 2335.66,-133.75 2292.76,-112 2255.36,-93.04 2208.93,-81.19 2175.38,-74.44"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2175.88,-70.97 2165.4,-72.51 2174.55,-77.84 2175.88,-70.97"/>
</g>
<!-- Node48->Node27 -->
-<g id="edge143" class="edge">
+<g id="edge144" class="edge">
<title>Node48->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2909.14,-768.97C2967.07,-766.24 3065.31,-756.81 3143,-725 3273.69,-671.48 3636,-465.22 3636,-324 3636,-324 3636,-324 3636,-193.5 3636,-153.53 3630.94,-134.63 3598,-112 3547.13,-77.04 3108.09,-68.95 2984.35,-67.35"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.06,-63.85 2974.02,-67.22 2983.98,-70.85 2984.06,-63.85"/>
+<path fill="none" stroke="midnightblue" d="M3012.68,-772.4C3144.33,-735.82 3625.76,-580.32 3625.76,-262.5 3625.76,-262.5 3625.76,-262.5 3625.76,-193.5 3625.76,-144.27 3595.16,-133.25 3550.76,-112 3491.72,-83.74 3028.39,-70.79 2900.41,-67.73"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2900.17,-64.23 2890.09,-67.49 2900.01,-71.22 2900.17,-64.23"/>
</g>
<!-- Node49 -->
<g id="node49" class="node">
<title>Node49</title>
<g id="a_node49"><a xlink:href="attrs_8h.html" target="_top" xlink:title="Helpers for attribute objects.">
-<polygon fill="white" stroke="black" points="1922,-705.5 1922,-724.5 2002,-724.5 2002,-705.5 1922,-705.5"/>
-<text text-anchor="middle" x="1962" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/attrs.h</text>
+<polygon fill="white" stroke="black" points="1708.76,-716.5 1708.76,-735.5 1788.76,-735.5 1788.76,-716.5 1708.76,-716.5"/>
+<text text-anchor="middle" x="1748.76" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/attrs.h</text>
</a>
</g>
</g>
<!-- Node48->Node49 -->
<g id="edge129" class="edge">
<title>Node48->Node49</title>
-<path fill="none" stroke="midnightblue" d="M2810.76,-767.04C2654.5,-757.64 2170.77,-728.55 2012.61,-719.04"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2012.42,-715.53 2002.23,-718.42 2012,-722.51 2012.42,-715.53"/>
+<path fill="none" stroke="midnightblue" d="M2930.74,-778.85C2733.49,-770.2 1998.8,-737.97 1799.12,-729.21"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1799.07,-725.7 1788.92,-728.76 1798.76,-732.7 1799.07,-725.7"/>
</g>
<!-- Node49->Node5 -->
<g id="edge131" class="edge">
<title>Node49->Node5</title>
-<path fill="none" stroke="midnightblue" d="M1991.64,-705.44C2018.03,-697.39 2057.37,-684.31 2090,-669 2237.25,-599.9 2249.5,-531.87 2404,-481 2561.35,-429.19 2616.28,-492.44 2775,-445 2908.19,-405.19 3049.72,-312.74 3101.51,-276.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3103.64,-279.77 3109.85,-271.18 3099.64,-274.02 3103.64,-279.77"/>
+<path fill="none" stroke="midnightblue" d="M1788.98,-716.86C1790.59,-716.56 1792.19,-716.28 1793.76,-716 1898.69,-697.55 1928.76,-710.77 2030.76,-680 2131.18,-649.71 2358.1,-510.48 2458.76,-481 2573.25,-447.47 2611.94,-483.79 2724.76,-445 2845.75,-403.4 2972.06,-312.7 3018.87,-277.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3021.09,-279.89 3026.9,-271.03 3016.84,-274.33 3021.09,-279.89"/>
</g>
<!-- Node49->Node7 -->
-<g id="edge133" class="edge">
+<g id="edge134" class="edge">
<title>Node49->Node7</title>
-<path fill="none" stroke="midnightblue" d="M2002.14,-706.09C2051.01,-696.46 2133.56,-680.19 2186.38,-669.78"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2187.07,-673.21 2196.2,-667.84 2185.71,-666.34 2187.07,-673.21"/>
+<path fill="none" stroke="midnightblue" d="M1788.84,-718.18C1793.53,-717.42 1798.25,-716.68 1802.76,-716 1920.72,-698.19 1950.57,-696.24 2068.76,-680 2086.41,-677.58 2105.74,-674.89 2122.89,-672.49"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2123.84,-675.9 2133.26,-671.05 2122.87,-668.96 2123.84,-675.9"/>
</g>
<!-- Node49->Node9 -->
<g id="edge132" class="edge">
<title>Node49->Node9</title>
-<path fill="none" stroke="midnightblue" d="M1952.72,-705.46C1942.99,-696.46 1927.31,-681.86 1914,-669 1759.1,-519.29 1575.96,-333.67 1521.81,-278.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1524.02,-275.86 1514.52,-271.18 1519.03,-280.77 1524.02,-275.86"/>
+<path fill="none" stroke="midnightblue" d="M1788.97,-717C1824.52,-709.01 1872.46,-695.68 1883.76,-680 1891.82,-668.82 1888.24,-662.03 1883.76,-649 1818.63,-459.57 1598.33,-319.33 1523.71,-276.3"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1524.99,-273 1514.57,-271.1 1521.53,-279.09 1524.99,-273"/>
</g>
<!-- Node49->Node13 -->
-<g id="edge134" class="edge">
+<g id="edge135" class="edge">
<title>Node49->Node13</title>
-<path fill="none" stroke="midnightblue" d="M1961.79,-705.33C1960.34,-660.44 1948.96,-451.14 1862,-313 1854.6,-301.25 1843.55,-290.91 1832.87,-282.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1834.61,-279.64 1824.47,-276.58 1830.49,-285.3 1834.61,-279.64"/>
+<path fill="none" stroke="midnightblue" d="M1750.88,-716.41C1761.71,-672.41 1810.53,-473.2 1813.76,-445 1817.6,-411.44 1816.89,-402.63 1813.76,-369 1811.09,-340.32 1804.46,-307.84 1799.56,-286.38"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1802.94,-285.45 1797.25,-276.51 1796.12,-287.04 1802.94,-285.45"/>
</g>
<!-- Node49->Node22 -->
-<g id="edge140" class="edge">
+<g id="edge141" class="edge">
<title>Node49->Node22</title>
-<path fill="none" stroke="midnightblue" d="M1921.79,-712.26C1851.46,-708.56 1701.88,-697.75 1579,-669 1506.86,-652.13 1490.67,-640.8 1422,-613 1402.09,-604.94 1398.78,-598.44 1378,-593 1197.19,-545.64 1142.11,-594.49 959,-557 881.07,-541.04 864.25,-526.81 789,-501 718.92,-476.96 696.34,-481.73 632,-445 490.31,-364.12 466.92,-323.78 350,-210 321.56,-182.33 310.71,-177.44 291,-143 280.67,-124.96 273.88,-102.03 270.01,-86.1"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="273.33,-84.89 267.71,-75.91 266.5,-86.44 273.33,-84.89"/>
+<path fill="none" stroke="midnightblue" d="M1717.44,-716.44C1663.68,-701.86 1550.32,-671.59 1453.76,-649 1378.14,-631.31 1355.52,-640.16 1282.76,-613 1265.61,-606.6 1264.17,-598.67 1246.76,-593 1122,-552.39 1078.8,-596.72 953.76,-557 753.26,-493.3 722.04,-432.65 536.76,-333 447.18,-284.82 415.88,-281.73 343.76,-210 317.23,-183.61 308.11,-177.13 292.76,-143 284.5,-124.64 280.77,-101.77 279.1,-85.94"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="282.57,-85.48 278.21,-75.82 275.6,-86.09 282.57,-85.48"/>
</g>
<!-- Node49->Node24 -->
-<g id="edge138" class="edge">
+<g id="edge139" class="edge">
<title>Node49->Node24</title>
-<path fill="none" stroke="midnightblue" d="M1971.33,-705.49C2012.3,-667.28 2175.48,-505.8 2204,-333 2219.99,-236.09 2254.87,-196.03 2204,-112 2194.59,-96.46 2177.85,-86.02 2161.62,-79.15"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2162.77,-75.85 2152.18,-75.51 2160.25,-82.37 2162.77,-75.85"/>
+<path fill="none" stroke="midnightblue" d="M1787.44,-716.41C1834.73,-705.68 1909.86,-687.78 1920.76,-680 2055.93,-583.56 2035.41,-506.99 2127.76,-369 2175.14,-298.21 2209.9,-291.47 2234.76,-210 2247.47,-168.34 2258.67,-148.4 2234.76,-112 2221.51,-91.82 2197.06,-80.65 2175.2,-74.49"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2175.95,-71.06 2165.39,-71.99 2174.22,-77.85 2175.95,-71.06"/>
</g>
<!-- Node49->Node25 -->
-<g id="edge141" class="edge">
+<g id="edge142" class="edge">
<title>Node49->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1921.91,-709.87C1835.45,-700.13 1625.86,-671.95 1460,-613 1442.02,-606.61 1440.3,-598.42 1422,-593 1253.39,-543.09 1199.53,-595.69 1028,-557 1000.22,-550.73 547,-408.47 547,-380 547,-380 547,-380 547,-322 547,-256.67 618.3,-232.63 581,-179 558.13,-146.12 511.2,-134.6 478.92,-130.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="478.9,-127.07 468.59,-129.5 478.17,-134.03 478.9,-127.07"/>
+<path fill="none" stroke="midnightblue" d="M1736.73,-716.42C1713.35,-700.23 1659.58,-665.33 1608.76,-649 1485.95,-609.54 1443.83,-651.66 1320.76,-613 1302.55,-607.28 1300.96,-598.74 1282.76,-593 1161.84,-554.86 1119.01,-600.07 999.76,-557 956.16,-541.25 948.27,-529.57 911.76,-501 909.21,-499 576.53,-180.68 573.76,-179 537.23,-156.9 489.75,-142.96 458.32,-135.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="458.84,-131.98 448.31,-133.15 457.27,-138.81 458.84,-131.98"/>
</g>
<!-- Node49->Node27 -->
-<g id="edge137" class="edge">
+<g id="edge138" class="edge">
<title>Node49->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2002.15,-712.01C2162.77,-702.37 2769.86,-649.52 3173,-389 3277.05,-321.76 3309.71,-176.59 3204,-112 3167.58,-89.75 3043.99,-75.56 2984.51,-69.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.46,-66.34 2974.18,-68.89 2983.81,-73.31 2984.46,-66.34"/>
+<path fill="none" stroke="midnightblue" d="M1788.78,-722.5C1870.47,-717.11 2062.14,-702.99 2221.76,-680 2663.38,-616.39 2791.66,-629.81 3197.76,-445 3270.6,-411.85 3290.94,-397.17 3338.76,-333 3398.65,-252.62 3383.37,-156.92 3293.76,-112 3224.67,-77.37 2986.99,-69.31 2899.99,-67.5"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2899.98,-64 2889.92,-67.31 2899.85,-71 2899.98,-64"/>
</g>
<!-- Node49->Node31 -->
-<g id="edge135" class="edge">
+<g id="edge136" class="edge">
<title>Node49->Node31</title>
-<path fill="none" stroke="midnightblue" d="M1955.54,-705.42C1931.43,-672.47 1848,-550.24 1848,-436 1848,-436 1848,-436 1848,-378 1848,-322.8 1787.02,-292.65 1736.44,-277.14"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1737.39,-273.77 1726.81,-274.32 1735.42,-280.48 1737.39,-273.77"/>
+<path fill="none" stroke="midnightblue" d="M1747.12,-716.17C1737.03,-661.92 1683.33,-373.13 1667.29,-286.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1670.71,-286.12 1665.44,-276.93 1663.83,-287.4 1670.71,-286.12"/>
</g>
<!-- Node49->Node40 -->
-<g id="edge136" class="edge">
+<g id="edge137" class="edge">
<title>Node49->Node40</title>
-<path fill="none" stroke="midnightblue" d="M1967.22,-705.48C1984.39,-676.64 2038,-579.59 2038,-492 2038,-492 2038,-492 2038,-322 2038,-256.51 2059.22,-180.85 2069.94,-146.78"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2073.28,-147.84 2073.02,-137.25 2066.62,-145.69 2073.28,-147.84"/>
+<path fill="none" stroke="midnightblue" d="M1783.37,-716.44C1825.23,-705.82 1891.16,-688.13 1899.76,-680 1920.8,-660.12 2061.59,-240.06 2092.69,-146.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2096.02,-147.85 2095.85,-137.25 2089.37,-145.63 2096.02,-147.85"/>
</g>
<!-- Node50 -->
<g id="node50" class="node">
<title>Node50</title>
<g id="a_node50"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1246.5,-593.5 1246.5,-612.5 1341.5,-612.5 1341.5,-593.5 1246.5,-593.5"/>
-<text text-anchor="middle" x="1294" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/common.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1107.26,-593.5 1107.26,-612.5 1202.26,-612.5 1202.26,-593.5 1107.26,-593.5"/>
+<text text-anchor="middle" x="1154.76" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/common.h</text>
</a>
</g>
</g>
<!-- Node49->Node50 -->
<g id="edge130" class="edge">
<title>Node49->Node50</title>
-<path fill="none" stroke="midnightblue" d="M1921.65,-712.68C1794.39,-708.29 1406.91,-693.06 1356,-669 1334.05,-658.62 1315.87,-636.83 1304.99,-621.34"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1307.66,-619.04 1299.19,-612.67 1301.84,-622.93 1307.66,-619.04"/>
+<path fill="none" stroke="midnightblue" d="M1708.56,-724.09C1635.2,-721.65 1475.16,-712.7 1344.76,-680 1283.97,-664.75 1216.73,-634.43 1180.81,-617.05"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1182.06,-613.76 1171.53,-612.51 1178.98,-620.05 1182.06,-613.76"/>
</g>
-<!-- Node49->Node51 -->
-<g id="edge139" class="edge">
-<title>Node49->Node51</title>
-<path fill="none" stroke="midnightblue" d="M1921.95,-713.97C1814.07,-713.35 1519.62,-708.04 1432,-669 1386.91,-648.91 1396.12,-613.02 1351,-593 1261.33,-553.21 1007.98,-571.8 911,-557 821.74,-543.38 718.98,-517.87 663.22,-503.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="663.93,-499.75 653.37,-500.57 662.14,-506.52 663.93,-499.75"/>
-</g>
-<!-- Node52->Node7 -->
-<g id="edge146" class="edge">
-<title>Node52->Node7</title>
-<path fill="none" stroke="midnightblue" d="M1380.14,-770.4C1497.98,-770.35 1779.36,-765.56 2011,-725 2080.85,-712.77 2159.96,-687.03 2203.29,-671.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2204.48,-675.16 2212.75,-668.53 2202.15,-668.56 2204.48,-675.16"/>
-</g>
-<!-- Node53 -->
-<g id="node53" class="node">
-<title>Node53</title>
-<g id="a_node53"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object.">
-<polygon fill="white" stroke="black" points="1138,-705.5 1138,-724.5 1248,-724.5 1248,-705.5 1138,-705.5"/>
-<text text-anchor="middle" x="1193" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/target/target.h</text>
+<!-- Node51 -->
+<g id="node51" class="node">
+<title>Node51</title>
+<g id="a_node51"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="1776.76,-649.5 1776.76,-679.5 1874.76,-679.5 1874.76,-649.5 1776.76,-649.5"/>
+<text text-anchor="start" x="1784.76" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/reflection</text>
+<text text-anchor="middle" x="1825.76" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reflection.h</text>
</a>
</g>
</g>
-<!-- Node52->Node53 -->
-<g id="edge147" class="edge">
-<title>Node52->Node53</title>
-<path fill="none" stroke="midnightblue" d="M1303.24,-761.44C1281.68,-752.56 1247.74,-738.56 1223.21,-728.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1224.24,-725.09 1213.66,-724.52 1221.57,-731.56 1224.24,-725.09"/>
+<!-- Node49->Node51 -->
+<g id="edge133" class="edge">
+<title>Node49->Node51</title>
+<path fill="none" stroke="midnightblue" d="M1759.79,-716.48C1770.12,-708.49 1785.96,-696.25 1799.53,-685.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1801.84,-688.41 1807.61,-679.52 1797.56,-682.87 1801.84,-688.41"/>
+</g>
+<!-- Node49->Node52 -->
+<g id="edge140" class="edge">
+<title>Node49->Node52</title>
+<path fill="none" stroke="midnightblue" d="M1708.59,-718.87C1623.38,-705.23 1418.91,-669.07 1254.76,-613 1234.82,-606.19 1232.06,-598.66 1211.76,-593 1069.22,-553.27 1026.64,-581.83 880.76,-557 795.32,-542.46 696.91,-517.59 642.79,-503.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="643.46,-499.75 632.89,-500.55 641.65,-506.52 643.46,-499.75"/>
</g>
<!-- Node53->Node7 -->
-<g id="edge148" class="edge">
+<g id="edge147" class="edge">
<title>Node53->Node7</title>
-<path fill="none" stroke="midnightblue" d="M1248.34,-711.13C1430.86,-701.68 2012.06,-671.59 2186.22,-662.58"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2186.57,-666.06 2196.37,-662.05 2186.21,-659.07 2186.57,-666.06"/>
-</g>
-<!-- Node53->Node10 -->
-<g id="edge149" class="edge">
-<title>Node53->Node10</title>
-<path fill="none" stroke="midnightblue" d="M1198.1,-705.27C1203.14,-696.37 1210.83,-682.05 1216,-669 1228.95,-636.31 1217.2,-621.35 1238,-593 1269.35,-550.27 1324.63,-520.26 1359.18,-504.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1360.6,-507.79 1368.34,-500.55 1357.78,-501.38 1360.6,-507.79"/>
-</g>
-<!-- Node53->Node25 -->
-<g id="edge166" class="edge">
-<title>Node53->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1138.71,-705.43C1100.86,-698.36 1049.69,-686.61 1007,-669 991.15,-662.46 990.17,-654.72 974,-649 938.27,-636.36 322.93,-585.55 298,-557 184.87,-427.43 372.34,-206.49 429.35,-144.88"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="432.2,-146.96 436.49,-137.27 427.09,-142.17 432.2,-146.96"/>
-</g>
-<!-- Node53->Node27 -->
-<g id="edge164" class="edge">
-<title>Node53->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1235.37,-705.46C1314.9,-689.18 1491.82,-651.89 1639,-613 1722.06,-591.05 1743.91,-588.08 1824,-557 1877.74,-536.14 1892.57,-532.27 1941,-501 1964.32,-485.94 2299.36,-193.55 2323,-179 2387.6,-139.23 2406.48,-130.71 2480,-112 2641.52,-70.89 2842.81,-66.66 2919.91,-66.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2919.94,-70.19 2929.95,-66.72 2919.96,-63.19 2919.94,-70.19"/>
+<path fill="none" stroke="midnightblue" d="M1496.92,-773.76C1501.6,-773.17 1506.26,-772.57 1510.76,-772 1638.29,-755.8 1671.36,-759.45 1797.76,-736 1834.22,-729.24 1842.46,-723.59 1878.76,-716 1964.12,-698.15 2064.39,-681.94 2123.02,-672.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2123.76,-676.35 2133.12,-671.38 2122.71,-669.43 2123.76,-676.35"/>
</g>
<!-- Node54 -->
<g id="node54" class="node">
<title>Node54</title>
-<g id="a_node54"><a xlink:href="with_8h.html" target="_top" xlink:title="RAII wrapper function to enter and exit a context object similar to python's with syntax.">
-<polygon fill="white" stroke="black" points="1097.5,-649.5 1097.5,-668.5 1206.5,-668.5 1206.5,-649.5 1097.5,-649.5"/>
-<text text-anchor="middle" x="1152" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/support/with.h</text>
+<g id="a_node54"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object.">
+<polygon fill="white" stroke="black" points="1078.76,-716.5 1078.76,-735.5 1188.76,-735.5 1188.76,-716.5 1078.76,-716.5"/>
+<text text-anchor="middle" x="1133.76" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/target/target.h</text>
</a>
</g>
</g>
<!-- Node53->Node54 -->
-<g id="edge150" class="edge">
+<g id="edge148" class="edge">
<title>Node53->Node54</title>
-<path fill="none" stroke="midnightblue" d="M1186.23,-705.08C1180.44,-697.46 1171.94,-686.26 1164.86,-676.94"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1167.48,-674.6 1158.64,-668.75 1161.9,-678.83 1167.48,-674.6"/>
+<path fill="none" stroke="midnightblue" d="M1392.12,-772.44C1337.89,-762.9 1250.21,-747.48 1192.28,-737.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1192.63,-733.8 1182.18,-735.52 1191.42,-740.7 1192.63,-733.8"/>
</g>
-<!-- Node55 -->
-<g id="node55" class="node">
-<title>Node55</title>
-<g id="a_node55"><a xlink:href="target__kind_8h.html" target="_top" xlink:title="Target kind registry.">
-<polygon fill="white" stroke="black" points="307,-537.5 307,-556.5 443,-556.5 443,-537.5 307,-537.5"/>
-<text text-anchor="middle" x="375" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/target/target_kind.h</text>
-</a>
+<!-- Node54->Node7 -->
+<g id="edge149" class="edge">
+<title>Node54->Node7</title>
+<path fill="none" stroke="midnightblue" d="M1188.89,-721.84C1370.61,-711.44 1949.03,-678.31 2122.88,-668.36"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2123.23,-671.84 2133.02,-667.78 2122.83,-664.85 2123.23,-671.84"/>
</g>
+<!-- Node54->Node10 -->
+<g id="edge150" class="edge">
+<title>Node54->Node10</title>
+<path fill="none" stroke="midnightblue" d="M1122.62,-716.24C1095.56,-693.93 1031.01,-633.87 1064.76,-593 1118.66,-527.74 1170.13,-579.37 1251.76,-557 1306.07,-542.12 1367.37,-518.64 1402.89,-504.34"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1404.24,-507.57 1412.19,-500.57 1401.61,-501.08 1404.24,-507.57"/>
</g>
-<!-- Node53->Node55 -->
-<g id="edge154" class="edge">
-<title>Node53->Node55</title>
-<path fill="none" stroke="midnightblue" d="M1170.58,-705.47C1135.84,-692.42 1066.75,-667.08 1007,-649 911.25,-620.03 887.42,-610.9 789,-593 673.09,-571.92 537,-559.45 453.38,-553.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="453.43,-549.65 443.2,-552.41 452.91,-556.64 453.43,-549.65"/>
+<!-- Node54->Node25 -->
+<g id="edge167" class="edge">
+<title>Node54->Node25</title>
+<path fill="none" stroke="midnightblue" d="M1078.65,-719.9C1038.5,-714.39 983.83,-703.06 940.76,-680 923.02,-670.5 925.88,-657.75 907.76,-649 844.05,-618.26 331.15,-603.42 277.76,-557 255.05,-537.25 258.76,-522.1 258.76,-492 258.76,-492 258.76,-492 258.76,-378 258.76,-281.29 284,-252.57 346.76,-179 360.24,-163.2 379.89,-150.52 396.09,-141.82"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="397.86,-144.84 405.16,-137.16 394.66,-138.62 397.86,-144.84"/>
</g>
-<!-- Node53->Node58 -->
+<!-- Node54->Node27 -->
<g id="edge165" class="edge">
-<title>Node53->Node58</title>
-<path fill="none" stroke="midnightblue" d="M1150.06,-705.44C1102.49,-695.96 1025.76,-680.67 974.61,-670.48"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="975.23,-667.04 964.74,-668.52 973.86,-673.9 975.23,-667.04"/>
+<title>Node54->Node27</title>
+<path fill="none" stroke="midnightblue" d="M1188.95,-716.85C1342.9,-692.57 1787.37,-611.8 2117.76,-445 2333.85,-335.9 2325.7,-206.04 2548.76,-112 2647.01,-70.58 2775.83,-65.89 2835.21,-66.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2835.43,-69.7 2845.46,-66.31 2835.5,-62.7 2835.43,-69.7"/>
</g>
-<!-- Node54->Node22 -->
-<g id="edge153" class="edge">
-<title>Node54->Node22</title>
-<path fill="none" stroke="midnightblue" d="M1097.49,-653.92C920.36,-640.32 368.31,-595.29 298,-557 182.12,-493.9 114,-455.95 114,-324 114,-324 114,-324 114,-193.5 114,-153.15 124.43,-139.45 154,-112 176.17,-91.42 208.96,-79.74 233.33,-73.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="234.3,-76.83 243.21,-71.1 232.67,-70.02 234.3,-76.83"/>
+<!-- Node55 -->
+<g id="node55" class="node">
+<title>Node55</title>
+<g id="a_node55"><a xlink:href="with_8h.html" target="_top" xlink:title="RAII wrapper function to enter and exit a context object similar to python's with syntax.">
+<polygon fill="white" stroke="black" points="1107.26,-655 1107.26,-674 1216.26,-674 1216.26,-655 1107.26,-655"/>
+<text text-anchor="middle" x="1161.76" y="-662" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/support/with.h</text>
+</a>
</g>
-<!-- Node54->Node40 -->
-<g id="edge152" class="edge">
-<title>Node54->Node40</title>
-<path fill="none" stroke="midnightblue" d="M1161.78,-649.38C1177.19,-636.08 1208.44,-610.29 1238,-593 1326.31,-541.35 1355.89,-543.38 1449,-501 1554.67,-452.9 1580.63,-439.85 1685,-389 1735.03,-364.62 1747.5,-358.44 1797,-333 1844.39,-308.64 1856.62,-303.22 1903,-277 1953.16,-248.64 1971.13,-248.5 2014,-210 2035.32,-190.86 2054.36,-163.52 2065.55,-145.89"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2068.64,-147.55 2070.92,-137.21 2062.69,-143.87 2068.64,-147.55"/>
</g>
-<!-- Node54->Node50 -->
+<!-- Node54->Node55 -->
<g id="edge151" class="edge">
-<title>Node54->Node50</title>
-<path fill="none" stroke="midnightblue" d="M1174.5,-649.44C1198.08,-640.48 1235.32,-626.31 1261.96,-616.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1263.5,-619.34 1271.6,-612.52 1261.01,-612.8 1263.5,-619.34"/>
-</g>
-<!-- Node55->Node10 -->
-<g id="edge159" class="edge">
-<title>Node55->Node10</title>
-<path fill="none" stroke="midnightblue" d="M443.17,-542.37C630.79,-532.39 1152.56,-504.63 1330.02,-495.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1330.41,-498.68 1340.21,-494.65 1330.04,-491.69 1330.41,-498.68"/>
-</g>
-<!-- Node55->Node22 -->
-<g id="edge162" class="edge">
-<title>Node55->Node22</title>
-<path fill="none" stroke="midnightblue" d="M363.95,-537.41C322.66,-505.31 179.54,-393.87 176,-389 157.9,-364.09 152,-354.8 152,-324 152,-324 152,-324 152,-193.5 152,-155.74 151.77,-140.96 176,-112 190.8,-94.32 214.26,-82.91 233.52,-76"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="234.76,-79.27 243.14,-72.79 232.55,-72.63 234.76,-79.27"/>
-</g>
-<!-- Node55->Node25 -->
-<g id="edge163" class="edge">
-<title>Node55->Node25</title>
-<path fill="none" stroke="midnightblue" d="M364.56,-537.24C355.58,-528.97 343.25,-515.66 338,-501 335,-492.63 336.69,-489.79 338,-481 357.64,-348.7 416.59,-197.32 437.53,-146.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="440.79,-147.58 441.39,-137 434.33,-144.9 440.79,-147.58"/>
-</g>
-<!-- Node55->Node51 -->
-<g id="edge161" class="edge">
-<title>Node55->Node51</title>
-<path fill="none" stroke="midnightblue" d="M414.14,-537.44C457.23,-528.02 526.56,-512.87 573.17,-502.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="574.02,-506.07 583.05,-500.52 572.53,-499.23 574.02,-506.07"/>
+<title>Node54->Node55</title>
+<path fill="none" stroke="midnightblue" d="M1137.77,-716.48C1141.85,-707.82 1148.28,-694.15 1153.46,-683.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1156.67,-684.55 1157.76,-674.01 1150.33,-681.57 1156.67,-684.55"/>
</g>
<!-- Node56 -->
<g id="node56" class="node">
<title>Node56</title>
-<g id="a_node56"><a xlink:href="attr__registry__map_8h.html" target="_top" xlink:title="Attribute map used in registry.">
-<polygon fill="white" stroke="black" points="446,-179.5 446,-209.5 572,-209.5 572,-179.5 446,-179.5"/>
-<text text-anchor="start" x="454" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/attr_registry</text>
-<text text-anchor="middle" x="509" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">_map.h</text>
+<g id="a_node56"><a xlink:href="target__kind_8h.html" target="_top" xlink:title="Target kind registry.">
+<polygon fill="white" stroke="black" points="286.76,-537.5 286.76,-556.5 422.76,-556.5 422.76,-537.5 286.76,-537.5"/>
+<text text-anchor="middle" x="354.76" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/target/target_kind.h</text>
</a>
</g>
</g>
-<!-- Node55->Node56 -->
+<!-- Node54->Node56 -->
<g id="edge155" class="edge">
-<title>Node55->Node56</title>
-<path fill="none" stroke="midnightblue" d="M384.61,-537.22C393.39,-528.72 406.16,-515.09 414,-501 467.82,-404.28 495.41,-273.03 505,-219.61"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="508.46,-220.17 506.73,-209.71 501.56,-218.96 508.46,-220.17"/>
+<title>Node54->Node56</title>
+<path fill="none" stroke="midnightblue" d="M1113.14,-716.39C1070.69,-698.76 974.7,-659.32 940.76,-649 763.39,-595.06 546.51,-567.09 432.83,-555.21"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="433.12,-551.72 422.82,-554.17 432.41,-558.68 433.12,-551.72"/>
</g>
-<!-- Node57 -->
-<g id="node57" class="node">
-<title>Node57</title>
-<g id="a_node57"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="347,-481.5 347,-500.5 405,-500.5 405,-481.5 347,-481.5"/>
-<text text-anchor="middle" x="376" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
-</a>
+<!-- Node54->Node59 -->
+<g id="edge166" class="edge">
+<title>Node54->Node59</title>
+<path fill="none" stroke="midnightblue" d="M1088.76,-716.5C1044,-707.88 973.45,-693.89 912.76,-680 908.03,-678.92 903.1,-677.74 898.19,-676.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="898.8,-673.08 888.25,-674.05 897.1,-679.87 898.8,-673.08"/>
+</g>
+<!-- Node55->Node22 -->
+<g id="edge154" class="edge">
+<title>Node55->Node22</title>
+<path fill="none" stroke="midnightblue" d="M1107.2,-658.42C919.7,-640.76 311.41,-581.81 277.76,-557 191.56,-493.45 26.59,-196.2 92.76,-112 111.32,-88.38 196.78,-75.62 244.79,-70.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="245.43,-73.65 254.99,-69.1 244.67,-66.69 245.43,-73.65"/>
</g>
+<!-- Node55->Node40 -->
+<g id="edge153" class="edge">
+<title>Node55->Node40</title>
+<path fill="none" stroke="midnightblue" d="M1144.22,-654.98C1119.54,-641.9 1079.63,-615.94 1098.76,-593 1127.26,-558.82 1252.43,-567.12 1295.76,-557 1543.99,-499 1608.16,-469 1823.76,-333 1925.22,-269 2037.43,-178.97 2080.53,-143.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2082.94,-146.16 2088.43,-137.1 2078.49,-140.75 2082.94,-146.16"/>
</g>
-<!-- Node55->Node57 -->
-<g id="edge160" class="edge">
-<title>Node55->Node57</title>
-<path fill="none" stroke="midnightblue" d="M375.17,-537.08C375.3,-530.01 375.48,-519.86 375.65,-510.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="379.15,-510.81 375.84,-500.75 372.15,-510.68 379.15,-510.81"/>
+<!-- Node55->Node50 -->
+<g id="edge152" class="edge">
+<title>Node55->Node50</title>
+<path fill="none" stroke="midnightblue" d="M1160.76,-654.98C1159.77,-646.58 1158.23,-633.48 1156.96,-622.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1160.41,-622.03 1155.76,-612.51 1153.45,-622.85 1160.41,-622.03"/>
</g>
-<!-- Node56->Node6 -->
-<g id="edge156" class="edge">
-<title>Node56->Node6</title>
-<path fill="none" stroke="midnightblue" d="M572.11,-189.99C633,-186.72 727.78,-181.92 810,-179 1672.36,-148.42 2724.02,-132.69 2973.22,-129.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2973.51,-132.73 2983.46,-129.09 2973.41,-125.73 2973.51,-132.73"/>
+<!-- Node56->Node10 -->
+<g id="edge160" class="edge">
+<title>Node56->Node10</title>
+<path fill="none" stroke="midnightblue" d="M423.01,-542.58C619.92,-532.72 1186.82,-504.32 1372.84,-495"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1373.17,-498.49 1382.98,-494.49 1372.82,-491.5 1373.17,-498.49"/>
</g>
<!-- Node56->Node22 -->
-<g id="edge157" class="edge">
+<g id="edge163" class="edge">
<title>Node56->Node22</title>
-<path fill="none" stroke="midnightblue" d="M482.05,-179.45C462.78,-169.37 436.25,-155.44 413,-143 387.57,-129.4 381.57,-125.34 356,-112 334.96,-101.02 310.91,-89.02 292.96,-80.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="294.2,-76.89 283.68,-75.62 291.11,-83.17 294.2,-76.89"/>
+<path fill="none" stroke="midnightblue" d="M345.54,-537.4C312.98,-506.3 203.48,-395.22 168.76,-277 148.1,-206.64 127.98,-172.95 168.76,-112 185.67,-86.73 219.65,-75.63 245.2,-70.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="245.93,-74.2 255.22,-69.1 244.78,-67.29 245.93,-74.2"/>
</g>
<!-- Node56->Node25 -->
-<g id="edge158" class="edge">
+<g id="edge164" class="edge">
<title>Node56->Node25</title>
-<path fill="none" stroke="midnightblue" d="M495.11,-179.4C485.04,-169.16 471.38,-155.3 460.87,-144.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="463.07,-141.86 453.56,-137.19 458.08,-146.78 463.07,-141.86"/>
+<path fill="none" stroke="midnightblue" d="M344.32,-537.24C335.34,-528.97 323.02,-515.66 317.76,-501 314.76,-492.63 317.28,-489.88 317.76,-481 321.54,-410.92 334.76,-394.19 334.76,-324 334.76,-324 334.76,-324 334.76,-260.5 334.76,-210.69 379.04,-165.81 405.48,-143.45"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="407.84,-146.05 413.36,-137.01 403.41,-140.63 407.84,-146.05"/>
</g>
-<!-- Node59->Node5 -->
-<g id="edge179" class="edge">
-<title>Node59->Node5</title>
-<path fill="none" stroke="midnightblue" d="M2696.69,-930.41C2753.91,-921.75 2849.74,-906.97 2932,-893 3228.29,-842.67 3493.61,-1010.65 3587,-725 3626.63,-603.78 3240.81,-340.54 3143.81,-276.67"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3145.63,-273.68 3135.35,-271.12 3141.79,-279.53 3145.63,-273.68"/>
+<!-- Node56->Node52 -->
+<g id="edge162" class="edge">
+<title>Node56->Node52</title>
+<path fill="none" stroke="midnightblue" d="M393.9,-537.44C436.99,-528.02 506.32,-512.87 552.93,-502.68"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="553.78,-506.07 562.81,-500.52 552.29,-499.23 553.78,-506.07"/>
</g>
-<!-- Node59->Node27 -->
-<g id="edge217" class="edge">
-<title>Node59->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2696.7,-935.97C2922.56,-926.62 3826,-885.61 3826,-828 3826,-828 3826,-828 3826,-193.5 3826,-145.17 3797.49,-133.09 3754,-112 3683.91,-78 3125.26,-69.07 2984.24,-67.35"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.13,-63.85 2974.08,-67.23 2984.04,-70.85 2984.13,-63.85"/>
+<!-- Node57 -->
+<g id="node57" class="node">
+<title>Node57</title>
+<g id="a_node57"><a xlink:href="attr__registry__map_8h.html" target="_top" xlink:title="Attribute map used in registry.">
+<polygon fill="white" stroke="black" points="438.76,-179.5 438.76,-209.5 564.76,-209.5 564.76,-179.5 438.76,-179.5"/>
+<text text-anchor="start" x="446.76" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/attr_registry</text>
+<text text-anchor="middle" x="501.76" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">_map.h</text>
+</a>
</g>
-<!-- Node59->Node32 -->
-<g id="edge182" class="edge">
-<title>Node59->Node32</title>
-<path fill="none" stroke="midnightblue" d="M2595.27,-938.1C2319.23,-938.07 996.8,-930 622,-781 542.08,-749.23 471,-746 471,-660 471,-660 471,-660 471,-490 471,-399.65 502.44,-371.86 571,-313 642.96,-251.22 750.73,-220.29 818.39,-206.09"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="819.38,-209.46 828.48,-204.03 817.99,-202.6 819.38,-209.46"/>
</g>
-<!-- Node59->Node48 -->
-<g id="edge181" class="edge">
-<title>Node59->Node48</title>
-<path fill="none" stroke="midnightblue" d="M2657.2,-929.31C2691.8,-902.47 2797.23,-820.69 2840.82,-786.88"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2843.15,-789.5 2848.91,-780.61 2838.86,-783.97 2843.15,-789.5"/>
+<!-- Node56->Node57 -->
+<g id="edge156" class="edge">
+<title>Node56->Node57</title>
+<path fill="none" stroke="midnightblue" d="M364.43,-537.25C373.25,-528.77 386.04,-515.16 393.76,-501 408.17,-474.58 412.76,-466.1 412.76,-436 412.76,-436 412.76,-436 412.76,-322 412.76,-278.2 448.9,-238.85 475.12,-216.07"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="477.48,-218.66 482.89,-209.55 472.98,-213.3 477.48,-218.66"/>
</g>
-<!-- Node60 -->
-<g id="node60" class="node">
-<title>Node60</title>
-<g id="a_node60"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2372,-873.5 2372,-892.5 2516,-892.5 2516,-873.5 2372,-873.5"/>
-<text text-anchor="middle" x="2444" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/variant.h</text>
+<!-- Node58 -->
+<g id="node58" class="node">
+<title>Node58</title>
+<g id="a_node58"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="326.76,-481.5 326.76,-500.5 384.76,-500.5 384.76,-481.5 326.76,-481.5"/>
+<text text-anchor="middle" x="355.76" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
</a>
</g>
</g>
-<!-- Node59->Node60 -->
+<!-- Node56->Node58 -->
+<g id="edge161" class="edge">
+<title>Node56->Node58</title>
+<path fill="none" stroke="midnightblue" d="M354.93,-537.08C355.06,-530.01 355.24,-519.86 355.41,-510.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="358.91,-510.81 355.6,-500.75 351.91,-510.68 358.91,-510.81"/>
+</g>
+<!-- Node57->Node6 -->
+<g id="edge157" class="edge">
+<title>Node57->Node6</title>
+<path fill="none" stroke="midnightblue" d="M564.87,-190.01C625.76,-186.75 720.54,-181.95 802.76,-179 1226.91,-163.78 2597.33,-135.54 2888.9,-129.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2889.28,-133.1 2899.21,-129.4 2889.14,-126.11 2889.28,-133.1"/>
+</g>
+<!-- Node57->Node22 -->
+<g id="edge158" class="edge">
+<title>Node57->Node22</title>
+<path fill="none" stroke="midnightblue" d="M466.71,-179.47C444.66,-170.15 415.91,-157.07 391.76,-143 371.4,-131.14 368.27,-125.2 348.76,-112 332.8,-101.2 314.41,-89.57 300.34,-80.83"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="302.14,-77.83 291.8,-75.55 298.46,-83.79 302.14,-77.83"/>
+</g>
+<!-- Node57->Node25 -->
+<g id="edge159" class="edge">
+<title>Node57->Node25</title>
+<path fill="none" stroke="midnightblue" d="M485.05,-179.4C472.57,-168.86 455.53,-154.48 442.75,-143.69"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="444.96,-140.97 435.06,-137.19 440.44,-146.32 444.96,-140.97"/>
+</g>
+<!-- Node60->Node5 -->
<g id="edge180" class="edge">
-<title>Node59->Node60</title>
-<path fill="none" stroke="midnightblue" d="M2613.99,-929.44C2579.27,-920.16 2523.71,-905.31 2485.62,-895.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2486.42,-891.72 2475.86,-892.52 2484.61,-898.48 2486.42,-891.72"/>
+<title>Node60->Node5</title>
+<path fill="none" stroke="midnightblue" d="M2766.42,-947.24C2928.32,-940.47 3428.3,-910.17 3525.76,-792 3703.87,-576.05 3197.06,-332.78 3067.23,-275.19"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3068.43,-271.89 3057.87,-271.07 3065.61,-278.3 3068.43,-271.89"/>
+</g>
+<!-- Node60->Node27 -->
+<g id="edge218" class="edge">
+<title>Node60->Node27</title>
+<path fill="none" stroke="midnightblue" d="M2766.27,-949.14C2977.32,-949.06 3777.76,-941.99 3777.76,-839 3777.76,-839 3777.76,-839 3777.76,-193.5 3777.76,-146.33 3751.94,-133.13 3709.76,-112 3636.42,-75.26 3046.04,-68.36 2900.23,-67.21"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2900.16,-63.71 2890.13,-67.13 2900.11,-70.71 2900.16,-63.71"/>
+</g>
+<!-- Node60->Node32 -->
+<g id="edge183" class="edge">
+<title>Node60->Node32</title>
+<path fill="none" stroke="midnightblue" d="M2665.14,-947.89C2337.18,-940.38 526.76,-893.91 526.76,-783 526.76,-783 526.76,-783 526.76,-725 526.76,-616.19 498.85,-578.69 546.76,-481 614.46,-342.94 781.95,-243.6 847.17,-208.95"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="849.14,-211.87 856.38,-204.13 845.9,-205.67 849.14,-211.87"/>
+</g>
+<!-- Node60->Node48 -->
+<g id="edge182" class="edge">
+<title>Node60->Node48</title>
+<path fill="none" stroke="midnightblue" d="M2729.58,-940.31C2772.62,-913.25 2904.5,-830.32 2957.43,-797.04"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2959.47,-799.89 2966.08,-791.61 2955.75,-793.97 2959.47,-799.89"/>
</g>
<!-- Node61 -->
<g id="node61" class="node">
<title>Node61</title>
-<g id="a_node61"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n-dimensional array, to represent a memory buffer.">
-<polygon fill="white" stroke="black" points="3447.5,-761.5 3447.5,-780.5 3536.5,-780.5 3536.5,-761.5 3447.5,-761.5"/>
-<text text-anchor="middle" x="3492" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/buffer.h</text>
+<g id="a_node61"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="2441.76,-884.5 2441.76,-903.5 2585.76,-903.5 2585.76,-884.5 2441.76,-884.5"/>
+<text text-anchor="middle" x="2513.76" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/variant.h</text>
</a>
</g>
</g>
-<!-- Node59->Node61 -->
-<g id="edge183" class="edge">
-<title>Node59->Node61</title>
-<path fill="none" stroke="midnightblue" d="M2689.41,-929.48C2831.6,-901.58 3283.11,-812.99 3438.7,-782.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3439.37,-785.89 3448.51,-780.53 3438.02,-779.02 3439.37,-785.89"/>
+<!-- Node60->Node61 -->
+<g id="edge181" class="edge">
+<title>Node60->Node61</title>
+<path fill="none" stroke="midnightblue" d="M2683.75,-940.44C2649.03,-931.16 2593.47,-916.31 2555.38,-906.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2556.18,-902.72 2545.62,-903.52 2554.38,-909.48 2556.18,-902.72"/>
</g>
-<!-- Node63 -->
-<g id="node63" class="node">
-<title>Node63</title>
-<g id="a_node63"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions.">
-<polygon fill="white" stroke="black" points="2534.5,-817.5 2534.5,-836.5 2617.5,-836.5 2617.5,-817.5 2534.5,-817.5"/>
-<text text-anchor="middle" x="2576" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/expr.h</text>
+<!-- Node62 -->
+<g id="node62" class="node">
+<title>Node62</title>
+<g id="a_node62"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n-dimensional array, to represent a memory buffer.">
+<polygon fill="white" stroke="black" points="3201.26,-772.5 3201.26,-791.5 3290.26,-791.5 3290.26,-772.5 3201.26,-772.5"/>
+<text text-anchor="middle" x="3245.76" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/buffer.h</text>
</a>
</g>
</g>
-<!-- Node59->Node63 -->
-<g id="edge195" class="edge">
-<title>Node59->Node63</title>
-<path fill="none" stroke="midnightblue" d="M2645.03,-929.37C2643.24,-916.29 2638.48,-891.06 2627,-873 2619.48,-861.17 2607.96,-850.63 2597.77,-842.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2599.77,-839.86 2589.65,-836.75 2595.62,-845.49 2599.77,-839.86"/>
+<!-- Node60->Node62 -->
+<g id="edge184" class="edge">
+<title>Node60->Node62</title>
+<path fill="none" stroke="midnightblue" d="M2743.14,-940.42C2831.36,-912.79 3108.29,-826.06 3208.83,-794.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3210.05,-797.85 3218.55,-791.52 3207.96,-791.17 3210.05,-797.85"/>
</g>
<!-- Node64 -->
<g id="node64" class="node">
<title>Node64</title>
-<g id="a_node64"><a xlink:href="stmt_8h.html" target="_top" xlink:title="TIR statements.">
-<polygon fill="white" stroke="black" points="2534,-873.5 2534,-892.5 2618,-892.5 2618,-873.5 2534,-873.5"/>
-<text text-anchor="middle" x="2576" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/stmt.h</text>
+<g id="a_node64"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions.">
+<polygon fill="white" stroke="black" points="2604.26,-828.5 2604.26,-847.5 2687.26,-847.5 2687.26,-828.5 2604.26,-828.5"/>
+<text text-anchor="middle" x="2645.76" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/expr.h</text>
</a>
</g>
</g>
-<!-- Node59->Node64 -->
-<g id="edge212" class="edge">
-<title>Node59->Node64</title>
-<path fill="none" stroke="midnightblue" d="M2634.75,-929.32C2624.2,-921.18 2608.2,-908.84 2595.56,-899.09"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2597.51,-896.17 2587.45,-892.83 2593.23,-901.71 2597.51,-896.17"/>
+<!-- Node60->Node64 -->
+<g id="edge196" class="edge">
+<title>Node60->Node64</title>
+<path fill="none" stroke="midnightblue" d="M2714.79,-940.37C2713,-927.29 2708.24,-902.06 2696.76,-884 2689.24,-872.17 2677.72,-861.63 2667.54,-853.73"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2669.53,-850.86 2659.41,-847.75 2665.39,-856.49 2669.53,-850.86"/>
</g>
-<!-- Node61->Node4 -->
-<g id="edge184" class="edge">
-<title>Node61->Node4</title>
-<path fill="none" stroke="midnightblue" d="M3496.05,-761.38C3504.23,-743.11 3522,-699 3522,-660 3522,-660 3522,-660 3522,-490 3522,-356.29 3469.25,-297.86 3346,-246 3239.05,-201 2897.48,-195.29 2742.63,-195.1"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2742.26,-191.6 2732.26,-195.09 2742.25,-198.6 2742.26,-191.6"/>
+<!-- Node65 -->
+<g id="node65" class="node">
+<title>Node65</title>
+<g id="a_node65"><a xlink:href="stmt_8h.html" target="_top" xlink:title="TIR statements.">
+<polygon fill="white" stroke="black" points="2603.76,-884.5 2603.76,-903.5 2687.76,-903.5 2687.76,-884.5 2603.76,-884.5"/>
+<text text-anchor="middle" x="2645.76" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/stmt.h</text>
+</a>
+</g>
+</g>
+<!-- Node60->Node65 -->
+<g id="edge213" class="edge">
+<title>Node60->Node65</title>
+<path fill="none" stroke="midnightblue" d="M2704.51,-940.32C2693.96,-932.18 2677.96,-919.84 2665.32,-910.09"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2667.27,-907.17 2657.21,-903.83 2662.99,-912.71 2667.27,-907.17"/>
</g>
-<!-- Node61->Node6 -->
+<!-- Node62->Node4 -->
<g id="edge185" class="edge">
-<title>Node61->Node6</title>
-<path fill="none" stroke="midnightblue" d="M3510.46,-761.39C3540.83,-745.81 3598,-709.86 3598,-660 3598,-660 3598,-660 3598,-378 3598,-221.68 3457.48,-224.72 3308,-179 3231.74,-155.68 3140.3,-141.69 3083.16,-134.53"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3083.25,-131.02 3072.9,-133.28 3082.4,-137.97 3083.25,-131.02"/>
+<title>Node62->Node4</title>
+<path fill="none" stroke="midnightblue" d="M3248.21,-772.15C3263.4,-715.23 3338.99,-398.2 3183.76,-246 3152.39,-215.24 2873.39,-202.24 2734.96,-197.64"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2734.95,-194.14 2724.84,-197.31 2734.72,-201.13 2734.95,-194.14"/>
</g>
-<!-- Node61->Node7 -->
+<!-- Node62->Node6 -->
<g id="edge186" class="edge">
-<title>Node61->Node7</title>
-<path fill="none" stroke="midnightblue" d="M3447.21,-769.2C3252.53,-765.57 2484.94,-749.82 2380,-725 2367.94,-722.15 2301.17,-690.94 2262.92,-672.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2264.4,-669.65 2253.87,-668.53 2261.4,-675.98 2264.4,-669.65"/>
+<title>Node62->Node6</title>
+<path fill="none" stroke="midnightblue" d="M3290.31,-774.02C3346.47,-762.39 3435.76,-733.25 3435.76,-665.5 3435.76,-665.5 3435.76,-665.5 3435.76,-378 3435.76,-183.58 3126.38,-140.61 2998.29,-131.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2998.51,-127.66 2988.29,-130.46 2998.02,-134.64 2998.51,-127.66"/>
</g>
-<!-- Node61->Node27 -->
-<g id="edge194" class="edge">
-<title>Node61->Node27</title>
-<path fill="none" stroke="midnightblue" d="M3536.52,-767.22C3600.8,-760.53 3712,-737.72 3712,-660 3712,-660 3712,-660 3712,-193.5 3712,-140.84 3674.24,-133.12 3626,-112 3566.82,-86.1 3110.26,-71.45 2984.17,-67.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.1,-64.37 2974,-67.58 2983.9,-71.36 2984.1,-64.37"/>
-</g>
-<!-- Node61->Node43 -->
+<!-- Node62->Node7 -->
<g id="edge187" class="edge">
-<title>Node61->Node43</title>
-<path fill="none" stroke="midnightblue" d="M3474.11,-761.49C3368.54,-711.28 2827.16,-453.79 2699.15,-392.91"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2700.54,-389.7 2690,-388.56 2697.53,-396.02 2700.54,-389.7"/>
-</g>
-<!-- Node62 -->
-<g id="node62" class="node">
-<title>Node62</title>
-<g id="a_node62"><a xlink:href="var_8h.html" target="_top" xlink:title="Variables in the TIR.">
-<polygon fill="white" stroke="black" points="2388.5,-705.5 2388.5,-724.5 2465.5,-724.5 2465.5,-705.5 2388.5,-705.5"/>
-<text text-anchor="middle" x="2427" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/var.h</text>
-</a>
+<title>Node62->Node7</title>
+<path fill="none" stroke="midnightblue" d="M3201.13,-778.85C3034.8,-770.78 2458.51,-742.5 2419.76,-736 2409.33,-734.25 2278.65,-696.36 2211.72,-676.87"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2212.52,-673.45 2201.94,-674.02 2210.56,-680.18 2212.52,-673.45"/>
</g>
+<!-- Node62->Node27 -->
+<g id="edge195" class="edge">
+<title>Node62->Node27</title>
+<path fill="none" stroke="midnightblue" d="M3290.1,-772.44C3397.68,-748.82 3663.76,-672.2 3663.76,-492 3663.76,-492 3663.76,-492 3663.76,-193.5 3663.76,-145.17 3635.18,-133.22 3591.76,-112 3529.1,-81.37 3032.76,-70.06 2900.21,-67.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2899.97,-64.06 2889.91,-67.37 2899.84,-71.06 2899.97,-64.06"/>
</g>
-<!-- Node61->Node62 -->
+<!-- Node62->Node43 -->
<g id="edge188" class="edge">
-<title>Node61->Node62</title>
-<path fill="none" stroke="midnightblue" d="M3447.26,-767.73C3274.91,-758.99 2654.74,-727.55 2475.71,-718.47"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2475.7,-714.97 2465.54,-717.95 2475.35,-721.96 2475.7,-714.97"/>
+<title>Node62->Node43</title>
+<path fill="none" stroke="midnightblue" d="M3232.64,-772.3C3171.92,-732.04 2911.79,-560.17 2694.76,-425 2677.74,-414.4 2658.32,-402.76 2643.5,-393.97"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2644.9,-390.73 2634.51,-388.65 2641.33,-396.76 2644.9,-390.73"/>
</g>
-<!-- Node62->Node7 -->
+<!-- Node63 -->
+<g id="node63" class="node">
+<title>Node63</title>
+<g id="a_node63"><a xlink:href="var_8h.html" target="_top" xlink:title="Variables in the TIR.">
+<polygon fill="white" stroke="black" points="2428.26,-716.5 2428.26,-735.5 2505.26,-735.5 2505.26,-716.5 2428.26,-716.5"/>
+<text text-anchor="middle" x="2466.76" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/var.h</text>
+</a>
+</g>
+</g>
+<!-- Node62->Node63 -->
<g id="edge189" class="edge">
-<title>Node62->Node7</title>
-<path fill="none" stroke="midnightblue" d="M2396.74,-705.44C2364.04,-696.2 2311.82,-681.44 2275.82,-671.26"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2276.7,-667.87 2266.12,-668.52 2274.79,-674.61 2276.7,-667.87"/>
+<title>Node62->Node63</title>
+<path fill="none" stroke="midnightblue" d="M3201.08,-777.9C3065.14,-768.48 2657.22,-740.2 2515.73,-730.39"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2515.84,-726.89 2505.62,-729.69 2515.35,-733.88 2515.84,-726.89"/>
</g>
-<!-- Node62->Node10 -->
+<!-- Node63->Node7 -->
<g id="edge190" class="edge">
-<title>Node62->Node10</title>
-<path fill="none" stroke="midnightblue" d="M2411.31,-705.31C2385.65,-691.45 2332.76,-664.34 2285,-649 1979.92,-551 1595.51,-509.67 1449.73,-496.78"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1449.91,-493.29 1439.65,-495.9 1449.3,-500.26 1449.91,-493.29"/>
-</g>
-<!-- Node62->Node27 -->
-<g id="edge193" class="edge">
-<title>Node62->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2465.62,-707.35C2515.76,-698.68 2605.97,-682.98 2683,-669 2949.05,-620.7 3037.87,-675.33 3281,-557 3361.98,-517.59 3547.55,-363.09 3574,-277 3595.54,-206.9 3623.95,-165.69 3574,-112 3533.6,-68.57 3106.6,-66.52 2984.47,-66.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.25,-63.33 2974.26,-66.86 2984.27,-70.33 2984.25,-63.33"/>
+<title>Node63->Node7</title>
+<path fill="none" stroke="midnightblue" d="M2428.2,-718.34C2381.36,-710.09 2300.01,-695.25 2230.76,-680 2225.76,-678.9 2220.53,-677.68 2215.34,-676.44"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2216.05,-673.01 2205.51,-674.03 2214.39,-679.81 2216.05,-673.01"/>
</g>
-<!-- Node62->Node28 -->
+<!-- Node63->Node10 -->
<g id="edge191" class="edge">
-<title>Node62->Node28</title>
-<path fill="none" stroke="midnightblue" d="M2423.31,-705.16C2398.54,-646.97 2250.06,-316.92 2014,-179 1969.72,-153.13 1833.65,-139.46 1745.36,-133.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1745.59,-129.63 1735.37,-132.43 1745.1,-136.62 1745.59,-129.63"/>
+<title>Node63->Node10</title>
+<path fill="none" stroke="midnightblue" d="M2441.94,-716.44C2397.95,-701.46 2303.25,-670.09 2221.76,-649 1952.6,-579.35 1624.97,-523.09 1492.54,-501.51"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1493.03,-498.04 1482.59,-499.89 1491.9,-504.95 1493.03,-498.04"/>
+</g>
+<!-- Node63->Node27 -->
+<g id="edge194" class="edge">
+<title>Node63->Node27</title>
+<path fill="none" stroke="midnightblue" d="M2505.53,-717.9C2675.81,-685.91 3354.9,-549.74 3487.76,-389 3566.93,-293.22 3610.58,-202.82 3525.76,-112 3482.71,-65.91 3026.36,-65.82 2900.02,-66.69"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2899.81,-63.19 2889.83,-66.77 2899.86,-70.19 2899.81,-63.19"/>
</g>
-<!-- Node62->Node40 -->
+<!-- Node63->Node28 -->
<g id="edge192" class="edge">
-<title>Node62->Node40</title>
-<path fill="none" stroke="midnightblue" d="M2430.91,-705.36C2438.83,-687.07 2456,-642.91 2456,-604 2456,-604 2456,-604 2456,-546 2456,-379.86 2504.17,-294.75 2385,-179 2375.5,-169.77 2201.34,-145.32 2118.76,-134.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2119.07,-130.69 2108.69,-132.82 2118.13,-137.62 2119.07,-130.69"/>
+<title>Node63->Node28</title>
+<path fill="none" stroke="midnightblue" d="M2458.29,-716.14C2391.58,-646.38 1953.04,-188.13 1935.76,-179 1870.29,-144.43 1786.05,-132.81 1725.25,-129.24"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1725.11,-125.73 1714.94,-128.7 1724.74,-132.72 1725.11,-125.73"/>
</g>
-<!-- Node63->Node4 -->
-<g id="edge196" class="edge">
-<title>Node63->Node4</title>
-<path fill="none" stroke="midnightblue" d="M2617.6,-825.28C2780.58,-822.28 3368.03,-809.49 3395,-781 3453.07,-719.65 3535.23,-740.48 3346,-369 3310.48,-299.27 3291.07,-278.77 3220,-246 3137.05,-207.75 2874.5,-198.45 2742.44,-196.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2742.45,-192.71 2732.39,-196.04 2742.33,-199.7 2742.45,-192.71"/>
+<!-- Node63->Node40 -->
+<g id="edge193" class="edge">
+<title>Node63->Node40</title>
+<path fill="none" stroke="midnightblue" d="M2466.81,-716.46C2466.61,-694.68 2464,-635.77 2442.76,-593 2388.06,-482.84 2328.28,-488.34 2255.76,-389 2192.38,-302.17 2194.29,-269.17 2135.76,-179 2128.24,-167.41 2119.07,-154.88 2111.74,-145.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2114.48,-143.03 2105.62,-137.22 2108.93,-147.29 2114.48,-143.03"/>
</g>
-<!-- Node63->Node5 -->
+<!-- Node64->Node4 -->
<g id="edge197" class="edge">
-<title>Node63->Node5</title>
-<path fill="none" stroke="midnightblue" d="M2617.67,-823.8C2767.06,-815.35 3267,-782.13 3267,-716 3267,-716 3267,-716 3267,-546 3267,-516.34 3165.09,-337.16 3132.14,-280.01"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3135.02,-278 3126.99,-271.09 3128.96,-281.5 3135.02,-278"/>
+<title>Node64->Node4</title>
+<path fill="none" stroke="midnightblue" d="M2687.32,-837.1C2811.25,-836.28 3169.76,-825.42 3169.76,-727 3169.76,-727 3169.76,-727 3169.76,-322 3169.76,-285 3165.71,-267.73 3135.76,-246 3073.58,-200.88 2853.55,-194.54 2734.92,-194.54"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2734.81,-191.04 2724.81,-194.55 2734.82,-198.04 2734.81,-191.04"/>
</g>
-<!-- Node63->Node6 -->
+<!-- Node64->Node5 -->
<g id="edge198" class="edge">
-<title>Node63->Node6</title>
-<path fill="none" stroke="midnightblue" d="M2617.51,-826.39C2779.2,-827.55 3366.7,-828.34 3546,-781 3607.69,-764.71 3674,-779.8 3674,-716 3674,-716 3674,-716 3674,-260.5 3674,-140.28 3239.1,-128.48 3082.97,-128.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3082.66,-124.61 3072.66,-128.1 3082.65,-131.61 3082.66,-124.61"/>
+<title>Node64->Node5</title>
+<path fill="none" stroke="midnightblue" d="M2687.62,-836.41C2805.5,-833.63 3131.76,-817.73 3131.76,-727 3131.76,-727 3131.76,-727 3131.76,-663.5 3131.76,-585.43 3093.76,-570.07 3093.76,-492 3093.76,-492 3093.76,-492 3093.76,-378 3093.76,-339.59 3068.37,-300.54 3051.78,-279.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3054.31,-276.68 3045.31,-271.08 3048.85,-281.07 3054.31,-276.68"/>
</g>
-<!-- Node63->Node7 -->
+<!-- Node64->Node6 -->
<g id="edge199" class="edge">
-<title>Node63->Node7</title>
-<path fill="none" stroke="midnightblue" d="M2534.09,-818.01C2476.02,-805.47 2369.59,-777.04 2293,-725 2274.26,-712.27 2257.81,-691.95 2247.45,-677.42"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2250.11,-675.11 2241.57,-668.85 2244.34,-679.08 2250.11,-675.11"/>
+<title>Node64->Node6</title>
+<path fill="none" stroke="midnightblue" d="M2687.49,-836.14C2851.33,-832.59 3445.59,-818.01 3525.76,-792 3576.18,-775.64 3625.76,-780.01 3625.76,-727 3625.76,-727 3625.76,-727 3625.76,-434 3625.76,-286.05 3552.23,-225.46 3411.76,-179 3336.3,-154.04 3105.3,-137.85 2998.71,-131.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2998.67,-128.01 2988.49,-130.92 2998.26,-135 2998.67,-128.01"/>
</g>
-<!-- Node63->Node10 -->
-<g id="edge201" class="edge">
-<title>Node63->Node10</title>
-<path fill="none" stroke="midnightblue" d="M2534.47,-825.45C2355.36,-822.56 1658,-805.54 1658,-716 1658,-716 1658,-716 1658,-602 1658,-512.71 1529.12,-494.36 1450.11,-491.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1449.88,-487.99 1439.78,-491.21 1449.68,-494.99 1449.88,-487.99"/>
-</g>
-<!-- Node63->Node14 -->
+<!-- Node64->Node7 -->
<g id="edge200" class="edge">
-<title>Node63->Node14</title>
-<path fill="none" stroke="midnightblue" d="M2534.35,-825.5C2324.25,-822.83 1385.76,-809.41 1259,-781 1197.61,-767.24 1177.97,-764.49 1129,-725 962.23,-590.51 929.33,-403.09 1075,-246 1094.32,-225.17 1164.75,-211.21 1218.36,-203.34"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1219.09,-206.77 1228.5,-201.89 1218.1,-199.84 1219.09,-206.77"/>
+<title>Node64->Node7</title>
+<path fill="none" stroke="midnightblue" d="M2604.52,-828.48C2537.94,-813.97 2403.35,-781.58 2295.76,-736 2258.35,-720.15 2218.04,-695.43 2194.12,-679.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2195.79,-676.77 2185.51,-674.19 2191.94,-682.61 2195.79,-676.77"/>
</g>
-<!-- Node63->Node20 -->
+<!-- Node64->Node10 -->
<g id="edge202" class="edge">
-<title>Node63->Node20</title>
-<path fill="none" stroke="midnightblue" d="M2534.45,-825.43C2317.21,-822.37 1316.66,-806.94 1181,-781 1036.7,-753.4 959.53,-785.48 870,-669 755.33,-519.81 736.8,-394.78 852,-246 881.18,-208.32 911.79,-233.93 953,-210 992.52,-187.05 1011.93,-184.53 1031,-143 1039.83,-123.77 1030.07,-100.17 1020.89,-84.42"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1023.72,-82.33 1015.43,-75.73 1017.79,-86.06 1023.72,-82.33"/>
+<title>Node64->Node10</title>
+<path fill="none" stroke="midnightblue" d="M2603.99,-837.15C2427.37,-837.51 1747,-835.99 1662.76,-792 1631.15,-775.49 1487.39,-570.72 1444.73,-509.3"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1447.36,-506.95 1438.79,-500.73 1441.61,-510.94 1447.36,-506.95"/>
</g>
-<!-- Node63->Node22 -->
-<g id="edge211" class="edge">
-<title>Node63->Node22</title>
-<path fill="none" stroke="midnightblue" d="M2534.17,-825.82C2301.04,-824.69 1167.15,-817.34 1016,-781 959.56,-767.43 944.56,-759.67 898,-725 780.89,-637.79 800.6,-560.31 678,-481 582.35,-419.13 190,-437.92 190,-324 190,-324 190,-324 190,-193.5 190,-148.12 226.38,-104.98 248.8,-82.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="251.28,-85.18 256.06,-75.73 246.43,-80.13 251.28,-85.18"/>
-</g>
-<!-- Node63->Node27 -->
-<g id="edge209" class="edge">
-<title>Node63->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2617.73,-825.43C2799.12,-822.81 3514.19,-810.64 3610,-781 3688.57,-756.69 3750,-742.24 3750,-660 3750,-660 3750,-660 3750,-193.5 3750,-143.05 3716.82,-133.11 3671,-112 3608.16,-83.05 3116.76,-70.53 2984.62,-67.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.42,-64.16 2974.35,-67.44 2984.27,-71.15 2984.42,-64.16"/>
+<!-- Node64->Node14 -->
+<g id="edge201" class="edge">
+<title>Node64->Node14</title>
+<path fill="none" stroke="midnightblue" d="M2604.23,-837.53C2466.14,-838.79 2009.95,-838.86 1636.76,-792 1576.18,-784.39 1153.63,-706.8 1098.76,-680 1047.07,-654.75 930.68,-555.32 911.76,-501 874.48,-393.94 831.22,-331.41 905.76,-246 925.49,-223.39 1110.21,-207.07 1210.95,-199.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1211.3,-203.25 1221.02,-199.05 1210.8,-196.27 1211.3,-203.25"/>
</g>
-<!-- Node63->Node28 -->
+<!-- Node64->Node20 -->
<g id="edge203" class="edge">
-<title>Node63->Node28</title>
-<path fill="none" stroke="midnightblue" d="M2534.41,-826.37C2401.98,-826.57 1994.09,-819.38 1913,-725 1907.21,-718.26 1912.39,-713.87 1913,-705 1919.24,-613.7 1934.76,-592.3 1941,-501 1947.99,-398.7 1886.02,-197.94 1867,-179 1848.75,-160.83 1788.07,-147.19 1738.11,-138.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1738.4,-135.2 1727.96,-137.02 1737.25,-142.1 1738.4,-135.2"/>
+<title>Node64->Node20</title>
+<path fill="none" stroke="midnightblue" d="M2603.99,-836.34C2413.04,-833.19 1621.96,-818.75 1375.76,-792 1238.31,-777.07 1188.18,-807.36 1069.76,-736 869.32,-615.22 826.3,-510.57 811.76,-277 810.9,-263.25 803.38,-256.93 811.76,-246 849.29,-197.06 890.06,-236.46 945.76,-210 967.04,-199.89 969.14,-192.03 988.76,-179 1014.35,-162.01 1032.73,-169.79 1047.76,-143 1054.5,-130.99 1053.1,-124.7 1047.76,-112 1042.74,-100.05 1032.82,-89.69 1023.47,-81.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1025.6,-79.15 1015.55,-75.81 1021.32,-84.69 1025.6,-79.15"/>
</g>
-<!-- Node63->Node41 -->
+<!-- Node64->Node22 -->
+<g id="edge212" class="edge">
+<title>Node64->Node22</title>
+<path fill="none" stroke="midnightblue" d="M2604.01,-836.47C2376.31,-833.5 1289.03,-818.03 1141.76,-792 985.92,-764.46 931.74,-773.09 803.76,-680 715.05,-615.47 735.32,-558.57 657.76,-481 519.4,-342.63 423.94,-369.63 310.76,-210 291.78,-183.23 287.24,-174.95 279.76,-143 275.3,-123.95 275.34,-101.48 276.16,-85.94"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="279.67,-85.8 276.87,-75.58 272.69,-85.31 279.67,-85.8"/>
+</g>
+<!-- Node64->Node27 -->
+<g id="edge210" class="edge">
+<title>Node64->Node27</title>
+<path fill="none" stroke="midnightblue" d="M2687.31,-836.59C2856.93,-834.71 3491.84,-825.47 3574.76,-792 3648.64,-762.18 3701.76,-745.17 3701.76,-665.5 3701.76,-665.5 3701.76,-665.5 3701.76,-193.5 3701.76,-145.75 3674.55,-133.2 3631.76,-112 3565.54,-79.19 3037.42,-69.42 2900.23,-67.43"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2900.01,-63.92 2889.96,-67.28 2899.91,-70.92 2900.01,-63.92"/>
+</g>
+<!-- Node64->Node28 -->
+<g id="edge204" class="edge">
+<title>Node64->Node28</title>
+<path fill="none" stroke="midnightblue" d="M2603.97,-835.76C2428.95,-830.12 1761.11,-804.25 1699.76,-736 1546.61,-565.62 1981.26,-440.22 1859.76,-246 1840.36,-214.99 1818.03,-227.21 1785.76,-210 1743.81,-187.62 1696.21,-159.26 1668.72,-142.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1670.23,-139.4 1659.87,-137.19 1666.59,-145.38 1670.23,-139.4"/>
+</g>
+<!-- Node64->Node41 -->
+<g id="edge209" class="edge">
+<title>Node64->Node41</title>
+<path fill="none" stroke="midnightblue" d="M2648.67,-828.33C2659.51,-794.3 2694.14,-668 2638.76,-593 2618.91,-566.12 2599.35,-577.23 2572.76,-557 2462.44,-473.08 2411.96,-459.71 2355.76,-333 2346.56,-312.26 2346.05,-246.8 2346.41,-214.25"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2349.91,-214.29 2346.56,-204.24 2342.91,-214.18 2349.91,-214.29"/>
+</g>
+<!-- Node64->Node44 -->
<g id="edge208" class="edge">
-<title>Node63->Node41</title>
-<path fill="none" stroke="midnightblue" d="M2578.84,-817.33C2588.57,-786.26 2618.7,-677.82 2595,-593 2571.19,-507.81 2411.44,-277.04 2366.02,-212.48"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2368.8,-210.36 2360.18,-204.2 2363.08,-214.39 2368.8,-210.36"/>
+<title>Node64->Node44</title>
+<path fill="none" stroke="midnightblue" d="M2679.98,-828.36C2699.38,-821.67 2722.38,-810.35 2735.76,-792 2841.05,-647.57 2819.43,-410.89 2810.52,-342.84"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2813.97,-342.2 2809.13,-332.77 2807.03,-343.16 2813.97,-342.2"/>
</g>
-<!-- Node63->Node44 -->
+<!-- Node64->Node47 -->
<g id="edge207" class="edge">
-<title>Node63->Node44</title>
-<path fill="none" stroke="midnightblue" d="M2617.82,-826.46C2658.62,-824.68 2720.08,-815.77 2759,-781 2781.97,-760.48 2783,-746.8 2783,-716 2783,-716 2783,-716 2783,-546 2783,-466.27 2826.02,-378.12 2846.01,-341.47"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2849.17,-342.99 2850.98,-332.55 2843.06,-339.58 2849.17,-342.99"/>
+<title>Node64->Node47</title>
+<path fill="none" stroke="midnightblue" d="M2641.38,-828.43C2624.04,-794.47 2559.9,-668.89 2535.9,-621.9"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2538.97,-620.21 2531.3,-612.9 2532.74,-623.39 2538.97,-620.21"/>
</g>
-<!-- Node63->Node47 -->
-<g id="edge206" class="edge">
-<title>Node63->Node47</title>
-<path fill="none" stroke="midnightblue" d="M2575.14,-817.3C2571.9,-784.63 2560.43,-668.87 2555.88,-622.96"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2559.35,-622.49 2554.88,-612.88 2552.38,-623.18 2559.35,-622.49"/>
+<!-- Node64->Node52 -->
+<g id="edge211" class="edge">
+<title>Node64->Node52</title>
+<path fill="none" stroke="midnightblue" d="M2604.01,-836.55C2342.11,-833.66 933.9,-817 846.76,-792 740.56,-761.53 632.76,-775.99 632.76,-665.5 632.76,-665.5 632.76,-665.5 632.76,-602 632.76,-568.41 619.2,-531.14 610.02,-509.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="613.21,-508.31 605.94,-500.61 606.82,-511.17 613.21,-508.31"/>
</g>
-<!-- Node63->Node51 -->
-<g id="edge210" class="edge">
-<title>Node63->Node51</title>
-<path fill="none" stroke="midnightblue" d="M2534.47,-825.96C2292.51,-825.59 1069.9,-821.69 908,-781 800.44,-753.97 758.44,-752.11 685,-669 643.48,-622 628.79,-545.76 624.05,-510.71"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="627.49,-510.01 622.8,-500.51 620.54,-510.86 627.49,-510.01"/>
+<!-- Node64->Node62 -->
+<g id="edge205" class="edge">
+<title>Node64->Node62</title>
+<path fill="none" stroke="midnightblue" d="M2687.36,-834.38C2777.82,-828.51 2999.15,-813.1 3183.76,-792 3186.13,-791.73 3188.55,-791.44 3190.99,-791.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3191.64,-794.58 3201.1,-789.81 3190.73,-787.64 3191.64,-794.58"/>
</g>
-<!-- Node63->Node61 -->
-<g id="edge204" class="edge">
-<title>Node63->Node61</title>
-<path fill="none" stroke="midnightblue" d="M2617.58,-825.27C2741.76,-822.79 3120.63,-812.95 3433,-781 3434.3,-780.87 3435.62,-780.72 3436.95,-780.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3437.79,-784 3447.28,-779.3 3436.93,-777.05 3437.79,-784"/>
+<!-- Node64->Node63 -->
+<g id="edge206" class="edge">
+<title>Node64->Node63</title>
+<path fill="none" stroke="midnightblue" d="M2631.72,-828.37C2600.87,-809.41 2526.97,-764 2489.45,-740.94"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2491.09,-737.85 2480.74,-735.59 2487.43,-743.81 2491.09,-737.85"/>
</g>
-<!-- Node63->Node62 -->
-<g id="edge205" class="edge">
-<title>Node63->Node62</title>
-<path fill="none" stroke="midnightblue" d="M2564.31,-817.37C2538.85,-798.57 2478.16,-753.77 2446.69,-730.53"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2448.76,-727.72 2438.64,-724.59 2444.6,-733.35 2448.76,-727.72"/>
+<!-- Node65->Node22 -->
+<g id="edge217" class="edge">
+<title>Node65->Node22</title>
+<path fill="none" stroke="midnightblue" d="M2603.53,-885.06C2600.57,-884.65 2597.62,-884.29 2594.76,-884 2151.47,-838.85 1018.7,-919.53 591.76,-792 283.08,-699.8 135.21,-637.75 30.76,-333 -1.21,-239.7 -25.59,-174.42 50.76,-112 80.13,-87.99 189.68,-74.92 245.14,-69.71"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="245.52,-73.19 255.16,-68.8 244.88,-66.22 245.52,-73.19"/>
</g>
-<!-- Node64->Node22 -->
+<!-- Node65->Node24 -->
<g id="edge216" class="edge">
-<title>Node64->Node22</title>
-<path fill="none" stroke="midnightblue" d="M2533.77,-874.06C2530.81,-873.65 2527.86,-873.29 2525,-873 2081.96,-827.59 953.34,-895.66 523,-781 276.27,-715.26 165.73,-636.51 103,-389 72.74,-269.62 13.87,-203.76 96,-112 114.14,-91.73 189.41,-77.87 233.48,-71.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="234.03,-74.78 243.43,-69.89 233.03,-67.85 234.03,-74.78"/>
+<title>Node65->Node24</title>
+<path fill="none" stroke="midnightblue" d="M2616.65,-884.44C2518.02,-854.96 2198.56,-755.27 2124.76,-680 2099.1,-653.83 2092.76,-640.65 2092.76,-604 2092.76,-604 2092.76,-604 2092.76,-546 2092.76,-395.45 2120.6,-359.79 2135.76,-210 2140.15,-166.61 2145.52,-155.35 2140.76,-112 2139.79,-103.14 2137.77,-93.47 2135.8,-85.38"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2139.14,-84.33 2133.24,-75.53 2132.37,-86.09 2139.14,-84.33"/>
</g>
-<!-- Node64->Node24 -->
+<!-- Node65->Node27 -->
<g id="edge215" class="edge">
-<title>Node64->Node24</title>
-<path fill="none" stroke="midnightblue" d="M2534.69,-873.48C2451.83,-853.92 2266.54,-797.29 2188,-669 2104.54,-532.68 2130.04,-472.69 2137,-313 2139,-267.09 2144,-255.91 2146,-210 2146.6,-196.24 2147.68,-192.67 2146,-179 2141.85,-145.31 2130.94,-107.17 2124.02,-85.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2127.31,-84.02 2120.91,-75.58 2120.65,-86.17 2127.31,-84.02"/>
+<title>Node65->Node27</title>
+<path fill="none" stroke="midnightblue" d="M2687.88,-891.22C2850.51,-883.95 3437.14,-853.91 3611.76,-792 3687.15,-765.28 3739.76,-745.48 3739.76,-665.5 3739.76,-665.5 3739.76,-665.5 3739.76,-193.5 3739.76,-146.04 3713.24,-133.16 3670.76,-112 3600.95,-77.23 3041.33,-68.87 2900.06,-67.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2899.92,-63.81 2889.89,-67.2 2899.85,-70.81 2899.92,-63.81"/>
</g>
-<!-- Node64->Node27 -->
+<!-- Node65->Node64 -->
<g id="edge214" class="edge">
-<title>Node64->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2618.03,-880.48C2791.86,-873.82 3454.75,-844.68 3653,-781 3729.71,-756.36 3788,-740.57 3788,-660 3788,-660 3788,-660 3788,-193.5 3788,-144.27 3757.47,-133.1 3713,-112 3646.49,-80.45 3120.85,-69.75 2984.31,-67.49"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2984.15,-63.99 2974.09,-67.32 2984.04,-70.99 2984.15,-63.99"/>
-</g>
-<!-- Node64->Node63 -->
-<g id="edge213" class="edge">
-<title>Node64->Node63</title>
-<path fill="none" stroke="midnightblue" d="M2576,-873.08C2576,-866.01 2576,-855.86 2576,-846.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2579.5,-846.75 2576,-836.75 2572.5,-846.75 2579.5,-846.75"/>
+<title>Node65->Node64</title>
+<path fill="none" stroke="midnightblue" d="M2645.76,-884.08C2645.76,-877.01 2645.76,-866.86 2645.76,-857.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2649.26,-857.75 2645.76,-847.75 2642.26,-857.75 2649.26,-857.75"/>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/array__utils_8h.html b/docs/reference/api/doxygen/array__utils_8h.html
index 8a801f1205..1e7c80f843 100644
--- a/docs/reference/api/doxygen/array__utils_8h.html
+++ b/docs/reference/api/doxygen/array__utils_8h.html
@@ -78,7 +78,7 @@ $(function() {
</div><div class="textblock"><div class="dynheader">
Include dependency graph for array_utils.h:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="array__utils_8h__incl.svg" width="4732" height="1515"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="array__utils_8h__incl.svg" width="4732" height="1530"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
diff --git a/docs/reference/api/doxygen/array__utils_8h__incl.svg b/docs/reference/api/doxygen/array__utils_8h__incl.svg
index 08328157f5..783ef4eb61 100644
--- a/docs/reference/api/doxygen/array__utils_8h__incl.svg
+++ b/docs/reference/api/doxygen/array__utils_8h__incl.svg
@@ -4,18 +4,18 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: include/tvm/topi/detail/array_utils.h Pages: 1 -->
-<svg width="3549pt" height="1136pt"
- viewBox="0.00 0.00 3549.00 1136.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 1132)">
+<svg width="3549pt" height="1147pt"
+ viewBox="0.00 0.00 3549.00 1147.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 1143)">
<title>include/tvm/topi/detail/array_utils.h</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1132 3545,-1132 3545,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1143 3545,-1143 3545,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Utility functions for handling arrays.">
-<polygon fill="#bfbfbf" stroke="black" points="1320.5,-1097.5 1320.5,-1127.5 1447.5,-1127.5 1447.5,-1097.5 1320.5,-1097.5"/>
-<text text-anchor="start" x="1328.5" y="-1115.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/topi/detail</text>
-<text text-anchor="middle" x="1384" y="-1104.5" font-family="Helvetica,sans-Serif" font-size="10.00">/array_utils.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="432.5,-1108.5 432.5,-1138.5 559.5,-1138.5 559.5,-1108.5 432.5,-1108.5"/>
+<text text-anchor="start" x="440.5" y="-1126.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/topi/detail</text>
+<text text-anchor="middle" x="496" y="-1115.5" font-family="Helvetica,sans-Serif" font-size="10.00">/array_utils.h</text>
</a>
</g>
</g>
@@ -23,1919 +23,1935 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors.">
-<polygon fill="white" stroke="black" points="1330.5,-1041.5 1330.5,-1060.5 1437.5,-1060.5 1437.5,-1041.5 1330.5,-1041.5"/>
-<text text-anchor="middle" x="1384" y="-1048.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/te/operation.h</text>
+<polygon fill="white" stroke="black" points="442.5,-1052.5 442.5,-1071.5 549.5,-1071.5 549.5,-1052.5 442.5,-1052.5"/>
+<text text-anchor="middle" x="496" y="-1059.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/te/operation.h</text>
</a>
</g>
</g>
<!-- Node1->Node2 -->
<g id="edge1" class="edge">
<title>Node1->Node2</title>
-<path fill="none" stroke="midnightblue" d="M1384,-1097.4C1384,-1089.47 1384,-1079.46 1384,-1070.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1387.5,-1070.66 1384,-1060.66 1380.5,-1070.66 1387.5,-1070.66"/>
+<path fill="none" stroke="midnightblue" d="M496,-1108.4C496,-1100.47 496,-1090.46 496,-1081.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="499.5,-1081.66 496,-1071.66 492.5,-1081.66 499.5,-1081.66"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="analyzer_8h.html" target="_top" xlink:title="Algebra expression simplifications.">
-<polygon fill="white" stroke="black" points="433.5,-929.5 433.5,-948.5 548.5,-948.5 548.5,-929.5 433.5,-929.5"/>
-<text text-anchor="middle" x="491" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/arith/analyzer.h</text>
+<polygon fill="white" stroke="black" points="198.5,-940.5 198.5,-959.5 313.5,-959.5 313.5,-940.5 198.5,-940.5"/>
+<text text-anchor="middle" x="256" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/arith/analyzer.h</text>
</a>
</g>
</g>
<!-- Node2->Node3 -->
<g id="edge2" class="edge">
<title>Node2->Node3</title>
-<path fill="none" stroke="midnightblue" d="M1330.38,-1049.3C1220.96,-1047.19 964.39,-1038.75 752,-1005 671.1,-992.15 578.52,-966.39 528.26,-951.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="529.07,-948.04 518.49,-948.52 527.06,-954.74 529.07,-948.04"/>
+<path fill="none" stroke="midnightblue" d="M442.12,-1053.25C407.91,-1046.75 363.55,-1035.33 328,-1016 305,-1003.49 283.38,-982.2 269.94,-967.41"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="272.27,-964.75 263.03,-959.57 267.02,-969.38 272.27,-964.75"/>
</g>
<!-- Node26 -->
<g id="node26" class="node">
<title>Node26</title>
<g id="a_node26"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="652.5,-118 652.5,-137 699.5,-137 699.5,-118 652.5,-118"/>
-<text text-anchor="middle" x="676" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
+<polygon fill="white" stroke="#bfbfbf" points="1505.5,-118 1505.5,-137 1552.5,-137 1552.5,-118 1505.5,-118"/>
+<text text-anchor="middle" x="1529" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
</a>
</g>
</g>
<!-- Node2->Node26 -->
-<g id="edge223" class="edge">
+<g id="edge224" class="edge">
<title>Node2->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1330.4,-1048.48C1080.06,-1041.02 38,-1006.02 38,-940 38,-940 38,-940 38,-602 38,-379.44 101.92,-267.79 306,-179 366.11,-152.85 562.16,-136.5 641.85,-130.79"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="642.57,-134.24 652.3,-130.05 642.08,-127.26 642.57,-134.24"/>
+<path fill="none" stroke="midnightblue" d="M489.93,-1052.27C461.87,-1011.03 346,-830.73 346,-665.5 346,-665.5 346,-665.5 346,-546 346,-361.85 911.83,-229.22 1089,-179 1236.01,-137.33 1419.92,-129.92 1494.86,-128.69"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1495.16,-132.19 1505.11,-128.55 1495.06,-125.19 1495.16,-132.19"/>
</g>
<!-- Node28 -->
<g id="node28" class="node">
<title>Node28</title>
<g id="a_node28"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2493,-56.5 2493,-75.5 2537,-75.5 2537,-56.5 2493,-56.5"/>
-<text text-anchor="middle" x="2515" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
+<polygon fill="white" stroke="#bfbfbf" points="739,-56.5 739,-75.5 783,-75.5 783,-56.5 739,-56.5"/>
+<text text-anchor="middle" x="761" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
</a>
</g>
</g>
<!-- Node2->Node28 -->
-<g id="edge221" class="edge">
+<g id="edge222" class="edge">
<title>Node2->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1437.71,-1050.1C1767.37,-1050.36 3503,-1046.69 3503,-940 3503,-940 3503,-940 3503,-770 3503,-665.71 3427,-652.29 3427,-548 3427,-548 3427,-548 3427,-322 3427,-208.33 3387.49,-151.77 3281,-112 3211.59,-86.07 2684.31,-71.22 2547.4,-67.78"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2547.23,-64.27 2537.15,-67.52 2547.06,-71.27 2547.23,-64.27"/>
+<path fill="none" stroke="midnightblue" d="M442.45,-1060.35C314.19,-1057.36 0,-1040.86 0,-951 0,-951 0,-951 0,-193.5 0,-150.77 14.29,-133.88 51,-112 109.69,-77.02 597.39,-68.89 728.6,-67.33"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="728.84,-70.83 738.8,-67.21 728.76,-63.83 728.84,-70.83"/>
</g>
<!-- Node50 -->
<g id="node50" class="node">
<title>Node50</title>
<g id="a_node50"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions.">
-<polygon fill="white" stroke="black" points="1582.5,-817.5 1582.5,-836.5 1665.5,-836.5 1665.5,-817.5 1582.5,-817.5"/>
-<text text-anchor="middle" x="1624" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/expr.h</text>
+<polygon fill="white" stroke="black" points="1155.5,-828.5 1155.5,-847.5 1238.5,-847.5 1238.5,-828.5 1155.5,-828.5"/>
+<text text-anchor="middle" x="1197" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/expr.h</text>
</a>
</g>
</g>
<!-- Node2->Node50 -->
-<g id="edge219" class="edge">
+<g id="edge220" class="edge">
<title>Node2->Node50</title>
-<path fill="none" stroke="midnightblue" d="M1411.96,-1041.43C1434.59,-1033.79 1466.74,-1021.3 1492,-1005 1553.03,-965.63 1575.9,-956.58 1611,-893 1618.91,-878.67 1622.04,-860.21 1623.27,-846.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1626.76,-846.76 1623.91,-836.56 1619.78,-846.31 1626.76,-846.76"/>
+<path fill="none" stroke="midnightblue" d="M549.75,-1057.02C679.97,-1046.6 1008.53,-1015.41 1102,-960 1144.17,-935 1174.71,-883.65 1188.61,-856.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1191.81,-858.02 1193.12,-847.5 1185.54,-854.9 1191.81,-858.02"/>
</g>
<!-- Node51 -->
<g id="node51" class="node">
<title>Node51</title>
<g id="a_node51"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n-dimensional array, to represent a memory buffer.">
-<polygon fill="white" stroke="black" points="2983.5,-761.5 2983.5,-780.5 3072.5,-780.5 3072.5,-761.5 2983.5,-761.5"/>
-<text text-anchor="middle" x="3028" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/buffer.h</text>
+<polygon fill="white" stroke="black" points="776.5,-772.5 776.5,-791.5 865.5,-791.5 865.5,-772.5 776.5,-772.5"/>
+<text text-anchor="middle" x="821" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/buffer.h</text>
</a>
</g>
</g>
<!-- Node2->Node51 -->
-<g id="edge218" class="edge">
+<g id="edge219" class="edge">
<title>Node2->Node51</title>
-<path fill="none" stroke="midnightblue" d="M1434.55,-1041.45C1677.31,-1000.4 2722.07,-823.73 2973.45,-781.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2974.16,-784.65 2983.44,-779.54 2973,-777.75 2974.16,-784.65"/>
+<path fill="none" stroke="midnightblue" d="M506.08,-1052.38C552.24,-1012.89 743.68,-849.13 803.24,-798.19"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="805.71,-800.68 811.03,-791.52 801.16,-795.36 805.71,-800.68"/>
</g>
<!-- Node53 -->
<g id="node53" class="node">
<title>Node53</title>
<g id="a_node53"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="724.5,-649.5 724.5,-668.5 817.5,-668.5 817.5,-649.5 724.5,-649.5"/>
-<text text-anchor="middle" x="771" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
+<polygon fill="white" stroke="#bfbfbf" points="185.5,-655 185.5,-674 278.5,-674 278.5,-655 185.5,-655"/>
+<text text-anchor="middle" x="232" y="-662" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
</a>
</g>
</g>
<!-- Node2->Node53 -->
-<g id="edge222" class="edge">
+<g id="edge223" class="edge">
<title>Node2->Node53</title>
-<path fill="none" stroke="midnightblue" d="M1330.24,-1046.08C1179.88,-1034.4 766,-997.08 766,-940 766,-940 766,-940 766,-770 766,-737.91 768.15,-700.62 769.63,-678.74"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="773.14,-678.77 770.35,-668.55 766.15,-678.28 773.14,-678.77"/>
+<path fill="none" stroke="midnightblue" d="M442.42,-1059C353.18,-1052.27 178.42,-1023.71 123,-904 84.25,-820.3 175.09,-719.71 214.69,-681.38"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="217.44,-683.6 222.29,-674.18 212.63,-678.51 217.44,-683.6"/>
</g>
<!-- Node57 -->
<g id="node57" class="node">
<title>Node57</title>
<g id="a_node57"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object.">
-<polygon fill="white" stroke="black" points="1391.5,-985.5 1391.5,-1004.5 1482.5,-1004.5 1482.5,-985.5 1391.5,-985.5"/>
-<text text-anchor="middle" x="1437" y="-992.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/te/tensor.h</text>
+<polygon fill="white" stroke="black" points="1150.5,-996.5 1150.5,-1015.5 1241.5,-1015.5 1241.5,-996.5 1150.5,-996.5"/>
+<text text-anchor="middle" x="1196" y="-1003.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/te/tensor.h</text>
</a>
</g>
</g>
<!-- Node2->Node57 -->
<g id="edge161" class="edge">
<title>Node2->Node57</title>
-<path fill="none" stroke="midnightblue" d="M1392.75,-1041.08C1400.47,-1033.22 1411.9,-1021.57 1421.22,-1012.08"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1423.9,-1014.34 1428.41,-1004.75 1418.91,-1009.44 1423.9,-1014.34"/>
+<path fill="none" stroke="midnightblue" d="M549.56,-1058.61C659.52,-1053.4 918.58,-1039.55 1135,-1016 1136.72,-1015.81 1138.46,-1015.61 1140.23,-1015.4"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1140.93,-1018.84 1150.41,-1014.11 1140.05,-1011.9 1140.93,-1018.84"/>
</g>
<!-- Node60 -->
<g id="node60" class="node">
<title>Node60</title>
<g id="a_node60"><a xlink:href="tir_2op_8h.html" target="_top" xlink:title="Common operators defined for Expr.">
-<polygon fill="white" stroke="black" points="1302,-929.5 1302,-948.5 1376,-948.5 1376,-929.5 1302,-929.5"/>
-<text text-anchor="middle" x="1339" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/op.h</text>
+<polygon fill="white" stroke="black" points="1338,-940.5 1338,-959.5 1412,-959.5 1412,-940.5 1338,-940.5"/>
+<text text-anchor="middle" x="1375" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/op.h</text>
</a>
</g>
</g>
<!-- Node2->Node60 -->
-<g id="edge220" class="edge">
+<g id="edge221" class="edge">
<title>Node2->Node60</title>
-<path fill="none" stroke="midnightblue" d="M1380.47,-1041.37C1373.14,-1023.46 1356.15,-981.92 1346.34,-957.95"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1349.54,-956.52 1342.51,-948.59 1343.06,-959.17 1349.54,-956.52"/>
+<path fill="none" stroke="midnightblue" d="M549.63,-1060.72C699.23,-1059.49 1118.8,-1052.76 1251,-1016 1289.87,-1005.19 1330.46,-981.08 1354.2,-965.45"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1356.37,-968.21 1362.72,-959.73 1352.47,-962.4 1356.37,-968.21"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="int__set_8h.html" target="_top" xlink:title="Integer set.">
-<polygon fill="white" stroke="black" points="1182.5,-873.5 1182.5,-892.5 1289.5,-892.5 1289.5,-873.5 1182.5,-873.5"/>
-<text text-anchor="middle" x="1236" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/arith/int_set.h</text>
+<polygon fill="white" stroke="black" points="909.5,-884.5 909.5,-903.5 1016.5,-903.5 1016.5,-884.5 909.5,-884.5"/>
+<text text-anchor="middle" x="963" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/arith/int_set.h</text>
</a>
</g>
</g>
<!-- Node3->Node4 -->
<g id="edge3" class="edge">
<title>Node3->Node4</title>
-<path fill="none" stroke="midnightblue" d="M548.76,-934.34C661.51,-927.1 918.81,-910.18 1135,-893 1147,-892.05 1159.79,-890.96 1172.09,-889.88"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1172.64,-893.35 1182.29,-888.98 1172.02,-886.37 1172.64,-893.35"/>
+<path fill="none" stroke="midnightblue" d="M313.56,-944.6C444.16,-934.63 762.21,-910.34 898.87,-899.9"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="899.47,-903.36 909.17,-899.11 898.93,-896.38 899.47,-903.36"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM.">
-<polygon fill="white" stroke="black" points="1406.5,-649.5 1406.5,-668.5 1485.5,-668.5 1485.5,-649.5 1406.5,-649.5"/>
-<text text-anchor="middle" x="1446" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
+<polygon fill="white" stroke="black" points="1104.5,-655 1104.5,-674 1183.5,-674 1183.5,-655 1104.5,-655"/>
+<text text-anchor="middle" x="1144" y="-662" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
</a>
</g>
</g>
<!-- Node3->Node5 -->
<g id="edge152" class="edge">
<title>Node3->Node5</title>
-<path fill="none" stroke="midnightblue" d="M521.11,-929.47C614.27,-903.18 906.25,-821.48 1150,-761 1219.9,-743.66 1240.45,-749.98 1308,-725 1325.9,-718.38 1328.85,-713.36 1346,-705 1369.53,-693.53 1396.63,-681.4 1416.68,-672.63"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1418.14,-675.81 1425.91,-668.61 1415.34,-669.39 1418.14,-675.81"/>
+<path fill="none" stroke="midnightblue" d="M301.94,-940.48C405.87,-920.54 666.25,-866.78 875,-792 968.21,-758.61 1072.79,-704.22 1119.35,-679.06"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1121.27,-682 1128.38,-674.15 1117.92,-675.85 1121.27,-682"/>
</g>
<!-- Node3->Node26 -->
<g id="edge160" class="edge">
<title>Node3->Node26</title>
-<path fill="none" stroke="midnightblue" d="M464.97,-929.42C401.87,-907.11 240.57,-840.84 168,-725 139.2,-679.03 152,-658.25 152,-604 152,-604 152,-604 152,-546 152,-357.18 195.33,-259.77 366,-179 458.8,-135.08 582.78,-128.45 641.88,-128.01"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="642.14,-131.51 652.14,-128 642.13,-124.51 642.14,-131.51"/>
+<path fill="none" stroke="midnightblue" d="M256.75,-940.38C257.49,-931.33 258.58,-916.68 259,-904 260.05,-872.39 256.55,-825.99 256,-792 255.86,-783.11 252.05,-779.96 256,-772 346.89,-588.63 826.99,-333.52 1012,-246 1091.43,-208.43 1112.83,-200.62 1198,-179 1304.84,-151.88 1435,-137.23 1495.32,-131.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1495.78,-134.93 1505.41,-130.51 1495.13,-127.96 1495.78,-134.93"/>
</g>
<!-- Node43 -->
<g id="node43" class="node">
<title>Node43</title>
<g id="a_node43"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="770,-185 770,-204 814,-204 814,-185 770,-185"/>
-<text text-anchor="middle" x="792" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">limits</text>
+<polygon fill="white" stroke="#bfbfbf" points="461,-185 461,-204 505,-204 505,-185 461,-185"/>
+<text text-anchor="middle" x="483" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">limits</text>
</a>
</g>
</g>
<!-- Node3->Node43 -->
<g id="edge157" class="edge">
<title>Node3->Node43</title>
-<path fill="none" stroke="midnightblue" d="M487.09,-929.36C479.17,-911.07 462,-866.91 462,-828 462,-828 462,-828 462,-490 462,-373.79 467.64,-321.48 556,-246 586.37,-220.06 702.38,-204.75 759.64,-198.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="760.03,-202.1 769.61,-197.58 759.3,-195.14 760.03,-202.1"/>
+<path fill="none" stroke="midnightblue" d="M250.25,-940.32C241.71,-927.61 224.96,-903.33 209,-884 169.75,-836.49 114,-844.63 114,-783 114,-783 114,-783 114,-378 114,-228.45 360.52,-201.45 450.57,-196.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="450.93,-200.06 460.75,-196.08 450.59,-193.07 450.93,-200.06"/>
</g>
<!-- Node3->Node53 -->
<g id="edge159" class="edge">
<title>Node3->Node53</title>
-<path fill="none" stroke="midnightblue" d="M499.69,-929.38C539.29,-890.05 703.04,-727.47 755.06,-675.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="757.78,-678.05 762.41,-668.52 752.85,-673.09 757.78,-678.05"/>
+<path fill="none" stroke="midnightblue" d="M254.91,-940.38C253.14,-927.73 249.1,-903.53 242,-884 235.82,-867 228.13,-865.35 223,-848 206.36,-791.7 210.09,-774.17 218,-716 219.48,-705.13 222.67,-693.29 225.64,-683.81"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="228.97,-684.88 228.78,-674.29 222.32,-682.69 228.97,-684.88"/>
</g>
<!-- Node54 -->
<g id="node54" class="node">
<title>Node54</title>
<g id="a_node54"><a xlink:href="with_8h.html" target="_top" xlink:title="RAII wrapper function to enter and exit a context object similar to python's with syntax.">
-<polygon fill="white" stroke="black" points="324.5,-705.5 324.5,-724.5 433.5,-724.5 433.5,-705.5 324.5,-705.5"/>
-<text text-anchor="middle" x="379" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/support/with.h</text>
+<polygon fill="white" stroke="black" points="1441.5,-716.5 1441.5,-735.5 1550.5,-735.5 1550.5,-716.5 1441.5,-716.5"/>
+<text text-anchor="middle" x="1496" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/support/with.h</text>
</a>
</g>
</g>
<!-- Node3->Node54 -->
<g id="edge153" class="edge">
<title>Node3->Node54</title>
-<path fill="none" stroke="midnightblue" d="M480.59,-929.27C471.04,-920.82 457.06,-907.22 448,-893 414.25,-840.02 392.52,-767.89 383.61,-734.44"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="386.98,-733.47 381.09,-724.66 380.2,-735.22 386.98,-733.47"/>
+<path fill="none" stroke="midnightblue" d="M204.52,-940.48C160.74,-931.03 108.55,-913.14 133,-884 217.61,-783.16 1172.32,-739.41 1431.44,-729.34"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1431.59,-732.84 1441.45,-728.96 1431.33,-725.84 1431.59,-732.84"/>
</g>
<!-- Node56 -->
<g id="node56" class="node">
<title>Node56</title>
<g id="a_node56"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="210,-873.5 210,-892.5 268,-892.5 268,-873.5 210,-873.5"/>
-<text text-anchor="middle" x="239" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
+<polygon fill="white" stroke="#bfbfbf" points="142,-884.5 142,-903.5 200,-903.5 200,-884.5 142,-884.5"/>
+<text text-anchor="middle" x="171" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
</a>
</g>
</g>
<!-- Node3->Node56 -->
<g id="edge158" class="edge">
<title>Node3->Node56</title>
-<path fill="none" stroke="midnightblue" d="M451.07,-929.44C403.62,-919.28 324.97,-902.42 277.95,-892.35"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="278.65,-888.92 268.14,-890.24 277.18,-895.76 278.65,-888.92"/>
+<path fill="none" stroke="midnightblue" d="M242.34,-940.32C229.08,-931.9 208.73,-918.97 193.15,-909.07"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="194.94,-906.06 184.62,-903.65 191.19,-911.97 194.94,-906.06"/>
</g>
<!-- Node4->Node5 -->
<g id="edge4" class="edge">
<title>Node4->Node5</title>
-<path fill="none" stroke="midnightblue" d="M1244.23,-873.3C1275.72,-840.01 1388.84,-720.42 1430.48,-676.41"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1433.27,-678.55 1437.6,-668.88 1428.18,-673.74 1433.27,-678.55"/>
+<path fill="none" stroke="midnightblue" d="M966.87,-884.47C979.41,-857.47 1021.17,-772.37 1074,-716 1087.45,-701.65 1105.51,-688.74 1119.91,-679.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1122.1,-682.33 1128.77,-674.1 1118.42,-676.37 1122.1,-682.33"/>
</g>
<!-- Node4->Node50 -->
<g id="edge123" class="edge">
<title>Node4->Node50</title>
-<path fill="none" stroke="midnightblue" d="M1289.54,-874.55C1364.2,-864.16 1498.66,-845.44 1572.31,-835.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1572.87,-838.65 1582.29,-833.81 1571.9,-831.72 1572.87,-838.65"/>
+<path fill="none" stroke="midnightblue" d="M1000.08,-884.44C1040.73,-875.06 1106.03,-859.99 1150.18,-849.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1151.14,-853.18 1160.1,-847.52 1149.56,-846.35 1151.14,-853.18"/>
</g>
<!-- Node4->Node53 -->
<g id="edge151" class="edge">
<title>Node4->Node53</title>
-<path fill="none" stroke="midnightblue" d="M1220.09,-873.42C1155.28,-838.47 914.26,-708.56 906,-705 875.02,-691.64 838.68,-679.73 811.51,-671.53"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="812.16,-668.07 801.58,-668.57 810.16,-674.78 812.16,-668.07"/>
+<path fill="none" stroke="midnightblue" d="M920.77,-884.48C857.01,-871.69 732.31,-847.03 626,-828 529.33,-810.7 498.7,-829.65 408,-792 342.21,-764.69 277.47,-708.59 248.21,-681.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="250.28,-678.36 240.62,-674.01 245.46,-683.43 250.28,-678.36"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2587.5,-118 2587.5,-137 2676.5,-137 2676.5,-118 2587.5,-118"/>
-<text text-anchor="middle" x="2632" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/string.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="979.5,-118 979.5,-137 1068.5,-137 1068.5,-118 979.5,-118"/>
+<text text-anchor="middle" x="1024" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/string.h</text>
</a>
</g>
</g>
<!-- Node5->Node6 -->
<g id="edge5" class="edge">
<title>Node5->Node6</title>
-<path fill="none" stroke="midnightblue" d="M1485.79,-651.22C1490.57,-650.44 1495.39,-649.69 1500,-649 1620.16,-631.01 1650.82,-630.9 1771,-613 2219.34,-546.21 2492.67,-750.61 2766,-389 2829.78,-304.62 2701.5,-185.42 2651.12,-143.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2653.17,-140.82 2643.21,-137.21 2648.75,-146.24 2653.17,-140.82"/>
+<path fill="none" stroke="midnightblue" d="M1116.61,-655C1090.04,-646.23 1049.03,-631.27 1016,-613 960.93,-582.53 816.38,-501.17 788,-445 767.55,-404.52 648.5,-394.06 861,-179 889.43,-150.23 933.89,-137.78 969.2,-132.43"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="969.93,-135.86 979.37,-131.05 968.99,-128.93 969.93,-135.86"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="source__map_8h.html" target="_top" xlink:title="A map from source names to source code.">
-<polygon fill="white" stroke="black" points="928.5,-537.5 928.5,-556.5 1045.5,-556.5 1045.5,-537.5 928.5,-537.5"/>
-<text text-anchor="middle" x="987" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/source_map.h</text>
+<polygon fill="white" stroke="black" points="2074.5,-537.5 2074.5,-556.5 2191.5,-556.5 2191.5,-537.5 2074.5,-537.5"/>
+<text text-anchor="middle" x="2133" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/source_map.h</text>
</a>
</g>
</g>
<!-- Node5->Node7 -->
<g id="edge6" class="edge">
<title>Node5->Node7</title>
-<path fill="none" stroke="midnightblue" d="M1406.49,-657.97C1340.71,-656.81 1205.37,-649.68 1098,-613 1063.42,-601.19 1027.7,-577.92 1006.42,-562.67"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1008.37,-559.76 998.23,-556.68 1004.24,-565.41 1008.37,-559.76"/>
+<path fill="none" stroke="midnightblue" d="M1147.97,-654.8C1155.66,-639.15 1174.19,-606.6 1201,-593 1277.23,-554.32 1861.37,-548.83 2064.02,-548.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2064.26,-551.6 2074.24,-548.06 2064.23,-544.6 2064.26,-551.6"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes.">
-<polygon fill="white" stroke="black" points="1567.5,-481.5 1567.5,-500.5 1666.5,-500.5 1666.5,-481.5 1567.5,-481.5"/>
-<text text-anchor="middle" x="1617" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
+<polygon fill="white" stroke="black" points="1643.5,-481.5 1643.5,-500.5 1742.5,-500.5 1742.5,-481.5 1643.5,-481.5"/>
+<text text-anchor="middle" x="1693" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
</a>
</g>
</g>
<!-- Node5->Node9 -->
<g id="edge116" class="edge">
<title>Node5->Node9</title>
-<path fill="none" stroke="midnightblue" d="M1441.14,-649.36C1434.49,-636.26 1424.51,-610.99 1435,-593 1463.71,-543.77 1526.13,-516.86 1569.82,-503.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1571.05,-506.75 1579.66,-500.57 1569.08,-500.03 1571.05,-506.75"/>
+<path fill="none" stroke="midnightblue" d="M1144.93,-654.66C1146.99,-639.67 1153.34,-609.28 1172,-593 1240.31,-533.41 1511.4,-505.76 1633.2,-496.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1633.76,-499.62 1643.46,-495.35 1633.22,-492.64 1633.76,-499.62"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime.">
-<polygon fill="white" stroke="black" points="935.5,-118 935.5,-137 1054.5,-137 1054.5,-118 935.5,-118"/>
-<text text-anchor="middle" x="995" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/object.h</text>
+<polygon fill="white" stroke="black" points="2623.5,-118 2623.5,-137 2742.5,-137 2742.5,-118 2623.5,-118"/>
+<text text-anchor="middle" x="2683" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/object.h</text>
</a>
</g>
</g>
<!-- Node5->Node17 -->
<g id="edge117" class="edge">
<title>Node5->Node17</title>
-<path fill="none" stroke="midnightblue" d="M1406.04,-654.75C1347.33,-649.26 1241.51,-636.37 1212,-613 1131.26,-549.06 1026.11,-227.51 1000.7,-146.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1003.99,-145.63 997.66,-137.14 997.31,-147.73 1003.99,-145.63"/>
+<path fill="none" stroke="midnightblue" d="M1183.78,-659.83C1220.03,-656.59 1275.08,-651.94 1323,-649 1418.35,-643.14 2091.74,-644.27 2182,-613 2300.77,-571.85 2554.89,-372.17 2637,-277 2659.81,-250.57 2667.51,-243.3 2678,-210 2684.51,-189.35 2685.03,-164.32 2684.39,-147.5"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2687.87,-147.11 2683.82,-137.32 2680.89,-147.49 2687.87,-147.11"/>
</g>
<!-- Node25 -->
<g id="node25" class="node">
<title>Node25</title>
<g id="a_node25"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="3354.5,-56.5 3354.5,-75.5 3423.5,-75.5 3423.5,-56.5 3354.5,-56.5"/>
-<text text-anchor="middle" x="3389" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
+<polygon fill="white" stroke="#bfbfbf" points="2926.5,-56.5 2926.5,-75.5 2995.5,-75.5 2995.5,-56.5 2926.5,-56.5"/>
+<text text-anchor="middle" x="2961" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
</a>
</g>
</g>
<!-- Node5->Node25 -->
<g id="edge122" class="edge">
<title>Node5->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1485.74,-650.87C1490.54,-650.16 1495.37,-649.51 1500,-649 1783.59,-617.5 1856.4,-633.46 2141,-613 2501.73,-587.07 2612.5,-638.53 2947,-501 3049.95,-458.67 3087.56,-462.67 3171,-389 3277.53,-294.95 3356.26,-137.86 3380.88,-84.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3384.2,-86.15 3385.19,-75.6 3377.84,-83.23 3384.2,-86.15"/>
+<path fill="none" stroke="midnightblue" d="M1171.45,-654.98C1180.17,-652.62 1189.91,-650.34 1199,-649 1422.94,-615.94 1998.64,-672.65 2217,-613 2536.92,-525.61 2587.14,-418.54 2845,-210 2879.5,-182.1 2891.45,-177.78 2919,-143 2933.44,-124.78 2945.72,-100.93 2953.21,-84.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2956.49,-86.09 2957.41,-75.54 2950.11,-83.21 2956.49,-86.09"/>
</g>
<!-- Node5->Node28 -->
<g id="edge121" class="edge">
<title>Node5->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1485.79,-651.22C1490.57,-650.44 1495.39,-649.69 1500,-649 1620.16,-631.01 1650.82,-630.9 1771,-613 2318.68,-531.41 2677.4,-793.42 2985,-333 3023.04,-276.06 3031.46,-233.5 2990,-179 2935.61,-107.51 2645.42,-77.61 2547.38,-69.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2547.44,-65.94 2537.19,-68.62 2546.87,-72.92 2547.44,-65.94"/>
+<path fill="none" stroke="midnightblue" d="M1112.42,-654.91C965.8,-614.32 354.21,-437.01 252,-277 208.54,-208.96 254.05,-144.41 328,-112 400.02,-80.44 641.01,-70.45 728.72,-67.82"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="728.98,-71.32 738.88,-67.53 728.78,-64.32 728.98,-71.32"/>
</g>
<!-- Node42 -->
<g id="node42" class="node">
<title>Node42</title>
<g id="a_node42"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="775.5,-118 775.5,-137 840.5,-137 840.5,-118 775.5,-118"/>
-<text text-anchor="middle" x="808" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
+<polygon fill="white" stroke="#bfbfbf" points="507.5,-118 507.5,-137 572.5,-137 572.5,-118 507.5,-118"/>
+<text text-anchor="middle" x="540" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
</a>
</g>
</g>
<!-- Node5->Node42 -->
<g id="edge119" class="edge">
<title>Node5->Node42</title>
-<path fill="none" stroke="midnightblue" d="M1425.62,-649.4C1390.59,-634.03 1317.66,-599.48 1265,-557 1090.74,-416.43 1114.52,-308.67 932,-179 927.97,-176.14 874.6,-154.8 839.21,-140.8"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="840.34,-137.48 829.76,-137.06 837.77,-143.99 840.34,-137.48"/>
+<path fill="none" stroke="midnightblue" d="M1124.69,-654.92C1104.16,-645.54 1071,-629.61 1044,-613 842.73,-489.23 809.62,-432.83 632,-277 598.4,-247.52 579.35,-248.71 557,-210 545.84,-190.68 541.96,-165.02 540.64,-147.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="544.1,-147.01 540.07,-137.22 537.11,-147.39 544.1,-147.01"/>
</g>
<!-- Node5->Node43 -->
<g id="edge120" class="edge">
<title>Node5->Node43</title>
-<path fill="none" stroke="midnightblue" d="M1406.33,-655.35C1340.36,-650.31 1211.62,-637.57 1174,-613 1115.38,-574.71 1132.59,-534.98 1088,-481 994.06,-367.28 858.96,-251.17 810.32,-210.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="812.45,-207.81 802.52,-204.11 807.98,-213.19 812.45,-207.81"/>
+<path fill="none" stroke="midnightblue" d="M1132.24,-654.88C1096.38,-628.58 985.11,-547.21 892,-481 743.98,-375.75 563.98,-251.33 503.74,-209.79"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="505.66,-206.86 495.44,-204.06 501.68,-212.62 505.66,-206.86"/>
</g>
<!-- Node48 -->
<g id="node48" class="node">
<title>Node48</title>
<g id="a_node48"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM.">
-<polygon fill="white" stroke="black" points="1444,-593.5 1444,-612.5 1524,-612.5 1524,-593.5 1444,-593.5"/>
-<text text-anchor="middle" x="1484" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/type.h</text>
+<polygon fill="white" stroke="black" points="2093,-593.5 2093,-612.5 2173,-612.5 2173,-593.5 2093,-593.5"/>
+<text text-anchor="middle" x="2133" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/type.h</text>
</a>
</g>
</g>
<!-- Node5->Node48 -->
<g id="edge109" class="edge">
<title>Node5->Node48</title>
-<path fill="none" stroke="midnightblue" d="M1452.27,-649.08C1457.64,-641.46 1465.52,-630.26 1472.08,-620.94"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1474.95,-622.94 1477.84,-612.75 1469.22,-618.91 1474.95,-622.94"/>
+<path fill="none" stroke="midnightblue" d="M1183.79,-659.99C1220.05,-656.85 1275.1,-652.27 1323,-649 1610.35,-629.38 1955.5,-612.39 2082.74,-606.35"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2083.12,-609.83 2092.94,-605.87 2082.79,-602.84 2083.12,-609.83"/>
</g>
<!-- Node49 -->
<g id="node49" class="node">
<title>Node49</title>
<g id="a_node49"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="830,-593.5 830,-612.5 894,-612.5 894,-593.5 830,-593.5"/>
-<text text-anchor="middle" x="862" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
+<polygon fill="white" stroke="#bfbfbf" points="1210,-593.5 1210,-612.5 1274,-612.5 1274,-593.5 1210,-593.5"/>
+<text text-anchor="middle" x="1242" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
</a>
</g>
</g>
<!-- Node5->Node49 -->
<g id="edge118" class="edge">
<title>Node5->Node49</title>
-<path fill="none" stroke="midnightblue" d="M1406.32,-654.33C1300.6,-644.56 1012.84,-617.95 904.24,-607.91"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="904.29,-604.4 894.01,-606.96 903.64,-611.37 904.29,-604.4"/>
+<path fill="none" stroke="midnightblue" d="M1158.04,-654.98C1174.05,-645.25 1200.45,-629.23 1219.37,-617.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1221.25,-620.69 1227.99,-612.51 1217.62,-614.71 1221.25,-620.69"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="598.5,-252 598.5,-271 699.5,-271 699.5,-252 598.5,-252"/>
-<text text-anchor="middle" x="649" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/function.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2879.5,-252 2879.5,-271 2980.5,-271 2980.5,-252 2879.5,-252"/>
+<text text-anchor="middle" x="2930" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/function.h</text>
</a>
</g>
</g>
<!-- Node7->Node8 -->
<g id="edge7" class="edge">
<title>Node7->Node8</title>
-<path fill="none" stroke="midnightblue" d="M970.97,-537.47C915.56,-507.9 734.42,-410.41 714,-389 683.29,-356.81 663.61,-307.27 654.65,-280.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="657.97,-279.63 651.55,-271.2 651.31,-281.79 657.97,-279.63"/>
+<path fill="none" stroke="midnightblue" d="M2157.29,-537.36C2272.34,-496.44 2762.48,-322.09 2896.19,-274.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2897.65,-277.72 2905.9,-271.07 2895.31,-271.13 2897.65,-277.72"/>
</g>
<!-- Node7->Node9 -->
<g id="edge8" class="edge">
<title>Node7->Node9</title>
-<path fill="none" stroke="midnightblue" d="M1045.7,-540.97C1165.32,-530.72 1436.14,-507.5 1556.91,-497.15"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1557.42,-500.62 1567.08,-496.28 1556.82,-493.65 1557.42,-500.62"/>
+<path fill="none" stroke="midnightblue" d="M2074.12,-538.77C1990.18,-528.47 1836.99,-509.67 1752.64,-499.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1753.06,-495.84 1742.7,-498.1 1752.2,-502.79 1753.06,-495.84"/>
</g>
<!-- Node7->Node17 -->
<g id="edge104" class="edge">
<title>Node7->Node17</title>
-<path fill="none" stroke="midnightblue" d="M985.76,-537.4C984.52,-528.36 982.7,-513.71 982,-501 981.51,-492.12 981.92,-489.89 982,-481 982.67,-406.32 982.31,-387.63 985,-313 987.18,-252.49 991.58,-180.91 993.74,-147.48"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="997.25,-147.54 994.41,-137.33 990.26,-147.08 997.25,-147.54"/>
+<path fill="none" stroke="midnightblue" d="M2143.23,-537.14C2176.91,-508.4 2288.39,-416.88 2396,-369 2456.27,-342.18 2480.99,-362.49 2540,-333 2575.33,-315.35 2581.65,-305.49 2609,-277 2634.73,-250.2 2642.38,-243.23 2659,-210 2669.17,-189.66 2675.8,-164.25 2679.46,-147.26"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2682.89,-147.94 2681.45,-137.45 2676.03,-146.55 2682.89,-147.94"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="243.5,-56.5 243.5,-75.5 288.5,-75.5 288.5,-56.5 243.5,-56.5"/>
-<text text-anchor="middle" x="266" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">utility</text>
+<polygon fill="white" stroke="#bfbfbf" points="3214.5,-56.5 3214.5,-75.5 3259.5,-75.5 3259.5,-56.5 3214.5,-56.5"/>
+<text text-anchor="middle" x="3237" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">utility</text>
</a>
</g>
</g>
<!-- Node7->Node23 -->
<g id="edge107" class="edge">
<title>Node7->Node23</title>
-<path fill="none" stroke="midnightblue" d="M960.81,-537.39C936.2,-529.03 898.54,-515.48 867,-501 729.46,-437.85 509.02,-344.82 345,-210 314.8,-185.17 306.52,-177.43 288,-143 278.26,-124.89 272.39,-101.98 269.19,-86.07"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="272.57,-85.09 267.32,-75.89 265.69,-86.36 272.57,-85.09"/>
+<path fill="none" stroke="midnightblue" d="M2191.58,-538.43C2312.89,-521.52 2599.13,-475.23 2825,-389 2920.9,-352.39 2940.9,-332.89 3027,-277 3105.95,-225.75 3130.87,-215.42 3191,-143 3206.19,-124.7 3219.78,-100.87 3228.17,-84.81"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3231.49,-86.02 3232.91,-75.52 3225.25,-82.84 3231.49,-86.02"/>
</g>
<!-- Node7->Node26 -->
<g id="edge108" class="edge">
<title>Node7->Node26</title>
-<path fill="none" stroke="midnightblue" d="M984.21,-537.42C967.78,-487.34 882.36,-233.28 823,-179 791.28,-150 742.14,-137.54 709.52,-132.26"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="709.96,-128.79 699.56,-130.79 708.94,-135.71 709.96,-128.79"/>
+<path fill="none" stroke="midnightblue" d="M2127.32,-537.45C2121.38,-528.45 2111.85,-513.85 2104,-501 2083.65,-467.7 2080.75,-458.06 2060,-425 2022.32,-364.97 1919.84,-211.79 1857,-179 1739.9,-117.9 1689.38,-177.94 1562,-143 1559.71,-142.37 1557.37,-141.61 1555.05,-140.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1556.36,-137.52 1545.78,-137 1553.73,-144.01 1556.36,-137.52"/>
</g>
<!-- Node7->Node28 -->
<g id="edge106" class="edge">
<title>Node7->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1045.61,-544.06C1189.26,-539.02 1555.88,-524.21 1676,-501 1911.56,-455.49 1966.79,-423.44 2189,-333 2241.28,-311.72 2253.87,-304.8 2303,-277 2325.1,-264.49 2329.26,-259.12 2351,-246 2378.94,-229.14 2390.82,-231.92 2415,-210 2456.76,-172.14 2490.64,-113.77 2506.04,-84.71"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2509.2,-86.22 2510.7,-75.73 2502.98,-83 2509.2,-86.22"/>
+<path fill="none" stroke="midnightblue" d="M2074.37,-542.77C1867.61,-531.05 1180.15,-489.1 1092,-445 922.77,-360.34 802.67,-147.74 769.95,-84.82"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="772.98,-83.05 765.31,-75.74 766.75,-86.24 772.98,-83.05"/>
</g>
<!-- Node47 -->
<g id="node47" class="node">
<title>Node47</title>
<g id="a_node47"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="990.5,-481.5 990.5,-500.5 1045.5,-500.5 1045.5,-481.5 990.5,-481.5"/>
-<text text-anchor="middle" x="1018" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">fstream</text>
+<polygon fill="white" stroke="#bfbfbf" points="2112.5,-481.5 2112.5,-500.5 2167.5,-500.5 2167.5,-481.5 2112.5,-481.5"/>
+<text text-anchor="middle" x="2140" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">fstream</text>
</a>
</g>
</g>
<!-- Node7->Node47 -->
<g id="edge105" class="edge">
<title>Node7->Node47</title>
-<path fill="none" stroke="midnightblue" d="M992.12,-537.08C996.41,-529.61 1002.66,-518.72 1007.94,-509.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1011.03,-511.17 1012.98,-500.75 1004.96,-507.68 1011.03,-511.17"/>
+<path fill="none" stroke="midnightblue" d="M2134.16,-537.08C2135.08,-529.93 2136.42,-519.64 2137.58,-510.69"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2141.05,-511.12 2138.87,-500.75 2134.11,-510.22 2141.05,-511.12"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1762.5,-252 1762.5,-271 1863.5,-271 1863.5,-252 1762.5,-252"/>
-<text text-anchor="middle" x="1813" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/memory.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1396.5,-252 1396.5,-271 1497.5,-271 1497.5,-252 1396.5,-252"/>
+<text text-anchor="middle" x="1447" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/memory.h</text>
</a>
</g>
</g>
<!-- Node9->Node10 -->
<g id="edge9" class="edge">
<title>Node9->Node10</title>
-<path fill="none" stroke="midnightblue" d="M1626.3,-481.3C1650.66,-458.29 1717.71,-393.5 1766,-333 1779.72,-315.81 1793.44,-294.66 1802.49,-280.03"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1805.73,-281.43 1807.94,-271.07 1799.75,-277.79 1805.73,-281.43"/>
+<path fill="none" stroke="midnightblue" d="M1683.66,-481.36C1646.82,-447.29 1511.34,-322 1463.7,-277.95"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1466.07,-275.37 1456.35,-271.15 1461.32,-280.51 1466.07,-275.37"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes.">
-<polygon fill="white" stroke="black" points="1635.5,-313.5 1635.5,-332.5 1756.5,-332.5 1756.5,-313.5 1635.5,-313.5"/>
-<text text-anchor="middle" x="1696" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/reflection.h</text>
+<polygon fill="white" stroke="black" points="2157.5,-313.5 2157.5,-332.5 2278.5,-332.5 2278.5,-313.5 2157.5,-313.5"/>
+<text text-anchor="middle" x="2218" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/reflection.h</text>
</a>
</g>
</g>
<!-- Node9->Node11 -->
<g id="edge10" class="edge">
<title>Node9->Node11</title>
-<path fill="none" stroke="midnightblue" d="M1621.25,-481.08C1633.79,-454.72 1670.84,-376.88 1687.6,-341.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1690.79,-343.1 1691.92,-332.57 1684.46,-340.09 1690.79,-343.1"/>
+<path fill="none" stroke="midnightblue" d="M1705.04,-481.35C1724.79,-467.54 1765.7,-440.5 1804,-425 1921.51,-377.45 2067.2,-348.3 2150.69,-334.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2151.51,-337.64 2160.8,-332.54 2150.36,-330.73 2151.51,-337.64"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison.">
-<polygon fill="white" stroke="black" points="1881.5,-246.5 1881.5,-276.5 1994.5,-276.5 1994.5,-246.5 1881.5,-246.5"/>
-<text text-anchor="start" x="1889.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
-<text text-anchor="middle" x="1938" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
+<polygon fill="white" stroke="black" points="1685.5,-246.5 1685.5,-276.5 1798.5,-276.5 1798.5,-246.5 1685.5,-246.5"/>
+<text text-anchor="start" x="1693.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="1742" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
</a>
</g>
</g>
<!-- Node9->Node13 -->
<g id="edge96" class="edge">
<title>Node9->Node13</title>
-<path fill="none" stroke="midnightblue" d="M1631.05,-481.47C1645.5,-472.61 1668.58,-458.22 1688,-445 1771.04,-388.46 1866.12,-317.17 1911.37,-282.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1913.64,-285.5 1919.48,-276.66 1909.41,-279.93 1913.64,-285.5"/>
+<path fill="none" stroke="midnightblue" d="M1694.86,-481.36C1701.77,-449.3 1726.08,-336.44 1736.82,-286.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1740.27,-287.14 1738.96,-276.62 1733.43,-285.66 1740.27,-287.14"/>
</g>
<!-- Node9->Node17 -->
<g id="edge99" class="edge">
<title>Node9->Node17</title>
-<path fill="none" stroke="midnightblue" d="M1567.11,-484.42C1511.16,-477.36 1424.74,-463.82 1398,-445 1284.8,-365.34 1349.05,-258.88 1236,-179 1232.12,-176.26 1117.43,-152.98 1047.69,-139"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1048.24,-135.54 1037.74,-137.01 1046.86,-142.4 1048.24,-135.54"/>
+<path fill="none" stroke="midnightblue" d="M1736.7,-481.5C1838.77,-461.66 2100.84,-410.8 2320,-369 2404.85,-352.82 2435.58,-375.11 2511,-333 2592.4,-287.55 2652,-187.43 2673.86,-146.49"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2677.07,-147.91 2678.59,-137.42 2670.86,-144.66 2677.07,-147.91"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a xlink:href="runtime_2base_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1107.5,-56.5 1107.5,-75.5 1220.5,-75.5 1220.5,-56.5 1107.5,-56.5"/>
-<text text-anchor="middle" x="1164" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/base.h</text>
+<polygon fill="white" stroke="black" points="2472.5,-56.5 2472.5,-75.5 2585.5,-75.5 2585.5,-56.5 2472.5,-56.5"/>
+<text text-anchor="middle" x="2529" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/base.h</text>
</a>
</g>
</g>
<!-- Node9->Node21 -->
<g id="edge98" class="edge">
<title>Node9->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1607.53,-481.39C1553.62,-432.42 1287.2,-190.75 1267,-179 1223.99,-153.98 1189.98,-183.44 1161,-143 1149.14,-126.45 1152.66,-102.26 1157.33,-85.64"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1160.71,-86.56 1160.42,-75.97 1154.04,-84.43 1160.71,-86.56"/>
+<path fill="none" stroke="midnightblue" d="M1721.54,-481.4C1765.31,-468.35 1851.75,-443.15 1926,-425 1974.2,-413.22 2316.87,-351.27 2363,-333 2456.18,-296.09 2505.44,-298.75 2552,-210 2573.54,-168.95 2552.13,-112.86 2538.46,-84.68"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2541.51,-82.98 2533.86,-75.65 2535.27,-86.15 2541.51,-82.98"/>
</g>
<!-- Node9->Node23 -->
<g id="edge102" class="edge">
<title>Node9->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1567.24,-487.44C1391.84,-478 809.59,-442.8 747,-389 697.04,-346.06 757.98,-288.92 708,-246 654.88,-200.39 459.06,-238.25 395,-210 336.48,-184.19 293.38,-117.11 275.34,-84.84"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="278.22,-82.81 270.37,-75.69 272.07,-86.15 278.22,-82.81"/>
+<path fill="none" stroke="midnightblue" d="M1742.53,-488.1C1928.34,-480.55 2583.39,-450.08 2782,-389 2882.36,-358.14 2906.94,-341.22 2990,-277 3037.02,-240.64 3038.3,-220.34 3081,-179 3113.59,-147.45 3121,-138.24 3158,-112 3174.74,-100.13 3194.85,-88.71 3210.59,-80.34"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3212.52,-83.29 3219.76,-75.55 3209.28,-77.08 3212.52,-83.29"/>
</g>
<!-- Node9->Node25 -->
<g id="edge101" class="edge">
<title>Node9->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1666.79,-489.14C1836.55,-485.99 2391.91,-473.68 2568,-445 2658.26,-430.3 2680.95,-422.61 2766,-389 3010.82,-292.25 3286.49,-129.24 3366.27,-80.91"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3368.29,-83.78 3375.01,-75.59 3364.65,-77.8 3368.29,-83.78"/>
+<path fill="none" stroke="midnightblue" d="M1742.65,-489.04C1896.1,-484.19 2372.94,-454.81 2713,-277 2814.33,-224.02 2910.65,-123.31 2946.39,-83.64"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2949.39,-85.53 2953.43,-75.74 2944.17,-80.88 2949.39,-85.53"/>
</g>
<!-- Node9->Node26 -->
<g id="edge103" class="edge">
<title>Node9->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1567.17,-485.32C1516.49,-479.55 1436.21,-467.6 1370,-445 1126.56,-361.92 1095.3,-273.34 856,-179 806.4,-159.44 746.33,-144.19 709.66,-135.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="710.04,-132.27 699.51,-133.48 708.5,-139.1 710.04,-132.27"/>
+<path fill="none" stroke="midnightblue" d="M1643.06,-488.42C1512.94,-483.97 1170.5,-470 1126,-445 1072.44,-414.91 1063.92,-391.45 1045,-333 996.02,-181.7 1236.31,-275.98 1381,-210 1402.44,-200.22 1403.75,-191.04 1424,-179 1448.43,-164.48 1477.66,-150.68 1499.08,-141.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1500.56,-144.37 1508.32,-137.15 1497.75,-137.95 1500.56,-144.37"/>
</g>
<!-- Node9->Node28 -->
<g id="edge100" class="edge">
<title>Node9->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1644.02,-481.45C1734.93,-452.04 2036.42,-349.06 2257,-210 2318.21,-171.41 2323.23,-146.18 2387,-112 2417.98,-95.4 2456.32,-82.86 2482.93,-75.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2484.15,-78.59 2492.86,-72.54 2482.28,-71.84 2484.15,-78.59"/>
+<path fill="none" stroke="midnightblue" d="M1643.15,-489.12C1518.23,-486.45 1194.48,-476.61 1092,-445 1003.36,-417.66 784.9,-294.67 747,-210 728.38,-168.39 743.48,-113.32 753.64,-85.21"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="757.04,-86.12 757.34,-75.53 750.5,-83.62 757.04,-86.12"/>
</g>
<!-- Node33 -->
<g id="node33" class="node">
<title>Node33</title>
<g id="a_node33"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1440.5,-246.5 1440.5,-276.5 1553.5,-276.5 1553.5,-246.5 1440.5,-246.5"/>
-<text text-anchor="start" x="1448.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
-<text text-anchor="middle" x="1497" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
+<polygon fill="white" stroke="black" points="1554.5,-246.5 1554.5,-276.5 1667.5,-276.5 1667.5,-246.5 1554.5,-246.5"/>
+<text text-anchor="start" x="1562.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="1611" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
</a>
</g>
</g>
<!-- Node9->Node33 -->
<g id="edge97" class="edge">
<title>Node9->Node33</title>
-<path fill="none" stroke="midnightblue" d="M1612.44,-481.36C1595.42,-449.1 1535.25,-335.01 1509.18,-285.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1512.21,-283.84 1504.45,-276.62 1506.02,-287.1 1512.21,-283.84"/>
+<path fill="none" stroke="midnightblue" d="M1689.89,-481.36C1678.31,-449.23 1637.48,-335.96 1619.55,-286.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1622.77,-284.84 1616.09,-276.62 1616.19,-287.22 1622.77,-284.84"/>
</g>
<!-- Node44 -->
<g id="node44" class="node">
<title>Node44</title>
<g id="a_node44"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes.">
-<polygon fill="white" stroke="black" points="2427.5,-425.5 2427.5,-444.5 2558.5,-444.5 2558.5,-425.5 2427.5,-425.5"/>
-<text text-anchor="middle" x="2493" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/repr_printer.h</text>
+<polygon fill="white" stroke="black" points="1134.5,-425.5 1134.5,-444.5 1265.5,-444.5 1265.5,-425.5 1134.5,-425.5"/>
+<text text-anchor="middle" x="1200" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/repr_printer.h</text>
</a>
</g>
</g>
<!-- Node9->Node44 -->
<g id="edge81" class="edge">
<title>Node9->Node44</title>
-<path fill="none" stroke="midnightblue" d="M1666.61,-486.94C1812.64,-477.94 2241.68,-451.49 2417.02,-440.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2417.43,-444.17 2427.19,-440.06 2417,-437.18 2417.43,-444.17"/>
+<path fill="none" stroke="midnightblue" d="M1643.47,-484.58C1556.98,-475.1 1377.92,-455.49 1275.76,-444.3"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1276.14,-440.82 1265.82,-443.21 1275.37,-447.78 1276.14,-440.82"/>
</g>
<!-- Node11->Node8 -->
<g id="edge12" class="edge">
<title>Node11->Node8</title>
-<path fill="none" stroke="midnightblue" d="M1635.18,-318.54C1450.03,-308.02 894.66,-276.46 709.68,-265.95"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="709.78,-262.45 699.59,-265.38 709.38,-269.44 709.78,-262.45"/>
+<path fill="none" stroke="midnightblue" d="M2278.7,-316.93C2413.08,-305.7 2734.42,-278.84 2869.03,-267.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2869.5,-271.07 2879.17,-266.75 2868.91,-264.09 2869.5,-271.07"/>
</g>
<!-- Node11->Node10 -->
<g id="edge13" class="edge">
<title>Node11->Node10</title>
-<path fill="none" stroke="midnightblue" d="M1712.76,-313.48C1732.22,-303.58 1764.55,-287.14 1787.21,-275.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1788.94,-278.66 1796.27,-271.01 1785.77,-272.42 1788.94,-278.66"/>
+<path fill="none" stroke="midnightblue" d="M2157.26,-319.35C2009.78,-312.71 1635.87,-294.65 1512,-277 1505.08,-276.01 1497.8,-274.68 1490.72,-273.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1491.07,-269.72 1480.55,-271.03 1489.59,-276.56 1491.07,-269.72"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2393.5,-252 2393.5,-271 2524.5,-271 2524.5,-252 2393.5,-252"/>
-<text text-anchor="middle" x="2459" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/map.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1969.5,-252 1969.5,-271 2100.5,-271 2100.5,-252 1969.5,-252"/>
+<text text-anchor="middle" x="2035" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/map.h</text>
</a>
</g>
</g>
<!-- Node11->Node12 -->
<g id="edge11" class="edge">
<title>Node11->Node12</title>
-<path fill="none" stroke="midnightblue" d="M1756.51,-317.28C1894.42,-306.53 2231.79,-280.22 2383.23,-268.41"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2383.68,-271.88 2393.37,-267.62 2383.13,-264.91 2383.68,-271.88"/>
+<path fill="none" stroke="midnightblue" d="M2191.78,-313.48C2159.98,-303.14 2106.23,-285.66 2070.68,-274.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2071.76,-270.77 2061.17,-271.01 2069.6,-277.43 2071.76,-270.77"/>
</g>
<!-- Node11->Node13 -->
<g id="edge14" class="edge">
<title>Node11->Node13</title>
-<path fill="none" stroke="midnightblue" d="M1730.67,-313.48C1767.32,-304.46 1826.02,-290.03 1871.62,-278.82"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1872.56,-282.19 1881.43,-276.41 1870.88,-275.4 1872.56,-282.19"/>
+<path fill="none" stroke="midnightblue" d="M2157.23,-314.4C2067.85,-303.23 1901.52,-282.44 1808.81,-270.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1809.06,-267.36 1798.7,-269.59 1808.19,-274.3 1809.06,-267.36"/>
</g>
<!-- Node11->Node17 -->
<g id="edge77" class="edge">
<title>Node11->Node17</title>
-<path fill="none" stroke="midnightblue" d="M1681.36,-313.35C1656.99,-299.02 1606.48,-269.59 1563,-246 1532.25,-229.32 1522.83,-228.28 1493,-210 1472.91,-197.69 1472.06,-187.26 1450,-179 1286.99,-117.95 1231.96,-170 1060,-143 1053.32,-141.95 1046.31,-140.63 1039.45,-139.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1040.1,-135.76 1029.59,-137.07 1038.62,-142.61 1040.1,-135.76"/>
+<path fill="none" stroke="midnightblue" d="M2252.19,-313.38C2313.81,-297.22 2446.87,-259.5 2552,-210 2593.44,-190.49 2637.97,-160.68 2662.97,-143.04"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2665.15,-145.78 2671.26,-137.13 2661.08,-140.08 2665.15,-145.78"/>
</g>
<!-- Node11->Node21 -->
<g id="edge74" class="edge">
<title>Node11->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1686.94,-313.17C1671.1,-298.05 1636.92,-266.82 1604,-246 1572.07,-225.81 1559.47,-229.31 1527,-210 1507.06,-198.14 1506.57,-187.54 1485,-179 1421.96,-154.04 1232.61,-188.13 1182,-143 1166.06,-128.79 1162.92,-103.29 1162.86,-85.78"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1166.37,-85.73 1163.17,-75.63 1159.37,-85.52 1166.37,-85.73"/>
+<path fill="none" stroke="midnightblue" d="M2228.71,-313.22C2274.22,-275.9 2451.98,-130.15 2510.33,-82.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2512.83,-84.79 2518.34,-75.74 2508.39,-79.37 2512.83,-84.79"/>
</g>
<!-- Node11->Node25 -->
<g id="edge79" class="edge">
<title>Node11->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1756.52,-318.41C1831.33,-313.14 1962.21,-301.19 2072,-277 2303.42,-226.01 2346.08,-155.6 2579,-112 2727.71,-84.16 3197.31,-71.35 3344.46,-67.96"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3344.57,-71.46 3354.49,-67.73 3344.41,-64.46 3344.57,-71.46"/>
+<path fill="none" stroke="midnightblue" d="M2270.75,-313.49C2315.05,-305.76 2379.79,-293.12 2435,-277 2595.69,-230.08 2632.03,-206.3 2787,-143 2838.94,-121.79 2898.73,-95.19 2932.97,-79.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2934.66,-82.82 2942.33,-75.51 2931.78,-76.44 2934.66,-82.82"/>
</g>
<!-- Node11->Node26 -->
<g id="edge80" class="edge">
<title>Node11->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1642.29,-313.49C1588.87,-304.88 1504.61,-290.88 1432,-277 1380.46,-267.14 1021.54,-188.89 970,-179 876.07,-160.98 764.65,-142.68 709.86,-133.88"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="710.11,-130.37 699.68,-132.25 709,-137.28 710.11,-130.37"/>
+<path fill="none" stroke="midnightblue" d="M2210.67,-313.43C2195.15,-295.47 2159.08,-254.84 2143,-246 2076.85,-209.62 2046.13,-240.35 1977,-210 1955.1,-200.38 1955.43,-187.32 1933,-179 1777.68,-121.38 1722.29,-184.85 1562,-143 1559.7,-142.4 1557.36,-141.66 1555.03,-140.83"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1556.34,-137.58 1545.76,-137.09 1553.72,-144.08 1556.34,-137.58"/>
</g>
<!-- Node11->Node28 -->
<g id="edge78" class="edge">
<title>Node11->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1756.61,-316.8C1819.24,-310.58 1919.49,-298.24 2004,-277 2088.81,-255.68 2112.77,-252.85 2189,-210 2249.63,-175.92 2248.28,-142.06 2311,-112 2367.71,-84.82 2441.2,-73.81 2482.71,-69.54"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2483.17,-73.01 2492.79,-68.57 2482.5,-66.05 2483.17,-73.01"/>
+<path fill="none" stroke="midnightblue" d="M2157.25,-318.92C1997.19,-310.66 1574.25,-287.93 1546,-277 1525.35,-269.01 1527.48,-254.41 1507,-246 1369.3,-189.45 1298.86,-291.06 1174,-210 1131.74,-182.56 1159.01,-139.82 1117,-112 1064.17,-77.02 870.5,-69.22 793.19,-67.49"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.14,-63.99 783.08,-67.28 793,-70.98 793.14,-63.99"/>
</g>
<!-- Node29 -->
<g id="node29" class="node">
<title>Node29</title>
<g id="a_node29"><a xlink:href="data__type_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2045,-118 2045,-137 2183,-137 2183,-118 2045,-118"/>
-<text text-anchor="middle" x="2114" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
+<polygon fill="white" stroke="black" points="2239,-118 2239,-137 2377,-137 2377,-118 2239,-118"/>
+<text text-anchor="middle" x="2308" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
</a>
</g>
</g>
<!-- Node11->Node29 -->
<g id="edge75" class="edge">
<title>Node11->Node29</title>
-<path fill="none" stroke="midnightblue" d="M1700.71,-313.23C1715.19,-287.26 1761.93,-210.62 1825,-179 1825,-179 1970.84,-153.52 2055.32,-138.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2056.05,-142.18 2065.3,-137.01 2054.85,-135.28 2056.05,-142.18"/>
+<path fill="none" stroke="midnightblue" d="M2221,-313.41C2228.99,-290.85 2251.9,-228.3 2277,-179 2282.81,-167.59 2290.3,-155.33 2296.46,-145.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2299.52,-147.48 2302.07,-137.19 2293.66,-143.64 2299.52,-147.48"/>
</g>
<!-- Node11->Node33 -->
<g id="edge44" class="edge">
<title>Node11->Node33</title>
-<path fill="none" stroke="midnightblue" d="M1667.49,-313.48C1637.89,-304.63 1590.81,-290.55 1553.62,-279.43"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1554.48,-276.03 1543.9,-276.52 1552.48,-282.74 1554.48,-276.03"/>
+<path fill="none" stroke="midnightblue" d="M2157.25,-319.59C2058.64,-315.1 1857.54,-303.52 1677.7,-276.96"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1678.2,-273.5 1667.79,-275.48 1677.16,-280.42 1678.2,-273.5"/>
</g>
<!-- Node34 -->
<g id="node34" class="node">
<title>Node34</title>
<g id="a_node34"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device-independent managed NDArray abstraction.">
-<polygon fill="white" stroke="black" points="1535.5,-185 1535.5,-204 1660.5,-204 1660.5,-185 1535.5,-185"/>
-<text text-anchor="middle" x="1598" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/ndarray.h</text>
+<polygon fill="white" stroke="black" points="1985.5,-185 1985.5,-204 2110.5,-204 2110.5,-185 1985.5,-185"/>
+<text text-anchor="middle" x="2048" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/ndarray.h</text>
</a>
</g>
</g>
<!-- Node11->Node34 -->
<g id="edge76" class="edge">
<title>Node11->Node34</title>
-<path fill="none" stroke="midnightblue" d="M1695.1,-313.18C1693.18,-298.08 1687.51,-266.88 1672,-246 1660.17,-230.08 1641.76,-217.49 1626.27,-208.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1627.56,-205.58 1617.08,-204.01 1624.29,-211.77 1627.56,-205.58"/>
+<path fill="none" stroke="midnightblue" d="M2215.99,-313.2C2212,-297.56 2201.58,-264.81 2181,-246 2159.58,-226.43 2129.8,-214.18 2103.86,-206.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2104.69,-203.26 2094.13,-204.01 2102.85,-210.02 2104.69,-203.26"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2847,-185 2847,-204 2981,-204 2981,-185 2847,-185"/>
-<text text-anchor="middle" x="2914" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/array.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1433,-185 1433,-204 1567,-204 1567,-185 1433,-185"/>
+<text text-anchor="middle" x="1500" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/array.h</text>
</a>
</g>
</g>
<!-- Node13->Node14 -->
<g id="edge15" class="edge">
<title>Node13->Node14</title>
-<path fill="none" stroke="midnightblue" d="M1994.69,-256.72C2160.78,-245.66 2646.46,-213.32 2836.5,-200.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2836.94,-204.14 2846.68,-199.98 2836.47,-197.16 2836.94,-204.14"/>
+<path fill="none" stroke="midnightblue" d="M1689.79,-246.48C1645.37,-234.55 1582.44,-217.64 1541.43,-206.63"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1542.32,-203.24 1531.75,-204.03 1540.5,-210 1542.32,-203.24"/>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<title>Node15</title>
<g id="a_node15"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures.">
-<polygon fill="white" stroke="black" points="1331.5,-185 1331.5,-204 1440.5,-204 1440.5,-185 1331.5,-185"/>
-<text text-anchor="middle" x="1386" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/functor.h</text>
+<polygon fill="white" stroke="black" points="2433.5,-185 2433.5,-204 2542.5,-204 2542.5,-185 2433.5,-185"/>
+<text text-anchor="middle" x="2488" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/functor.h</text>
</a>
</g>
</g>
<!-- Node13->Node15 -->
<g id="edge16" class="edge">
<title>Node13->Node15</title>
-<path fill="none" stroke="midnightblue" d="M1881.35,-247.46C1878.54,-246.94 1875.74,-246.45 1873,-246 1867.84,-245.16 1582.47,-215.73 1451.02,-202.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1451,-198.67 1440.69,-201.13 1450.28,-205.64 1451,-198.67"/>
+<path fill="none" stroke="midnightblue" d="M1798.68,-255.56C1934.82,-243.7 2279.58,-213.66 2423.42,-201.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2423.77,-204.61 2433.43,-200.26 2423.16,-197.64 2423.77,-204.61"/>
</g>
<!-- Node27 -->
<g id="node27" class="node">
<title>Node27</title>
<g id="a_node27"><a xlink:href="object__path_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2013,-185 2013,-204 2145,-204 2145,-185 2013,-185"/>
-<text text-anchor="middle" x="2079" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/object_path.h</text>
+<polygon fill="white" stroke="black" points="1207,-185 1207,-204 1339,-204 1339,-185 1207,-185"/>
+<text text-anchor="middle" x="1273" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/object_path.h</text>
</a>
</g>
</g>
<!-- Node13->Node27 -->
<g id="edge29" class="edge">
<title>Node13->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1968.59,-246.4C1993.23,-235.04 2027.55,-219.22 2051.36,-208.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2052.93,-211.37 2060.55,-204.01 2050,-205.02 2052.93,-211.37"/>
+<path fill="none" stroke="midnightblue" d="M1685.34,-247.53C1682.53,-246.99 1679.73,-246.47 1677,-246 1563.46,-226.29 1430.69,-211.2 1349.23,-202.84"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1349.37,-199.34 1339.06,-201.81 1348.66,-206.3 1349.37,-199.34"/>
</g>
<!-- Node13->Node28 -->
<g id="edge43" class="edge">
<title>Node13->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1994.54,-248.68C2053.63,-236.1 2139.72,-217.06 2154,-210 2215.41,-179.63 2210.91,-140.96 2273,-112 2343.03,-79.34 2434.87,-70.37 2482.77,-67.91"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2483.02,-71.41 2492.85,-67.46 2482.71,-64.41 2483.02,-71.41"/>
+<path fill="none" stroke="midnightblue" d="M1724.63,-246.35C1712.19,-236.23 1695.06,-222.28 1680,-210 1663.11,-196.23 1661.88,-187.93 1642,-179 1556.58,-140.65 1318.87,-123.96 1226,-112 1064.22,-91.17 869.65,-75.29 793.65,-69.45"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.56,-65.93 783.32,-68.66 793.02,-72.91 793.56,-65.93"/>
</g>
<!-- Node13->Node29 -->
<g id="edge34" class="edge">
<title>Node13->Node29</title>
-<path fill="none" stroke="midnightblue" d="M1931.98,-246.21C1925.58,-228.53 1918.26,-198.42 1933,-179 1941.09,-168.34 2013.15,-150.6 2063.86,-139.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2064.69,-142.64 2073.7,-137.05 2063.18,-135.81 2064.69,-142.64"/>
+<path fill="none" stroke="midnightblue" d="M1798.55,-252.83C1815.42,-250.58 1833.95,-248.15 1851,-246 1985.11,-229.09 2025.84,-255.85 2153,-210 2176.89,-201.39 2178.8,-191.34 2201,-179 2226.54,-164.81 2256.72,-150.8 2278.51,-141.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2280.13,-144.26 2287.88,-137.04 2277.32,-137.85 2280.13,-144.26"/>
</g>
<!-- Node32 -->
<g id="node32" class="node">
<title>Node32</title>
<g id="a_node32"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1833.5,-185 1833.5,-204 1880.5,-204 1880.5,-185 1833.5,-185"/>
-<text text-anchor="middle" x="1857" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">cmath</text>
+<polygon fill="white" stroke="#bfbfbf" points="1585.5,-185 1585.5,-204 1632.5,-204 1632.5,-185 1585.5,-185"/>
+<text text-anchor="middle" x="1609" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00">cmath</text>
</a>
</g>
</g>
<!-- Node13->Node32 -->
<g id="edge42" class="edge">
<title>Node13->Node32</title>
-<path fill="none" stroke="midnightblue" d="M1920.42,-246.4C1907.29,-235.86 1889.37,-221.48 1875.93,-210.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1877.82,-207.72 1867.83,-204.19 1873.44,-213.18 1877.82,-207.72"/>
+<path fill="none" stroke="midnightblue" d="M1713.14,-246.4C1690.11,-235.14 1658.11,-219.5 1635.68,-208.54"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1636.93,-205.25 1626.41,-204.01 1633.85,-211.54 1636.93,-205.25"/>
</g>
<!-- Node16 -->
<g id="node16" class="node">
<title>Node16</title>
<g id="a_node16"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1596.5,-56.5 1596.5,-75.5 1721.5,-75.5 1721.5,-56.5 1596.5,-56.5"/>
-<text text-anchor="middle" x="1659" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/logging.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2329.5,-56.5 2329.5,-75.5 2454.5,-75.5 2454.5,-56.5 2329.5,-56.5"/>
+<text text-anchor="middle" x="2392" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/logging.h</text>
</a>
</g>
</g>
<!-- Node15->Node16 -->
<g id="edge17" class="edge">
<title>Node15->Node16</title>
-<path fill="none" stroke="midnightblue" d="M1390,-184.99C1398.38,-168.14 1419.49,-130.58 1449,-112 1471.7,-97.71 1535.24,-85.26 1586.53,-77.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1587.27,-80.53 1596.61,-75.53 1586.19,-73.62 1587.27,-80.53"/>
+<path fill="none" stroke="midnightblue" d="M2481.4,-184.81C2465.65,-164.04 2425.6,-111.27 2404.87,-83.96"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2407.48,-81.61 2398.64,-75.76 2401.9,-85.84 2407.48,-81.61"/>
</g>
<!-- Node15->Node17 -->
<g id="edge18" class="edge">
<title>Node15->Node17</title>
-<path fill="none" stroke="midnightblue" d="M1334.48,-184.94C1262.74,-173.01 1132.95,-151.43 1056.31,-138.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1056.76,-135.22 1046.32,-137.03 1055.61,-142.12 1056.76,-135.22"/>
+<path fill="none" stroke="midnightblue" d="M2513.89,-184.87C2548.23,-173.42 2608.96,-153.18 2647.53,-140.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2648.93,-143.55 2657.31,-137.06 2646.72,-136.91 2648.93,-143.55"/>
</g>
<!-- Node15->Node23 -->
<g id="edge27" class="edge">
<title>Node15->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1331.5,-188.33C1218.39,-177.49 965.46,-152.57 927,-143 890.8,-133.99 885.34,-120.42 849,-112 742.99,-87.44 405.66,-72.46 298.8,-68.23"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="298.75,-64.73 288.63,-67.84 298.48,-71.72 298.75,-64.73"/>
+<path fill="none" stroke="midnightblue" d="M2538.6,-184.95C2681.67,-160.79 3086.4,-92.44 3204.36,-72.51"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3204.96,-75.96 3214.24,-70.84 3203.79,-69.06 3204.96,-75.96"/>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<title>Node24</title>
<g id="a_node24"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1795,-56.5 1795,-75.5 1845,-75.5 1845,-56.5 1795,-56.5"/>
-<text text-anchor="middle" x="1820" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">cstring</text>
+<polygon fill="white" stroke="#bfbfbf" points="2604,-56.5 2604,-75.5 2654,-75.5 2654,-56.5 2604,-56.5"/>
+<text text-anchor="middle" x="2629" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">cstring</text>
</a>
</g>
</g>
<!-- Node15->Node24 -->
<g id="edge25" class="edge">
<title>Node15->Node24</title>
-<path fill="none" stroke="midnightblue" d="M1396.79,-184.91C1418.74,-167.92 1470.78,-130.12 1521,-112 1568.93,-94.71 1716.08,-77.77 1784.43,-70.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1785.11,-74.03 1794.7,-69.52 1784.39,-67.07 1785.11,-74.03"/>
+<path fill="none" stroke="midnightblue" d="M2497.69,-184.81C2521.24,-163.68 2581.71,-109.43 2611.66,-82.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2614.13,-85.04 2619.24,-75.76 2609.46,-79.83 2614.13,-85.04"/>
</g>
<!-- Node15->Node25 -->
<g id="edge26" class="edge">
<title>Node15->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1440.71,-186.35C1507.25,-177.1 1615.25,-160.12 1652,-143 1671.76,-133.8 1669.57,-119.58 1690,-112 1769.68,-82.43 3082.48,-69.63 3343.92,-67.37"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3344.21,-70.87 3354.18,-67.28 3344.15,-63.87 3344.21,-70.87"/>
+<path fill="none" stroke="midnightblue" d="M2542.6,-189.99C2597.45,-184.88 2683.43,-172.54 2752,-143 2773.64,-133.68 2773.73,-122.13 2795,-112 2833.96,-93.43 2881.85,-81.49 2916.16,-74.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2917.2,-77.97 2926.35,-72.63 2915.86,-71.1 2917.2,-77.97"/>
</g>
<!-- Node15->Node26 -->
<g id="edge28" class="edge">
<title>Node15->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1331.12,-190.48C1222.8,-184.2 973.99,-168.19 766,-143 747.26,-140.73 726.45,-137.43 709.57,-134.55"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="710.07,-131.08 699.61,-132.82 708.87,-137.98 710.07,-131.08"/>
+<path fill="none" stroke="midnightblue" d="M2433.36,-191.06C2241.03,-182.41 1604.5,-153.14 1562,-143 1559.64,-142.44 1557.23,-141.71 1554.85,-140.88"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1555.97,-137.56 1545.38,-137.08 1553.36,-144.06 1555.97,-137.56"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="872.5,-56.5 872.5,-75.5 953.5,-75.5 953.5,-56.5 872.5,-56.5"/>
-<text text-anchor="middle" x="913" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/cast.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2672.5,-56.5 2672.5,-75.5 2753.5,-75.5 2753.5,-56.5 2672.5,-56.5"/>
+<text text-anchor="middle" x="2713" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/cast.h</text>
</a>
</g>
</g>
<!-- Node17->Node18 -->
<g id="edge19" class="edge">
<title>Node17->Node18</title>
-<path fill="none" stroke="midnightblue" d="M983.25,-117.98C970.22,-108.52 948.96,-93.1 933.24,-81.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="934.88,-78.55 924.73,-75.51 930.77,-84.21 934.88,-78.55"/>
+<path fill="none" stroke="midnightblue" d="M2687.3,-117.98C2691.66,-109.32 2698.56,-95.65 2704.1,-84.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2707.33,-86.01 2708.71,-75.51 2701.08,-82.86 2707.33,-86.01"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="971.5,-56.5 971.5,-75.5 1062.5,-75.5 1062.5,-56.5 971.5,-56.5"/>
-<text text-anchor="middle" x="1017" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/object.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2771.5,-56.5 2771.5,-75.5 2862.5,-75.5 2862.5,-56.5 2771.5,-56.5"/>
+<text text-anchor="middle" x="2817" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/object.h</text>
</a>
</g>
</g>
<!-- Node17->Node19 -->
<g id="edge20" class="edge">
<title>Node17->Node19</title>
-<path fill="none" stroke="midnightblue" d="M998.15,-117.98C1001.32,-109.4 1006.3,-95.93 1010.35,-84.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1013.67,-86.1 1013.85,-75.51 1007.1,-83.67 1013.67,-86.1"/>
+<path fill="none" stroke="midnightblue" d="M2702.2,-117.98C2724.79,-107.95 2762.5,-91.2 2788.5,-79.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2790.12,-82.77 2797.84,-75.51 2787.28,-76.37 2790.12,-82.77"/>
</g>
<!-- Node20 -->
<g id="node20" class="node">
<title>Node20</title>
<g id="a_node20"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1447.5,-56.5 1447.5,-75.5 1548.5,-75.5 1548.5,-56.5 1447.5,-56.5"/>
-<text text-anchor="middle" x="1498" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/optional.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1750.5,-56.5 1750.5,-75.5 1851.5,-75.5 1851.5,-56.5 1750.5,-56.5"/>
+<text text-anchor="middle" x="1801" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/optional.h</text>
</a>
</g>
</g>
<!-- Node17->Node20 -->
<g id="edge21" class="edge">
<title>Node17->Node20</title>
-<path fill="none" stroke="midnightblue" d="M1054.63,-120.25C1139.45,-111.22 1299.78,-93.68 1436,-76 1436.34,-75.96 1436.69,-75.91 1437.03,-75.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1437.82,-79.29 1447.26,-74.49 1436.89,-72.35 1437.82,-79.29"/>
+<path fill="none" stroke="midnightblue" d="M2623.33,-123.52C2463.53,-115.42 2027.44,-92.58 1861.75,-75.96"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1862.01,-72.47 1851.7,-74.92 1861.29,-79.43 1862.01,-72.47"/>
</g>
<!-- Node17->Node21 -->
<g id="edge22" class="edge">
<title>Node17->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1019.21,-117.98C1048.33,-107.72 1097.37,-90.46 1130.2,-78.9"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1131.56,-82.13 1139.83,-75.51 1129.24,-75.53 1131.56,-82.13"/>
+<path fill="none" stroke="midnightblue" d="M2660.94,-117.98C2634.63,-107.81 2590.49,-90.76 2560.58,-79.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2561.61,-75.85 2551.02,-75.51 2559.09,-82.38 2561.61,-75.85"/>
</g>
<!-- Node17->Node23 -->
<g id="edge24" class="edge">
<title>Node17->Node23</title>
-<path fill="none" stroke="midnightblue" d="M935.49,-118.17C918.55,-115.97 900.07,-113.73 883,-112 660.21,-89.47 391.06,-73.79 298.84,-68.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="298.91,-65.24 288.73,-68.2 298.53,-72.23 298.91,-65.24"/>
+<path fill="none" stroke="midnightblue" d="M2742.55,-120.1C2859.08,-107.59 3113.77,-80.24 3204.28,-70.51"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3204.67,-73.99 3214.24,-69.44 3203.92,-67.03 3204.67,-73.99"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1121,-0.5 1121,-19.5 1207,-19.5 1207,-0.5 1121,-0.5"/>
-<text text-anchor="middle" x="1164" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/c_api.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2486,-0.5 2486,-19.5 2572,-19.5 2572,-0.5 2486,-0.5"/>
+<text text-anchor="middle" x="2529" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/c_api.h</text>
</a>
</g>
</g>
<!-- Node21->Node22 -->
<g id="edge23" class="edge">
<title>Node21->Node22</title>
-<path fill="none" stroke="midnightblue" d="M1164,-56.08C1164,-49.01 1164,-38.86 1164,-29.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1167.5,-29.75 1164,-19.75 1160.5,-29.75 1167.5,-29.75"/>
+<path fill="none" stroke="midnightblue" d="M2529,-56.08C2529,-49.01 2529,-38.86 2529,-29.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2532.5,-29.75 2529,-19.75 2525.5,-29.75 2532.5,-29.75"/>
</g>
<!-- Node27->Node6 -->
<g id="edge31" class="edge">
<title>Node27->Node6</title>
-<path fill="none" stroke="midnightblue" d="M2145.16,-185.72C2255.47,-172.76 2474.94,-146.96 2577.2,-134.94"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2577.79,-138.4 2587.31,-133.75 2576.97,-131.44 2577.79,-138.4"/>
+<path fill="none" stroke="midnightblue" d="M1240.19,-184.94C1195.59,-173.29 1115.76,-152.45 1066.59,-139.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1067.44,-136.22 1056.88,-137.08 1065.67,-143 1067.44,-136.22"/>
</g>
<!-- Node27->Node17 -->
<g id="edge32" class="edge">
<title>Node27->Node17</title>
-<path fill="none" stroke="midnightblue" d="M2012.99,-188.06C1976.7,-185.16 1930.89,-181.66 1890,-179 1590.65,-159.53 1515.45,-160.82 1216,-143 1165.36,-139.99 1108.23,-136.23 1064.74,-133.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1064.76,-129.79 1054.55,-132.6 1064.29,-136.77 1064.76,-129.79"/>
+<path fill="none" stroke="midnightblue" d="M1339.08,-186.31C1365.47,-183.66 1396.15,-180.86 1424,-179 1850.91,-150.54 1958.54,-161.43 2386,-143 2463.76,-139.65 2552.95,-135.21 2613.13,-132.14"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2613.47,-135.62 2623.28,-131.62 2613.11,-128.63 2613.47,-135.62"/>
</g>
<!-- Node27->Node20 -->
<g id="edge30" class="edge">
<title>Node27->Node20</title>
-<path fill="none" stroke="midnightblue" d="M2012.75,-188.47C1866.96,-177.28 1530.44,-150.69 1521,-143 1504.09,-129.22 1499.29,-103.44 1498.1,-85.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1501.6,-85.61 1497.75,-75.74 1494.6,-85.86 1501.6,-85.61"/>
+<path fill="none" stroke="midnightblue" d="M1292.36,-184.94C1330.66,-168.35 1419.17,-131.7 1497,-112 1580.04,-90.98 1678.5,-78.62 1740.37,-72.33"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1740.75,-75.81 1750.36,-71.34 1740.06,-68.85 1740.75,-75.81"/>
</g>
<!-- Node27->Node28 -->
<g id="edge33" class="edge">
<title>Node27->Node28</title>
-<path fill="none" stroke="midnightblue" d="M2101.75,-184.93C2125.05,-175.79 2162.02,-160.26 2192,-143 2212.42,-131.24 2213.23,-121 2235,-112 2319.5,-77.07 2428.75,-69.14 2482.37,-67.41"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2482.73,-70.91 2492.64,-67.14 2482.55,-63.91 2482.73,-70.91"/>
+<path fill="none" stroke="midnightblue" d="M1267.64,-184.95C1256.3,-167.68 1228,-128.88 1193,-112 1122.33,-77.93 881.16,-69.52 793.33,-67.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.23,-64.06 783.16,-67.35 793.08,-71.05 793.23,-64.06"/>
</g>
<!-- Node29->Node16 -->
<g id="edge38" class="edge">
<title>Node29->Node16</title>
-<path fill="none" stroke="midnightblue" d="M2067.54,-117.94C2055.65,-115.87 2042.87,-113.75 2031,-112 1927.43,-96.7 1807.07,-82.85 1731.96,-74.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1731.98,-71.16 1721.66,-73.56 1731.23,-78.12 1731.98,-71.16"/>
+<path fill="none" stroke="midnightblue" d="M2320.04,-117.98C2333.51,-108.43 2355.57,-92.81 2371.72,-81.37"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2373.85,-84.15 2379.99,-75.51 2369.8,-78.43 2373.85,-84.15"/>
</g>
<!-- Node29->Node21 -->
<g id="edge37" class="edge">
<title>Node29->Node21</title>
-<path fill="none" stroke="midnightblue" d="M2044.71,-120.89C2008.21,-118.03 1962.7,-114.61 1922,-112 1619.09,-92.57 1542.43,-101.86 1240,-76 1236.99,-75.74 1233.91,-75.46 1230.8,-75.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1231.12,-71.67 1220.81,-74.14 1230.41,-78.64 1231.12,-71.67"/>
+<path fill="none" stroke="midnightblue" d="M2339.66,-117.98C2378.56,-107.5 2444.64,-89.71 2487.55,-78.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2488.65,-81.49 2497.39,-75.51 2486.83,-74.73 2488.65,-81.49"/>
</g>
<!-- Node29->Node24 -->
<g id="edge39" class="edge">
<title>Node29->Node24</title>
-<path fill="none" stroke="midnightblue" d="M2071.88,-117.98C2013.55,-106.17 1909.27,-85.07 1855,-74.08"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1855.65,-70.64 1845.15,-72.09 1854.26,-77.5 1855.65,-70.64"/>
+<path fill="none" stroke="midnightblue" d="M2364.64,-117.98C2420.58,-109.25 2508.73,-94.61 2593.97,-76.08"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2594.79,-79.48 2603.81,-73.92 2593.29,-72.65 2594.79,-79.48"/>
</g>
<!-- Node29->Node25 -->
<g id="edge41" class="edge">
<title>Node29->Node25</title>
-<path fill="none" stroke="midnightblue" d="M2183,-123.28C2413.63,-112.52 3153.87,-77.97 3344.1,-69.1"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3344.46,-72.58 3354.29,-68.62 3344.14,-65.59 3344.46,-72.58"/>
+<path fill="none" stroke="midnightblue" d="M2377.05,-120.57C2483.39,-111.39 2693.64,-93 2872,-76 2886.43,-74.62 2902.17,-73.06 2916.35,-71.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2916.76,-75.09 2926.35,-70.6 2916.05,-68.13 2916.76,-75.09"/>
</g>
<!-- Node29->Node28 -->
<g id="edge40" class="edge">
<title>Node29->Node28</title>
-<path fill="none" stroke="midnightblue" d="M2161.36,-117.95C2173,-115.93 2185.44,-113.83 2197,-112 2301.26,-95.52 2425.21,-78.81 2482.72,-71.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2483.53,-74.64 2492.99,-69.87 2482.62,-67.7 2483.53,-74.64"/>
+<path fill="none" stroke="midnightblue" d="M2238.73,-120.56C2202.24,-117.61 2156.72,-114.21 2116,-112 1588.64,-83.34 944.76,-70.35 793.76,-67.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.43,-64.07 783.36,-67.39 793.3,-71.07 793.43,-64.07"/>
</g>
<!-- Node30 -->
<g id="node30" class="node">
<title>Node30</title>
<g id="a_node30"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1891.5,-56.5 1891.5,-75.5 2030.5,-75.5 2030.5,-56.5 1891.5,-56.5"/>
-<text text-anchor="middle" x="1961" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/shape.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2065.5,-56.5 2065.5,-75.5 2204.5,-75.5 2204.5,-56.5 2065.5,-56.5"/>
+<text text-anchor="middle" x="2135" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/shape.h</text>
</a>
</g>
</g>
<!-- Node29->Node30 -->
<g id="edge35" class="edge">
<title>Node29->Node30</title>
-<path fill="none" stroke="midnightblue" d="M2092.08,-117.98C2065.95,-107.81 2022.09,-90.76 1992.37,-79.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1993.47,-75.87 1982.88,-75.51 1990.93,-82.4 1993.47,-75.87"/>
+<path fill="none" stroke="midnightblue" d="M2283.21,-117.98C2253.41,-107.72 2203.21,-90.46 2169.6,-78.9"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2170.34,-75.45 2159.74,-75.51 2168.06,-82.07 2170.34,-75.45"/>
</g>
<!-- Node31 -->
<g id="node31" class="node">
<title>Node31</title>
<g id="a_node31"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2069.5,-56.5 2069.5,-75.5 2158.5,-75.5 2158.5,-56.5 2069.5,-56.5"/>
-<text text-anchor="middle" x="2114" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/dtype.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="2222.5,-56.5 2222.5,-75.5 2311.5,-75.5 2311.5,-56.5 2222.5,-56.5"/>
+<text text-anchor="middle" x="2267" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/dtype.h</text>
</a>
</g>
</g>
<!-- Node29->Node31 -->
<g id="edge36" class="edge">
<title>Node29->Node31</title>
-<path fill="none" stroke="midnightblue" d="M2114,-117.98C2114,-109.58 2114,-96.48 2114,-85.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2117.5,-85.51 2114,-75.51 2110.5,-85.51 2117.5,-85.51"/>
+<path fill="none" stroke="midnightblue" d="M2302.13,-117.98C2296.04,-109.14 2286.36,-95.09 2278.7,-83.98"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2281.42,-81.76 2272.86,-75.51 2275.66,-85.73 2281.42,-81.76"/>
</g>
<!-- Node33->Node15 -->
<g id="edge45" class="edge">
<title>Node33->Node15</title>
-<path fill="none" stroke="midnightblue" d="M1472.91,-246.4C1454.04,-235.34 1427.94,-220.06 1409.28,-209.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1410.93,-206.04 1400.53,-204.01 1407.39,-212.08 1410.93,-206.04"/>
+<path fill="none" stroke="midnightblue" d="M1667.78,-247.44C1670.89,-246.91 1673.98,-246.42 1677,-246 1820.77,-225.85 2257.57,-205.46 2423.3,-198.24"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2423.51,-201.73 2433.34,-197.8 2423.2,-194.74 2423.51,-201.73"/>
</g>
<!-- Node33->Node28 -->
<g id="edge73" class="edge">
<title>Node33->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1553.52,-247.04C1595.95,-236.37 1650.03,-221.41 1670,-210 1687.47,-200.02 1684.88,-187.75 1703,-179 1802.1,-131.13 1841.16,-169.41 1948,-143 1988.26,-133.05 1995.5,-120.89 2036,-112 2121.73,-93.17 2389.56,-74.93 2482.7,-69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2483.15,-72.48 2492.91,-68.35 2482.71,-65.49 2483.15,-72.48"/>
+<path fill="none" stroke="midnightblue" d="M1554.12,-248.38C1549.35,-247.52 1544.6,-246.71 1540,-246 1464.47,-234.34 1259.7,-255.09 1198,-210 1159.6,-181.94 1193.28,-140.23 1155,-112 1097.87,-69.86 877.13,-66.41 793.43,-66.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.22,-63.16 783.24,-66.71 793.26,-70.16 793.22,-63.16"/>
</g>
<!-- Node33->Node29 -->
<g id="edge46" class="edge">
<title>Node33->Node29</title>
-<path fill="none" stroke="midnightblue" d="M1553.83,-248.27C1595.44,-238.9 1653.12,-225.06 1703,-210 1741.9,-198.26 1749.63,-189.05 1789,-179 1835.03,-167.24 1958.51,-149.44 2039.32,-138.41"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2040.01,-141.85 2049.45,-137.03 2039.07,-134.91 2040.01,-141.85"/>
+<path fill="none" stroke="midnightblue" d="M1667.79,-247.51C1670.9,-246.96 1673.98,-246.45 1677,-246 1774.68,-231.37 2029.72,-250.06 2120,-210 2138.39,-201.84 2135.68,-189.25 2153,-179 2184.75,-160.2 2224.37,-147.45 2255.6,-139.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2256.56,-142.83 2265.43,-137.04 2254.88,-136.04 2256.56,-142.83"/>
</g>
<!-- Node33->Node32 -->
<g id="edge70" class="edge">
<title>Node33->Node32</title>
-<path fill="none" stroke="midnightblue" d="M1553.73,-250.45C1610.69,-240.34 1700.96,-224.24 1779,-210 1793.58,-207.34 1809.68,-204.35 1823.45,-201.79"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1824.27,-205.19 1833.46,-199.92 1822.98,-198.31 1824.27,-205.19"/>
+<path fill="none" stroke="midnightblue" d="M1610.57,-246.4C1610.28,-237.06 1609.9,-224.71 1609.59,-214.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1613.07,-214.08 1609.27,-204.19 1606.08,-214.3 1613.07,-214.08"/>
</g>
<!-- Node33->Node34 -->
<g id="edge47" class="edge">
<title>Node33->Node34</title>
-<path fill="none" stroke="midnightblue" d="M1518.92,-246.4C1535.85,-235.5 1559.19,-220.48 1576.12,-209.58"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1578.27,-212.36 1584.78,-204.01 1574.48,-206.48 1578.27,-212.36"/>
+<path fill="none" stroke="midnightblue" d="M1667.82,-247.71C1670.92,-247.11 1674,-246.53 1677,-246 1780,-227.71 1900.11,-212.46 1975.12,-203.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1975.87,-207.09 1985.4,-202.45 1975.06,-200.14 1975.87,-207.09"/>
</g>
<!-- Node33->Node42 -->
<g id="edge71" class="edge">
<title>Node33->Node42</title>
-<path fill="none" stroke="midnightblue" d="M1440.42,-246.72C1367.24,-229.25 1235.68,-198.98 1122,-179 1004.07,-158.27 971.94,-168.74 855,-143 851.08,-142.14 847.01,-141.1 842.98,-139.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="843.74,-136.56 833.16,-137.1 841.77,-143.28 843.74,-136.56"/>
+<path fill="none" stroke="midnightblue" d="M1554.37,-252.25C1539.01,-250.11 1522.38,-247.88 1507,-246 1355.29,-227.44 1316.79,-227.88 1165,-210 945.9,-184.19 684.25,-148.48 582.97,-134.48"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="583.22,-130.98 572.83,-133.07 582.26,-137.91 583.22,-130.98"/>
</g>
<!-- Node33->Node43 -->
<g id="edge72" class="edge">
<title>Node33->Node43</title>
-<path fill="none" stroke="midnightblue" d="M1440.5,-255.29C1299.47,-242.29 935.34,-208.72 824.5,-198.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="824.56,-194.99 814.29,-197.55 823.92,-201.96 824.56,-194.99"/>
+<path fill="none" stroke="midnightblue" d="M1554.43,-251.68C1539.08,-249.54 1522.43,-247.45 1507,-246 1117.42,-209.31 641.78,-198.39 515.2,-196.04"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="515.09,-192.54 505.03,-195.86 514.96,-199.54 515.09,-192.54"/>
</g>
<!-- Node34->Node6 -->
<g id="edge51" class="edge">
<title>Node34->Node6</title>
-<path fill="none" stroke="midnightblue" d="M1660.63,-189.48C1706.21,-186.56 1769.43,-182.51 1825,-179 2108.04,-161.1 2446.94,-140 2577.26,-131.9"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2577.62,-135.39 2587.38,-131.27 2577.18,-128.4 2577.62,-135.39"/>
+<path fill="none" stroke="midnightblue" d="M1985.24,-189.41C1940.34,-186.49 1878.45,-182.48 1824,-179 1543.76,-161.08 1208.26,-140.04 1078.73,-131.92"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1078.87,-128.43 1068.67,-131.29 1078.43,-135.41 1078.87,-128.43"/>
</g>
<!-- Node34->Node17 -->
<g id="edge60" class="edge">
<title>Node34->Node17</title>
-<path fill="none" stroke="midnightblue" d="M1535.37,-185.26C1518.39,-183.12 1500,-180.89 1483,-179 1316.15,-160.5 1273.82,-161.78 1107,-143 1093.28,-141.46 1078.64,-139.66 1064.61,-137.88"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1064.9,-134.39 1054.53,-136.58 1064.01,-141.33 1064.9,-134.39"/>
+<path fill="none" stroke="midnightblue" d="M2110.62,-187.09C2229.77,-174.89 2488.3,-148.43 2612.97,-135.67"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2613.57,-139.12 2623.17,-134.62 2612.86,-132.16 2613.57,-139.12"/>
</g>
<!-- Node34->Node20 -->
<g id="edge50" class="edge">
<title>Node34->Node20</title>
-<path fill="none" stroke="midnightblue" d="M1552.09,-184.93C1528.34,-177.92 1501.38,-165.34 1487,-143 1475.87,-125.71 1482.14,-101.67 1488.89,-85.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1492.26,-86.33 1493.21,-75.78 1485.89,-83.43 1492.26,-86.33"/>
+<path fill="none" stroke="midnightblue" d="M2032.1,-184.84C2014.88,-175.26 1986.83,-159.05 1964,-143 1946.17,-130.46 1944.97,-122.73 1926,-112 1900.15,-97.37 1868.68,-86.08 1843.79,-78.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1844.49,-75.02 1833.9,-75.52 1842.49,-81.73 1844.49,-75.02"/>
</g>
<!-- Node34->Node21 -->
<g id="edge52" class="edge">
<title>Node34->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1555.73,-185C1544.47,-182.88 1532.3,-180.73 1521,-179 1453.54,-168.68 1274.39,-178.33 1216,-143 1194.05,-129.72 1179.18,-103.22 1171.14,-85.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1174.3,-83.76 1167.2,-75.9 1167.84,-86.47 1174.3,-83.76"/>
+<path fill="none" stroke="midnightblue" d="M2063.51,-184.8C2094.26,-167.96 2165.55,-130.9 2230,-112 2241.06,-108.76 2377.65,-88.79 2462.34,-76.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2463,-80.01 2472.4,-75.12 2462,-73.08 2463,-80.01"/>
</g>
<!-- Node34->Node23 -->
<g id="edge68" class="edge">
<title>Node34->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1535.34,-185.53C1518.36,-183.38 1499.98,-181.09 1483,-179 1349.27,-162.57 1314.36,-168.18 1182,-143 1128.73,-132.87 1117.56,-120.46 1064,-112 769.86,-65.55 408.09,-65.35 298.78,-66.51"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="298.67,-63.01 288.71,-66.62 298.75,-70.01 298.67,-63.01"/>
+<path fill="none" stroke="midnightblue" d="M2105.88,-184.94C2240.11,-165.13 2565.01,-117.39 2615,-112 2839.69,-87.75 3111.49,-73.13 3204.2,-68.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3204.54,-72.04 3214.35,-68.06 3204.2,-65.05 3204.54,-72.04"/>
</g>
<!-- Node34->Node26 -->
<g id="edge69" class="edge">
<title>Node34->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1535.4,-186.74C1509.06,-184.05 1478.06,-181.11 1450,-179 1146.44,-156.15 1068.71,-175.26 766,-143 747.23,-141 726.42,-137.72 709.54,-134.78"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="710.05,-131.32 699.59,-133.01 708.83,-138.21 710.05,-131.32"/>
+<path fill="none" stroke="midnightblue" d="M2006.96,-185C1995.37,-182.81 1982.72,-180.62 1971,-179 1790.23,-154.09 1738.77,-188.3 1562,-143 1559.7,-142.41 1557.35,-141.68 1555.03,-140.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1556.33,-137.61 1545.75,-137.12 1553.72,-144.1 1556.33,-137.61"/>
</g>
<!-- Node34->Node29 -->
<g id="edge53" class="edge">
<title>Node34->Node29</title>
-<path fill="none" stroke="midnightblue" d="M1660.76,-185.59C1755.24,-173.69 1933.86,-151.19 2036.39,-138.28"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2036.89,-141.74 2046.37,-137.02 2036.01,-134.8 2036.89,-141.74"/>
+<path fill="none" stroke="midnightblue" d="M2082.26,-184.94C2128.93,-173.27 2212.53,-152.37 2263.85,-139.54"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2264.81,-142.9 2273.67,-137.08 2263.12,-136.11 2264.81,-142.9"/>
</g>
<!-- Node34->Node30 -->
<g id="edge49" class="edge">
<title>Node34->Node30</title>
-<path fill="none" stroke="midnightblue" d="M1641.52,-184.98C1652.43,-182.93 1664.13,-180.81 1675,-179 1784.42,-160.73 1831.76,-207.52 1922,-143 1941.18,-129.29 1951.58,-103.29 1956.71,-85.56"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1960.12,-86.33 1959.25,-75.77 1953.35,-84.57 1960.12,-86.33"/>
+<path fill="none" stroke="midnightblue" d="M2065.49,-184.97C2081.09,-176.47 2103.35,-161.96 2116,-143 2127.42,-125.89 2131.98,-102.46 2133.8,-86.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2137.32,-86 2134.69,-75.74 2130.35,-85.4 2137.32,-86"/>
</g>
<!-- Node35 -->
<g id="node35" class="node">
<title>Node35</title>
<g id="a_node35"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1699,-118 1699,-137 1845,-137 1845,-118 1699,-118"/>
-<text text-anchor="middle" x="1772" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/ndarray.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1639,-118 1639,-137 1785,-137 1785,-118 1639,-118"/>
+<text text-anchor="middle" x="1712" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/ndarray.h</text>
</a>
</g>
</g>
<!-- Node34->Node35 -->
<g id="edge48" class="edge">
<title>Node34->Node35</title>
-<path fill="none" stroke="midnightblue" d="M1621.11,-184.87C1651.48,-173.52 1705.01,-153.52 1739.47,-140.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1740.93,-143.84 1749.08,-137.06 1738.48,-137.28 1740.93,-143.84"/>
+<path fill="none" stroke="midnightblue" d="M2003.73,-184.94C1942.58,-173.11 1832.36,-151.78 1766.31,-139.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1766.59,-135.49 1756.1,-137.03 1765.26,-142.37 1766.59,-135.49"/>
</g>
<!-- Node36 -->
<g id="node36" class="node">
<title>Node36</title>
<g id="a_node36"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API.">
-<polygon fill="white" stroke="black" points="1529.5,-112.5 1529.5,-142.5 1642.5,-142.5 1642.5,-112.5 1529.5,-112.5"/>
-<text text-anchor="start" x="1537.5" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/device</text>
-<text text-anchor="middle" x="1586" y="-119.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
+<polygon fill="white" stroke="black" points="1803.5,-112.5 1803.5,-142.5 1916.5,-142.5 1916.5,-112.5 1803.5,-112.5"/>
+<text text-anchor="start" x="1811.5" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/device</text>
+<text text-anchor="middle" x="1860" y="-119.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
</a>
</g>
</g>
<!-- Node34->Node36 -->
<g id="edge54" class="edge">
<title>Node34->Node36</title>
-<path fill="none" stroke="midnightblue" d="M1596.38,-184.73C1594.87,-176.54 1592.54,-163.92 1590.47,-152.71"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1593.86,-151.79 1588.6,-142.59 1586.97,-153.06 1593.86,-151.79"/>
+<path fill="none" stroke="midnightblue" d="M2023.04,-184.87C1994.34,-174.95 1946.5,-158.41 1910.05,-145.81"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1911.17,-142.49 1900.57,-142.53 1908.88,-149.1 1911.17,-142.49"/>
</g>
<!-- Node38 -->
<g id="node38" class="node">
<title>Node38</title>
<g id="a_node38"><a xlink:href="serializer_8h.html" target="_top" xlink:title="Serializer extension to support TVM data types Include this file to enable serialization of DLDataTyp...">
-<polygon fill="white" stroke="black" points="1225,-118 1225,-137 1359,-137 1359,-118 1225,-118"/>
-<text text-anchor="middle" x="1292" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/serializer.h</text>
+<polygon fill="white" stroke="black" points="1973,-118 1973,-137 2107,-137 2107,-118 1973,-118"/>
+<text text-anchor="middle" x="2040" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/serializer.h</text>
</a>
</g>
</g>
<!-- Node34->Node38 -->
<g id="edge61" class="edge">
<title>Node34->Node38</title>
-<path fill="none" stroke="midnightblue" d="M1552.94,-184.94C1495.15,-173.2 1395.72,-152.11 1337.65,-139.3"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1338.18,-135.83 1327.66,-137.08 1336.66,-142.66 1338.18,-135.83"/>
+<path fill="none" stroke="midnightblue" d="M2042.13,-184.73C2038.95,-175.18 2036.57,-159.62 2036.13,-147.28"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2039.63,-147.19 2036.3,-137.13 2032.63,-147.07 2039.63,-147.19"/>
</g>
<!-- Node41 -->
<g id="node41" class="node">
<title>Node41</title>
<g id="a_node41"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1863,-118 1863,-137 1913,-137 1913,-118 1863,-118"/>
-<text text-anchor="middle" x="1888" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">atomic</text>
+<polygon fill="white" stroke="#bfbfbf" points="1571,-118 1571,-137 1621,-137 1621,-118 1571,-118"/>
+<text text-anchor="middle" x="1596" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">atomic</text>
</a>
</g>
</g>
<!-- Node34->Node41 -->
<g id="edge66" class="edge">
<title>Node34->Node41</title>
-<path fill="none" stroke="midnightblue" d="M1642.41,-184.99C1713,-171.42 1843.92,-146.11 1854,-143 1856.14,-142.34 1858.33,-141.59 1860.52,-140.79"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1861.92,-144 1869.91,-137.04 1859.33,-137.49 1861.92,-144"/>
+<path fill="none" stroke="midnightblue" d="M2006.14,-184.98C1994.77,-182.84 1982.44,-180.68 1971,-179 1820.22,-156.88 1777.5,-181.32 1630,-143 1627.64,-142.39 1625.24,-141.64 1622.85,-140.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1623.88,-137.45 1613.3,-137.05 1621.32,-143.97 1623.88,-137.45"/>
</g>
<!-- Node34->Node42 -->
<g id="edge67" class="edge">
<title>Node34->Node42</title>
-<path fill="none" stroke="midnightblue" d="M1535.38,-186.96C1509.04,-184.31 1478.04,-181.34 1450,-179 1217.81,-159.64 1158.94,-165.1 927,-143 901.58,-140.58 873.18,-137.15 850.51,-134.23"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="850.9,-130.75 840.53,-132.93 849.99,-137.69 850.9,-130.75"/>
+<path fill="none" stroke="midnightblue" d="M1985.26,-189.01C1940.37,-185.91 1878.48,-181.83 1824,-179 1574.2,-166 776.79,-137.03 582.83,-130.04"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="582.86,-126.54 572.74,-129.67 582.61,-133.53 582.86,-126.54"/>
</g>
<!-- Node36->Node16 -->
<g id="edge58" class="edge">
<title>Node36->Node16</title>
-<path fill="none" stroke="midnightblue" d="M1603.3,-112.4C1614.45,-103.31 1628.95,-91.49 1640.36,-82.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1642.84,-84.69 1648.38,-75.66 1638.42,-79.26 1642.84,-84.69"/>
+<path fill="none" stroke="midnightblue" d="M1916.62,-118.21C1931.98,-116.07 1948.61,-113.85 1964,-112 2119.09,-93.38 2160.85,-93.99 2319.19,-76.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2319.75,-79.64 2329.29,-75.04 2318.96,-72.68 2319.75,-79.64"/>
</g>
<!-- Node36->Node20 -->
<g id="edge56" class="edge">
<title>Node36->Node20</title>
-<path fill="none" stroke="midnightblue" d="M1565.15,-112.4C1551.3,-103.04 1533.19,-90.79 1519.26,-81.38"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1521.05,-78.36 1510.8,-75.66 1517.13,-84.16 1521.05,-78.36"/>
+<path fill="none" stroke="midnightblue" d="M1846.02,-112.4C1837.27,-103.58 1825.97,-92.18 1816.88,-83.02"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1819.11,-80.29 1809.59,-75.66 1814.14,-85.22 1819.11,-80.29"/>
</g>
<!-- Node36->Node21 -->
<g id="edge57" class="edge">
<title>Node36->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1529.09,-118.48C1451.55,-107.54 1312.99,-88.01 1230.68,-76.4"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1231.07,-72.92 1220.68,-74.99 1230.1,-79.85 1231.07,-72.92"/>
+<path fill="none" stroke="midnightblue" d="M1916.59,-117.91C1931.95,-115.77 1948.59,-113.63 1964,-112 2182.32,-88.95 2240.72,-98.99 2462.31,-76.12"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2462.72,-79.59 2472.31,-75.07 2462,-72.63 2462.72,-79.59"/>
</g>
<!-- Node36->Node28 -->
<g id="edge59" class="edge">
<title>Node36->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1642.84,-114.1C1647.62,-113.3 1652.38,-112.58 1657,-112 1973.1,-72.01 2054.89,-94.08 2373,-76 2410.61,-73.86 2453.81,-71.08 2482.59,-69.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2483.12,-72.65 2492.87,-68.49 2482.66,-65.66 2483.12,-72.65"/>
+<path fill="none" stroke="midnightblue" d="M1803.23,-113.38C1800.12,-112.86 1797.02,-112.4 1794,-112 1593.45,-85.8 945.57,-70.86 793.27,-67.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.24,-64.15 783.17,-67.44 793.1,-71.15 793.24,-64.15"/>
</g>
<!-- Node37 -->
<g id="node37" class="node">
<title>Node37</title>
<g id="a_node37"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2286.5,-56.5 2286.5,-75.5 2363.5,-75.5 2363.5,-56.5 2286.5,-56.5"/>
-<text text-anchor="middle" x="2325" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/any.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1283.5,-56.5 1283.5,-75.5 1360.5,-75.5 1360.5,-56.5 1283.5,-56.5"/>
+<text text-anchor="middle" x="1322" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/any.h</text>
</a>
</g>
</g>
<!-- Node36->Node37 -->
<g id="edge55" class="edge">
<title>Node36->Node37</title>
-<path fill="none" stroke="midnightblue" d="M1642.85,-114.19C1647.62,-113.37 1652.39,-112.62 1657,-112 1717.75,-103.79 2132.04,-78.55 2275.91,-69.92"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2276.42,-73.4 2286.19,-69.31 2276,-66.41 2276.42,-73.4"/>
+<path fill="none" stroke="midnightblue" d="M1803.2,-113.56C1800.1,-113 1797.01,-112.47 1794,-112 1640.6,-87.93 1457,-74.9 1370.99,-69.71"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1370.93,-66.2 1360.74,-69.1 1370.52,-73.19 1370.93,-66.2"/>
</g>
<!-- Node38->Node21 -->
<g id="edge64" class="edge">
<title>Node38->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1273.66,-117.98C1252.18,-107.99 1216.38,-91.35 1191.55,-79.81"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1192.85,-76.55 1182.31,-75.51 1189.9,-82.9 1192.85,-76.55"/>
+<path fill="none" stroke="midnightblue" d="M2107.02,-118.29C2123.98,-116.22 2142.16,-114.02 2159,-112 2291.35,-96.13 2326.96,-93.48 2462.36,-76.19"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2462.81,-79.66 2472.29,-74.92 2461.93,-72.72 2462.81,-79.66"/>
</g>
<!-- Node38->Node34 -->
<g id="edge65" class="edge">
<title>Node38->Node34</title>
-<path fill="none" stroke="midnightblue" d="M1336.9,-137.03C1394.69,-148.77 1494.32,-169.9 1552.43,-182.72"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1551.91,-186.19 1562.43,-184.94 1553.42,-179.36 1551.91,-186.19"/>
+<path fill="none" stroke="midnightblue" d="M2045.82,-137.13C2049.01,-146.62 2051.41,-162.17 2051.87,-174.54"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.36,-174.68 2051.71,-184.73 2055.36,-174.79 2048.36,-174.68"/>
</g>
<!-- Node39 -->
<g id="node39" class="node">
<title>Node39</title>
<g id="a_node39"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1249,-56.5 1249,-75.5 1311,-75.5 1311,-56.5 1249,-56.5"/>
-<text text-anchor="middle" x="1280" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/io.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1870,-56.5 1870,-75.5 1932,-75.5 1932,-56.5 1870,-56.5"/>
+<text text-anchor="middle" x="1901" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/io.h</text>
</a>
</g>
</g>
<!-- Node38->Node39 -->
<g id="edge62" class="edge">
<title>Node38->Node39</title>
-<path fill="none" stroke="midnightblue" d="M1290.28,-117.98C1288.57,-109.49 1285.89,-96.2 1283.7,-85.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1287.12,-84.62 1281.72,-75.51 1280.26,-86 1287.12,-84.62"/>
+<path fill="none" stroke="midnightblue" d="M2020.08,-117.98C1996.55,-107.9 1957.19,-91.05 1930.21,-79.5"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1931.45,-76.23 1920.88,-75.51 1928.69,-82.66 1931.45,-76.23"/>
</g>
<!-- Node40 -->
<g id="node40" class="node">
<title>Node40</title>
<g id="a_node40"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="1329.5,-56.5 1329.5,-75.5 1426.5,-75.5 1426.5,-56.5 1329.5,-56.5"/>
-<text text-anchor="middle" x="1378" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/serializer.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1950.5,-56.5 1950.5,-75.5 2047.5,-75.5 2047.5,-56.5 1950.5,-56.5"/>
+<text text-anchor="middle" x="1999" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/serializer.h</text>
</a>
</g>
</g>
<!-- Node38->Node40 -->
<g id="edge63" class="edge">
<title>Node38->Node40</title>
-<path fill="none" stroke="midnightblue" d="M1304.32,-117.98C1318.12,-108.43 1340.7,-92.81 1357.23,-81.37"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1359.47,-84.08 1365.7,-75.51 1355.49,-78.32 1359.47,-84.08"/>
+<path fill="none" stroke="midnightblue" d="M2034.13,-117.98C2028.04,-109.14 2018.36,-95.09 2010.7,-83.98"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2013.42,-81.76 2004.86,-75.51 2007.66,-85.73 2013.42,-81.76"/>
</g>
<!-- Node44->Node15 -->
<g id="edge82" class="edge">
<title>Node44->Node15</title>
-<path fill="none" stroke="midnightblue" d="M2427.23,-428.38C2223.57,-410.79 1611.77,-356.6 1525,-333 1467.04,-317.23 1439.24,-324.13 1402,-277 1387.85,-259.1 1385.08,-232.18 1385.03,-214.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1388.53,-214.25 1385.28,-204.16 1381.53,-214.07 1388.53,-214.25"/>
+<path fill="none" stroke="midnightblue" d="M1265.88,-429.63C1491.04,-414.47 2221.7,-363.43 2323,-333 2373.28,-317.9 2387.23,-311.26 2427,-277 2448.69,-258.31 2467.36,-230.64 2478.14,-212.84"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2481.24,-214.48 2483.29,-204.08 2475.2,-210.93 2481.24,-214.48"/>
</g>
<!-- Node44->Node28 -->
<g id="edge95" class="edge">
<title>Node44->Node28</title>
-<path fill="none" stroke="midnightblue" d="M2558.57,-431.15C2624.99,-426.78 2721.36,-415.89 2746,-389 2779.77,-352.16 2753.4,-326.91 2756,-277 2759.9,-202.04 2780.15,-156.89 2720,-112 2668.47,-73.54 2590.59,-66.72 2547.16,-66.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2547.16,-62.7 2537.15,-66.18 2547.14,-69.7 2547.16,-62.7"/>
+<path fill="none" stroke="midnightblue" d="M1185.61,-425.4C1170.79,-416.49 1147.1,-402.05 1127,-389 1089.98,-364.97 1079.31,-360.76 1045,-333 934.28,-243.44 918.43,-207.73 813,-112 801.95,-101.97 789.29,-91 779.23,-82.41"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="781.37,-79.63 771.49,-75.82 776.84,-84.97 781.37,-79.63"/>
</g>
<!-- Node45 -->
<g id="node45" class="node">
<title>Node45</title>
<g id="a_node45"><a xlink:href="script__printer_8h.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2597.5,-369.5 2597.5,-388.5 2736.5,-388.5 2736.5,-369.5 2597.5,-369.5"/>
-<text text-anchor="middle" x="2667" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/script_printer.h</text>
+<polygon fill="white" stroke="black" points="1164.5,-369.5 1164.5,-388.5 1303.5,-388.5 1303.5,-369.5 1164.5,-369.5"/>
+<text text-anchor="middle" x="1234" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/script_printer.h</text>
</a>
</g>
</g>
<!-- Node44->Node45 -->
<g id="edge83" class="edge">
<title>Node44->Node45</title>
-<path fill="none" stroke="midnightblue" d="M2520.57,-425.44C2550.1,-416.28 2597.12,-401.69 2629.88,-391.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2631.04,-394.82 2639.56,-388.52 2628.97,-388.14 2631.04,-394.82"/>
+<path fill="none" stroke="midnightblue" d="M1205.61,-425.08C1210.37,-417.53 1217.32,-406.49 1223.15,-397.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1226.12,-399.08 1228.49,-388.75 1220.2,-395.35 1226.12,-399.08"/>
</g>
<!-- Node46 -->
<g id="node46" class="node">
<title>Node46</title>
<g id="a_node46"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2465,-313.5 2465,-332.5 2525,-332.5 2525,-313.5 2465,-313.5"/>
-<text text-anchor="middle" x="2495" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
+<polygon fill="white" stroke="#bfbfbf" points="1054,-313.5 1054,-332.5 1114,-332.5 1114,-313.5 1054,-313.5"/>
+<text text-anchor="middle" x="1084" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
<!-- Node44->Node46 -->
<g id="edge94" class="edge">
<title>Node44->Node46</title>
-<path fill="none" stroke="midnightblue" d="M2493.16,-425.37C2493.48,-407.62 2494.22,-366.67 2494.66,-342.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2498.16,-342.65 2494.84,-332.59 2491.16,-342.53 2498.16,-342.65"/>
+<path fill="none" stroke="midnightblue" d="M1190.9,-425.37C1171.42,-406.89 1125.44,-363.29 1100.6,-339.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1102.72,-336.93 1093.06,-332.59 1097.91,-342.01 1102.72,-336.93"/>
</g>
<!-- Node45->Node6 -->
<g id="edge87" class="edge">
<title>Node45->Node6</title>
-<path fill="none" stroke="midnightblue" d="M2665.8,-369.41C2660.8,-333.8 2641.64,-197.25 2634.61,-147.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2638.06,-146.47 2633.2,-137.05 2631.12,-147.44 2638.06,-146.47"/>
+<path fill="none" stroke="midnightblue" d="M1229.45,-369.15C1222.61,-356.21 1208.87,-331.65 1194,-313 1153.23,-261.9 1132.79,-258.53 1089,-210 1069.77,-188.69 1049.41,-162.49 1036.71,-145.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1039.29,-143.26 1030.5,-137.35 1033.69,-147.45 1039.29,-143.26"/>
</g>
<!-- Node45->Node11 -->
<g id="edge90" class="edge">
<title>Node45->Node11</title>
-<path fill="none" stroke="midnightblue" d="M2597.17,-374.12C2418.54,-364.18 1946.48,-337.93 1766.8,-327.94"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1766.85,-324.43 1756.67,-327.37 1766.46,-331.42 1766.85,-324.43"/>
+<path fill="none" stroke="midnightblue" d="M1303.59,-374.18C1483.94,-364.28 1965.08,-337.88 2147,-327.9"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2147.46,-331.38 2157.25,-327.33 2147.07,-324.39 2147.46,-331.38"/>
</g>
<!-- Node45->Node12 -->
<g id="edge86" class="edge">
<title>Node45->Node12</title>
-<path fill="none" stroke="midnightblue" d="M2648.87,-369.43C2630.54,-360.65 2601.51,-346.43 2577,-333 2543,-314.38 2504.64,-291 2481.14,-276.41"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2482.95,-273.41 2472.61,-271.09 2479.25,-279.35 2482.95,-273.41"/>
+<path fill="none" stroke="midnightblue" d="M1303.78,-373.03C1391.79,-366.29 1547.61,-352.78 1680,-333 1791.28,-316.38 1920.56,-288.52 1988.23,-273.27"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1989.17,-276.65 1998.15,-271.03 1987.62,-269.82 1989.17,-276.65"/>
</g>
<!-- Node45->Node14 -->
<g id="edge85" class="edge">
<title>Node45->Node14</title>
-<path fill="none" stroke="midnightblue" d="M2687.84,-369.41C2706.63,-361.24 2734.67,-348 2757,-333 2813.67,-294.94 2871.96,-238.43 2898.79,-211.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2901.3,-213.68 2905.79,-204.09 2896.29,-208.79 2901.3,-213.68"/>
+<path fill="none" stroke="midnightblue" d="M1237.6,-369.22C1241.06,-360.28 1246.03,-345.94 1248,-333 1249.34,-324.21 1248.97,-321.84 1248,-313 1244.73,-283.19 1220.92,-269.14 1240,-246 1241.64,-244.01 1368.39,-220.06 1444.29,-205.87"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1445,-209.3 1454.19,-204.02 1443.71,-202.42 1445,-209.3"/>
</g>
<!-- Node45->Node15 -->
<g id="edge88" class="edge">
<title>Node45->Node15</title>
-<path fill="none" stroke="midnightblue" d="M2597.25,-375.94C2379.65,-369.37 1722.04,-348.48 1627,-333 1582.5,-325.75 1467.39,-304.94 1432,-277 1411.32,-260.67 1398.38,-232.33 1391.67,-213.74"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1394.93,-212.45 1388.43,-204.09 1388.3,-214.68 1394.93,-212.45"/>
+<path fill="none" stroke="midnightblue" d="M1303.84,-377.25C1524.13,-374.59 2195.28,-363.98 2288,-333 2365.41,-307.13 2440.17,-241.7 2471.98,-211.37"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2474.7,-213.61 2479.45,-204.14 2469.83,-208.58 2474.7,-213.61"/>
</g>
<!-- Node45->Node27 -->
<g id="edge89" class="edge">
<title>Node45->Node27</title>
-<path fill="none" stroke="midnightblue" d="M2656.35,-369.36C2645.63,-360.52 2628.75,-346.26 2615,-333 2576.97,-296.33 2581.2,-269.73 2534,-246 2469.53,-213.59 2267.6,-201.75 2155.65,-197.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2155.55,-194.1 2145.44,-197.24 2155.3,-201.09 2155.55,-194.1"/>
+<path fill="none" stroke="midnightblue" d="M1235.48,-369.24C1237.27,-356.42 1239.21,-332 1232,-313 1224.61,-293.53 1209.09,-296.58 1202,-277 1197.31,-264.05 1195.68,-258.24 1202,-246 1210.56,-229.41 1227.36,-217.08 1242.47,-208.76"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1244.27,-211.77 1251.57,-204.09 1241.08,-205.54 1244.27,-211.77"/>
</g>
<!-- Node45->Node28 -->
<g id="edge93" class="edge">
<title>Node45->Node28</title>
-<path fill="none" stroke="midnightblue" d="M2671.97,-369.34C2682.27,-350.53 2705,-304.3 2705,-262.5 2705,-262.5 2705,-262.5 2705,-193.5 2705,-156.31 2711.93,-138.67 2686,-112 2649.52,-74.48 2585.8,-66.97 2547.29,-66.15"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2547.17,-62.65 2537.14,-66.07 2547.12,-69.65 2547.17,-62.65"/>
+<path fill="none" stroke="midnightblue" d="M1217.87,-369.34C1201.9,-360.61 1176.86,-346.52 1156,-333 1015.53,-241.94 994.12,-198.83 851,-112 831.22,-100 807.81,-88.37 789.82,-79.94"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="790.99,-76.62 780.45,-75.6 788.06,-82.98 790.99,-76.62"/>
</g>
<!-- Node45->Node29 -->
<g id="edge91" class="edge">
<title>Node45->Node29</title>
-<path fill="none" stroke="midnightblue" d="M2662.95,-369.32C2651.43,-345.59 2616.01,-279.19 2566,-246 2450.96,-169.64 2288.96,-142.88 2193.38,-133.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2193.49,-130.01 2183.2,-132.56 2192.83,-136.98 2193.49,-130.01"/>
+<path fill="none" stroke="midnightblue" d="M1285.14,-369.45C1385.53,-352.58 1615.38,-313.45 1808,-277 1876.17,-264.1 1892.71,-258.26 1961,-246 2062.84,-227.72 2094.98,-248.56 2191,-210 2230.55,-194.12 2269.81,-162.74 2291.29,-143.89"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2293.75,-146.39 2298.87,-137.11 2289.08,-141.18 2293.75,-146.39"/>
</g>
<!-- Node45->Node37 -->
<g id="edge84" class="edge">
<title>Node45->Node37</title>
-<path fill="none" stroke="midnightblue" d="M2677.89,-369.42C2698.9,-351.82 2743,-309.31 2743,-262.5 2743,-262.5 2743,-262.5 2743,-193.5 2743,-149.3 2723.86,-134.81 2686,-112 2659.79,-96.21 2466.41,-78.54 2373.96,-70.88"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2373.99,-67.37 2363.74,-70.04 2373.42,-74.35 2373.99,-67.37"/>
+<path fill="none" stroke="midnightblue" d="M1223.99,-369.46C1176.75,-329.09 978.05,-158.75 971,-143 965.37,-130.42 961.9,-122.34 971,-112 990.64,-89.68 1181.2,-75.39 1273.02,-69.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1273.41,-73.23 1283.18,-69.13 1272.99,-66.24 1273.41,-73.23"/>
</g>
<!-- Node45->Node46 -->
<g id="edge92" class="edge">
<title>Node45->Node46</title>
-<path fill="none" stroke="midnightblue" d="M2639.75,-369.44C2610.56,-360.28 2564.08,-345.69 2531.69,-335.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2532.72,-332.17 2522.13,-332.52 2530.62,-338.85 2532.72,-332.17"/>
+<path fill="none" stroke="midnightblue" d="M1210.23,-369.44C1185.11,-360.4 1145.29,-346.06 1117.1,-335.92"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1118.25,-332.61 1107.66,-332.52 1115.88,-339.2 1118.25,-332.61"/>
</g>
<!-- Node48->Node7 -->
<g id="edge111" class="edge">
<title>Node48->Node7</title>
-<path fill="none" stroke="midnightblue" d="M1443.75,-597.63C1358.99,-588.42 1161.27,-566.93 1055.93,-555.49"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1056.04,-551.98 1045.72,-554.38 1055.28,-558.94 1056.04,-551.98"/>
+<path fill="none" stroke="midnightblue" d="M2133,-593.08C2133,-586.01 2133,-575.86 2133,-566.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2136.5,-566.75 2133,-556.75 2129.5,-566.75 2136.5,-566.75"/>
</g>
<!-- Node48->Node9 -->
<g id="edge112" class="edge">
<title>Node48->Node9</title>
-<path fill="none" stroke="midnightblue" d="M1494.44,-593.37C1516.97,-574.73 1570.41,-530.53 1598.7,-507.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1601.14,-509.66 1606.61,-500.59 1596.68,-504.27 1601.14,-509.66"/>
+<path fill="none" stroke="midnightblue" d="M2098.84,-593.46C2019.89,-573.72 1824.82,-524.96 1737.05,-503.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1737.69,-499.56 1727.14,-500.53 1735.99,-506.36 1737.69,-499.56"/>
</g>
<!-- Node48->Node14 -->
<g id="edge110" class="edge">
<title>Node48->Node14</title>
-<path fill="none" stroke="midnightblue" d="M1524.03,-599.42C1606.19,-593.87 1799.73,-579.44 1961,-557 2232.71,-519.19 2300.83,-507.29 2568,-445 2657.06,-424.24 2689.21,-438.67 2766,-389 2836.44,-343.44 2886.57,-252.32 2905.58,-213.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2908.95,-214.66 2910.11,-204.13 2902.63,-211.64 2908.95,-214.66"/>
+<path fill="none" stroke="midnightblue" d="M2111.42,-593.36C1991.34,-545.21 1410.18,-310.87 1388,-277 1380.45,-265.47 1380.52,-257.57 1388,-246 1400.55,-226.58 1422.55,-214.55 1443.75,-207.14"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1444.94,-210.43 1453.4,-204.04 1442.81,-203.76 1444.94,-210.43"/>
</g>
<!-- Node48->Node17 -->
<g id="edge114" class="edge">
<title>Node48->Node17</title>
-<path fill="none" stroke="midnightblue" d="M1443.64,-597.21C1393.3,-590.48 1311.02,-576.81 1288,-557 1240.21,-515.87 1264.24,-481.38 1236,-425 1178.44,-310.09 1176.56,-268.16 1084,-179 1067.22,-162.84 1044.28,-149.98 1025.89,-141.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1027.3,-138.08 1016.74,-137.12 1024.39,-144.45 1027.3,-138.08"/>
+<path fill="none" stroke="midnightblue" d="M2154.5,-593.41C2234.4,-560.82 2519.59,-438.41 2713,-277 2752.57,-243.98 2801.25,-223.35 2775,-179 2764.04,-160.49 2743.63,-148.31 2724.81,-140.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2726.05,-137.29 2715.46,-137 2723.56,-143.83 2726.05,-137.29"/>
</g>
<!-- Node48->Node28 -->
<g id="edge115" class="edge">
<title>Node48->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1524.09,-595.22C1528.78,-594.46 1533.49,-593.7 1538,-593 1737.99,-561.88 1807.32,-599.73 1984,-501 2091.92,-440.7 2094,-392.1 2189,-313 2300.54,-220.13 2442.15,-118.49 2494.42,-81.48"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2496.69,-84.16 2502.84,-75.53 2492.65,-78.45 2496.69,-84.16"/>
+<path fill="none" stroke="midnightblue" d="M2092.92,-598.97C1970.71,-589.35 1592.31,-556.82 1283,-501 1281.38,-500.71 1054.48,-445.71 1053,-445 920.42,-382.05 901.42,-332.77 821,-210 802,-180.99 794.43,-174.97 781,-143 773.09,-124.17 767.59,-101.38 764.39,-85.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="767.79,-84.85 762.46,-75.69 760.92,-86.17 767.79,-84.85"/>
</g>
<!-- Node48->Node29 -->
<g id="edge113" class="edge">
<title>Node48->Node29</title>
-<path fill="none" stroke="midnightblue" d="M1524.36,-594.71C1636.65,-574.25 1945.49,-516.8 1961,-501 2041.49,-418.96 2045.67,-353.12 2004,-246 1996.13,-225.77 1978.87,-230.23 1971,-210 1966.01,-197.16 1963.04,-190.25 1971,-179 1982.19,-163.18 2027.77,-148.86 2064.5,-139.55"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2065.73,-142.85 2074.59,-137.05 2064.05,-136.05 2065.73,-142.85"/>
+<path fill="none" stroke="midnightblue" d="M2152.08,-593.44C2167.18,-585.8 2187.85,-573.31 2201,-557 2268.02,-473.84 2263.24,-436.89 2288,-333 2303.97,-265.99 2307.23,-183.72 2307.86,-147.33"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2311.36,-147.25 2307.99,-137.21 2304.37,-147.17 2311.36,-147.25"/>
</g>
<!-- Node50->Node5 -->
<g id="edge127" class="edge">
<title>Node50->Node5</title>
-<path fill="none" stroke="midnightblue" d="M1614.43,-817.08C1585.56,-790.15 1499.09,-709.51 1462.57,-675.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1464.89,-672.83 1455.19,-668.57 1460.11,-677.95 1464.89,-672.83"/>
+<path fill="none" stroke="midnightblue" d="M1194.3,-828.26C1186.04,-801.54 1161,-720.52 1149.67,-683.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1152.93,-682.54 1146.63,-674.02 1146.24,-684.61 1152.93,-682.54"/>
</g>
<!-- Node50->Node6 -->
<g id="edge126" class="edge">
<title>Node50->Node6</title>
-<path fill="none" stroke="midnightblue" d="M1665.62,-825.59C1835.55,-823.72 2477.26,-814.51 2677,-781 2776.71,-764.27 2895,-817.1 2895,-716 2895,-716 2895,-716 2895,-602 2895,-537.42 2992.54,-396.37 3005,-333 3015.13,-281.44 3037.33,-227.71 2990,-179 2949.08,-136.89 2776.76,-129.36 2686.96,-128.35"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2686.72,-124.85 2676.69,-128.26 2686.66,-131.85 2686.72,-124.85"/>
+<path fill="none" stroke="midnightblue" d="M1155.42,-832.56C1141.04,-831.06 1124.81,-829.41 1110,-828 927.02,-810.54 875.31,-840.46 698,-792 642.39,-776.8 627.56,-769.99 581,-736 523.72,-694.19 275.79,-432.07 259,-389 225.88,-304.05 393.72,-193.06 424,-179 520.12,-134.37 840.37,-128.76 969.41,-128.35"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="969.48,-131.85 979.47,-128.33 969.46,-124.85 969.48,-131.85"/>
</g>
<!-- Node50->Node9 -->
<g id="edge129" class="edge">
<title>Node50->Node9</title>
-<path fill="none" stroke="midnightblue" d="M1665.57,-823.38C1767.76,-815.82 2023,-789.56 2023,-716 2023,-716 2023,-716 2023,-602 2023,-531.18 1789.97,-504.53 1677,-495.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1677.02,-492.26 1666.78,-495 1676.49,-499.25 1677.02,-492.26"/>
+<path fill="none" stroke="midnightblue" d="M1231.72,-828.5C1256.02,-821.41 1288.41,-809.6 1313,-792 1380.46,-743.7 1371.04,-704.18 1433,-649 1500.57,-588.82 1524.62,-582.2 1603,-537 1623.3,-525.29 1647.04,-513.5 1665.04,-504.92"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1666.84,-507.94 1674.39,-500.51 1663.85,-501.61 1666.84,-507.94"/>
</g>
<!-- Node50->Node12 -->
<g id="edge125" class="edge">
<title>Node50->Node12</title>
-<path fill="none" stroke="midnightblue" d="M1665.8,-824.65C1789.13,-820.43 2150.03,-806.19 2265,-781 2344.83,-763.51 2437,-797.72 2437,-716 2437,-716 2437,-716 2437,-546 2437,-491.63 2412.45,-478.97 2419,-425 2425.45,-371.8 2443.37,-310.91 2452.88,-281.02"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2456.32,-281.76 2456.08,-271.17 2449.66,-279.6 2456.32,-281.76"/>
+<path fill="none" stroke="midnightblue" d="M1238.81,-834.94C1345.04,-828.55 1617,-804.64 1617,-727 1617,-727 1617,-727 1617,-602 1617,-527.07 1693.33,-547.61 1752,-501 1854.56,-419.53 1973.24,-316.57 2017.33,-278.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2019.68,-280.6 2024.9,-271.38 2015.07,-275.34 2019.68,-280.6"/>
</g>
<!-- Node50->Node14 -->
<g id="edge124" class="edge">
<title>Node50->Node14</title>
-<path fill="none" stroke="midnightblue" d="M1665.7,-826.31C1793.76,-826.76 2192.42,-824.3 2519,-781 2654.24,-763.07 2819,-852.43 2819,-716 2819,-716 2819,-716 2819,-658 2819,-597.57 2853.39,-590.75 2881,-537 2904.07,-492.09 2933,-486.49 2933,-436 2933,-436 2933,-436 2933,-322 2933,-283.27 2924.18,-238.61 2918.56,-214.07"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2921.89,-212.94 2916.18,-204.02 2915.08,-214.56 2921.89,-212.94"/>
+<path fill="none" stroke="midnightblue" d="M1202.2,-828.24C1207.37,-819.32 1215.33,-804.98 1221,-792 1254.69,-714.84 1258.65,-693.6 1283,-613 1295.18,-572.68 1350.36,-277.78 1378,-246 1394.91,-226.55 1420.5,-214.45 1443.89,-206.98"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1445.15,-210.26 1453.74,-204.06 1443.16,-203.55 1445.15,-210.26"/>
</g>
<!-- Node50->Node15 -->
<g id="edge128" class="edge">
<title>Node50->Node15</title>
-<path fill="none" stroke="midnightblue" d="M1582.18,-822.9C1473.15,-814.69 1185.77,-792.28 1144,-781 1105.22,-770.53 1017.37,-719.72 980,-705 932.14,-686.15 916.15,-691.73 870,-669 850.21,-659.25 798.3,-632.51 788,-613 778.94,-595.84 787.13,-552.54 798,-537 937.33,-337.94 1232.71,-238.22 1343.15,-206.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1344.26,-210.1 1352.94,-204.03 1342.37,-203.36 1344.26,-210.1"/>
+<path fill="none" stroke="midnightblue" d="M1238.67,-836.63C1504.59,-834.03 2953,-815.77 2953,-727 2953,-727 2953,-727 2953,-663.5 2953,-571.97 2839,-583.53 2839,-492 2839,-492 2839,-492 2839,-434 2839,-292.61 2641.75,-229.18 2542.98,-206.28"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2543.69,-202.85 2533.17,-204.06 2542.15,-209.68 2543.69,-202.85"/>
</g>
<!-- Node50->Node21 -->
<g id="edge130" class="edge">
<title>Node50->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1624.52,-817.45C1625.61,-798.95 1628,-753.84 1628,-716 1628,-716 1628,-716 1628,-658 1628,-609.68 948.82,-186.12 927,-143 920.78,-130.71 918.21,-122.61 927,-112 937.89,-98.84 1031.13,-84.18 1097.35,-75.28"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1097.87,-78.74 1107.32,-73.95 1096.95,-71.8 1097.87,-78.74"/>
+<path fill="none" stroke="midnightblue" d="M1238.54,-836.97C1459.96,-836.63 2503.14,-832.88 2823,-792 2950.58,-775.7 3105,-855.62 3105,-727 3105,-727 3105,-727 3105,-378 3105,-181.56 2937.56,-176.47 2752,-112 2722.59,-101.78 2644.8,-87.08 2589.39,-77.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2589.78,-73.81 2579.32,-75.52 2588.57,-80.7 2589.78,-73.81"/>
</g>
<!-- Node50->Node23 -->
<g id="edge150" class="edge">
<title>Node50->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1582.3,-822.8C1557.77,-820.98 1526.13,-818.71 1498,-817 1181.3,-797.7 1101.05,-809.07 785,-781 714.93,-774.78 697.83,-769.46 628,-761 558.49,-752.58 374.43,-762.01 315,-725 255.82,-688.14 114,-521.36 114,-262.5 114,-262.5 114,-262.5 114,-193.5 114,-151.69 129.74,-139.77 161,-112 181.7,-93.61 211.05,-81.9 233.46,-75.04"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="234.58,-78.37 243.22,-72.23 232.64,-71.64 234.58,-78.37"/>
+<path fill="none" stroke="midnightblue" d="M1238.66,-836.79C1489.82,-835.42 2797.19,-826.67 2972,-792 3040.17,-778.48 3061.23,-776.09 3118,-736 3224.56,-660.74 3465,-392.95 3465,-262.5 3465,-262.5 3465,-262.5 3465,-193.5 3465,-105.35 3333.07,-78.11 3269.92,-70.12"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3270.04,-66.61 3259.7,-68.92 3269.22,-73.56 3270.04,-66.61"/>
</g>
<!-- Node50->Node28 -->
<g id="edge148" class="edge">
<title>Node50->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1665.6,-825.62C1888.9,-823.46 2940.56,-811.74 3082,-781 3155,-765.14 3237,-790.7 3237,-716 3237,-716 3237,-716 3237,-490 3237,-303.54 3231.54,-172.02 3055,-112 2960.04,-79.72 2648.63,-69.99 2547.23,-67.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2547.08,-64.14 2537,-67.42 2546.92,-71.14 2547.08,-64.14"/>
+<path fill="none" stroke="midnightblue" d="M1155.42,-832.46C1141.04,-830.96 1124.82,-829.33 1110,-828 1004.56,-818.55 735.44,-825.44 635,-792 495.27,-745.48 76,-583.27 76,-436 76,-436 76,-436 76,-193.5 76,-120.35 149.12,-133.65 219,-112 315.16,-82.21 627.16,-70.83 728.72,-67.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="729.07,-71.35 738.97,-67.56 728.87,-64.35 729.07,-71.35"/>
</g>
<!-- Node50->Node29 -->
<g id="edge131" class="edge">
<title>Node50->Node29</title>
-<path fill="none" stroke="midnightblue" d="M1665.71,-825.4C1746.11,-823.47 1927.72,-815.32 2076,-781 2156.83,-762.29 2251,-798.97 2251,-716 2251,-716 2251,-716 2251,-434 2251,-312.74 2213.9,-284.43 2154,-179 2146.99,-166.67 2137.11,-154.16 2128.92,-144.67"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2131.53,-142.35 2122.27,-137.2 2126.3,-147 2131.53,-142.35"/>
+<path fill="none" stroke="midnightblue" d="M1238.66,-836.79C1450.68,-835.59 2411.2,-828.2 2707,-792 2823.47,-777.75 2877.42,-814.09 2965,-736 3030.88,-677.26 3029,-636.26 3029,-548 3029,-548 3029,-548 3029,-378 3029,-316.83 3035.7,-286.66 2990,-246 2901.89,-167.61 2547.85,-140.35 2387.56,-131.9"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2387.45,-128.39 2377.29,-131.37 2387.09,-135.38 2387.45,-128.39"/>
</g>
<!-- Node50->Node43 -->
<g id="edge147" class="edge">
<title>Node50->Node43</title>
-<path fill="none" stroke="midnightblue" d="M1582.31,-822.33C1495.04,-814.48 1295.67,-795.56 1229,-781 1150.87,-763.94 1132.39,-754.36 1058,-725 1038.39,-717.26 1034.55,-712.87 1015,-705 969.24,-686.57 954.51,-690.28 910,-669 888.92,-658.92 832.3,-633.46 821,-613 767.65,-516.4 889.36,-477.07 867,-369 854.52,-308.66 820,-243.49 802.48,-213.04"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="805.32,-210.97 797.25,-204.11 799.28,-214.5 805.32,-210.97"/>
+<path fill="none" stroke="midnightblue" d="M1155.41,-832.67C1141.02,-831.18 1124.8,-829.51 1110,-828 950.47,-811.75 898.12,-855.8 751,-792 634.55,-741.49 536,-730.93 536,-604 536,-604 536,-604 536,-546 536,-417.57 500.78,-265.61 487.76,-213.83"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="491.14,-212.92 485.28,-204.1 484.36,-214.65 491.14,-212.92"/>
</g>
<!-- Node50->Node46 -->
<g id="edge146" class="edge">
<title>Node50->Node46</title>
-<path fill="none" stroke="midnightblue" d="M1665.71,-825.87C1811.85,-825.09 2300.02,-819.57 2451,-781 2515.91,-764.42 2587,-782.99 2587,-716 2587,-716 2587,-716 2587,-490 2587,-428.22 2537.65,-367.89 2511.24,-340.03"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2513.64,-337.48 2504.16,-332.76 2508.63,-342.36 2513.64,-337.48"/>
+<path fill="none" stroke="midnightblue" d="M1155.13,-832.65C1047.29,-821.45 768.4,-792.45 768,-792 622.28,-630.2 967.27,-396.88 1061.18,-337.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1063.06,-340.89 1069.7,-332.63 1059.36,-334.94 1063.06,-340.89"/>
</g>
<!-- Node50->Node49 -->
<g id="edge145" class="edge">
<title>Node50->Node49</title>
-<path fill="none" stroke="midnightblue" d="M1582.45,-821.48C1492.8,-810.97 1275.2,-781.39 1101,-725 1080.95,-718.51 1077.63,-712.68 1058,-705 1009.31,-685.94 992.26,-693.37 946,-669 920.44,-655.54 894.7,-634.2 878.58,-619.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="880.8,-616.97 871.07,-612.78 876.07,-622.13 880.8,-616.97"/>
+<path fill="none" stroke="midnightblue" d="M1198.65,-828.43C1205.17,-794.68 1229.16,-670.47 1238.37,-622.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1241.82,-623.38 1240.28,-612.9 1234.95,-622.05 1241.82,-623.38"/>
</g>
<!-- Node50->Node51 -->
<g id="edge132" class="edge">
<title>Node50->Node51</title>
-<path fill="none" stroke="midnightblue" d="M1665.63,-825.15C1826.15,-821.77 2420.32,-808.02 2909,-781 2930.06,-779.84 2953.19,-778.17 2973.41,-776.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2973.69,-780.08 2983.39,-775.8 2973.14,-773.11 2973.69,-780.08"/>
+<path fill="none" stroke="midnightblue" d="M1155.32,-831.01C1087.21,-821.23 952.03,-801.82 876.08,-790.91"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="876.17,-787.39 865.77,-789.43 875.18,-794.32 876.17,-787.39"/>
</g>
<!-- Node52 -->
<g id="node52" class="node">
<title>Node52</title>
<g id="a_node52"><a xlink:href="var_8h.html" target="_top" xlink:title="Variables in the TIR.">
-<polygon fill="white" stroke="black" points="2136.5,-705.5 2136.5,-724.5 2213.5,-724.5 2213.5,-705.5 2136.5,-705.5"/>
-<text text-anchor="middle" x="2175" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/var.h</text>
+<polygon fill="white" stroke="black" points="868.5,-716.5 868.5,-735.5 945.5,-735.5 945.5,-716.5 868.5,-716.5"/>
+<text text-anchor="middle" x="907" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/var.h</text>
</a>
</g>
</g>
<!-- Node50->Node52 -->
<g id="edge144" class="edge">
<title>Node50->Node52</title>
-<path fill="none" stroke="midnightblue" d="M1665.6,-825.98C1741.05,-824.95 1904.91,-818.18 2037,-781 2079.46,-769.05 2125.08,-745.14 2151.78,-729.89"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2153.83,-732.74 2160.72,-724.7 2150.31,-726.69 2153.83,-732.74"/>
+<path fill="none" stroke="midnightblue" d="M1174.24,-828.37C1123,-808.93 998.41,-761.67 939.24,-739.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="940.24,-735.87 929.65,-735.59 937.76,-742.41 940.24,-735.87"/>
</g>
<!-- Node50->Node53 -->
<g id="edge149" class="edge">
<title>Node50->Node53</title>
-<path fill="none" stroke="midnightblue" d="M1582.48,-822.79C1463.59,-813.55 1128.91,-787.16 1106,-781 1029.2,-760.35 1018.8,-732.01 944,-705 904.02,-690.56 857.29,-678.69 822.49,-670.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="823.07,-667.32 812.55,-668.55 821.54,-674.15 823.07,-667.32"/>
+<path fill="none" stroke="midnightblue" d="M1155.44,-832.34C1141.06,-830.83 1124.83,-829.22 1110,-828 849.06,-806.52 776.55,-853.28 522,-792 417.58,-766.86 303.49,-706.33 255.42,-679.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="256.87,-675.93 246.45,-674.01 253.4,-682.01 256.87,-675.93"/>
</g>
<!-- Node51->Node5 -->
<g id="edge135" class="edge">
<title>Node51->Node5</title>
-<path fill="none" stroke="midnightblue" d="M2983.47,-768.48C2852.32,-763.87 2456.06,-748.82 2128,-725 1890.74,-707.77 1607.92,-677.79 1495.56,-665.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1495.86,-662.01 1485.54,-664.4 1495.1,-668.97 1495.86,-662.01"/>
+<path fill="none" stroke="midnightblue" d="M849.56,-772.42C876.92,-763.97 919.21,-750.28 955,-736 974.58,-728.19 978.46,-723.9 998,-716 1034.53,-701.23 1077.21,-686.79 1106.95,-677.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1108.07,-680.47 1116.51,-674.08 1105.92,-673.81 1108.07,-680.47"/>
</g>
<!-- Node51->Node6 -->
<g id="edge134" class="edge">
<title>Node51->Node6</title>
-<path fill="none" stroke="midnightblue" d="M3043.69,-761.4C3070.67,-745.31 3123,-707.94 3123,-660 3123,-660 3123,-660 3123,-546 3123,-463.29 3123.95,-232.65 3061,-179 3005.89,-132.03 2789.8,-127.19 2686.96,-127.64"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2686.76,-124.14 2676.78,-127.71 2686.8,-131.14 2686.76,-124.14"/>
+<path fill="none" stroke="midnightblue" d="M809.6,-772.26C788.22,-755.58 741.18,-717.54 707,-680 538.78,-495.26 283.28,-363.28 452,-179 486.49,-141.33 832.24,-131.61 968.87,-129.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="969.18,-132.73 979.12,-129.06 969.06,-125.73 969.18,-132.73"/>
</g>
<!-- Node51->Node14 -->
<g id="edge133" class="edge">
<title>Node51->Node14</title>
-<path fill="none" stroke="midnightblue" d="M3030.56,-761.25C3035.75,-742.74 3047,-698.18 3047,-660 3047,-660 3047,-660 3047,-602 3047,-497.71 2971,-484.29 2971,-380 2971,-380 2971,-380 2971,-322 2971,-279.47 2943.89,-235.43 2927.06,-212.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2929.79,-210 2920.99,-204.1 2924.18,-214.2 2929.79,-210"/>
+<path fill="none" stroke="midnightblue" d="M824.69,-772.14C830.6,-758.75 843.25,-733.12 860,-716 1017.97,-554.52 1144.63,-617.91 1290,-445 1312.71,-417.99 1319.38,-403.71 1313,-369 1302.73,-313.1 1242.55,-290.42 1278,-246 1283.32,-239.34 1382.29,-218.72 1446.27,-205.98"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1447.09,-209.39 1456.22,-204.01 1445.73,-202.52 1447.09,-209.39"/>
</g>
<!-- Node51->Node28 -->
<g id="edge143" class="edge">
<title>Node51->Node28</title>
-<path fill="none" stroke="midnightblue" d="M3072.73,-769.44C3143.91,-765.92 3275,-747.55 3275,-660 3275,-660 3275,-660 3275,-378 3275,-314.85 3228.45,-145.62 3175,-112 3121.51,-78.35 2672.19,-69.3 2547.17,-67.42"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2547.13,-63.92 2537.08,-67.28 2547.03,-70.92 2547.13,-63.92"/>
+<path fill="none" stroke="midnightblue" d="M800.43,-772.45C724.12,-739.91 453.13,-616.9 287,-445 202.5,-357.57 210.5,-299.95 223,-179 226.13,-148.74 214.23,-132.18 237,-112 273.82,-79.36 620.2,-69.78 728.68,-67.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="728.77,-71.07 738.7,-67.37 728.64,-64.07 728.77,-71.07"/>
</g>
<!-- Node51->Node45 -->
<g id="edge136" class="edge">
<title>Node51->Node45</title>
-<path fill="none" stroke="midnightblue" d="M3020.12,-761.49C2974.44,-712.14 2743.4,-462.54 2682,-396.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2684.44,-393.69 2675.08,-388.73 2679.31,-398.45 2684.44,-393.69"/>
+<path fill="none" stroke="midnightblue" d="M818.9,-772.32C814.03,-750.2 804.01,-690.55 826,-649 845.63,-611.92 866.14,-614.78 902,-593 950.25,-563.7 963.98,-558.93 1016,-537 1044.14,-525.14 1257.39,-469.95 1275,-445 1286.8,-428.29 1269.77,-408.29 1254.2,-394.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1256.34,-392.15 1246.36,-388.6 1251.94,-397.6 1256.34,-392.15"/>
</g>
<!-- Node51->Node52 -->
<g id="edge137" class="edge">
<title>Node51->Node52</title>
-<path fill="none" stroke="midnightblue" d="M2983.34,-767.17C2837.55,-757.94 2376.22,-728.74 2224.15,-719.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2223.95,-715.59 2213.75,-718.45 2223.51,-722.58 2223.95,-715.59"/>
+<path fill="none" stroke="midnightblue" d="M834.82,-772.32C848.23,-763.9 868.82,-750.97 884.59,-741.07"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="886.61,-743.94 893.22,-735.65 882.89,-738.01 886.61,-743.94"/>
</g>
<!-- Node52->Node5 -->
<g id="edge138" class="edge">
<title>Node52->Node5</title>
-<path fill="none" stroke="midnightblue" d="M2136.32,-711.13C2013.68,-702.05 1633.5,-673.89 1496.15,-663.71"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1496.15,-660.21 1485.92,-662.96 1495.63,-667.19 1496.15,-660.21"/>
+<path fill="none" stroke="midnightblue" d="M940.96,-716.48C982.84,-705.96 1054.13,-688.06 1100.13,-676.51"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1101.26,-679.84 1110.11,-674.01 1099.56,-673.05 1101.26,-679.84"/>
</g>
<!-- Node52->Node9 -->
<g id="edge139" class="edge">
<title>Node52->Node9</title>
-<path fill="none" stroke="midnightblue" d="M2171.33,-705.38C2158.23,-675.79 2110.55,-577.92 2037,-537 1976.59,-503.4 1777.38,-494.88 1676.56,-492.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1676.6,-489.23 1666.53,-492.53 1676.46,-496.23 1676.6,-489.23"/>
+<path fill="none" stroke="midnightblue" d="M918.29,-716.49C959.63,-685.87 1107.63,-580.78 1248,-537 1318.4,-515.05 1529.27,-500.9 1633.44,-495.06"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1633.69,-498.55 1643.48,-494.5 1633.3,-491.56 1633.69,-498.55"/>
</g>
<!-- Node52->Node28 -->
<g id="edge142" class="edge">
<title>Node52->Node28</title>
-<path fill="none" stroke="midnightblue" d="M2213.55,-709.25C2333.25,-693.38 2707.21,-635.48 2985,-501 3075.63,-457.13 3107.43,-429.25 3137,-333 3157.1,-267.57 3178.23,-233.63 3137,-179 3064.97,-83.56 2664.76,-69.45 2547.37,-67.36"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2547.28,-63.86 2537.22,-67.2 2547.16,-70.86 2547.28,-63.86"/>
+<path fill="none" stroke="midnightblue" d="M868.16,-720.41C826.93,-714.61 760.46,-702.52 707,-680 597.6,-633.91 326.32,-486.78 259,-389 230.13,-347.07 241.12,-327.54 235,-277 225.94,-202.19 210.03,-151.83 274,-112 312.51,-88.02 626.05,-72.72 728.64,-68.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="728.88,-71.81 738.72,-67.89 728.58,-64.82 728.88,-71.81"/>
</g>
<!-- Node52->Node29 -->
<g id="edge140" class="edge">
<title>Node52->Node29</title>
-<path fill="none" stroke="midnightblue" d="M2178.6,-705.22C2182.06,-696.28 2187.03,-681.94 2189,-669 2197.81,-611 2203.94,-593.73 2189,-537 2186.34,-526.91 2006.66,-220.09 2004,-210 2000.49,-196.68 1996.56,-190.6 2004,-179 2016.44,-159.6 2038.42,-147.55 2059.48,-140.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2060.61,-143.43 2069.05,-137.02 2058.46,-136.77 2060.61,-143.43"/>
+<path fill="none" stroke="midnightblue" d="M945.84,-718.88C1050.63,-702.47 1337.59,-658.06 1433,-649 1606.62,-632.51 2049,-659.84 2217,-613 2309.58,-587.18 2357.12,-586 2402,-501 2468.53,-374.99 2358.55,-199.87 2320.33,-145.37"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2323.13,-143.26 2314.47,-137.16 2317.43,-147.33 2323.13,-143.26"/>
</g>
<!-- Node52->Node42 -->
<g id="edge141" class="edge">
<title>Node52->Node42</title>
-<path fill="none" stroke="midnightblue" d="M2174.16,-705.28C2172.7,-692.51 2169.05,-668.15 2161,-649 2135.48,-588.3 2120.72,-570.46 2064,-537 2057.09,-532.92 972.66,-181.4 965,-179 911.86,-162.38 897.63,-161.17 845,-143 842.88,-142.27 840.7,-141.49 838.52,-140.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="839.61,-137.36 829.02,-137.08 837.13,-143.9 839.61,-137.36"/>
+<path fill="none" stroke="midnightblue" d="M868.25,-717.18C796.45,-700.19 650,-652.7 650,-548 650,-548 650,-548 650,-490 650,-337.58 498.17,-355.25 452,-210 447.83,-196.87 445.1,-190.92 452,-179 462.52,-160.83 482.33,-148.63 500.49,-140.78"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="501.8,-144.03 509.78,-137.06 499.2,-137.53 501.8,-144.03"/>
</g>
<!-- Node54->Node23 -->
<g id="edge156" class="edge">
<title>Node54->Node23</title>
-<path fill="none" stroke="midnightblue" d="M358.8,-705.49C326.3,-690.29 266,-655.2 266,-604 266,-604 266,-604 266,-546 266,-391.4 196.17,-363.28 176,-210 170.32,-166.82 153.1,-149.05 176,-112 188.49,-91.79 213.12,-80.35 233.46,-74.07"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="234.63,-77.37 243.32,-71.31 232.74,-70.63 234.63,-77.37"/>
+<path fill="none" stroke="midnightblue" d="M1550.8,-720.31C1741.88,-702.65 2394.39,-631.43 2897,-445 3071.91,-380.12 3275,-449.06 3275,-262.5 3275,-262.5 3275,-262.5 3275,-193.5 3275,-153.35 3257.22,-108.95 3245.99,-84.89"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3249.01,-83.1 3241.51,-75.63 3242.71,-86.15 3249.01,-83.1"/>
</g>
<!-- Node54->Node42 -->
<g id="edge155" class="edge">
<title>Node54->Node42</title>
-<path fill="none" stroke="midnightblue" d="M364.05,-705.47C352.07,-697.7 336.13,-685 329,-669 325.38,-660.88 327.75,-657.8 329,-649 347.18,-520.73 347.77,-482.62 410,-369 444.95,-305.19 458.69,-288.13 518,-246 560.97,-215.48 705.41,-163.72 772.81,-140.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="774.24,-143.66 782.56,-137.1 771.96,-137.04 774.24,-143.66"/>
+<path fill="none" stroke="midnightblue" d="M1441.35,-722.64C1363.74,-718.44 1217.52,-707.36 1096,-680 773.3,-607.34 667.32,-598.08 411,-389 354.06,-342.55 309.25,-317.05 328,-246 336.73,-212.9 339.14,-200.22 366,-179 404.01,-148.97 459.27,-136.79 497.26,-131.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="497.97,-135.3 507.49,-130.65 497.15,-128.35 497.97,-135.3"/>
</g>
<!-- Node55 -->
<g id="node55" class="node">
<title>Node55</title>
<g id="a_node55"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="338.5,-649.5 338.5,-668.5 433.5,-668.5 433.5,-649.5 338.5,-649.5"/>
-<text text-anchor="middle" x="386" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/common.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1441.5,-655 1441.5,-674 1536.5,-674 1536.5,-655 1441.5,-655"/>
+<text text-anchor="middle" x="1489" y="-662" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/common.h</text>
</a>
</g>
</g>
<!-- Node54->Node55 -->
<g id="edge154" class="edge">
<title>Node54->Node55</title>
-<path fill="none" stroke="midnightblue" d="M380.16,-705.08C381.08,-697.93 382.42,-687.64 383.58,-678.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="387.05,-679.12 384.87,-668.75 380.11,-678.22 387.05,-679.12"/>
+<path fill="none" stroke="midnightblue" d="M1495,-716.48C1494.01,-708.08 1492.47,-694.98 1491.2,-684.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1494.65,-683.53 1490,-674.01 1487.69,-684.35 1494.65,-683.53"/>
</g>
<!-- Node57->Node23 -->
-<g id="edge216" class="edge">
+<g id="edge217" class="edge">
<title>Node57->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1391.49,-993.61C1181.35,-991.65 310.04,-981.6 193,-949 135.7,-933.04 76,-943.49 76,-884 76,-884 76,-884 76,-770 76,-688.86 0,-685.14 0,-604 0,-604 0,-604 0,-193.5 0,-152.34 10.93,-136.51 44,-112 73.62,-90.05 178.94,-76.11 233.18,-70.23"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="233.74,-73.69 243.31,-69.16 233,-66.73 233.74,-73.69"/>
+<path fill="none" stroke="midnightblue" d="M1241.67,-1005.11C1504.15,-1005.59 2822.96,-1005.67 3226,-960 3368.04,-943.91 3541,-1037.95 3541,-895 3541,-895 3541,-895 3541,-193.5 3541,-77.21 3349.03,-65.86 3270.19,-66.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3269.81,-62.6 3259.85,-66.2 3269.88,-69.6 3269.81,-62.6"/>
</g>
<!-- Node57->Node25 -->
-<g id="edge215" class="edge">
+<g id="edge216" class="edge">
<title>Node57->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1482.83,-994.02C1720.85,-993.97 2817.89,-991.36 3155,-949 3353.82,-924.02 3541,-916.39 3541,-716 3541,-716 3541,-716 3541,-193.5 3541,-133.69 3470.6,-96.7 3425.63,-79.17"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3426.77,-75.86 3416.17,-75.62 3424.31,-82.41 3426.77,-75.86"/>
+<path fill="none" stroke="midnightblue" d="M1241.58,-1005.21C1558.99,-1006.4 3427,-1008.55 3427,-895 3427,-895 3427,-895 3427,-322 3427,-131.1 3122.31,-82.19 3005.68,-70.47"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3005.93,-66.98 2995.65,-69.51 3005.26,-73.94 3005.93,-66.98"/>
</g>
<!-- Node57->Node26 -->
-<g id="edge217" class="edge">
+<g id="edge218" class="edge">
<title>Node57->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1391.29,-993.19C1219.78,-989.98 614.63,-976.88 424,-949 313.8,-932.88 182,-995.37 182,-884 182,-884 182,-884 182,-770 182,-522.43 231.32,-450.41 371,-246 394.58,-211.49 400.33,-199.06 437,-179 503.59,-142.57 593.88,-132.4 642.19,-129.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="642.59,-133.06 652.4,-129.05 642.23,-126.06 642.59,-133.06"/>
+<path fill="none" stroke="midnightblue" d="M1150.26,-1002.66C1006.62,-994.07 574,-958.31 574,-839 574,-839 574,-839 574,-725 574,-621.31 726,-651.69 726,-548 726,-548 726,-548 726,-490 726,-478.95 1029.78,-250.18 1040,-246 1167.55,-193.8 1223.03,-268.11 1348,-210 1366.25,-201.52 1363.76,-189.37 1381,-179 1417.27,-157.19 1464.24,-143.22 1495.44,-135.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1496.44,-138.98 1505.37,-133.29 1494.84,-132.17 1496.44,-138.98"/>
</g>
<!-- Node57->Node28 -->
-<g id="edge214" class="edge">
+<g id="edge215" class="edge">
<title>Node57->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1482.85,-993.88C1777.19,-992.85 3389,-982.7 3389,-884 3389,-884 3389,-884 3389,-322 3389,-207.04 3342.96,-158.88 3238,-112 3174.41,-83.6 2679.5,-70.65 2547.35,-67.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2547.16,-64.18 2537.08,-67.46 2547,-71.18 2547.16,-64.18"/>
+<path fill="none" stroke="midnightblue" d="M1150.38,-1004.62C965.76,-1002.87 279.59,-994.11 189,-960 108.52,-929.7 38,-925 38,-839 38,-839 38,-839 38,-193.5 38,-148.78 57.88,-133.67 97,-112 152.61,-81.19 603.36,-70.1 728.74,-67.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="728.93,-71.09 738.86,-67.39 728.79,-64.09 728.93,-71.09"/>
</g>
<!-- Node57->Node50 -->
<g id="edge172" class="edge">
<title>Node57->Node50</title>
-<path fill="none" stroke="midnightblue" d="M1456.39,-985.45C1488.11,-970.63 1551.51,-937.46 1591,-893 1603.19,-879.28 1612.16,-860.24 1617.64,-846.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1620.96,-847.43 1621.16,-836.84 1614.4,-845 1620.96,-847.43"/>
+<path fill="none" stroke="midnightblue" d="M1196.05,-996.08C1196.21,-969.95 1196.67,-893.21 1196.89,-857.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1200.39,-857.59 1196.95,-847.57 1193.39,-857.55 1200.39,-857.59"/>
</g>
<!-- Node58 -->
<g id="node58" class="node">
<title>Node58</title>
<g id="a_node58"><a xlink:href="bound_8h.html" target="_top" xlink:title="Bound deducers.">
-<polygon fill="white" stroke="black" points="1394,-929.5 1394,-948.5 1498,-948.5 1498,-929.5 1394,-929.5"/>
-<text text-anchor="middle" x="1446" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/arith/bound.h</text>
+<polygon fill="white" stroke="black" points="989,-940.5 989,-959.5 1093,-959.5 1093,-940.5 989,-940.5"/>
+<text text-anchor="middle" x="1041" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/arith/bound.h</text>
</a>
</g>
</g>
<!-- Node57->Node58 -->
<g id="edge162" class="edge">
<title>Node57->Node58</title>
-<path fill="none" stroke="midnightblue" d="M1438.49,-985.08C1439.68,-977.93 1441.39,-967.64 1442.88,-958.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1446.35,-959.19 1444.54,-948.75 1439.45,-958.04 1446.35,-959.19"/>
+<path fill="none" stroke="midnightblue" d="M1171.44,-996.44C1145.48,-987.4 1104.33,-973.06 1075.2,-962.92"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1076.04,-959.5 1065.45,-959.52 1073.74,-966.11 1076.04,-959.5"/>
</g>
<!-- Node57->Node60 -->
<g id="edge173" class="edge">
<title>Node57->Node60</title>
-<path fill="none" stroke="midnightblue" d="M1421.25,-985.32C1405.68,-976.74 1381.62,-963.49 1363.54,-953.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1365.15,-950.42 1354.71,-948.65 1361.78,-956.55 1365.15,-950.42"/>
+<path fill="none" stroke="midnightblue" d="M1224.36,-996.44C1254.74,-987.28 1303.11,-972.69 1336.82,-962.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1338.21,-965.76 1346.77,-959.52 1336.18,-959.05 1338.21,-965.76"/>
</g>
<!-- Node58->Node4 -->
<g id="edge163" class="edge">
<title>Node58->Node4</title>
-<path fill="none" stroke="midnightblue" d="M1412.72,-929.44C1376.55,-920.14 1318.62,-905.25 1279.02,-895.06"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1279.68,-891.62 1269.12,-892.52 1277.93,-898.4 1279.68,-891.62"/>
+<path fill="none" stroke="midnightblue" d="M1028.47,-940.32C1016.41,-931.98 997.97,-919.21 983.73,-909.35"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="985.72,-906.47 975.5,-903.65 981.73,-912.22 985.72,-906.47"/>
</g>
<!-- Node58->Node5 -->
<g id="edge164" class="edge">
<title>Node58->Node5</title>
-<path fill="none" stroke="midnightblue" d="M1446,-929.44C1446,-910.94 1446,-865.81 1446,-828 1446,-828 1446,-828 1446,-770 1446,-737.95 1446,-700.64 1446,-678.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1449.5,-678.56 1446,-668.56 1442.5,-678.56 1449.5,-678.56"/>
+<path fill="none" stroke="midnightblue" d="M1044.2,-940.2C1058.58,-900.6 1117.52,-738.38 1137.41,-683.64"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1140.72,-684.79 1140.84,-674.19 1134.14,-682.4 1140.72,-684.79"/>
</g>
<!-- Node58->Node50 -->
<g id="edge165" class="edge">
<title>Node58->Node50</title>
-<path fill="none" stroke="midnightblue" d="M1482.65,-929.47C1507.88,-922.43 1541.35,-910.68 1567,-893 1585.65,-880.14 1602.13,-859.85 1612.5,-845.36"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1615.6,-847.03 1618.41,-836.81 1609.84,-843.05 1615.6,-847.03"/>
+<path fill="none" stroke="midnightblue" d="M1048.39,-940.11C1059.88,-926.69 1083.19,-901.02 1107,-884 1125.23,-870.97 1147.78,-859.7 1165.75,-851.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1167.42,-854.79 1175.2,-847.6 1164.64,-848.37 1167.42,-854.79"/>
</g>
<!-- Node58->Node53 -->
<g id="edge171" class="edge">
<title>Node58->Node53</title>
-<path fill="none" stroke="midnightblue" d="M1393.84,-929.86C1317.77,-917.93 1184.26,-896.68 1174,-893 1153.3,-885.58 876.59,-722.41 794.07,-673.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="795.81,-670.61 785.42,-668.53 792.25,-676.63 795.81,-670.61"/>
+<path fill="none" stroke="midnightblue" d="M988.95,-943.63C872.81,-930.23 585.49,-889.15 366,-792 325.98,-774.29 316.56,-766.33 285,-736 268.15,-719.81 252.56,-697.88 242.71,-682.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="245.44,-680.56 237.11,-674 239.53,-684.32 245.44,-680.56"/>
</g>
<!-- Node59 -->
<g id="node59" class="node">
<title>Node59</title>
<g id="a_node59"><a xlink:href="stmt_8h.html" target="_top" xlink:title="TIR statements.">
-<polygon fill="white" stroke="black" points="1474,-873.5 1474,-892.5 1558,-892.5 1558,-873.5 1474,-873.5"/>
-<text text-anchor="middle" x="1516" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/stmt.h</text>
+<polygon fill="white" stroke="black" points="1225,-884.5 1225,-903.5 1309,-903.5 1309,-884.5 1225,-884.5"/>
+<text text-anchor="middle" x="1267" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/stmt.h</text>
</a>
</g>
</g>
<!-- Node58->Node59 -->
<g id="edge166" class="edge">
<title>Node58->Node59</title>
-<path fill="none" stroke="midnightblue" d="M1457.25,-929.32C1467.8,-921.18 1483.8,-908.84 1496.44,-899.09"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1498.77,-901.71 1504.55,-892.83 1494.49,-896.17 1498.77,-901.71"/>
+<path fill="none" stroke="midnightblue" d="M1076.81,-940.44C1115.99,-931.08 1178.88,-916.06 1221.52,-905.87"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1222.44,-909.24 1231.36,-903.52 1220.82,-902.44 1222.44,-909.24"/>
</g>
<!-- Node59->Node23 -->
<g id="edge170" class="edge">
<title>Node59->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1473.72,-878.24C1284.95,-861.21 518.23,-789.32 286,-725 221.02,-707 196.78,-712.19 145,-669 90.32,-623.4 38,-465.3 38,-436 38,-436 38,-436 38,-193.5 38,-153.53 45.01,-137.24 76,-112 121.46,-74.98 192.21,-67.44 233.33,-66.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="233.41,-69.94 243.36,-66.32 233.32,-62.95 233.41,-69.94"/>
+<path fill="none" stroke="midnightblue" d="M1309.03,-889.72C1333.75,-887.87 1365.64,-885.61 1394,-884 2162.3,-840.52 2369.98,-950.56 3123,-792 3282.81,-758.35 3468,-828.82 3468,-665.5 3468,-665.5 3468,-665.5 3468,-602 3468,-450.31 3503,-414.19 3503,-262.5 3503,-262.5 3503,-262.5 3503,-193.5 3503,-91.36 3341.06,-71.6 3269.89,-67.84"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3269.83,-64.34 3259.68,-67.38 3269.51,-71.33 3269.83,-64.34"/>
</g>
<!-- Node59->Node25 -->
<g id="edge169" class="edge">
<title>Node59->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1558.15,-881.95C1720.03,-881.45 2317.19,-876.83 2807,-837 3002.17,-821.13 3059.37,-846.22 3244,-781 3378.58,-733.46 3465,-690.73 3465,-548 3465,-548 3465,-548 3465,-193.5 3465,-148.12 3428.62,-104.98 3406.2,-82.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3408.57,-80.13 3398.94,-75.73 3403.72,-85.18 3408.57,-80.13"/>
+<path fill="none" stroke="midnightblue" d="M1309.04,-889.89C1333.77,-888.09 1365.66,-885.83 1394,-884 1481.63,-878.34 2885.06,-804.36 2972,-792 3100.63,-773.71 3257,-856.92 3257,-727 3257,-727 3257,-727 3257,-434 3257,-260.68 3165.91,-227.86 3037,-112 3022.64,-99.1 3004.03,-88 2988.82,-80.06"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2990.36,-76.92 2979.85,-75.53 2987.2,-83.16 2990.36,-76.92"/>
</g>
<!-- Node59->Node28 -->
<g id="edge168" class="edge">
<title>Node59->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1558.23,-881.26C1783.27,-877.02 2843.22,-853.49 3162,-781 3236.84,-763.98 3322,-792.76 3322,-716 3322,-716 3322,-716 3322,-546 3322,-345.99 3373.62,-216.36 3203,-112 3146.64,-77.52 2675.72,-69.04 2547.26,-67.36"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2547.3,-63.86 2537.26,-67.24 2547.21,-70.86 2547.3,-63.86"/>
+<path fill="none" stroke="midnightblue" d="M1224.8,-887.38C1077.02,-867.62 591,-802 578,-792 356.96,-621.96 351.21,-441.99 444,-179 456.72,-142.93 465.02,-131.37 498,-112 536.63,-89.32 666.98,-75.23 728.43,-69.69"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="729.07,-73.15 738.72,-68.78 728.45,-66.17 729.07,-73.15"/>
</g>
<!-- Node59->Node50 -->
<g id="edge167" class="edge">
<title>Node59->Node50</title>
-<path fill="none" stroke="midnightblue" d="M1533.35,-873.32C1550.67,-864.66 1577.52,-851.24 1597.5,-841.25"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1599.31,-844.26 1606.69,-836.65 1596.18,-838 1599.31,-844.26"/>
+<path fill="none" stroke="midnightblue" d="M1255.75,-884.32C1245.2,-876.18 1229.2,-863.84 1216.56,-854.09"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1218.51,-851.17 1208.45,-847.83 1214.23,-856.71 1218.51,-851.17"/>
</g>
<!-- Node60->Node5 -->
<g id="edge174" class="edge">
<title>Node60->Node5</title>
-<path fill="none" stroke="midnightblue" d="M1301.74,-938.46C1226.48,-938.52 1060.44,-933.88 1025,-893 1019.18,-886.28 1020.21,-880.49 1025,-873 1109.7,-740.69 1208.45,-800.9 1346,-725 1374.61,-709.21 1405.96,-688.19 1425.78,-674.38"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1427.86,-677.2 1434.03,-668.59 1423.84,-671.47 1427.86,-677.2"/>
+<path fill="none" stroke="midnightblue" d="M1371.42,-940.18C1365.99,-927.28 1354.92,-902.76 1342,-884 1284.51,-800.51 1197.49,-715.44 1161.02,-681.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1163.35,-678.58 1153.65,-674.32 1158.57,-683.7 1163.35,-678.58"/>
</g>
<!-- Node60->Node25 -->
-<g id="edge213" class="edge">
+<g id="edge214" class="edge">
<title>Node60->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1376.09,-930.3C1379.09,-929.81 1382.09,-929.37 1385,-929 2086.84,-840.44 2271.54,-920.47 2974,-837 3229.11,-806.69 3503,-860.91 3503,-604 3503,-604 3503,-604 3503,-193.5 3503,-141.07 3448.3,-100.58 3414.68,-80.64"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3416.24,-77.5 3405.82,-75.57 3412.76,-83.58 3416.24,-77.5"/>
+<path fill="none" stroke="midnightblue" d="M1412.27,-948.94C1684.12,-948.26 3351,-939.98 3351,-839 3351,-839 3351,-839 3351,-434 3351,-243.47 3230.66,-211.2 3068,-112 3045.57,-98.32 3018.24,-86.91 2996.82,-78.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2997.72,-75.6 2987.12,-75.5 2995.35,-82.19 2997.72,-75.6"/>
</g>
<!-- Node60->Node43 -->
-<g id="edge212" class="edge">
+<g id="edge213" class="edge">
<title>Node60->Node43</title>
-<path fill="none" stroke="midnightblue" d="M1301.72,-937.09C1203.26,-934.28 938.28,-923.97 857,-893 817.79,-878.06 810.18,-867.15 781,-837 738.99,-793.59 726.34,-781.12 704,-725 654.09,-599.61 695.99,-554.21 657,-425 632.42,-343.53 536.59,-313.05 589,-246 609.87,-219.3 708.21,-204.69 759.97,-198.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="760.41,-202.2 769.96,-197.62 759.64,-195.25 760.41,-202.2"/>
+<path fill="none" stroke="midnightblue" d="M1337.85,-941.85C1274.12,-929.64 1139.79,-904.13 1026,-884 877.79,-857.77 840.7,-851.34 692,-828 582.84,-810.86 539.62,-850.69 446,-792 321.27,-713.81 296.54,-623.88 332,-481 359.55,-369.97 439.1,-254.57 470.26,-212.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="473.13,-214.31 476.3,-204.2 467.52,-210.12 473.13,-214.31"/>
</g>
<!-- Node60->Node48 -->
-<g id="edge205" class="edge">
+<g id="edge206" class="edge">
<title>Node60->Node48</title>
-<path fill="none" stroke="midnightblue" d="M1346.27,-929.49C1372.8,-897.81 1464.43,-782.65 1495,-669 1499.18,-653.46 1495.45,-635.38 1491.24,-622.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1494.42,-620.75 1487.75,-612.52 1487.83,-623.12 1494.42,-620.75"/>
+<path fill="none" stroke="midnightblue" d="M1412.26,-948.53C1657.38,-945.21 3029,-922.86 3029,-839 3029,-839 3029,-839 3029,-781 3029,-570.87 2781.26,-689.14 2575,-649 2434.69,-621.69 2265.89,-610.34 2183.38,-606.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2183.44,-602.65 2173.28,-605.65 2183.09,-609.64 2183.44,-602.65"/>
</g>
<!-- Node60->Node49 -->
-<g id="edge211" class="edge">
+<g id="edge212" class="edge">
<title>Node60->Node49</title>
-<path fill="none" stroke="midnightblue" d="M1301.99,-937.07C1209.91,-934.29 972.75,-924.24 901,-893 782.35,-841.35 750.67,-793.39 715,-669 701.85,-623.14 771.82,-609.55 819.76,-605.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="820.19,-609.05 829.91,-604.84 819.69,-602.07 820.19,-609.05"/>
+<path fill="none" stroke="midnightblue" d="M1412.29,-945.61C1455.79,-939.76 1519.89,-924.24 1504,-884 1454.07,-757.57 1317.11,-654.69 1263.72,-618.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1265.57,-615.26 1255.32,-612.58 1261.66,-621.06 1265.57,-615.26"/>
</g>
<!-- Node60->Node50 -->
-<g id="edge209" class="edge">
+<g id="edge210" class="edge">
<title>Node60->Node50</title>
-<path fill="none" stroke="midnightblue" d="M1353.3,-929.41C1376.21,-915.93 1422.87,-889.63 1465,-873 1501.24,-858.69 1543.77,-846.9 1575.73,-838.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1576.82,-842.32 1585.71,-836.55 1575.16,-835.52 1576.82,-842.32"/>
+<path fill="none" stroke="midnightblue" d="M1369.41,-940.19C1360.24,-926.39 1340.74,-899.67 1318,-884 1295.56,-868.53 1267.13,-857.6 1243.46,-850.39"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1244.23,-846.97 1233.65,-847.53 1242.27,-853.69 1244.23,-846.97"/>
</g>
<!-- Node60->Node59 -->
-<g id="edge210" class="edge">
+<g id="edge211" class="edge">
<title>Node60->Node59</title>
-<path fill="none" stroke="midnightblue" d="M1367.05,-929.44C1397.08,-920.28 1444.91,-905.69 1478.24,-895.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1479.54,-898.78 1488.09,-892.52 1477.5,-892.09 1479.54,-898.78"/>
+<path fill="none" stroke="midnightblue" d="M1357.65,-940.32C1340.33,-931.66 1313.48,-918.24 1293.5,-908.25"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1294.82,-905 1284.31,-903.65 1291.69,-911.26 1294.82,-905"/>
</g>
<!-- Node61 -->
<g id="node61" class="node">
<title>Node61</title>
<g id="a_node61"><a xlink:href="ir_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics) and registry for them.">
-<polygon fill="white" stroke="black" points="794,-761.5 794,-780.5 864,-780.5 864,-761.5 794,-761.5"/>
-<text text-anchor="middle" x="829" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/op.h</text>
+<polygon fill="white" stroke="black" points="2506,-772.5 2506,-791.5 2576,-791.5 2576,-772.5 2506,-772.5"/>
+<text text-anchor="middle" x="2541" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/op.h</text>
</a>
</g>
</g>
<!-- Node60->Node61 -->
<g id="edge175" class="edge">
<title>Node60->Node61</title>
-<path fill="none" stroke="midnightblue" d="M1301.94,-936.28C1237.83,-932.63 1102.48,-921.92 992,-893 927.57,-876.14 899.4,-884.78 853,-837 840.83,-824.47 834.75,-805.25 831.76,-790.95"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="835.15,-790.01 829.97,-780.76 828.25,-791.22 835.15,-790.01"/>
+<path fill="none" stroke="midnightblue" d="M1412.08,-948.82C1603.66,-947.72 2474.06,-940.7 2517,-904 2546.35,-878.92 2546.26,-829.17 2543.65,-801.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2547.1,-801.29 2542.45,-791.76 2540.14,-802.11 2547.1,-801.29"/>
</g>
-<!-- Node65 -->
-<g id="node65" class="node">
-<title>Node65</title>
-<g id="a_node65"><a xlink:href="tir_2builtin_8h.html" target="_top" xlink:title="TIR builtin intrinsics.">
-<polygon fill="white" stroke="black" points="1034,-873.5 1034,-892.5 1126,-892.5 1126,-873.5 1034,-873.5"/>
-<text text-anchor="middle" x="1080" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/builtin.h</text>
+<!-- Node66 -->
+<g id="node66" class="node">
+<title>Node66</title>
+<g id="a_node66"><a xlink:href="tir_2builtin_8h.html" target="_top" xlink:title="TIR builtin intrinsics.">
+<polygon fill="white" stroke="black" points="1403,-884.5 1403,-903.5 1495,-903.5 1495,-884.5 1403,-884.5"/>
+<text text-anchor="middle" x="1449" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/builtin.h</text>
</a>
</g>
</g>
-<!-- Node60->Node65 -->
-<g id="edge206" class="edge">
-<title>Node60->Node65</title>
-<path fill="none" stroke="midnightblue" d="M1301.89,-930.26C1257.01,-920.9 1181.22,-905.1 1130.9,-894.61"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1131.39,-891.14 1120.89,-892.52 1129.96,-897.99 1131.39,-891.14"/>
+<!-- Node60->Node66 -->
+<g id="edge207" class="edge">
+<title>Node60->Node66</title>
+<path fill="none" stroke="midnightblue" d="M1386.89,-940.32C1398.15,-932.11 1415.29,-919.6 1428.71,-909.81"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1430.88,-912.56 1436.89,-903.83 1426.75,-906.9 1430.88,-912.56"/>
</g>
<!-- Node61->Node5 -->
-<g id="edge195" class="edge">
+<g id="edge196" class="edge">
<title>Node61->Node5</title>
-<path fill="none" stroke="midnightblue" d="M864.13,-766.35C879.98,-764.71 898.93,-762.75 916,-761 1073.32,-744.86 1116.7,-763.83 1270,-725 1292.4,-719.33 1296.42,-713.28 1318,-705 1349.06,-693.08 1384.82,-680.61 1410.63,-671.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1412,-675.06 1420.34,-668.54 1409.75,-668.43 1412,-675.06"/>
+<path fill="none" stroke="midnightblue" d="M2505.76,-778.53C2413.08,-772 2154.83,-753.56 1940,-736 1657.56,-712.92 1319.08,-681.79 1193.79,-670.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1194.02,-666.65 1183.74,-669.21 1193.37,-673.62 1194.02,-666.65"/>
</g>
<!-- Node61->Node8 -->
<g id="edge176" class="edge">
<title>Node61->Node8</title>
-<path fill="none" stroke="midnightblue" d="M805.17,-761.37C786.36,-753.77 760.2,-741.36 741,-725 717.52,-704.99 714.38,-696.29 700,-669 663.12,-598.98 654.3,-579.01 641,-501 639.51,-492.24 640.84,-489.89 641,-481 642.35,-407.05 646.28,-319.09 648.08,-281.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="651.58,-281.4 648.57,-271.24 644.59,-281.06 651.58,-281.4"/>
+<path fill="none" stroke="midnightblue" d="M2576.16,-778.84C2611.31,-775.05 2665.26,-764.64 2702,-736 2859.8,-613 2914.56,-353.28 2927.01,-281.33"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2930.53,-281.55 2928.71,-271.11 2923.62,-280.4 2930.53,-281.55"/>
</g>
<!-- Node61->Node16 -->
-<g id="edge201" class="edge">
+<g id="edge202" class="edge">
<title>Node61->Node16</title>
-<path fill="none" stroke="midnightblue" d="M864.16,-768.56C944.7,-764.8 1140.12,-752.99 1199,-725 1258.62,-696.66 1578.53,-357.8 1627,-313 1692.89,-252.1 1698.64,-220.86 1778,-179 1836.35,-148.22 1881.4,-195 1922,-143 1930.48,-132.14 1930.88,-122.53 1922,-112 1909.75,-97.48 1805.22,-83.09 1731.7,-74.63"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1731.87,-71.13 1721.54,-73.47 1731.08,-78.08 1731.87,-71.13"/>
+<path fill="none" stroke="midnightblue" d="M2551.44,-772.24C2560.42,-763.97 2572.75,-750.66 2578,-736 2614.66,-633.69 2562,-600.68 2562,-492 2562,-492 2562,-492 2562,-434 2562,-317.3 2469.14,-318.03 2425,-210 2407.55,-167.3 2398.28,-113.47 2394.34,-85.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2397.81,-85.12 2393.01,-75.67 2390.87,-86.05 2397.81,-85.12"/>
</g>
<!-- Node61->Node23 -->
-<g id="edge203" class="edge">
+<g id="edge204" class="edge">
<title>Node61->Node23</title>
-<path fill="none" stroke="midnightblue" d="M793.82,-767.84C685.3,-761.06 360.31,-739.74 315,-725 265.42,-708.87 114,-656.14 114,-604 114,-604 114,-604 114,-434 114,-355.93 76,-340.57 76,-262.5 76,-262.5 76,-262.5 76,-193.5 76,-155.74 73.01,-138.41 100,-112 135.74,-77.03 195.76,-68.55 233,-66.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="233.42,-70.36 243.31,-66.56 233.21,-63.37 233.42,-70.36"/>
+<path fill="none" stroke="midnightblue" d="M2576.29,-775.8C2614.47,-769.42 2676.64,-756.8 2727,-736 2994.14,-625.67 3092.93,-611.84 3277,-389 3338.23,-314.87 3342.9,-274.14 3329,-179 3324.51,-148.25 3327.84,-136.72 3309,-112 3298.45,-98.15 3282.3,-87.5 3267.97,-80.05"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3269.42,-76.86 3258.9,-75.61 3266.34,-83.15 3269.42,-76.86"/>
</g>
<!-- Node61->Node26 -->
-<g id="edge204" class="edge">
+<g id="edge205" class="edge">
<title>Node61->Node26</title>
-<path fill="none" stroke="midnightblue" d="M794.76,-761.43C717.84,-739.9 538,-675.88 538,-548 538,-548 538,-548 538,-490 538,-380.38 442.7,-338.19 502,-246 522.87,-213.55 548.96,-231.49 581,-210 597.71,-198.79 598.86,-192.25 614,-179 628.09,-166.67 644.54,-153.31 656.96,-143.44"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="659.16,-146.16 664.83,-137.21 654.82,-140.67 659.16,-146.16"/>
+<path fill="none" stroke="midnightblue" d="M2538.84,-772.44C2535.3,-759.45 2527.38,-734.33 2515,-716 2490.9,-680.31 2484.12,-667.01 2445,-649 2298.54,-581.57 2217.22,-703.83 2084,-613 1983.32,-544.36 2022.23,-473.16 1959,-369 1932.12,-324.72 1868.3,-205.84 1824,-179 1723.48,-118.09 1675.11,-174.95 1562,-143 1559.85,-142.39 1557.65,-141.67 1555.47,-140.88"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1556.72,-137.61 1546.14,-137.1 1554.09,-144.1 1556.72,-137.61"/>
</g>
<!-- Node61->Node28 -->
-<g id="edge202" class="edge">
+<g id="edge203" class="edge">
<title>Node61->Node28</title>
-<path fill="none" stroke="midnightblue" d="M864.02,-769.7C1066.93,-767.83 2087.24,-756.9 2223,-725 2290.57,-709.12 2365,-729.41 2365,-660 2365,-660 2365,-660 2365,-602 2365,-467.34 2366.33,-413.46 2456,-313 2481.43,-284.52 2513.42,-309.16 2534,-277 2572.95,-216.12 2540.52,-124.24 2523.64,-85.38"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2526.67,-83.58 2519.37,-75.9 2520.29,-86.46 2526.67,-83.58"/>
+<path fill="none" stroke="midnightblue" d="M2505.96,-781.16C2368.61,-781.43 1853.84,-779.34 1433,-736 1281.97,-720.44 1243.13,-717.48 1096,-680 1008.01,-657.59 974.93,-668.41 903,-613 747.46,-493.17 749.56,-404.4 722,-210 719,-188.82 723.12,-117 725,-112 729.12,-101.04 736.99,-90.7 744.33,-82.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="746.84,-85.14 751.33,-75.55 741.83,-80.25 746.84,-85.14"/>
</g>
<!-- Node61->Node48 -->
-<g id="edge196" class="edge">
+<g id="edge197" class="edge">
<title>Node61->Node48</title>
-<path fill="none" stroke="midnightblue" d="M864.22,-766.24C960.79,-755.92 1223.22,-727.7 1232,-725 1250.24,-719.4 1252.92,-713.52 1270,-705 1336.2,-671.98 1415.14,-635.44 1456.16,-616.67"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1457.62,-619.85 1465.26,-612.51 1454.71,-613.48 1457.62,-619.85"/>
+<path fill="none" stroke="midnightblue" d="M2545.85,-772.24C2558.06,-748.88 2586.89,-684.47 2555,-649 2530.54,-621.79 2289.97,-609.71 2183.39,-605.67"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2183.32,-602.16 2173.2,-605.29 2183.06,-609.16 2183.32,-602.16"/>
</g>
<!-- Node62 -->
<g id="node62" class="node">
<title>Node62</title>
<g id="a_node62"><a xlink:href="attrs_8h.html" target="_top" xlink:title="Helpers for attribute objects.">
-<polygon fill="white" stroke="black" points="1110,-705.5 1110,-724.5 1190,-724.5 1190,-705.5 1110,-705.5"/>
-<text text-anchor="middle" x="1150" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/attrs.h</text>
+<polygon fill="white" stroke="black" points="1949,-716.5 1949,-735.5 2029,-735.5 2029,-716.5 1949,-716.5"/>
+<text text-anchor="middle" x="1989" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/attrs.h</text>
</a>
</g>
</g>
<!-- Node61->Node62 -->
<g id="edge177" class="edge">
<title>Node61->Node62</title>
-<path fill="none" stroke="midnightblue" d="M864.27,-764.07C921.39,-754.46 1034.34,-735.46 1099.82,-724.44"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1100.62,-727.86 1109.91,-722.74 1099.46,-720.95 1100.62,-727.86"/>
-</g>
-<!-- Node63 -->
-<g id="node63" class="node">
-<title>Node63</title>
-<g id="a_node63"><a xlink:href="env__func_8h.html" target="_top" xlink:title="Serializable global function used in IR.">
-<polygon fill="white" stroke="black" points="756,-369.5 756,-388.5 858,-388.5 858,-369.5 756,-369.5"/>
-<text text-anchor="middle" x="807" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/env_func.h</text>
-</a>
-</g>
-</g>
-<!-- Node61->Node63 -->
-<g id="edge190" class="edge">
-<title>Node61->Node63</title>
-<path fill="none" stroke="midnightblue" d="M814.78,-761.29C790.62,-745.77 741.62,-710.98 715,-669 698.88,-643.58 696,-634.1 696,-604 696,-604 696,-604 696,-546 696,-480.76 755.98,-421.73 787.76,-395.04"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="790.01,-397.72 795.54,-388.68 785.58,-392.3 790.01,-397.72"/>
+<path fill="none" stroke="midnightblue" d="M2505.63,-777.54C2410.66,-768.25 2149.81,-742.73 2039.41,-731.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2039.5,-728.42 2029.21,-730.93 2038.82,-735.39 2039.5,-728.42"/>
</g>
<!-- Node64 -->
<g id="node64" class="node">
<title>Node64</title>
-<g id="a_node64"><a xlink:href="attr__registry__map_8h.html" target="_top" xlink:title="Attribute map used in registry.">
-<polygon fill="white" stroke="black" points="446,-179.5 446,-209.5 572,-209.5 572,-179.5 446,-179.5"/>
-<text text-anchor="start" x="454" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/attr_registry</text>
-<text text-anchor="middle" x="509" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">_map.h</text>
+<g id="a_node64"><a xlink:href="env__func_8h.html" target="_top" xlink:title="Serializable global function used in IR.">
+<polygon fill="white" stroke="black" points="2671,-369.5 2671,-388.5 2773,-388.5 2773,-369.5 2671,-369.5"/>
+<text text-anchor="middle" x="2722" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/env_func.h</text>
</a>
</g>
</g>
<!-- Node61->Node64 -->
-<g id="edge197" class="edge">
+<g id="edge191" class="edge">
<title>Node61->Node64</title>
-<path fill="none" stroke="midnightblue" d="M793.79,-765.83C708.92,-754.81 500,-721.43 500,-660 500,-660 500,-660 500,-602 500,-474.85 301.47,-491.92 334,-369 350.09,-308.19 358.01,-288.91 404,-246 418.86,-232.13 438.23,-221.37 456.28,-213.41"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="457.71,-216.61 465.57,-209.51 455,-210.16 457.71,-216.61"/>
+<path fill="none" stroke="midnightblue" d="M2576.13,-774.85C2628.52,-763.44 2721,-733.63 2721,-665.5 2721,-665.5 2721,-665.5 2721,-490 2721,-457.95 2721.43,-420.64 2721.73,-398.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2725.23,-398.61 2721.87,-388.56 2718.23,-398.51 2725.23,-398.61"/>
+</g>
+<!-- Node65 -->
+<g id="node65" class="node">
+<title>Node65</title>
+<g id="a_node65"><a xlink:href="attr__registry__map_8h.html" target="_top" xlink:title="Attribute map used in registry.">
+<polygon fill="white" stroke="black" points="1689,-179.5 1689,-209.5 1815,-209.5 1815,-179.5 1689,-179.5"/>
+<text text-anchor="start" x="1697" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/attr_registry</text>
+<text text-anchor="middle" x="1752" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">_map.h</text>
+</a>
+</g>
+</g>
+<!-- Node61->Node65 -->
+<g id="edge198" class="edge">
+<title>Node61->Node65</title>
+<path fill="none" stroke="midnightblue" d="M2535.42,-772.21C2519.24,-747.61 2469.52,-677.95 2408,-649 2260.11,-579.4 2179.96,-700.66 2042,-613 1989.18,-579.44 1970,-554.58 1970,-492 1970,-492 1970,-492 1970,-434 1970,-377.59 1835.46,-262.62 1777.77,-215.91"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1779.82,-213.07 1769.84,-209.53 1775.44,-218.53 1779.82,-213.07"/>
</g>
<!-- Node62->Node5 -->
-<g id="edge181" class="edge">
+<g id="edge182" class="edge">
<title>Node62->Node5</title>
-<path fill="none" stroke="midnightblue" d="M1190.23,-706.66C1243.76,-696.89 1338.38,-679.63 1396.31,-669.06"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1397.12,-672.47 1406.33,-667.24 1395.87,-665.59 1397.12,-672.47"/>
+<path fill="none" stroke="midnightblue" d="M1948.81,-722.17C1809.5,-712.36 1347.46,-679.83 1194.02,-669.02"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1194.16,-665.52 1183.94,-668.31 1193.67,-672.51 1194.16,-665.52"/>
</g>
<!-- Node62->Node8 -->
<g id="edge180" class="edge">
<title>Node62->Node8</title>
-<path fill="none" stroke="midnightblue" d="M1129.14,-705.43C1110.34,-697.28 1082.3,-684.05 1060,-669 1017.72,-640.46 1014.43,-624.11 974,-593 951.14,-575.41 943.69,-573.45 920,-557 817.48,-485.83 774.15,-485.49 695,-389 668.54,-356.73 656.61,-307.93 651.82,-281.36"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="655.21,-280.45 650.13,-271.15 648.31,-281.59 655.21,-280.45"/>
+<path fill="none" stroke="midnightblue" d="M2029.32,-723.62C2081.81,-720.58 2175.52,-710.89 2249,-680 2270.72,-670.87 2270.46,-658.53 2292,-649 2362.62,-617.74 2389.86,-640.57 2462,-613 2555.36,-577.32 2575.64,-559.05 2657,-501 2761.71,-426.3 2873.23,-318.86 2913.95,-278.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2916.5,-280.97 2921.12,-271.44 2911.56,-276.01 2916.5,-280.97"/>
</g>
<!-- Node62->Node12 -->
<g id="edge179" class="edge">
<title>Node62->Node12</title>
-<path fill="none" stroke="midnightblue" d="M1190.16,-707.71C1231.79,-700.59 1298.43,-687.53 1354,-669 1374.38,-662.2 1377.41,-655.13 1398,-649 1740.8,-546.98 1879.62,-680.45 2189,-501 2293.41,-440.44 2291.27,-389.06 2385,-313 2401.4,-299.69 2421.23,-286.29 2436.23,-276.64"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2438.31,-279.47 2444.87,-271.15 2434.55,-273.56 2438.31,-279.47"/>
+<path fill="none" stroke="midnightblue" d="M2015.5,-716.49C2056.9,-701.88 2136.84,-668.16 2182,-613 2198.65,-592.66 2196.72,-582.93 2201,-557 2220.79,-437.09 2099.96,-318.48 2053.05,-277.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2055.31,-274.85 2045.44,-271 2050.75,-280.17 2055.31,-274.85"/>
</g>
<!-- Node62->Node13 -->
-<g id="edge182" class="edge">
+<g id="edge183" class="edge">
<title>Node62->Node13</title>
-<path fill="none" stroke="midnightblue" d="M1168.41,-705.39C1213.34,-684.56 1332.48,-630.37 1435,-593 1490.91,-572.62 1947,-495.5 1947,-436 1947,-436 1947,-436 1947,-378 1947,-346.4 1943.61,-310.08 1940.99,-286.74"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1944.45,-286.23 1939.82,-276.7 1937.5,-287.04 1944.45,-286.23"/>
+<path fill="none" stroke="midnightblue" d="M1948.7,-719.98C1887.97,-709.9 1780,-681.15 1780,-604 1780,-604 1780,-604 1780,-378 1780,-344.72 1765.59,-308.62 1754.51,-285.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1757.5,-283.95 1749.87,-276.59 1751.25,-287.1 1757.5,-283.95"/>
</g>
<!-- Node62->Node23 -->
-<g id="edge188" class="edge">
+<g id="edge189" class="edge">
<title>Node62->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1109.72,-706.85C1077.63,-700.08 1032.23,-688.08 996,-669 948.77,-644.13 947.77,-622.07 903,-593 818.48,-538.12 580.53,-446.82 498,-389 402.98,-322.43 378.59,-302.07 308,-210 287.43,-183.17 281.53,-175.43 272,-143 266.47,-124.18 265.33,-101.68 265.35,-86.06"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="268.86,-85.7 265.54,-75.64 261.86,-85.58 268.86,-85.7"/>
+<path fill="none" stroke="midnightblue" d="M2029.1,-723.31C2108.63,-719.44 2291.72,-708.06 2443,-680 2646.02,-642.35 2697.27,-628.44 2891,-557 2965.62,-529.48 2978.62,-509.14 3053,-481 3106.27,-460.84 3126.94,-473.93 3176,-445 3236.91,-409.08 3261.79,-398.27 3289,-333 3326.79,-242.34 3329.83,-201.33 3289,-112 3283.22,-99.36 3271.95,-88.91 3261.37,-81.27"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3263.04,-78.18 3252.78,-75.53 3259.15,-84 3263.04,-78.18"/>
</g>
<!-- Node62->Node25 -->
-<g id="edge186" class="edge">
+<g id="edge187" class="edge">
<title>Node62->Node25</title>
-<path fill="none" stroke="midnightblue" d="M1190.18,-714.55C1378.62,-716.23 2192.55,-713.64 2834,-557 3066.51,-500.22 3153.16,-470.52 3294,-277 3334.82,-220.92 3350.23,-208.16 3374,-143 3380.9,-124.09 3384.86,-101.31 3386.96,-85.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3390.44,-86.02 3388.17,-75.67 3383.49,-85.17 3390.44,-86.02"/>
+<path fill="none" stroke="midnightblue" d="M2029.2,-723.3C2120.2,-719.04 2339.34,-706.3 2408,-680 2430,-671.57 2431.01,-661.46 2451,-649 2704.09,-491.21 2803.39,-510.6 3043,-333 3079.94,-305.62 3113.83,-289.53 3099,-246 3074.95,-175.42 3010.57,-111 2978.98,-82.48"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2981.16,-79.73 2971.35,-75.71 2976.51,-84.97 2981.16,-79.73"/>
</g>
<!-- Node62->Node26 -->
-<g id="edge189" class="edge">
+<g id="edge190" class="edge">
<title>Node62->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1119.21,-705.46C1094.23,-697.83 1058.59,-685.34 1030,-669 983.36,-642.34 979.95,-623.9 936,-593 793.08,-492.52 728.75,-507.09 600,-389 546.01,-339.48 476.27,-306.22 518,-246 543.96,-208.55 577.44,-237.2 614,-210 637.21,-192.73 655.97,-164.48 666.55,-146.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="669.63,-147.85 671.45,-137.41 663.52,-144.44 669.63,-147.85"/>
+<path fill="none" stroke="midnightblue" d="M2029.23,-720.03C2085.05,-710.6 2182.96,-684.23 2217,-613 2218.86,-609.1 2217.23,-587.03 2215,-537 2213.89,-512.1 2216.71,-505.47 2212,-481 2207.03,-455.19 2202.91,-449.34 2193,-425 2175.91,-383.02 2168.05,-374.13 2149,-333 2131.19,-294.55 2143.08,-272.48 2110,-246 2047.33,-195.83 2006.36,-242.61 1933,-210 1911.8,-200.58 1912.61,-187.44 1891,-179 1753.99,-125.48 1704.09,-181.03 1562,-143 1559.7,-142.39 1557.36,-141.63 1555.04,-140.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1556.35,-137.55 1545.77,-137.05 1553.73,-144.04 1556.35,-137.55"/>
</g>
<!-- Node62->Node28 -->
-<g id="edge185" class="edge">
+<g id="edge186" class="edge">
<title>Node62->Node28</title>
-<path fill="none" stroke="midnightblue" d="M1175.76,-705.4C1222.49,-689.87 1319.55,-657.92 1354,-649 1432.56,-628.65 1457.02,-641.5 1533,-613 1549.78,-606.71 1550.96,-598.54 1568,-593 1707.04,-547.78 1754.27,-596.67 1895,-557 1951.26,-541.14 1963.28,-530.06 2014,-501 2166.86,-413.43 2196.33,-377.51 2341,-277 2360.65,-263.35 2365.05,-259.2 2385,-246 2410.3,-229.26 2420.55,-230.41 2443,-210 2470.69,-184.83 2477.38,-176.53 2494,-143 2503.1,-124.64 2508.74,-101.77 2511.85,-85.94"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2515.34,-86.29 2513.68,-75.82 2508.46,-85.04 2515.34,-86.29"/>
+<path fill="none" stroke="midnightblue" d="M1948.98,-719.44C1899.49,-712.18 1812.87,-698.23 1740,-680 1657.34,-659.32 1086.63,-482.25 1010,-445 892.57,-387.91 853.07,-376.9 769,-277 720.85,-219.78 716.7,-184.25 736,-112 738.62,-102.19 743.83,-92.23 748.83,-84.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="751.82,-86.01 754.42,-75.74 745.98,-82.14 751.82,-86.01"/>
</g>
<!-- Node62->Node33 -->
-<g id="edge183" class="edge">
+<g id="edge184" class="edge">
<title>Node62->Node33</title>
-<path fill="none" stroke="midnightblue" d="M1151.56,-705.26C1156.67,-678.35 1174.72,-595.09 1212,-537 1284.35,-424.26 1411.83,-324.01 1468.48,-282.63"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1470.58,-285.43 1476.63,-276.73 1466.48,-279.76 1470.58,-285.43"/>
+<path fill="none" stroke="midnightblue" d="M1948.79,-722.95C1907.19,-719.26 1841.61,-708.92 1793,-680 1701.8,-625.75 1677.47,-598.25 1635,-501 1603.22,-428.22 1605.48,-331.42 1608.7,-286.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1612.2,-286.94 1609.51,-276.69 1605.22,-286.38 1612.2,-286.94"/>
</g>
<!-- Node62->Node42 -->
-<g id="edge184" class="edge">
+<g id="edge185" class="edge">
<title>Node62->Node42</title>
-<path fill="none" stroke="midnightblue" d="M1138.46,-705.43C1117.2,-688.57 1074,-648.8 1074,-604 1074,-604 1074,-604 1074,-546 1074,-362.1 888.16,-193.94 827.15,-143.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="829.06,-140.73 819.09,-137.14 824.65,-146.17 829.06,-140.73"/>
+<path fill="none" stroke="midnightblue" d="M1948.89,-722.36C1883.66,-717.51 1750.83,-705.26 1641,-680 1630.99,-677.7 949.55,-448.78 940,-445 884.53,-423.04 869.2,-419.63 818,-389 747.21,-346.65 730.37,-333.21 670,-277 622.93,-233.17 575,-173.79 552.78,-145.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="555.38,-142.86 546.5,-137.08 549.84,-147.14 555.38,-142.86"/>
</g>
<!-- Node62->Node53 -->
-<g id="edge187" class="edge">
+<g id="edge188" class="edge">
<title>Node62->Node53</title>
-<path fill="none" stroke="midnightblue" d="M1109.8,-708.27C1042.07,-698.62 905.03,-679.1 827.6,-668.06"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="827.94,-664.58 817.55,-666.63 826.95,-671.51 827.94,-664.58"/>
+<path fill="none" stroke="midnightblue" d="M1948.58,-723.63C1716.98,-715.79 559.25,-676.58 288.64,-667.42"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="288.75,-663.92 278.64,-667.08 288.52,-670.92 288.75,-663.92"/>
</g>
<!-- Node62->Node55 -->
<g id="edge178" class="edge">
<title>Node62->Node55</title>
-<path fill="none" stroke="midnightblue" d="M1110,-711.17C983.62,-702.24 592.5,-674.6 444,-664.1"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="443.96,-660.59 433.73,-663.37 443.46,-667.57 443.96,-660.59"/>
+<path fill="none" stroke="midnightblue" d="M1948.91,-722.6C1871.56,-717.58 1696.5,-704.39 1551,-680 1544.78,-678.96 1538.24,-677.66 1531.85,-676.27"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1532.51,-672.83 1521.98,-674.04 1530.97,-679.66 1532.51,-672.83"/>
</g>
-<!-- Node63->Node8 -->
-<g id="edge191" class="edge">
-<title>Node63->Node8</title>
-<path fill="none" stroke="midnightblue" d="M795.12,-369.32C768.25,-349.67 702.5,-301.61 669.13,-277.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="671.15,-274.36 661.01,-271.28 667.02,-280.01 671.15,-274.36"/>
+<!-- Node63 -->
+<g id="node63" class="node">
+<title>Node63</title>
+<g id="a_node63"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="2301,-649.5 2301,-679.5 2399,-679.5 2399,-649.5 2301,-649.5"/>
+<text text-anchor="start" x="2309" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/reflection</text>
+<text text-anchor="middle" x="2350" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reflection.h</text>
+</a>
</g>
-<!-- Node63->Node11 -->
-<g id="edge192" class="edge">
-<title>Node63->Node11</title>
-<path fill="none" stroke="midnightblue" d="M858.31,-374.88C1009.22,-365.72 1451.8,-338.83 1625.18,-328.3"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1625.45,-331.79 1635.22,-327.69 1625.02,-324.8 1625.45,-331.79"/>
</g>
-<!-- Node63->Node23 -->
-<g id="edge194" class="edge">
-<title>Node63->Node23</title>
-<path fill="none" stroke="midnightblue" d="M805.64,-369.4C801.33,-345.3 785.59,-276.82 742,-246 630.54,-167.21 562.35,-264.03 437,-210 427.98,-206.11 325.73,-118.46 283.79,-82.34"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="285.89,-79.53 276.03,-75.66 281.32,-84.84 285.89,-79.53"/>
+<!-- Node62->Node63 -->
+<g id="edge181" class="edge">
+<title>Node62->Node63</title>
+<path fill="none" stroke="midnightblue" d="M2029.17,-719.92C2086.57,-712.45 2195.25,-697.46 2287,-680 2288.27,-679.76 2289.56,-679.51 2290.85,-679.25"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2291.81,-682.63 2300.9,-677.18 2290.4,-675.77 2291.81,-682.63"/>
</g>
-<!-- Node63->Node28 -->
-<g id="edge193" class="edge">
-<title>Node63->Node28</title>
-<path fill="none" stroke="midnightblue" d="M858.14,-378.01C1001.74,-377.51 1420.73,-372.51 1766,-333 1903.36,-317.28 1939.89,-317.77 2072,-277 2142.16,-255.35 2160,-247.71 2223,-210 2283.87,-173.57 2285.52,-143.68 2349,-112 2392.7,-90.19 2448.33,-77.88 2482.8,-71.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2483.5,-75.26 2492.78,-70.15 2482.34,-68.36 2483.5,-75.26"/>
+<!-- Node64->Node8 -->
+<g id="edge192" class="edge">
+<title>Node64->Node8</title>
+<path fill="none" stroke="midnightblue" d="M2741.16,-369.41C2760.16,-360.73 2789.98,-346.68 2815,-333 2848.23,-314.83 2885.37,-291.48 2908.22,-276.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2910.31,-279.56 2916.8,-271.19 2906.5,-273.69 2910.31,-279.56"/>
</g>
-<!-- Node64->Node6 -->
-<g id="edge198" class="edge">
-<title>Node64->Node6</title>
-<path fill="none" stroke="midnightblue" d="M572.15,-189.3C623.1,-186.05 696.64,-181.66 761,-179 1396.66,-152.72 1556.07,-161.48 2192,-143 2330.65,-138.97 2493.85,-133.37 2577.11,-130.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2577.48,-133.94 2587.35,-130.09 2577.23,-126.94 2577.48,-133.94"/>
+<!-- Node64->Node11 -->
+<g id="edge193" class="edge">
+<title>Node64->Node11</title>
+<path fill="none" stroke="midnightblue" d="M2670.9,-372.53C2580.32,-362.82 2391.47,-342.59 2288.56,-331.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2288.89,-328.08 2278.57,-330.49 2288.14,-335.04 2288.89,-328.08"/>
</g>
<!-- Node64->Node23 -->
-<g id="edge199" class="edge">
+<g id="edge195" class="edge">
<title>Node64->Node23</title>
-<path fill="none" stroke="midnightblue" d="M499.53,-179.44C486.48,-161.15 461.23,-129.49 432,-112 390.09,-86.92 333.96,-75.52 298.9,-70.55"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="299.1,-67.05 288.73,-69.21 298.19,-73.99 299.1,-67.05"/>
+<path fill="none" stroke="midnightblue" d="M2745.63,-369.5C2770.42,-360.54 2810.52,-345.96 2845,-333 2909.66,-308.69 2930.63,-312.32 2990,-277 3087.59,-218.95 3184.76,-121.98 3221.57,-83.48"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3224.52,-85.45 3228.86,-75.79 3219.44,-80.64 3224.52,-85.45"/>
+</g>
+<!-- Node64->Node28 -->
+<g id="edge194" class="edge">
+<title>Node64->Node28</title>
+<path fill="none" stroke="midnightblue" d="M2670.98,-377.7C2492.84,-375.88 1882.49,-363.33 1388,-277 1278.06,-257.81 1237.02,-274.58 1146,-210 1102.77,-179.32 1123.12,-139.83 1078,-112 1030.75,-82.86 864.24,-71.8 793.35,-68.34"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.37,-64.84 783.22,-67.87 793.04,-71.83 793.37,-64.84"/>
+</g>
+<!-- Node65->Node6 -->
+<g id="edge199" class="edge">
+<title>Node65->Node6</title>
+<path fill="none" stroke="midnightblue" d="M1688.95,-184.64C1673.61,-182.64 1657.23,-180.62 1642,-179 1434.35,-156.84 1186.53,-139.27 1078.66,-132.05"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1078.87,-128.56 1068.66,-131.39 1078.41,-135.54 1078.87,-128.56"/>
</g>
-<!-- Node64->Node26 -->
+<!-- Node65->Node23 -->
<g id="edge200" class="edge">
-<title>Node64->Node26</title>
-<path fill="none" stroke="midnightblue" d="M545.24,-179.4C574.93,-167.84 616.51,-151.66 644.75,-140.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="646.09,-143.9 654.14,-137.01 643.56,-137.37 646.09,-143.9"/>
+<title>Node65->Node23</title>
+<path fill="none" stroke="midnightblue" d="M1815.22,-187.21C1888.15,-179.38 2011.46,-164.37 2116,-143 2167.44,-132.48 2178.12,-120.11 2230,-112 2279.17,-104.31 3036.25,-74.75 3204.18,-68.26"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3204.51,-71.75 3214.37,-67.87 3204.24,-64.76 3204.51,-71.75"/>
</g>
-<!-- Node65->Node50 -->
-<g id="edge208" class="edge">
-<title>Node65->Node50</title>
-<path fill="none" stroke="midnightblue" d="M1126.38,-877.4C1227.34,-867.37 1466.4,-843.64 1572.15,-833.15"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1572.65,-836.61 1582.26,-832.14 1571.96,-829.65 1572.65,-836.61"/>
+<!-- Node65->Node26 -->
+<g id="edge201" class="edge">
+<title>Node65->Node26</title>
+<path fill="none" stroke="midnightblue" d="M1689.23,-179.4C1651.85,-170.36 1603.72,-157.61 1562,-143 1560.34,-142.42 1558.64,-141.79 1556.93,-141.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1557.88,-137.73 1547.3,-137.14 1555.2,-144.2 1557.88,-137.73"/>
</g>
-<!-- Node65->Node61 -->
-<g id="edge207" class="edge">
-<title>Node65->Node61</title>
-<path fill="none" stroke="midnightblue" d="M1033.6,-880.69C990.24,-877.48 925.28,-867.44 878,-837 860.04,-825.44 846.21,-804.88 837.89,-789.97"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="840.78,-787.95 833.03,-780.73 834.59,-791.21 840.78,-787.95"/>
+<!-- Node66->Node50 -->
+<g id="edge209" class="edge">
+<title>Node66->Node50</title>
+<path fill="none" stroke="midnightblue" d="M1409.07,-884.44C1365.11,-875.02 1294.37,-859.87 1246.82,-849.68"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1247.25,-846.19 1236.74,-847.52 1245.79,-853.03 1247.25,-846.19"/>
+</g>
+<!-- Node66->Node61 -->
+<g id="edge208" class="edge">
+<title>Node66->Node61</title>
+<path fill="none" stroke="midnightblue" d="M1495.22,-888.34C1674.03,-870.33 2319.19,-805.34 2495.95,-787.54"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2496.35,-791.02 2505.94,-786.53 2495.64,-784.05 2496.35,-791.02"/>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/attrs_8h.html b/docs/reference/api/doxygen/attrs_8h.html
index 9392583c57..59b61c122b 100644
--- a/docs/reference/api/doxygen/attrs_8h.html
+++ b/docs/reference/api/doxygen/attrs_8h.html
@@ -80,6 +80,7 @@ $(function() {
<div class="textblock"><code>#include <dmlc/common.h></code><br />
<code>#include <tvm/ffi/container/map.h></code><br />
<code>#include <tvm/ffi/function.h></code><br />
+<code>#include <tvm/ffi/reflection/reflection.h></code><br />
<code>#include <<a class="el" href="ir_2expr_8h_source.html">tvm/ir/expr.h</a>></code><br />
<code>#include <<a class="el" href="structural__equal_8h_source.html">tvm/node/structural_equal.h</a>></code><br />
<code>#include <<a class="el" href="structural__hash_8h_source.html">tvm/node/structural_hash.h</a>></code><br />
@@ -92,7 +93,7 @@ $(function() {
</div><div class="textblock"><div class="dynheader">
Include dependency graph for attrs.h:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="attrs_8h__incl.svg" width="3286" height="963"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="attrs_8h__incl.svg" width="3286" height="978"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div><div class="textblock"><div class="dynheader">
@@ -173,6 +174,9 @@ Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode< DerivedType ></a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The base class of the all the Use "curiously recurring template pattern". <a href="classtvm_1_1AttrsNode.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter< DerivedType ></a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Adapter for <a class="el" href="classtvm_1_1AttrsNode.html" title="The base class of the all the Use "curiously recurring template pattern".">AttrsNode</a> with the new reflection API. <a href="classtvm_1_1AttrsNodeReflAdapter.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
@@ -271,9 +275,9 @@ Functions</h2></td></tr>
<div class="line">};</div>
<div class="line"><span class="comment">// register it in cc file</span></div>
<div class="line"><a class="code" href="reflection_8h.html#a12fd7a4323c2f8ad77d48448009f2129">TVM_REGISTER_NODE_TYPE</a>(MyAttrs);</div>
-<div class="ttc" id="aattrs_8h_html_a578da113eb199bad72e26c03ad24832f"><div class="ttname"><a href="attrs_8h.html#a578da113eb199bad72e26c03ad24832f">TVM_ATTR_FIELD</a></div><div class="ttdeci">#define TVM_ATTR_FIELD(FieldName)</div><div class="ttdoc">Declare an attribute field.</div><div class="ttdef"><b>Definition:</b> attrs.h:77</div></div>
-<div class="ttc" id="aattrs_8h_html_ac869a7c3d7169282810ce7819918314a"><div class="ttname"><a href="attrs_8h.html#ac869a7c3d7169282810ce7819918314a">TVM_DECLARE_ATTRS</a></div><div class="ttdeci">#define TVM_DECLARE_ATTRS(ClassName, TypeKey)</div><div class="ttdoc">Declare an attribute function.</div><div class="ttdef"><b>Definition:</b> attrs.h:67</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrsNode_html"><div class="ttname"><a href="classtvm_1_1AttrsNode.html">tvm::AttrsNode</a></div><div class="ttdoc">The base class of the all the Use "curiously recurring template pattern".</div><div class="ttdef"><b>Definition:</b> attrs.h:865</div></div>
+<div class="ttc" id="aattrs_8h_html_a578da113eb199bad72e26c03ad24832f"><div class="ttname"><a href="attrs_8h.html#a578da113eb199bad72e26c03ad24832f">TVM_ATTR_FIELD</a></div><div class="ttdeci">#define TVM_ATTR_FIELD(FieldName)</div><div class="ttdoc">Declare an attribute field.</div><div class="ttdef"><b>Definition:</b> attrs.h:78</div></div>
+<div class="ttc" id="aattrs_8h_html_ac869a7c3d7169282810ce7819918314a"><div class="ttname"><a href="attrs_8h.html#ac869a7c3d7169282810ce7819918314a">TVM_DECLARE_ATTRS</a></div><div class="ttdeci">#define TVM_DECLARE_ATTRS(ClassName, TypeKey)</div><div class="ttdoc">Declare an attribute function.</div><div class="ttdef"><b>Definition:</b> attrs.h:68</div></div>
+<div class="ttc" id="aclasstvm_1_1AttrsNode_html"><div class="ttname"><a href="classtvm_1_1AttrsNode.html">tvm::AttrsNode</a></div><div class="ttdoc">The base class of the all the Use "curiously recurring template pattern".</div><div class="ttdef"><b>Definition:</b> attrs.h:866</div></div>
<div class="ttc" id="areflection_8h_html_a12fd7a4323c2f8ad77d48448009f2129"><div class="ttname"><a href="reflection_8h.html#a12fd7a4323c2f8ad77d48448009f2129">TVM_REGISTER_NODE_TYPE</a></div><div class="ttdeci">#define TVM_REGISTER_NODE_TYPE(TypeName)</div><div class="ttdoc">Register a node type to object registry and reflection registry.</div><div class="ttdef"><b>Definition:</b> reflection.h:279</div></div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd>AttrsNode, <a class="el" href="attrs_8h.html#ac869a7c3d7169282810ce7819918314a" title="Declare an attribute function.">TVM_DECLARE_ATTRS</a>, <a class="el" href="attrs_8h.html#a578da113eb199bad72e26c03ad24832f" title="Declare an attribute field.">TVM_ATTR_FIELD</a> </dd></dl>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
@@ -332,7 +336,7 @@ Functions</h2></td></tr>
<div class="line"> TVM_DECLARE_FINAL_OBJECT_INFO(ClassName, ::<a class="code" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a>); \</div>
<div class="line"> template <typename FVisit> \</div>
<div class="line"> void _tvm_VisitAttrs(FVisit& _tvm_fvisit)</div>
-<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></div><div class="ttdoc">Base class of all attribute class.</div><div class="ttdef"><b>Definition:</b> attrs.h:140</div></div>
+<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></div><div class="ttdoc">Base class of all attribute class.</div><div class="ttdef"><b>Definition:</b> attrs.h:141</div></div>
</div><!-- fragment -->
<p>Declare an attribute function. </p>
<dl class="params"><dt>Parameters</dt><dd>
diff --git a/docs/reference/api/doxygen/attrs_8h__incl.svg b/docs/reference/api/doxygen/attrs_8h__incl.svg
index c2acbb2a35..ea98a059b8 100644
--- a/docs/reference/api/doxygen/attrs_8h__incl.svg
+++ b/docs/reference/api/doxygen/attrs_8h__incl.svg
@@ -4,17 +4,17 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: include/tvm/ir/attrs.h Pages: 1 -->
-<svg width="2464pt" height="722pt"
- viewBox="0.00 0.00 2464.00 722.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 718)">
+<svg width="2464pt" height="733pt"
+ viewBox="0.00 0.00 2464.00 733.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 729)">
<title>include/tvm/ir/attrs.h</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-718 2460,-718 2460,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-729 2460,-729 2460,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Helpers for attribute objects.">
-<polygon fill="#bfbfbf" stroke="black" points="998,-694.5 998,-713.5 1117,-713.5 1117,-694.5 998,-694.5"/>
-<text text-anchor="middle" x="1057.5" y="-701.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/attrs.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="374,-705.5 374,-724.5 493,-724.5 493,-705.5 374,-705.5"/>
+<text text-anchor="middle" x="433.5" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/attrs.h</text>
</a>
</g>
</g>
@@ -22,16 +22,16 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="0,-638.5 0,-657.5 95,-657.5 95,-638.5 0,-638.5"/>
-<text text-anchor="middle" x="47.5" y="-645.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/common.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="0,-644 0,-663 95,-663 95,-644 0,-644"/>
+<text text-anchor="middle" x="47.5" y="-651" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/common.h</text>
</a>
</g>
</g>
<!-- Node1->Node2 -->
<g id="edge1" class="edge">
<title>Node1->Node2</title>
-<path fill="none" stroke="midnightblue" d="M997.74,-702.17C847.91,-699.65 444.29,-690.17 109.5,-658 108.19,-657.87 106.87,-657.74 105.53,-657.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="105.51,-654.07 95.17,-656.39 104.7,-661.03 105.51,-654.07"/>
+<path fill="none" stroke="midnightblue" d="M373.82,-707.37C308.61,-699.75 201.21,-686.05 109.5,-669 103.65,-667.91 97.52,-666.64 91.49,-665.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="92.02,-661.84 81.49,-663.04 90.47,-668.67 92.02,-661.84"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
@@ -45,8 +45,8 @@
<!-- Node1->Node3 -->
<g id="edge2" class="edge">
<title>Node1->Node3</title>
-<path fill="none" stroke="midnightblue" d="M997.75,-698.14C847.44,-685.12 465.5,-646.74 465.5,-593 465.5,-593 465.5,-593 465.5,-535 465.5,-504.2 468.87,-492.87 489.5,-470 561.37,-390.33 882.36,-294.97 997.35,-262.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="998.49,-266.07 1007.19,-260.01 996.61,-259.33 998.49,-266.07"/>
+<path fill="none" stroke="midnightblue" d="M433.5,-705.49C433.5,-685.74 433.5,-635.22 433.5,-593 433.5,-593 433.5,-593 433.5,-535 433.5,-504.2 436.87,-492.87 457.5,-470 532.8,-386.53 871.26,-293.99 993.93,-262.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="994.92,-265.96 1003.75,-260.1 993.19,-259.17 994.92,-265.96"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
@@ -60,1169 +60,1185 @@
<!-- Node1->Node4 -->
<g id="edge3" class="edge">
<title>Node1->Node4</title>
-<path fill="none" stroke="midnightblue" d="M997.76,-700.87C814.96,-693.58 275.5,-665.88 275.5,-593 275.5,-593 275.5,-593 275.5,-423 275.5,-339.06 378.76,-286.16 434.22,-263.8"/>
+<path fill="none" stroke="midnightblue" d="M405.47,-705.48C385.33,-698.27 358.48,-686.31 339.5,-669 291.33,-625.06 275.5,-602.2 275.5,-537 275.5,-537 275.5,-537 275.5,-423 275.5,-339.06 378.76,-286.16 434.22,-263.8"/>
<polygon fill="midnightblue" stroke="midnightblue" points="435.63,-267.01 443.66,-260.1 433.08,-260.49 435.63,-267.01"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
-<g id="a_node5"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM.">
-<polygon fill="white" stroke="black" points="1679,-638.5 1679,-657.5 1758,-657.5 1758,-638.5 1679,-638.5"/>
-<text text-anchor="middle" x="1718.5" y="-645.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
+<g id="a_node5"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="189.5,-638.5 189.5,-668.5 287.5,-668.5 287.5,-638.5 189.5,-638.5"/>
+<text text-anchor="start" x="197.5" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/reflection</text>
+<text text-anchor="middle" x="238.5" y="-645.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reflection.h</text>
</a>
</g>
</g>
<!-- Node1->Node5 -->
<g id="edge4" class="edge">
<title>Node1->Node5</title>
-<path fill="none" stroke="midnightblue" d="M1117.12,-700.39C1226.1,-695.21 1464.63,-682.01 1664.5,-658 1665.8,-657.84 1667.12,-657.68 1668.45,-657.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1669.34,-660.91 1678.75,-656.05 1668.36,-653.98 1669.34,-660.91"/>
+<path fill="none" stroke="midnightblue" d="M405.56,-705.48C376.68,-696.66 330.82,-682.67 294.44,-671.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="295.04,-668.09 284.46,-668.52 293,-674.79 295.04,-668.09"/>
</g>
-<!-- Node11 -->
-<g id="node11" class="node">
-<title>Node11</title>
-<g id="a_node11"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison.">
+<!-- Node6 -->
+<g id="node6" class="node">
+<title>Node6</title>
+<g id="a_node6"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM.">
+<polygon fill="white" stroke="black" points="1679,-644 1679,-663 1758,-663 1758,-644 1679,-644"/>
+<text text-anchor="middle" x="1718.5" y="-651" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
+</a>
+</g>
+</g>
+<!-- Node1->Node6 -->
+<g id="edge5" class="edge">
+<title>Node1->Node6</title>
+<path fill="none" stroke="midnightblue" d="M493.05,-713.6C706.75,-711.9 1434.52,-703.62 1664.5,-669 1670.08,-668.16 1675.91,-666.95 1681.59,-665.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1682.75,-668.91 1691.56,-663.01 1681,-662.13 1682.75,-668.91"/>
+</g>
+<!-- Node12 -->
+<g id="node12" class="node">
+<title>Node12</title>
+<g id="a_node12"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison.">
<polygon fill="white" stroke="black" points="842,-235.5 842,-265.5 955,-265.5 955,-235.5 842,-235.5"/>
<text text-anchor="start" x="850" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
<text text-anchor="middle" x="898.5" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
</a>
</g>
</g>
-<!-- Node1->Node11 -->
-<g id="edge123" class="edge">
-<title>Node1->Node11</title>
-<path fill="none" stroke="midnightblue" d="M997.84,-700.75C884.15,-695.94 640.62,-683.01 560.5,-658 512.24,-642.94 490.72,-643.25 461.5,-602 346.36,-439.48 695.1,-312.68 839.22,-268.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="840.27,-271.79 848.83,-265.54 838.24,-265.09 840.27,-271.79"/>
+<!-- Node1->Node12 -->
+<g id="edge124" class="edge">
+<title>Node1->Node12</title>
+<path fill="none" stroke="midnightblue" d="M430.08,-705.38C417.63,-672.54 377.59,-552.94 419.5,-470 497.05,-316.53 719.3,-270.62 831.7,-257.07"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="832.36,-260.52 841.89,-255.89 831.56,-253.56 832.36,-260.52"/>
</g>
-<!-- Node21 -->
-<g id="node21" class="node">
-<title>Node21</title>
-<g id="a_node21"><a xlink:title=" ">
+<!-- Node22 -->
+<g id="node22" class="node">
+<title>Node22</title>
+<g id="a_node22"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="2121,-56.5 2121,-75.5 2166,-75.5 2166,-56.5 2121,-56.5"/>
<text text-anchor="middle" x="2143.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">utility</text>
</a>
</g>
</g>
-<!-- Node1->Node21 -->
-<g id="edge129" class="edge">
-<title>Node1->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1117.19,-702.56C1313.08,-700.8 1935.05,-692.57 2132.5,-658 2225.4,-641.74 2334.5,-687.31 2334.5,-593 2334.5,-593 2334.5,-593 2334.5,-188 2334.5,-113.88 2230.58,-83.27 2176.05,-72.31"/>
+<!-- Node1->Node22 -->
+<g id="edge130" class="edge">
+<title>Node1->Node22</title>
+<path fill="none" stroke="midnightblue" d="M493.11,-713.78C777.85,-712.55 1992.44,-705.19 2157.5,-669 2241.13,-650.67 2334.5,-678.61 2334.5,-593 2334.5,-593 2334.5,-593 2334.5,-188 2334.5,-113.88 2230.58,-83.27 2176.05,-72.31"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2176.64,-68.86 2166.16,-70.43 2175.33,-75.74 2176.64,-68.86"/>
</g>
-<!-- Node23 -->
-<g id="node23" class="node">
-<title>Node23</title>
-<g id="a_node23"><a xlink:title=" ">
+<!-- Node24 -->
+<g id="node24" class="node">
+<title>Node24</title>
+<g id="a_node24"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="261,-56.5 261,-75.5 330,-75.5 330,-56.5 261,-56.5"/>
<text text-anchor="middle" x="295.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
</a>
</g>
</g>
-<!-- Node1->Node23 -->
-<g id="edge127" class="edge">
-<title>Node1->Node23</title>
-<path fill="none" stroke="midnightblue" d="M997.77,-703.37C833.44,-703.8 377.35,-700.97 234.5,-658 179.75,-641.53 123.5,-650.17 123.5,-593 123.5,-593 123.5,-593 123.5,-188 123.5,-125.7 199.91,-92.7 250.87,-77.61"/>
+<!-- Node1->Node24 -->
+<g id="edge128" class="edge">
+<title>Node1->Node24</title>
+<path fill="none" stroke="midnightblue" d="M373.87,-710.72C303.38,-705.75 191.46,-694.09 158.5,-669 128.91,-646.47 123.5,-630.19 123.5,-593 123.5,-593 123.5,-593 123.5,-188 123.5,-125.7 199.91,-92.7 250.87,-77.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="252.03,-80.92 260.69,-74.83 250.12,-74.19 252.03,-80.92"/>
</g>
-<!-- Node24 -->
-<g id="node24" class="node">
-<title>Node24</title>
-<g id="a_node24"><a xlink:title=" ">
+<!-- Node25 -->
+<g id="node25" class="node">
+<title>Node25</title>
+<g id="a_node25"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="2031,-118 2031,-137 2078,-137 2078,-118 2031,-118"/>
<text text-anchor="middle" x="2054.5" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
</a>
</g>
</g>
-<!-- Node1->Node24 -->
-<g id="edge130" class="edge">
-<title>Node1->Node24</title>
-<path fill="none" stroke="midnightblue" d="M1117.17,-700.52C1354.75,-690.25 2220.5,-648.99 2220.5,-593 2220.5,-593 2220.5,-593 2220.5,-479 2220.5,-403.31 2182.5,-388.69 2182.5,-313 2182.5,-313 2182.5,-313 2182.5,-249.5 2182.5,-196.08 2122.89,-159.22 2085.03,-141.2"/>
+<!-- Node1->Node25 -->
+<g id="edge131" class="edge">
+<title>Node1->Node25</title>
+<path fill="none" stroke="midnightblue" d="M493.22,-713.04C718.26,-709.25 1515.02,-694.32 1767.5,-669 1970.63,-648.63 2220.5,-797.15 2220.5,-593 2220.5,-593 2220.5,-593 2220.5,-479 2220.5,-403.31 2182.5,-388.69 2182.5,-313 2182.5,-313 2182.5,-313 2182.5,-249.5 2182.5,-196.08 2122.89,-159.22 2085.03,-141.2"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2086.47,-138.01 2075.92,-137.02 2083.56,-144.37 2086.47,-138.01"/>
</g>
-<!-- Node26 -->
-<g id="node26" class="node">
-<title>Node26</title>
-<g id="a_node26"><a xlink:title=" ">
+<!-- Node27 -->
+<g id="node27" class="node">
+<title>Node27</title>
+<g id="a_node27"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="492.5,-56.5 492.5,-75.5 536.5,-75.5 536.5,-56.5 492.5,-56.5"/>
<text text-anchor="middle" x="514.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
</a>
</g>
</g>
-<!-- Node1->Node26 -->
-<g id="edge126" class="edge">
-<title>Node1->Node26</title>
-<path fill="none" stroke="midnightblue" d="M997.67,-701.96C797.16,-697.69 161.5,-677.48 161.5,-593 161.5,-593 161.5,-593 161.5,-367 161.5,-219.33 252.04,-194.52 374.5,-112 407.64,-89.67 452.6,-77.82 482.53,-71.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="483.25,-75.41 492.45,-70.17 481.98,-68.53 483.25,-75.41"/>
+<!-- Node1->Node27 -->
+<g id="edge127" class="edge">
+<title>Node1->Node27</title>
+<path fill="none" stroke="midnightblue" d="M373.78,-710.75C307.99,-705.93 207.86,-694.53 180.5,-669 155.05,-645.24 161.5,-627.82 161.5,-593 161.5,-593 161.5,-593 161.5,-367 161.5,-218.47 254.3,-194.97 377.5,-112 409.68,-90.33 453.1,-78.4 482.36,-72.37"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="483.31,-75.75 492.46,-70.4 481.97,-68.88 483.31,-75.75"/>
</g>
-<!-- Node31 -->
-<g id="node31" class="node">
-<title>Node31</title>
-<g id="a_node31"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title=" ">
+<!-- Node32 -->
+<g id="node32" class="node">
+<title>Node32</title>
+<g id="a_node32"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="1351,-235.5 1351,-265.5 1464,-265.5 1464,-235.5 1351,-235.5"/>
<text text-anchor="start" x="1359" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
<text text-anchor="middle" x="1407.5" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
</a>
</g>
</g>
-<!-- Node1->Node31 -->
-<g id="edge124" class="edge">
-<title>Node1->Node31</title>
-<path fill="none" stroke="midnightblue" d="M1117.07,-698.17C1267.45,-685.2 1650.5,-646.86 1650.5,-593 1650.5,-593 1650.5,-593 1650.5,-367 1650.5,-336.9 1653.44,-322.61 1631.5,-302 1609.02,-280.89 1531.9,-266.85 1474.39,-259.05"/>
+<!-- Node1->Node32 -->
+<g id="edge125" class="edge">
+<title>Node1->Node32</title>
+<path fill="none" stroke="midnightblue" d="M493.02,-714.4C737.36,-715.29 1650.5,-710.71 1650.5,-593 1650.5,-593 1650.5,-593 1650.5,-367 1650.5,-336.9 1653.44,-322.61 1631.5,-302 1609.02,-280.89 1531.9,-266.85 1474.39,-259.05"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1474.64,-255.55 1464.26,-257.71 1473.72,-262.49 1474.64,-255.55"/>
</g>
-<!-- Node40 -->
-<g id="node40" class="node">
-<title>Node40</title>
-<g id="a_node40"><a xlink:title=" ">
+<!-- Node41 -->
+<g id="node41" class="node">
+<title>Node41</title>
+<g id="a_node41"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="2181,-118 2181,-137 2246,-137 2246,-118 2181,-118"/>
<text text-anchor="middle" x="2213.5" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
</a>
</g>
</g>
-<!-- Node1->Node40 -->
-<g id="edge125" class="edge">
-<title>Node1->Node40</title>
-<path fill="none" stroke="midnightblue" d="M1117.17,-702.75C1260.81,-701.53 1637.02,-694.79 1948.5,-658 2104.76,-639.55 2296.5,-750.34 2296.5,-593 2296.5,-593 2296.5,-593 2296.5,-367 2296.5,-280.07 2246.71,-184.72 2224.26,-146.15"/>
+<!-- Node1->Node41 -->
+<g id="edge126" class="edge">
+<title>Node1->Node41</title>
+<path fill="none" stroke="midnightblue" d="M493.37,-714.08C743.24,-714.16 1703.84,-711.6 2003.5,-669 2136.69,-650.06 2296.5,-727.53 2296.5,-593 2296.5,-593 2296.5,-593 2296.5,-367 2296.5,-280.07 2246.71,-184.72 2224.26,-146.15"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2227.06,-144.02 2218.95,-137.21 2221.05,-147.6 2227.06,-144.02"/>
</g>
-<!-- Node48 -->
-<g id="node48" class="node">
-<title>Node48</title>
-<g id="a_node48"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="2363,-638.5 2363,-657.5 2456,-657.5 2456,-638.5 2363,-638.5"/>
-<text text-anchor="middle" x="2409.5" y="-645.5" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
-</a>
-</g>
-</g>
-<!-- Node1->Node48 -->
-<g id="edge128" class="edge">
-<title>Node1->Node48</title>
-<path fill="none" stroke="midnightblue" d="M1117.17,-703.28C1301.06,-703.65 1875.28,-701.02 2348.5,-658 2349.97,-657.87 2351.45,-657.72 2352.95,-657.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2353.4,-661.04 2362.94,-656.42 2352.6,-654.08 2353.4,-661.04"/>
-</g>
-<!-- Node6 -->
-<g id="node6" class="node">
-<title>Node6</title>
-<g id="a_node6"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="813,-118 813,-137 902,-137 902,-118 813,-118"/>
-<text text-anchor="middle" x="857.5" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/string.h</text>
+<!-- Node49 -->
+<g id="node49" class="node">
+<title>Node49</title>
+<g id="a_node49"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="2363,-644 2363,-663 2456,-663 2456,-644 2363,-644"/>
+<text text-anchor="middle" x="2409.5" y="-651" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
</a>
</g>
</g>
-<!-- Node5->Node6 -->
-<g id="edge5" class="edge">
-<title>Node5->Node6</title>
-<path fill="none" stroke="midnightblue" d="M1678.94,-642.68C1599.37,-633.01 1415.38,-605.61 1272.5,-546 1058.92,-456.9 944.76,-468.92 833.5,-266 812.22,-227.19 833.53,-173.76 847.48,-146.33"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="850.75,-147.65 852.36,-137.18 844.57,-144.35 850.75,-147.65"/>
+<!-- Node1->Node49 -->
+<g id="edge129" class="edge">
+<title>Node1->Node49</title>
+<path fill="none" stroke="midnightblue" d="M493.2,-714.28C775.35,-715.36 1976.84,-717 2348.5,-669 2355.25,-668.13 2362.33,-666.82 2369.19,-665.34"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2370.05,-668.73 2379.01,-663.07 2368.48,-661.91 2370.05,-668.73"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
-<g id="a_node7"><a xlink:href="source__map_8h.html" target="_top" xlink:title="A map from source names to source code.">
-<polygon fill="white" stroke="black" points="1854,-526.5 1854,-545.5 1971,-545.5 1971,-526.5 1854,-526.5"/>
-<text text-anchor="middle" x="1912.5" y="-533.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/source_map.h</text>
+<g id="a_node7"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="813,-118 813,-137 902,-137 902,-118 813,-118"/>
+<text text-anchor="middle" x="857.5" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/string.h</text>
</a>
</g>
</g>
-<!-- Node5->Node7 -->
+<!-- Node6->Node7 -->
<g id="edge6" class="edge">
-<title>Node5->Node7</title>
-<path fill="none" stroke="midnightblue" d="M1734.28,-638.48C1750.84,-629.52 1777.59,-614.93 1800.5,-602 1831.34,-584.59 1866.62,-564 1889.21,-550.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1891.22,-553.61 1898.07,-545.53 1887.67,-547.58 1891.22,-553.61"/>
+<title>Node6->Node7</title>
+<path fill="none" stroke="midnightblue" d="M1678.85,-647.59C1599.1,-636.75 1414.7,-606.77 1271.5,-546 1058.82,-455.74 944.47,-468.65 833.5,-266 812.24,-227.18 833.54,-173.75 847.49,-146.33"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="850.75,-147.65 852.37,-137.18 844.57,-144.35 850.75,-147.65"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
-<g id="a_node8"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes.">
-<polygon fill="white" stroke="black" points="1707,-470.5 1707,-489.5 1806,-489.5 1806,-470.5 1707,-470.5"/>
-<text text-anchor="middle" x="1756.5" y="-477.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
+<g id="a_node8"><a xlink:href="source__map_8h.html" target="_top" xlink:title="A map from source names to source code.">
+<polygon fill="white" stroke="black" points="1862,-526.5 1862,-545.5 1979,-545.5 1979,-526.5 1862,-526.5"/>
+<text text-anchor="middle" x="1920.5" y="-533.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/source_map.h</text>
</a>
</g>
</g>
-<!-- Node5->Node8 -->
-<g id="edge116" class="edge">
-<title>Node5->Node8</title>
-<path fill="none" stroke="midnightblue" d="M1733.16,-638.4C1744.91,-630.58 1760.53,-617.86 1767.5,-602 1782.43,-568.02 1771.64,-523.59 1763.43,-499.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1766.71,-497.91 1760.05,-489.67 1760.12,-500.27 1766.71,-497.91"/>
+<!-- Node6->Node8 -->
+<g id="edge7" class="edge">
+<title>Node6->Node8</title>
+<path fill="none" stroke="midnightblue" d="M1733.68,-643.82C1768.57,-623.87 1854.68,-574.64 1896.68,-550.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1898.47,-553.63 1905.42,-545.62 1895,-547.55 1898.47,-553.63"/>
</g>
-<!-- Node15 -->
-<g id="node15" class="node">
-<title>Node15</title>
-<g id="a_node15"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime.">
+<!-- Node9 -->
+<g id="node9" class="node">
+<title>Node9</title>
+<g id="a_node9"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes.">
+<polygon fill="white" stroke="black" points="1700,-470.5 1700,-489.5 1799,-489.5 1799,-470.5 1700,-470.5"/>
+<text text-anchor="middle" x="1749.5" y="-477.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
+</a>
+</g>
+</g>
+<!-- Node6->Node9 -->
+<g id="edge117" class="edge">
+<title>Node6->Node9</title>
+<path fill="none" stroke="midnightblue" d="M1731.36,-643.83C1743.28,-634.93 1760.25,-619.89 1767.5,-602 1781.54,-567.37 1767.78,-523.18 1757.8,-498.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1760.92,-497.34 1753.72,-489.57 1754.5,-500.14 1760.92,-497.34"/>
+</g>
+<!-- Node16 -->
+<g id="node16" class="node">
+<title>Node16</title>
+<g id="a_node16"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime.">
<polygon fill="white" stroke="black" points="1855,-118 1855,-137 1974,-137 1974,-118 1855,-118"/>
<text text-anchor="middle" x="1914.5" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/object.h</text>
</a>
</g>
</g>
-<!-- Node5->Node15 -->
-<g id="edge117" class="edge">
-<title>Node5->Node15</title>
-<path fill="none" stroke="midnightblue" d="M1758.19,-645.21C1863.95,-639.35 2144.5,-616.34 2144.5,-537 2144.5,-537 2144.5,-537 2144.5,-479 2144.5,-455.53 2014.01,-212.56 1984.5,-179 1971.59,-164.32 1953.67,-151.49 1939.19,-142.44"/>
+<!-- Node6->Node16 -->
+<g id="edge118" class="edge">
+<title>Node6->Node16</title>
+<path fill="none" stroke="midnightblue" d="M1758.19,-650.22C1863.95,-643.07 2144.5,-616.6 2144.5,-537 2144.5,-537 2144.5,-537 2144.5,-479 2144.5,-455.53 2014.01,-212.56 1984.5,-179 1971.59,-164.32 1953.67,-151.49 1939.19,-142.44"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1940.63,-139.22 1930.26,-137.05 1937.01,-145.21 1940.63,-139.22"/>
</g>
-<!-- Node5->Node23 -->
-<g id="edge122" class="edge">
-<title>Node5->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1678.88,-647.18C1476.98,-647.87 567.7,-648.38 451.5,-602 232.52,-514.6 215.53,-376.86 185.5,-143 183.74,-129.33 177.82,-123.44 185.5,-112 200.09,-90.27 227.24,-79.02 250.91,-73.21"/>
+<!-- Node6->Node24 -->
+<g id="edge123" class="edge">
+<title>Node6->Node24</title>
+<path fill="none" stroke="midnightblue" d="M1678.91,-652.71C1474.05,-653.58 539.42,-654.61 422.5,-602 213.13,-507.79 214.75,-370.72 185.5,-143 183.74,-129.33 177.82,-123.44 185.5,-112 200.09,-90.27 227.24,-79.02 250.91,-73.21"/>
<polygon fill="midnightblue" stroke="midnightblue" points="251.78,-76.6 260.8,-71.03 250.28,-69.76 251.78,-76.6"/>
</g>
-<!-- Node5->Node26 -->
-<g id="edge121" class="edge">
-<title>Node5->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1678.97,-646.65C1473.67,-644.7 536.46,-634.08 484.5,-602 338.36,-511.77 349.83,-406.2 363.5,-235 368.08,-177.7 361.88,-151.66 403.5,-112 425.37,-91.16 458.15,-79.49 482.43,-73.28"/>
+<!-- Node6->Node27 -->
+<g id="edge122" class="edge">
+<title>Node6->Node27</title>
+<path fill="none" stroke="midnightblue" d="M1678.9,-652.13C1470,-650.03 503.65,-638.37 452.5,-602 296.57,-491.11 316.62,-361.99 372.5,-179 382.08,-147.62 379.75,-134.63 403.5,-112 425.37,-91.16 458.15,-79.49 482.43,-73.28"/>
<polygon fill="midnightblue" stroke="midnightblue" points="483.33,-76.66 492.25,-70.95 481.72,-69.85 483.33,-76.66"/>
</g>
-<!-- Node5->Node40 -->
-<g id="edge119" class="edge">
-<title>Node5->Node40</title>
-<path fill="none" stroke="midnightblue" d="M1758.06,-646.04C1870.27,-642.26 2182.5,-623.93 2182.5,-537 2182.5,-537 2182.5,-537 2182.5,-479 2182.5,-403.31 2220.5,-388.69 2220.5,-313 2220.5,-313 2220.5,-313 2220.5,-249.5 2220.5,-213.33 2217.34,-171.19 2215.27,-147.4"/>
+<!-- Node6->Node41 -->
+<g id="edge120" class="edge">
+<title>Node6->Node41</title>
+<path fill="none" stroke="midnightblue" d="M1758.06,-651.1C1870.27,-646.05 2182.5,-624.16 2182.5,-537 2182.5,-537 2182.5,-537 2182.5,-479 2182.5,-403.31 2220.5,-388.69 2220.5,-313 2220.5,-313 2220.5,-313 2220.5,-249.5 2220.5,-213.33 2217.34,-171.19 2215.27,-147.4"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2218.74,-146.94 2214.36,-137.3 2211.77,-147.57 2218.74,-146.94"/>
</g>
-<!-- Node41 -->
-<g id="node41" class="node">
-<title>Node41</title>
-<g id="a_node41"><a xlink:title=" ">
+<!-- Node42 -->
+<g id="node42" class="node">
+<title>Node42</title>
+<g id="a_node42"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1882.5,-179.5 1882.5,-198.5 1926.5,-198.5 1926.5,-179.5 1882.5,-179.5"/>
<text text-anchor="middle" x="1904.5" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">limits</text>
</a>
</g>
</g>
-<!-- Node5->Node41 -->
-<g id="edge120" class="edge">
-<title>Node5->Node41</title>
-<path fill="none" stroke="midnightblue" d="M1758.44,-644.94C1818.44,-639.45 1930.16,-619.36 1980.5,-546 2056.74,-434.9 1953.28,-261.94 1916.56,-207.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1919.25,-204.95 1910.72,-198.67 1913.47,-208.9 1919.25,-204.95"/>
+<!-- Node6->Node42 -->
+<g id="edge121" class="edge">
+<title>Node6->Node42</title>
+<path fill="none" stroke="midnightblue" d="M1758.18,-650.16C1819.68,-644.13 1936.34,-622.65 1988.5,-546 2064.83,-433.84 1955.26,-260.95 1916.91,-206.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1919.7,-204.7 1911.02,-198.63 1914.03,-208.79 1919.7,-204.7"/>
</g>
-<!-- Node46 -->
-<g id="node46" class="node">
-<title>Node46</title>
-<g id="a_node46"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM.">
+<!-- Node47 -->
+<g id="node47" class="node">
+<title>Node47</title>
+<g id="a_node47"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM.">
<polygon fill="white" stroke="black" points="1678.5,-582.5 1678.5,-601.5 1758.5,-601.5 1758.5,-582.5 1678.5,-582.5"/>
<text text-anchor="middle" x="1718.5" y="-589.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/type.h</text>
</a>
</g>
</g>
-<!-- Node5->Node46 -->
-<g id="edge109" class="edge">
-<title>Node5->Node46</title>
-<path fill="none" stroke="midnightblue" d="M1718.5,-638.08C1718.5,-631.01 1718.5,-620.86 1718.5,-611.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1722,-611.75 1718.5,-601.75 1715,-611.75 1722,-611.75"/>
+<!-- Node6->Node47 -->
+<g id="edge110" class="edge">
+<title>Node6->Node47</title>
+<path fill="none" stroke="midnightblue" d="M1718.5,-643.98C1718.5,-635.58 1718.5,-622.48 1718.5,-611.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1722,-611.51 1718.5,-601.51 1715,-611.51 1722,-611.51"/>
</g>
-<!-- Node47 -->
-<g id="node47" class="node">
-<title>Node47</title>
-<g id="a_node47"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="493.5,-582.5 493.5,-601.5 557.5,-601.5 557.5,-582.5 493.5,-582.5"/>
-<text text-anchor="middle" x="525.5" y="-589.5" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
+<!-- Node48 -->
+<g id="node48" class="node">
+<title>Node48</title>
+<g id="a_node48"><a xlink:title=" ">
+<polygon fill="white" stroke="#bfbfbf" points="461.5,-582.5 461.5,-601.5 525.5,-601.5 525.5,-582.5 461.5,-582.5"/>
+<text text-anchor="middle" x="493.5" y="-589.5" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
</a>
</g>
</g>
-<!-- Node5->Node47 -->
-<g id="edge118" class="edge">
-<title>Node5->Node47</title>
-<path fill="none" stroke="midnightblue" d="M1678.73,-646.26C1502.71,-642.87 792.82,-627.84 571.5,-602 570.23,-601.85 568.94,-601.69 567.64,-601.51"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="567.99,-598.02 557.57,-599.93 566.91,-604.94 567.99,-598.02"/>
-</g>
-<!-- Node7->Node4 -->
-<g id="edge7" class="edge">
-<title>Node7->Node4</title>
-<path fill="none" stroke="midnightblue" d="M1853.78,-535.84C1678.58,-537.1 1145.2,-532.02 717.5,-434 649.76,-418.48 627.79,-418.77 571.5,-378 529.42,-347.52 494.75,-295.76 478.49,-268.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="481.45,-267 473.35,-260.18 475.42,-270.56 481.45,-267"/>
+<!-- Node6->Node48 -->
+<g id="edge119" class="edge">
+<title>Node6->Node48</title>
+<path fill="none" stroke="midnightblue" d="M1678.89,-652.96C1529.25,-654.23 984.29,-654.73 539.5,-602 538.23,-601.85 536.94,-601.68 535.64,-601.5"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="536,-598.02 525.57,-599.91 534.9,-604.93 536,-598.02"/>
</g>
-<!-- Node7->Node8 -->
+<!-- Node8->Node4 -->
<g id="edge8" class="edge">
-<title>Node7->Node8</title>
-<path fill="none" stroke="midnightblue" d="M1887.78,-526.44C1861.65,-517.4 1820.24,-503.06 1790.92,-492.92"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1791.7,-489.48 1781.1,-489.52 1789.41,-496.1 1791.7,-489.48"/>
+<title>Node8->Node4</title>
+<path fill="none" stroke="midnightblue" d="M1861.89,-533.11C1648.18,-525.75 911.55,-496.34 685.5,-434 631.08,-418.99 615.68,-413.14 571.5,-378 531.04,-345.81 495.9,-295.19 479.07,-268.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="482,-266.88 473.73,-260.26 476.06,-270.59 482,-266.88"/>
</g>
-<!-- Node7->Node15 -->
-<g id="edge104" class="edge">
-<title>Node7->Node15</title>
-<path fill="none" stroke="midnightblue" d="M1918.25,-526.11C1936.6,-496.9 1992.5,-400.67 1992.5,-313 1992.5,-313 1992.5,-313 1992.5,-249.5 1992.5,-205.68 1955.91,-165.13 1932.86,-143.92"/>
+<!-- Node8->Node9 -->
+<g id="edge9" class="edge">
+<title>Node8->Node9</title>
+<path fill="none" stroke="midnightblue" d="M1893.4,-526.44C1864.51,-517.32 1818.58,-502.81 1786.39,-492.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1787.06,-489.19 1776.47,-489.52 1784.95,-495.87 1787.06,-489.19"/>
+</g>
+<!-- Node8->Node16 -->
+<g id="edge105" class="edge">
+<title>Node8->Node16</title>
+<path fill="none" stroke="midnightblue" d="M1925.45,-526.44C1941.72,-497.49 1992.5,-400.11 1992.5,-313 1992.5,-313 1992.5,-313 1992.5,-249.5 1992.5,-205.68 1955.91,-165.13 1932.86,-143.92"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1935.15,-141.27 1925.35,-137.25 1930.5,-146.51 1935.15,-141.27"/>
</g>
-<!-- Node7->Node21 -->
-<g id="edge107" class="edge">
-<title>Node7->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1931.32,-526.47C1947.89,-518.45 1972.18,-505.38 1990.5,-490 2119.79,-381.51 2149.43,-344.77 2234.5,-199 2254.55,-164.65 2277.77,-144.96 2255.5,-112 2237.89,-85.94 2202.43,-74.97 2176.11,-70.35"/>
+<!-- Node8->Node22 -->
+<g id="edge108" class="edge">
+<title>Node8->Node22</title>
+<path fill="none" stroke="midnightblue" d="M1937.79,-526.43C1953.3,-518.27 1976.2,-505.04 1993.5,-490 2120.22,-379.81 2150.3,-344.29 2234.5,-199 2254.44,-164.58 2277.77,-144.96 2255.5,-112 2237.89,-85.94 2202.43,-74.97 2176.11,-70.35"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2176.59,-66.89 2166.17,-68.83 2175.53,-73.81 2176.59,-66.89"/>
</g>
-<!-- Node7->Node24 -->
-<g id="edge108" class="edge">
-<title>Node7->Node24</title>
-<path fill="none" stroke="midnightblue" d="M1924.68,-526.49C1954.83,-504.33 2030.5,-441.49 2030.5,-369 2030.5,-369 2030.5,-369 2030.5,-311 2030.5,-250.68 2043.55,-180.1 2050.4,-147.18"/>
+<!-- Node8->Node25 -->
+<g id="edge109" class="edge">
+<title>Node8->Node25</title>
+<path fill="none" stroke="midnightblue" d="M1931.86,-526.3C1959.96,-503.69 2030.5,-439.87 2030.5,-369 2030.5,-369 2030.5,-369 2030.5,-311 2030.5,-250.68 2043.55,-180.1 2050.4,-147.18"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2053.87,-147.69 2052.54,-137.18 2047.02,-146.23 2053.87,-147.69"/>
</g>
-<!-- Node7->Node26 -->
-<g id="edge106" class="edge">
-<title>Node7->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1853.87,-535.65C1698.23,-536.69 1261.93,-534.99 902.5,-490 780.89,-474.78 746.17,-479.81 632.5,-434 517.4,-387.62 462.05,-378.41 409.5,-266 376.74,-195.93 457.49,-115.19 495.74,-82.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="498.23,-84.7 503.63,-75.58 493.72,-79.34 498.23,-84.7"/>
+<!-- Node8->Node27 -->
+<g id="edge107" class="edge">
+<title>Node8->Node27</title>
+<path fill="none" stroke="midnightblue" d="M1861.89,-535.57C1639.4,-536.94 848.2,-534.49 621.5,-434 574.46,-413.15 414.74,-277.11 409.5,-266 376.49,-196.05 457.37,-115.24 495.7,-82.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="498.2,-84.7 503.6,-75.59 493.7,-79.35 498.2,-84.7"/>
</g>
-<!-- Node45 -->
-<g id="node45" class="node">
-<title>Node45</title>
-<g id="a_node45"><a xlink:title=" ">
+<!-- Node46 -->
+<g id="node46" class="node">
+<title>Node46</title>
+<g id="a_node46"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1871,-470.5 1871,-489.5 1926,-489.5 1926,-470.5 1871,-470.5"/>
<text text-anchor="middle" x="1898.5" y="-477.5" font-family="Helvetica,sans-Serif" font-size="10.00">fstream</text>
</a>
</g>
</g>
-<!-- Node7->Node45 -->
-<g id="edge105" class="edge">
-<title>Node7->Node45</title>
-<path fill="none" stroke="midnightblue" d="M1910.19,-526.08C1908.33,-518.93 1905.66,-508.64 1903.35,-499.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1906.67,-498.55 1900.77,-489.75 1899.89,-500.31 1906.67,-498.55"/>
+<!-- Node8->Node46 -->
+<g id="edge106" class="edge">
+<title>Node8->Node46</title>
+<path fill="none" stroke="midnightblue" d="M1916.87,-526.08C1913.89,-518.77 1909.57,-508.18 1905.88,-499.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1909.08,-497.69 1902.07,-489.75 1902.6,-500.33 1909.08,-497.69"/>
</g>
-<!-- Node9 -->
-<g id="node9" class="node">
-<title>Node9</title>
-<g id="a_node9"><a xlink:title=" ">
+<!-- Node10 -->
+<g id="node10" class="node">
+<title>Node10</title>
+<g id="a_node10"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1597,-241 1597,-260 1698,-260 1698,-241 1597,-241"/>
<text text-anchor="middle" x="1647.5" y="-248" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/memory.h</text>
</a>
</g>
</g>
-<!-- Node8->Node9 -->
-<g id="edge9" class="edge">
-<title>Node8->Node9</title>
-<path fill="none" stroke="midnightblue" d="M1755.48,-470.22C1752.01,-443.2 1738.8,-359.63 1702.5,-302 1693.69,-288.01 1680.01,-275.43 1668.5,-266.33"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1670.33,-263.32 1660.24,-260.07 1666.1,-268.9 1670.33,-263.32"/>
+<!-- Node9->Node10 -->
+<g id="edge10" class="edge">
+<title>Node9->Node10</title>
+<path fill="none" stroke="midnightblue" d="M1748.9,-470.22C1746.72,-443.21 1737.37,-359.68 1702.5,-302 1694.06,-288.03 1680.61,-275.59 1669.13,-266.55"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1670.95,-263.54 1660.85,-260.33 1666.75,-269.13 1670.95,-263.54"/>
</g>
-<!-- Node10 -->
-<g id="node10" class="node">
-<title>Node10</title>
-<g id="a_node10"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes.">
+<!-- Node11 -->
+<g id="node11" class="node">
+<title>Node11</title>
+<g id="a_node11"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes.">
<polygon fill="white" stroke="black" points="1072,-302.5 1072,-321.5 1193,-321.5 1193,-302.5 1072,-302.5"/>
<text text-anchor="middle" x="1132.5" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/reflection.h</text>
</a>
</g>
</g>
-<!-- Node8->Node10 -->
-<g id="edge10" class="edge">
-<title>Node8->Node10</title>
-<path fill="none" stroke="midnightblue" d="M1706.97,-478.87C1607.03,-476.73 1376.31,-462.23 1206.5,-378 1182.46,-366.08 1160.08,-344.34 1146.37,-329.31"/>
+<!-- Node9->Node11 -->
+<g id="edge11" class="edge">
+<title>Node9->Node11</title>
+<path fill="none" stroke="midnightblue" d="M1699.85,-478.67C1600.8,-476.16 1373.79,-460.98 1206.5,-378 1182.46,-366.08 1160.08,-344.34 1146.37,-329.31"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1148.93,-326.92 1139.68,-321.75 1143.69,-331.56 1148.93,-326.92"/>
</g>
-<!-- Node8->Node11 -->
-<g id="edge96" class="edge">
-<title>Node8->Node11</title>
-<path fill="none" stroke="midnightblue" d="M1706.8,-479.45C1620.84,-479.08 1439.52,-473.18 1292.5,-434 1175.64,-402.86 1154.07,-373.19 1044.5,-322 1007.57,-304.75 965.69,-284.45 936.29,-270.08"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="937.73,-266.88 927.21,-265.63 934.65,-273.17 937.73,-266.88"/>
+<!-- Node9->Node12 -->
+<g id="edge97" class="edge">
+<title>Node9->Node12</title>
+<path fill="none" stroke="midnightblue" d="M1699.75,-479.39C1614.63,-478.89 1436.2,-472.78 1291.5,-434 1175.07,-402.8 1153.67,-373.1 1044.5,-322 1007.58,-304.72 965.71,-284.43 936.3,-270.06"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="937.73,-266.87 927.21,-265.62 934.66,-273.16 937.73,-266.87"/>
</g>
-<!-- Node8->Node15 -->
-<g id="edge99" class="edge">
-<title>Node8->Node15</title>
-<path fill="none" stroke="midnightblue" d="M1772.57,-470.46C1785.99,-462.59 1804.75,-449.76 1816.5,-434 1834.9,-409.31 1840.5,-399.8 1840.5,-369 1840.5,-369 1840.5,-369 1840.5,-311 1840.5,-252.33 1813.1,-230.87 1840.5,-179 1849.49,-161.99 1867.07,-149.62 1882.84,-141.39"/>
+<!-- Node9->Node16 -->
+<g id="edge100" class="edge">
+<title>Node9->Node16</title>
+<path fill="none" stroke="midnightblue" d="M1768.37,-470.43C1783.29,-462.79 1803.68,-450.3 1816.5,-434 1835.54,-409.8 1840.5,-399.8 1840.5,-369 1840.5,-369 1840.5,-369 1840.5,-311 1840.5,-252.33 1813.1,-230.87 1840.5,-179 1849.49,-161.99 1867.07,-149.62 1882.84,-141.39"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1884.38,-144.53 1891.84,-137.01 1881.32,-138.24 1884.38,-144.53"/>
</g>
-<!-- Node19 -->
-<g id="node19" class="node">
-<title>Node19</title>
-<g id="a_node19"><a xlink:href="runtime_2base_8h.html" target="_top" xlink:title=" ">
+<!-- Node20 -->
+<g id="node20" class="node">
+<title>Node20</title>
+<g id="a_node20"><a xlink:href="runtime_2base_8h.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="1684,-56.5 1684,-75.5 1797,-75.5 1797,-56.5 1684,-56.5"/>
<text text-anchor="middle" x="1740.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/base.h</text>
</a>
</g>
</g>
-<!-- Node8->Node19 -->
-<g id="edge98" class="edge">
-<title>Node8->Node19</title>
-<path fill="none" stroke="midnightblue" d="M1762.9,-470.39C1775.54,-452.5 1802.5,-409.57 1802.5,-369 1802.5,-369 1802.5,-369 1802.5,-311 1802.5,-224.12 1765.12,-125.05 1748.41,-85.1"/>
+<!-- Node9->Node20 -->
+<g id="edge99" class="edge">
+<title>Node9->Node20</title>
+<path fill="none" stroke="midnightblue" d="M1757.09,-470.28C1771.75,-452.52 1802.5,-410.34 1802.5,-369 1802.5,-369 1802.5,-369 1802.5,-311 1802.5,-224.12 1765.12,-125.05 1748.41,-85.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1751.52,-83.48 1744.38,-75.66 1745.09,-86.23 1751.52,-83.48"/>
</g>
-<!-- Node8->Node21 -->
-<g id="edge102" class="edge">
-<title>Node8->Node21</title>
-<path fill="none" stroke="midnightblue" d="M1806.28,-471.99C1894.37,-458.18 2068.5,-423.92 2068.5,-369 2068.5,-369 2068.5,-369 2068.5,-311 2068.5,-222.72 2113.91,-124.09 2134.06,-84.67"/>
+<!-- Node9->Node22 -->
+<g id="edge103" class="edge">
+<title>Node9->Node22</title>
+<path fill="none" stroke="midnightblue" d="M1799.34,-472.36C1889.06,-458.99 2068.5,-425.24 2068.5,-369 2068.5,-369 2068.5,-369 2068.5,-311 2068.5,-222.72 2113.91,-124.09 2134.06,-84.67"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2137.29,-86.05 2138.81,-75.57 2131.08,-82.82 2137.29,-86.05"/>
</g>
-<!-- Node8->Node23 -->
-<g id="edge101" class="edge">
-<title>Node8->Node23</title>
-<path fill="none" stroke="midnightblue" d="M1706.77,-477.69C1481.9,-470.84 561.46,-432.91 337.5,-266 281.08,-223.96 287.05,-126.79 292.46,-85.79"/>
+<!-- Node9->Node24 -->
+<g id="edge102" class="edge">
+<title>Node9->Node24</title>
+<path fill="none" stroke="midnightblue" d="M1699.64,-477.64C1475.23,-470.61 560.22,-432.06 337.5,-266 281.09,-223.94 287.05,-126.79 292.46,-85.79"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.94,-86.21 293.92,-75.81 289.01,-85.2 295.94,-86.21"/>
</g>
-<!-- Node8->Node24 -->
-<g id="edge103" class="edge">
-<title>Node8->Node24</title>
-<path fill="none" stroke="midnightblue" d="M1777.14,-470.46C1794.31,-462.68 1818.72,-449.97 1836.5,-434 1938.09,-342.77 2019.44,-196.18 2045.61,-146"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2048.75,-147.55 2050.22,-137.06 2042.53,-144.34 2048.75,-147.55"/>
+<!-- Node9->Node25 -->
+<g id="edge104" class="edge">
+<title>Node9->Node25</title>
+<path fill="none" stroke="midnightblue" d="M1773.11,-470.38C1791.73,-462.78 1817.61,-450.37 1836.5,-434 1939.68,-344.56 2020.02,-196.83 2045.77,-146.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.95,-147.65 2050.3,-137.15 2042.69,-144.51 2048.95,-147.65"/>
</g>
-<!-- Node8->Node26 -->
-<g id="edge100" class="edge">
-<title>Node8->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1706.94,-478.21C1553.97,-474.38 1077.42,-452.08 710.5,-322 619.87,-289.87 587.59,-277.82 532.5,-199 509.38,-165.92 502.95,-152.2 506.5,-112 507.28,-103.2 508.89,-93.54 510.47,-85.43"/>
+<!-- Node9->Node27 -->
+<g id="edge101" class="edge">
+<title>Node9->Node27</title>
+<path fill="none" stroke="midnightblue" d="M1699.74,-478.13C1547.22,-474.06 1074.57,-451.15 710.5,-322 619.87,-289.85 587.59,-277.82 532.5,-199 509.38,-165.92 502.95,-152.2 506.5,-112 507.28,-103.2 508.89,-93.54 510.47,-85.43"/>
<polygon fill="midnightblue" stroke="midnightblue" points="513.91,-86.07 512.51,-75.57 507.06,-84.65 513.91,-86.07"/>
</g>
-<!-- Node8->Node31 -->
-<g id="edge97" class="edge">
-<title>Node8->Node31</title>
-<path fill="none" stroke="midnightblue" d="M1753.19,-470.4C1740.6,-438.1 1694.86,-324.73 1664.5,-302 1635.09,-279.98 1540.4,-265.63 1474.56,-258.05"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1474.59,-254.53 1464.26,-256.89 1473.81,-261.49 1474.59,-254.53"/>
+<!-- Node9->Node32 -->
+<g id="edge98" class="edge">
+<title>Node9->Node32</title>
+<path fill="none" stroke="midnightblue" d="M1746.54,-470.41C1735.24,-438.14 1694.02,-324.84 1664.5,-302 1635.4,-279.48 1540.38,-265.25 1474.42,-257.83"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1474.42,-254.31 1464.09,-256.7 1473.65,-261.27 1474.42,-254.31"/>
</g>
-<!-- Node42 -->
-<g id="node42" class="node">
-<title>Node42</title>
-<g id="a_node42"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes.">
+<!-- Node43 -->
+<g id="node43" class="node">
+<title>Node43</title>
+<g id="a_node43"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes.">
<polygon fill="white" stroke="black" points="1491,-414.5 1491,-433.5 1622,-433.5 1622,-414.5 1491,-414.5"/>
<text text-anchor="middle" x="1556.5" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/repr_printer.h</text>
</a>
</g>
</g>
-<!-- Node8->Node42 -->
-<g id="edge81" class="edge">
-<title>Node8->Node42</title>
-<path fill="none" stroke="midnightblue" d="M1724.81,-470.44C1690.43,-461.16 1635.42,-446.31 1597.71,-436.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1598.61,-432.74 1588.04,-433.52 1596.78,-439.5 1598.61,-432.74"/>
+<!-- Node9->Node43 -->
+<g id="edge82" class="edge">
+<title>Node9->Node43</title>
+<path fill="none" stroke="midnightblue" d="M1718.92,-470.44C1685.89,-461.2 1633.11,-446.44 1596.73,-436.26"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1597.51,-432.84 1586.94,-433.52 1595.63,-439.58 1597.51,-432.84"/>
</g>
-<!-- Node10->Node3 -->
-<g id="edge11" class="edge">
-<title>Node10->Node3</title>
+<!-- Node11->Node3 -->
+<g id="edge12" class="edge">
+<title>Node11->Node3</title>
<path fill="none" stroke="midnightblue" d="M1119.03,-302.48C1103.82,-292.84 1078.81,-277.02 1060.7,-265.55"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1062.26,-262.4 1051.94,-260.01 1058.52,-268.31 1062.26,-262.4"/>
</g>
-<!-- Node10->Node4 -->
-<g id="edge12" class="edge">
-<title>Node10->Node4</title>
+<!-- Node11->Node4 -->
+<g id="edge13" class="edge">
+<title>Node11->Node4</title>
<path fill="none" stroke="midnightblue" d="M1071.81,-305.56C945.54,-294.25 655.8,-268.28 529.37,-256.95"/>
<polygon fill="midnightblue" stroke="midnightblue" points="529.37,-253.44 519.1,-256.03 528.75,-260.41 529.37,-253.44"/>
</g>
-<!-- Node10->Node9 -->
-<g id="edge13" class="edge">
-<title>Node10->Node9</title>
+<!-- Node11->Node10 -->
+<g id="edge14" class="edge">
+<title>Node11->Node10</title>
<path fill="none" stroke="midnightblue" d="M1193.3,-304.96C1273.74,-296.82 1419.91,-281.57 1544.5,-266 1558.27,-264.28 1573.05,-262.28 1587,-260.34"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1587.57,-263.79 1596.99,-258.93 1586.6,-256.86 1587.57,-263.79"/>
</g>
-<!-- Node10->Node11 -->
-<g id="edge14" class="edge">
-<title>Node10->Node11</title>
+<!-- Node11->Node12 -->
+<g id="edge15" class="edge">
+<title>Node11->Node12</title>
<path fill="none" stroke="midnightblue" d="M1098.97,-302.48C1063.73,-293.51 1007.39,-279.19 963.4,-268"/>
<polygon fill="midnightblue" stroke="midnightblue" points="964.2,-264.6 953.65,-265.52 962.48,-271.38 964.2,-264.6"/>
</g>
-<!-- Node10->Node15 -->
-<g id="edge77" class="edge">
-<title>Node10->Node15</title>
+<!-- Node11->Node16 -->
+<g id="edge78" class="edge">
+<title>Node11->Node16</title>
<path fill="none" stroke="midnightblue" d="M1193.25,-311.82C1263.24,-310.78 1380.54,-302.91 1473.5,-266 1495.4,-257.31 1495.21,-245.1 1516.5,-235 1524.72,-231.1 1771.39,-166.1 1872.2,-139.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1873.27,-142.94 1882.06,-137.01 1871.5,-136.17 1873.27,-142.94"/>
</g>
-<!-- Node10->Node19 -->
-<g id="edge74" class="edge">
-<title>Node10->Node19</title>
+<!-- Node11->Node20 -->
+<g id="edge75" class="edge">
+<title>Node11->Node20</title>
<path fill="none" stroke="midnightblue" d="M1154.05,-302.47C1191.85,-287.67 1272.72,-256.75 1342.5,-235 1402.6,-216.27 1420.7,-221.5 1479.5,-199 1497.69,-192.04 1500.04,-185.22 1518.5,-179 1604.92,-149.87 1653.46,-204.82 1720.5,-143 1736.3,-128.43 1740.23,-103.02 1740.91,-85.63"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1744.41,-85.57 1740.99,-75.55 1737.41,-85.52 1744.41,-85.57"/>
</g>
-<!-- Node10->Node23 -->
-<g id="edge79" class="edge">
-<title>Node10->Node23</title>
+<!-- Node11->Node24 -->
+<g id="edge80" class="edge">
+<title>Node11->Node24</title>
<path fill="none" stroke="midnightblue" d="M1071.74,-306.59C1003.91,-300.81 891.24,-288.63 796.5,-266 606.54,-220.63 393.36,-116.99 321.05,-80.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="322.29,-76.94 311.8,-75.5 319.11,-83.17 322.29,-76.94"/>
</g>
-<!-- Node10->Node24 -->
-<g id="edge80" class="edge">
-<title>Node10->Node24</title>
+<!-- Node11->Node25 -->
+<g id="edge81" class="edge">
+<title>Node11->Node25</title>
<path fill="none" stroke="midnightblue" d="M1193.25,-308.41C1268.3,-304.14 1399.42,-293.2 1508.5,-266 1545.5,-256.77 1551.97,-245.93 1588.5,-235 1774.9,-179.23 1829.95,-198.29 2016.5,-143 2019.08,-142.24 2021.73,-141.38 2024.37,-140.47"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2025.58,-143.76 2033.79,-137.06 2023.2,-137.18 2025.58,-143.76"/>
</g>
-<!-- Node10->Node26 -->
-<g id="edge78" class="edge">
-<title>Node10->Node26</title>
+<!-- Node11->Node27 -->
+<g id="edge79" class="edge">
+<title>Node11->Node27</title>
<path fill="none" stroke="midnightblue" d="M1071.82,-306.77C996.63,-300.69 873.51,-287.75 833.5,-266 788.13,-241.34 801.39,-204.51 756.5,-179 681.78,-136.54 638.44,-190.03 566.5,-143 545.02,-128.96 530.04,-102.65 521.84,-84.98"/>
<polygon fill="midnightblue" stroke="midnightblue" points="525.01,-83.49 517.81,-75.73 518.6,-86.29 525.01,-83.49"/>
</g>
-<!-- Node27 -->
-<g id="node27" class="node">
-<title>Node27</title>
-<g id="a_node27"><a xlink:href="data__type_8h.html" target="_top" xlink:title=" ">
+<!-- Node28 -->
+<g id="node28" class="node">
+<title>Node28</title>
+<g id="a_node28"><a xlink:href="data__type_8h.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="656.5,-118 656.5,-137 794.5,-137 794.5,-118 656.5,-118"/>
<text text-anchor="middle" x="725.5" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
</a>
</g>
</g>
-<!-- Node10->Node27 -->
-<g id="edge75" class="edge">
-<title>Node10->Node27</title>
+<!-- Node11->Node28 -->
+<g id="edge76" class="edge">
+<title>Node11->Node28</title>
<path fill="none" stroke="midnightblue" d="M1133.04,-302.3C1133.51,-286.52 1132.08,-253.15 1113.5,-235 1061.35,-184.07 1023.93,-217.78 953.5,-199 884.6,-180.63 805.3,-155.1 760.72,-140.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="761.55,-136.92 750.95,-137.09 759.34,-143.56 761.55,-136.92"/>
</g>
-<!-- Node10->Node31 -->
-<g id="edge44" class="edge">
-<title>Node10->Node31</title>
+<!-- Node11->Node32 -->
+<g id="edge45" class="edge">
+<title>Node11->Node32</title>
<path fill="none" stroke="midnightblue" d="M1171.9,-302.48C1215.99,-292.94 1288.16,-277.32 1341.02,-265.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1341.95,-269.26 1350.99,-263.73 1340.47,-262.42 1341.95,-269.26"/>
</g>
-<!-- Node32 -->
-<g id="node32" class="node">
-<title>Node32</title>
-<g id="a_node32"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device-independent managed NDArray abstraction.">
+<!-- Node33 -->
+<g id="node33" class="node">
+<title>Node33</title>
+<g id="a_node33"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device-independent managed NDArray abstraction.">
<polygon fill="white" stroke="black" points="1345,-179.5 1345,-198.5 1470,-198.5 1470,-179.5 1345,-179.5"/>
<text text-anchor="middle" x="1407.5" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/ndarray.h</text>
</a>
</g>
</g>
-<!-- Node10->Node32 -->
-<g id="edge76" class="edge">
-<title>Node10->Node32</title>
+<!-- Node11->Node33 -->
+<g id="edge77" class="edge">
+<title>Node11->Node33</title>
<path fill="none" stroke="midnightblue" d="M1141.32,-302.3C1157.8,-286.52 1195.01,-253.15 1232.5,-235 1266.66,-218.47 1307.62,-207.51 1341.32,-200.55"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1342.41,-203.9 1351.53,-198.52 1341.04,-197.04 1342.41,-203.9"/>
</g>
-<!-- Node12 -->
-<g id="node12" class="node">
-<title>Node12</title>
-<g id="a_node12"><a xlink:title=" ">
+<!-- Node13 -->
+<g id="node13" class="node">
+<title>Node13</title>
+<g id="a_node13"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="613.5,-179.5 613.5,-198.5 747.5,-198.5 747.5,-179.5 613.5,-179.5"/>
<text text-anchor="middle" x="680.5" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/array.h</text>
</a>
</g>
</g>
-<!-- Node11->Node12 -->
-<g id="edge15" class="edge">
-<title>Node11->Node12</title>
+<!-- Node12->Node13 -->
+<g id="edge16" class="edge">
+<title>Node12->Node13</title>
<path fill="none" stroke="midnightblue" d="M847.11,-235.47C808.85,-225.03 757.29,-210.96 721.71,-201.25"/>
<polygon fill="midnightblue" stroke="midnightblue" points="722.23,-197.76 711.67,-198.51 720.39,-204.52 722.23,-197.76"/>
</g>
-<!-- Node13 -->
-<g id="node13" class="node">
-<title>Node13</title>
-<g id="a_node13"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures.">
+<!-- Node14 -->
+<g id="node14" class="node">
+<title>Node14</title>
+<g id="a_node14"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures.">
<polygon fill="white" stroke="black" points="1527,-179.5 1527,-198.5 1636,-198.5 1636,-179.5 1527,-179.5"/>
<text text-anchor="middle" x="1581.5" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/functor.h</text>
</a>
</g>
</g>
-<!-- Node11->Node13 -->
-<g id="edge16" class="edge">
-<title>Node11->Node13</title>
+<!-- Node12->Node14 -->
+<g id="edge17" class="edge">
+<title>Node12->Node14</title>
<path fill="none" stroke="midnightblue" d="M955.29,-236.47C958.39,-235.93 961.48,-235.43 964.5,-235 1191.6,-202.29 1250.77,-217.08 1479.5,-199 1491.55,-198.05 1504.38,-196.97 1516.75,-195.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1517.34,-199.35 1526.99,-194.99 1516.72,-192.38 1517.34,-199.35"/>
</g>
-<!-- Node25 -->
-<g id="node25" class="node">
-<title>Node25</title>
-<g id="a_node25"><a xlink:href="object__path_8h.html" target="_top" xlink:title=" ">
+<!-- Node26 -->
+<g id="node26" class="node">
+<title>Node26</title>
+<g id="a_node26"><a xlink:href="object__path_8h.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="1194.5,-179.5 1194.5,-198.5 1326.5,-198.5 1326.5,-179.5 1194.5,-179.5"/>
<text text-anchor="middle" x="1260.5" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/object_path.h</text>
</a>
</g>
</g>
-<!-- Node11->Node25 -->
-<g id="edge29" class="edge">
-<title>Node11->Node25</title>
+<!-- Node12->Node26 -->
+<g id="edge30" class="edge">
+<title>Node12->Node26</title>
<path fill="none" stroke="midnightblue" d="M955.33,-236.77C958.43,-236.15 961.5,-235.56 964.5,-235 1039.62,-221.05 1126.07,-208.29 1186.06,-199.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1186.78,-203.38 1196.2,-198.54 1185.82,-196.44 1186.78,-203.38"/>
</g>
-<!-- Node11->Node26 -->
-<g id="edge43" class="edge">
-<title>Node11->Node26</title>
+<!-- Node12->Node27 -->
+<g id="edge44" class="edge">
+<title>Node12->Node27</title>
<path fill="none" stroke="midnightblue" d="M878.6,-235.35C852.49,-217.02 807.85,-186.51 789.5,-179 716.01,-148.92 686.8,-175.84 614.5,-143 596.99,-135.05 556.16,-101.99 532.44,-82.19"/>
<polygon fill="midnightblue" stroke="midnightblue" points="534.46,-79.31 524.55,-75.56 529.95,-84.67 534.46,-79.31"/>
</g>
-<!-- Node11->Node27 -->
-<g id="edge34" class="edge">
-<title>Node11->Node27</title>
+<!-- Node12->Node28 -->
+<g id="edge35" class="edge">
+<title>Node12->Node28</title>
<path fill="none" stroke="midnightblue" d="M886.8,-235.43C873.57,-220.14 850.81,-195.67 827.5,-179 805.58,-163.32 778.06,-150.02 757.13,-141"/>
<polygon fill="midnightblue" stroke="midnightblue" points="758.31,-137.7 747.73,-137.05 755.6,-144.15 758.31,-137.7"/>
</g>
-<!-- Node30 -->
-<g id="node30" class="node">
-<title>Node30</title>
-<g id="a_node30"><a xlink:title=" ">
+<!-- Node31 -->
+<g id="node31" class="node">
+<title>Node31</title>
+<g id="a_node31"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="962,-179.5 962,-198.5 1009,-198.5 1009,-179.5 962,-179.5"/>
<text text-anchor="middle" x="985.5" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">cmath</text>
</a>
</g>
</g>
-<!-- Node11->Node30 -->
-<g id="edge42" class="edge">
-<title>Node11->Node30</title>
+<!-- Node12->Node31 -->
+<g id="edge43" class="edge">
+<title>Node12->Node31</title>
<path fill="none" stroke="midnightblue" d="M919.12,-235.4C932.8,-226.04 950.71,-213.79 964.48,-204.38"/>
<polygon fill="midnightblue" stroke="midnightblue" points="966.56,-207.19 972.84,-198.66 962.61,-201.41 966.56,-207.19"/>
</g>
-<!-- Node14 -->
-<g id="node14" class="node">
-<title>Node14</title>
-<g id="a_node14"><a xlink:title=" ">
+<!-- Node15 -->
+<g id="node15" class="node">
+<title>Node15</title>
+<g id="a_node15"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1226,-56.5 1226,-75.5 1351,-75.5 1351,-56.5 1226,-56.5"/>
<text text-anchor="middle" x="1288.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/logging.h</text>
</a>
</g>
</g>
-<!-- Node13->Node14 -->
-<g id="edge17" class="edge">
-<title>Node13->Node14</title>
+<!-- Node14->Node15 -->
+<g id="edge18" class="edge">
+<title>Node14->Node15</title>
<path fill="none" stroke="midnightblue" d="M1533.78,-179.45C1498.76,-172.22 1450.53,-160.26 1410.5,-143 1371.86,-126.33 1331.2,-98.65 1307.93,-81.69"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1309.76,-78.69 1299.64,-75.56 1305.6,-84.32 1309.76,-78.69"/>
</g>
-<!-- Node13->Node15 -->
-<g id="edge18" class="edge">
-<title>Node13->Node15</title>
+<!-- Node14->Node16 -->
+<g id="edge19" class="edge">
+<title>Node14->Node16</title>
<path fill="none" stroke="midnightblue" d="M1629.21,-179.48C1689.3,-168.74 1792.46,-150.31 1856.88,-138.79"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1857.65,-142.21 1866.88,-137.01 1856.42,-135.32 1857.65,-142.21"/>
</g>
-<!-- Node13->Node21 -->
-<g id="edge27" class="edge">
-<title>Node13->Node21</title>
+<!-- Node14->Node22 -->
+<g id="edge28" class="edge">
+<title>Node14->Node22</title>
<path fill="none" stroke="midnightblue" d="M1636.07,-183.58C1738.5,-175.04 1952.1,-155.96 1983.5,-143 2003.97,-134.55 2003.22,-122.88 2022.5,-112 2038.02,-103.24 2080.95,-88 2111.25,-77.71"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2112.62,-80.94 2120.98,-74.43 2110.38,-74.31 2112.62,-80.94"/>
</g>
-<!-- Node22 -->
-<g id="node22" class="node">
-<title>Node22</title>
-<g id="a_node22"><a xlink:title=" ">
+<!-- Node23 -->
+<g id="node23" class="node">
+<title>Node23</title>
+<g id="a_node23"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1104.5,-56.5 1104.5,-75.5 1154.5,-75.5 1154.5,-56.5 1104.5,-56.5"/>
<text text-anchor="middle" x="1129.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">cstring</text>
</a>
</g>
</g>
-<!-- Node13->Node22 -->
-<g id="edge25" class="edge">
-<title>Node13->Node22</title>
+<!-- Node14->Node23 -->
+<g id="edge26" class="edge">
+<title>Node14->Node23</title>
<path fill="none" stroke="midnightblue" d="M1526.68,-181.79C1479.13,-175.36 1408.97,-163.33 1350.5,-143 1322.15,-133.14 1318.43,-122.99 1290.5,-112 1248.34,-95.42 1197.73,-82.33 1164.65,-74.63"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1165.09,-71.14 1154.56,-72.33 1163.53,-77.97 1165.09,-71.14"/>
</g>
-<!-- Node13->Node23 -->
-<g id="edge26" class="edge">
-<title>Node13->Node23</title>
+<!-- Node14->Node24 -->
+<g id="edge27" class="edge">
+<title>Node14->Node24</title>
<path fill="none" stroke="midnightblue" d="M1526.96,-183.8C1467.8,-178.27 1371.01,-166.37 1290.5,-143 1257.43,-133.4 1253.02,-119.86 1219.5,-112 1216.79,-111.37 525.05,-78.04 340.37,-69.16"/>
<polygon fill="midnightblue" stroke="midnightblue" points="340.36,-65.65 330.2,-68.67 340.02,-72.65 340.36,-65.65"/>
</g>
-<!-- Node13->Node24 -->
-<g id="edge28" class="edge">
-<title>Node13->Node24</title>
+<!-- Node14->Node25 -->
+<g id="edge29" class="edge">
+<title>Node14->Node25</title>
<path fill="none" stroke="midnightblue" d="M1636.17,-184.13C1736.36,-176.76 1945.6,-159.89 2016.5,-143 2019.49,-142.29 2022.57,-141.4 2025.61,-140.41"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2026.85,-143.69 2035.09,-137.03 2024.49,-137.09 2026.85,-143.69"/>
</g>
-<!-- Node16 -->
-<g id="node16" class="node">
-<title>Node16</title>
-<g id="a_node16"><a xlink:title=" ">
+<!-- Node17 -->
+<g id="node17" class="node">
+<title>Node17</title>
+<g id="a_node17"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1817,-56.5 1817,-75.5 1898,-75.5 1898,-56.5 1817,-56.5"/>
<text text-anchor="middle" x="1857.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/cast.h</text>
</a>
</g>
</g>
-<!-- Node15->Node16 -->
-<g id="edge19" class="edge">
-<title>Node15->Node16</title>
+<!-- Node16->Node17 -->
+<g id="edge20" class="edge">
+<title>Node16->Node17</title>
<path fill="none" stroke="midnightblue" d="M1906.33,-117.98C1897.61,-108.87 1883.6,-94.24 1872.81,-82.98"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1875.1,-80.31 1865.65,-75.51 1870.04,-85.15 1875.1,-80.31"/>
</g>
-<!-- Node17 -->
-<g id="node17" class="node">
-<title>Node17</title>
-<g id="a_node17"><a xlink:title=" ">
+<!-- Node18 -->
+<g id="node18" class="node">
+<title>Node18</title>
+<g id="a_node18"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="2011,-56.5 2011,-75.5 2102,-75.5 2102,-56.5 2011,-56.5"/>
<text text-anchor="middle" x="2056.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/object.h</text>
</a>
</g>
</g>
-<!-- Node15->Node17 -->
-<g id="edge20" class="edge">
-<title>Node15->Node17</title>
+<!-- Node16->Node18 -->
+<g id="edge21" class="edge">
+<title>Node16->Node18</title>
<path fill="none" stroke="midnightblue" d="M1934.85,-117.98C1958.89,-107.9 1999.1,-91.05 2026.66,-79.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2028.32,-82.6 2036.19,-75.51 2025.62,-76.15 2028.32,-82.6"/>
</g>
-<!-- Node18 -->
-<g id="node18" class="node">
-<title>Node18</title>
-<g id="a_node18"><a xlink:title=" ">
+<!-- Node19 -->
+<g id="node19" class="node">
+<title>Node19</title>
+<g id="a_node19"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1369,-56.5 1369,-75.5 1470,-75.5 1470,-56.5 1369,-56.5"/>
<text text-anchor="middle" x="1419.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/optional.h</text>
</a>
</g>
</g>
-<!-- Node15->Node18 -->
-<g id="edge21" class="edge">
-<title>Node15->Node18</title>
+<!-- Node16->Node19 -->
+<g id="edge22" class="edge">
+<title>Node16->Node19</title>
<path fill="none" stroke="midnightblue" d="M1854.97,-120.22C1773.07,-111.45 1620.81,-94.63 1480.32,-76.07"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1480.6,-72.58 1470.22,-74.73 1479.67,-79.51 1480.6,-72.58"/>
</g>
-<!-- Node15->Node19 -->
-<g id="edge22" class="edge">
-<title>Node15->Node19</title>
+<!-- Node16->Node20 -->
+<g id="edge23" class="edge">
+<title>Node16->Node20</title>
<path fill="none" stroke="midnightblue" d="M1889.57,-117.98C1859.46,-107.68 1808.67,-90.31 1774.86,-78.75"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1775.98,-75.43 1765.38,-75.51 1773.71,-82.06 1775.98,-75.43"/>
</g>
-<!-- Node15->Node21 -->
-<g id="edge24" class="edge">
-<title>Node15->Node21</title>
+<!-- Node16->Node22 -->
+<g id="edge25" class="edge">
+<title>Node16->Node22</title>
<path fill="none" stroke="midnightblue" d="M1948.73,-117.98C1986.15,-108.61 2048.13,-92.93 2111.09,-76.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2112.04,-79.43 2120.79,-73.46 2110.23,-72.67 2112.04,-79.43"/>
</g>
-<!-- Node20 -->
-<g id="node20" class="node">
-<title>Node20</title>
-<g id="a_node20"><a xlink:title=" ">
+<!-- Node21 -->
+<g id="node21" class="node">
+<title>Node21</title>
+<g id="a_node21"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1697.5,-0.5 1697.5,-19.5 1783.5,-19.5 1783.5,-0.5 1697.5,-0.5"/>
<text text-anchor="middle" x="1740.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/c_api.h</text>
</a>
</g>
</g>
-<!-- Node19->Node20 -->
-<g id="edge23" class="edge">
-<title>Node19->Node20</title>
+<!-- Node20->Node21 -->
+<g id="edge24" class="edge">
+<title>Node20->Node21</title>
<path fill="none" stroke="midnightblue" d="M1740.5,-56.08C1740.5,-49.01 1740.5,-38.86 1740.5,-29.99"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1744,-29.75 1740.5,-19.75 1737,-29.75 1744,-29.75"/>
</g>
-<!-- Node25->Node6 -->
-<g id="edge31" class="edge">
-<title>Node25->Node6</title>
+<!-- Node26->Node7 -->
+<g id="edge32" class="edge">
+<title>Node26->Node7</title>
<path fill="none" stroke="midnightblue" d="M1194.17,-180.21C1109.62,-170.13 968.22,-152.71 916.5,-143 910.99,-141.97 905.23,-140.74 899.56,-139.44"/>
<polygon fill="midnightblue" stroke="midnightblue" points="900.05,-135.96 889.51,-137.05 898.43,-142.77 900.05,-135.96"/>
</g>
-<!-- Node25->Node15 -->
-<g id="edge32" class="edge">
-<title>Node25->Node15</title>
+<!-- Node26->Node16 -->
+<g id="edge33" class="edge">
+<title>Node26->Node16</title>
<path fill="none" stroke="midnightblue" d="M1326.81,-180.03C1330.08,-179.67 1333.33,-179.33 1336.5,-179 1519.72,-160.15 1736.08,-142.47 1844.77,-133.9"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1845.25,-137.37 1854.95,-133.1 1844.71,-130.39 1845.25,-137.37"/>
</g>
-<!-- Node25->Node18 -->
-<g id="edge30" class="edge">
-<title>Node25->Node18</title>
+<!-- Node26->Node19 -->
+<g id="edge31" class="edge">
+<title>Node26->Node19</title>
<path fill="none" stroke="midnightblue" d="M1195.82,-179.47C1117.24,-168.79 994.24,-150.94 987.5,-143 978.59,-132.5 978.24,-122.2 987.5,-112 1013.96,-82.86 1286.79,-81.24 1358.63,-75.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1359.37,-79.31 1368.99,-74.89 1358.71,-72.34 1359.37,-79.31"/>
</g>
-<!-- Node25->Node26 -->
-<g id="edge33" class="edge">
-<title>Node25->Node26</title>
+<!-- Node26->Node27 -->
+<g id="edge34" class="edge">
+<title>Node26->Node27</title>
<path fill="none" stroke="midnightblue" d="M1194.42,-182.95C1136.07,-177.22 1049.2,-165.58 976.5,-143 945.93,-133.51 942.27,-120.81 911.5,-112 842.97,-92.37 628.6,-75.26 546.73,-69.27"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.75,-65.76 536.52,-68.53 546.25,-72.74 546.75,-65.76"/>
</g>
-<!-- Node27->Node14 -->
-<g id="edge38" class="edge">
-<title>Node27->Node14</title>
+<!-- Node28->Node15 -->
+<g id="edge39" class="edge">
+<title>Node28->Node15</title>
<path fill="none" stroke="midnightblue" d="M768.03,-117.98C779.81,-115.81 792.62,-113.64 804.5,-112 881.9,-101.32 1100.53,-82.55 1215.61,-72.98"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1216.06,-76.45 1225.74,-72.14 1215.48,-69.48 1216.06,-76.45"/>
</g>
-<!-- Node27->Node19 -->
-<g id="edge37" class="edge">
-<title>Node27->Node19</title>
+<!-- Node28->Node20 -->
+<g id="edge38" class="edge">
+<title>Node28->Node20</title>
<path fill="none" stroke="midnightblue" d="M765.93,-117.95C778.26,-115.65 791.89,-113.41 804.5,-112 1186.25,-69.29 1287.88,-109.9 1673.78,-76.07"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1674.17,-79.55 1683.82,-75.18 1673.55,-72.57 1674.17,-79.55"/>
</g>
-<!-- Node27->Node22 -->
-<g id="edge39" class="edge">
-<title>Node27->Node22</title>
+<!-- Node28->Node23 -->
+<g id="edge40" class="edge">
+<title>Node28->Node23</title>
<path fill="none" stroke="midnightblue" d="M770.14,-117.95C781.34,-115.91 793.35,-113.79 804.5,-112 909.54,-95.1 1034.32,-78.9 1094.11,-71.38"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1094.67,-74.84 1104.16,-70.12 1093.8,-67.89 1094.67,-74.84"/>
</g>
-<!-- Node27->Node23 -->
-<g id="edge41" class="edge">
-<title>Node27->Node23</title>
+<!-- Node28->Node24 -->
+<g id="edge42" class="edge">
+<title>Node28->Node24</title>
<path fill="none" stroke="midnightblue" d="M663.89,-117.98C576.28,-105.85 417.77,-83.92 340.41,-73.21"/>
<polygon fill="midnightblue" stroke="midnightblue" points="340.43,-69.68 330.05,-71.78 339.48,-76.62 340.43,-69.68"/>
</g>
-<!-- Node27->Node26 -->
-<g id="edge40" class="edge">
-<title>Node27->Node26</title>
+<!-- Node28->Node27 -->
+<g id="edge41" class="edge">
+<title>Node28->Node27</title>
<path fill="none" stroke="midnightblue" d="M695.27,-117.98C655.75,-106.83 586.83,-87.4 546.47,-76.01"/>
<polygon fill="midnightblue" stroke="midnightblue" points="547.19,-72.58 536.62,-73.24 545.29,-79.32 547.19,-72.58"/>
</g>
-<!-- Node28 -->
-<g id="node28" class="node">
-<title>Node28</title>
-<g id="a_node28"><a xlink:title=" ">
+<!-- Node29 -->
+<g id="node29" class="node">
+<title>Node29</title>
+<g id="a_node29"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="841,-56.5 841,-75.5 980,-75.5 980,-56.5 841,-56.5"/>
<text text-anchor="middle" x="910.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/shape.h</text>
</a>
</g>
</g>
-<!-- Node27->Node28 -->
-<g id="edge35" class="edge">
-<title>Node27->Node28</title>
+<!-- Node28->Node29 -->
+<g id="edge36" class="edge">
+<title>Node28->Node29</title>
<path fill="none" stroke="midnightblue" d="M752.01,-117.98C784.15,-107.64 838.49,-90.16 874.43,-78.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="875.6,-81.9 884.04,-75.51 873.45,-75.24 875.6,-81.9"/>
</g>
-<!-- Node29 -->
-<g id="node29" class="node">
-<title>Node29</title>
-<g id="a_node29"><a xlink:title=" ">
+<!-- Node30 -->
+<g id="node30" class="node">
+<title>Node30</title>
+<g id="a_node30"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="681,-56.5 681,-75.5 770,-75.5 770,-56.5 681,-56.5"/>
<text text-anchor="middle" x="725.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/dtype.h</text>
</a>
</g>
</g>
-<!-- Node27->Node29 -->
-<g id="edge36" class="edge">
-<title>Node27->Node29</title>
+<!-- Node28->Node30 -->
+<g id="edge37" class="edge">
+<title>Node28->Node30</title>
<path fill="none" stroke="midnightblue" d="M725.5,-117.98C725.5,-109.58 725.5,-96.48 725.5,-85.66"/>
<polygon fill="midnightblue" stroke="midnightblue" points="729,-85.51 725.5,-75.51 722,-85.51 729,-85.51"/>
</g>
-<!-- Node31->Node13 -->
-<g id="edge45" class="edge">
-<title>Node31->Node13</title>
+<!-- Node32->Node14 -->
+<g id="edge46" class="edge">
+<title>Node32->Node14</title>
<path fill="none" stroke="midnightblue" d="M1448.74,-235.4C1478.67,-225.16 1518.71,-211.47 1546.97,-201.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1548.11,-205.12 1556.44,-198.57 1545.84,-198.49 1548.11,-205.12"/>
</g>
-<!-- Node31->Node26 -->
-<g id="edge73" class="edge">
-<title>Node31->Node26</title>
+<!-- Node32->Node27 -->
+<g id="edge74" class="edge">
+<title>Node32->Node27</title>
<path fill="none" stroke="midnightblue" d="M1350.77,-241.58C1288.78,-232.61 1186.69,-216.88 1099.5,-199 1063.17,-191.55 1055.05,-185.25 1018.5,-179 855.21,-151.07 802.17,-202.33 647.5,-143 625.84,-134.69 625.31,-124.08 605.5,-112 585.47,-99.79 561.68,-88.11 543.44,-79.72"/>
<polygon fill="midnightblue" stroke="midnightblue" points="544.75,-76.47 534.2,-75.52 541.86,-82.84 544.75,-76.47"/>
</g>
-<!-- Node31->Node27 -->
-<g id="edge46" class="edge">
-<title>Node31->Node27</title>
+<!-- Node32->Node28 -->
+<g id="edge47" class="edge">
+<title>Node32->Node28</title>
<path fill="none" stroke="midnightblue" d="M1350.91,-236.71C1306.04,-226.54 1241.74,-211.94 1185.5,-199 1147.26,-190.2 1138.14,-185.83 1099.5,-179 969.43,-156.01 935.07,-162.93 804.5,-143 796.37,-141.76 787.78,-140.32 779.39,-138.84"/>
<polygon fill="midnightblue" stroke="midnightblue" points="779.76,-135.35 769.3,-137.02 778.52,-142.24 779.76,-135.35"/>
</g>
-<!-- Node31->Node30 -->
-<g id="edge70" class="edge">
-<title>Node31->Node30</title>
+<!-- Node32->Node31 -->
+<g id="edge71" class="edge">
+<title>Node32->Node31</title>
<path fill="none" stroke="midnightblue" d="M1350.59,-241.48C1261.38,-228.9 1091.39,-204.93 1019.24,-194.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1019.71,-191.29 1009.32,-193.36 1018.73,-198.22 1019.71,-191.29"/>
</g>
-<!-- Node31->Node32 -->
-<g id="edge47" class="edge">
-<title>Node31->Node32</title>
+<!-- Node32->Node33 -->
+<g id="edge48" class="edge">
+<title>Node32->Node33</title>
<path fill="none" stroke="midnightblue" d="M1407.5,-235.4C1407.5,-227.47 1407.5,-217.46 1407.5,-208.86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1411,-208.66 1407.5,-198.66 1404,-208.66 1411,-208.66"/>
</g>
-<!-- Node31->Node40 -->
-<g id="edge71" class="edge">
-<title>Node31->Node40</title>
+<!-- Node32->Node41 -->
+<g id="edge72" class="edge">
+<title>Node32->Node41</title>
<path fill="none" stroke="midnightblue" d="M1464.16,-240.88C1551.87,-227.54 1725.82,-201.14 1873.5,-179 1980.28,-162.99 2105.95,-144.39 2170.48,-134.85"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2171.29,-138.27 2180.67,-133.35 2170.27,-131.34 2171.29,-138.27"/>
</g>
-<!-- Node31->Node41 -->
-<g id="edge72" class="edge">
-<title>Node31->Node41</title>
+<!-- Node32->Node42 -->
+<g id="edge73" class="edge">
+<title>Node32->Node42</title>
<path fill="none" stroke="midnightblue" d="M1464.03,-242.73C1568.71,-230.2 1789.61,-203.75 1872.33,-193.85"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1872.88,-197.31 1882.39,-192.65 1872.04,-190.36 1872.88,-197.31"/>
</g>
-<!-- Node32->Node6 -->
-<g id="edge51" class="edge">
-<title>Node32->Node6</title>
+<!-- Node33->Node7 -->
+<g id="edge52" class="edge">
+<title>Node33->Node7</title>
<path fill="none" stroke="midnightblue" d="M1344.68,-180.07C1341.58,-179.7 1338.5,-179.34 1335.5,-179 1181.01,-161.36 1142.1,-159.62 987.5,-143 962.72,-140.34 935.29,-137.29 912.04,-134.68"/>
<polygon fill="midnightblue" stroke="midnightblue" points="912.34,-131.19 902.01,-133.55 911.56,-138.15 912.34,-131.19"/>
</g>
-<!-- Node32->Node15 -->
-<g id="edge60" class="edge">
-<title>Node32->Node15</title>
+<!-- Node33->Node16 -->
+<g id="edge61" class="edge">
+<title>Node33->Node16</title>
<path fill="none" stroke="midnightblue" d="M1470.13,-181.16C1548.06,-172.59 1685.17,-157.28 1802.5,-143 1816.2,-141.33 1830.84,-139.49 1844.86,-137.68"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1845.47,-141.13 1854.94,-136.38 1844.58,-134.19 1845.47,-141.13"/>
</g>
-<!-- Node32->Node18 -->
-<g id="edge50" class="edge">
-<title>Node32->Node18</title>
+<!-- Node33->Node19 -->
+<g id="edge51" class="edge">
+<title>Node33->Node19</title>
<path fill="none" stroke="midnightblue" d="M1407.4,-179.07C1407.34,-164.83 1407.63,-136.13 1410.5,-112 1411.55,-103.19 1413.39,-93.53 1415.13,-85.42"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1418.57,-86.09 1417.37,-75.56 1411.74,-84.54 1418.57,-86.09"/>
</g>
-<!-- Node32->Node19 -->
-<g id="edge52" class="edge">
-<title>Node32->Node19</title>
+<!-- Node33->Node20 -->
+<g id="edge53" class="edge">
+<title>Node33->Node20</title>
<path fill="none" stroke="midnightblue" d="M1470.1,-179.5C1551.44,-168.26 1684.25,-149.15 1693.5,-143 1714.14,-129.28 1727.32,-103.09 1734.32,-85.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1737.66,-86.38 1737.81,-75.78 1731.09,-83.98 1737.66,-86.38"/>
</g>
-<!-- Node32->Node21 -->
-<g id="edge68" class="edge">
-<title>Node32->Node21</title>
+<!-- Node33->Node22 -->
+<g id="edge69" class="edge">
+<title>Node33->Node22</title>
<path fill="none" stroke="midnightblue" d="M1470.16,-180.83C1533.57,-173.15 1634.28,-159.76 1720.5,-143 1777.11,-131.99 1789.85,-122.79 1846.5,-112 1960.07,-90.38 1993.31,-99.61 2110.76,-75.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2111.78,-79.23 2120.87,-73.78 2110.37,-72.37 2111.78,-79.23"/>
</g>
-<!-- Node32->Node24 -->
-<g id="edge69" class="edge">
-<title>Node32->Node24</title>
+<!-- Node33->Node25 -->
+<g id="edge70" class="edge">
+<title>Node33->Node25</title>
<path fill="none" stroke="midnightblue" d="M1470.02,-182.89C1485.84,-181.61 1502.79,-180.24 1518.5,-179 1725.14,-162.62 1778.22,-171.79 1983.5,-143 1995.83,-141.27 2009.25,-138.71 2021.06,-136.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2021.93,-139.61 2030.96,-134.07 2020.45,-132.77 2021.93,-139.61"/>
</g>
-<!-- Node32->Node27 -->
-<g id="edge53" class="edge">
-<title>Node32->Node27</title>
+<!-- Node33->Node28 -->
+<g id="edge54" class="edge">
+<title>Node33->Node28</title>
<path fill="none" stroke="midnightblue" d="M1344.69,-179.94C1341.59,-179.6 1338.51,-179.29 1335.5,-179 1100.05,-156.32 1039.21,-172.4 804.5,-143 795.65,-141.89 786.3,-140.43 777.24,-138.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="777.64,-135.38 767.18,-137.07 776.41,-142.27 777.64,-135.38"/>
</g>
-<!-- Node32->Node28 -->
-<g id="edge49" class="edge">
-<title>Node32->Node28</title>
+<!-- Node33->Node29 -->
+<g id="edge50" class="edge">
+<title>Node33->Node29</title>
<path fill="none" stroke="midnightblue" d="M1382.72,-179.42C1358.11,-170.74 1319.4,-156.7 1286.5,-143 1256.21,-130.38 1250.95,-121.35 1219.5,-112 1143.57,-89.43 1053.66,-77.96 990.45,-72.28"/>
<polygon fill="midnightblue" stroke="midnightblue" points="990.42,-68.76 980.15,-71.38 989.81,-75.74 990.42,-68.76"/>
</g>
-<!-- Node33 -->
-<g id="node33" class="node">
-<title>Node33</title>
-<g id="a_node33"><a xlink:title=" ">
+<!-- Node34 -->
+<g id="node34" class="node">
+<title>Node34</title>
+<g id="a_node34"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1064.5,-118 1064.5,-137 1210.5,-137 1210.5,-118 1064.5,-118"/>
<text text-anchor="middle" x="1137.5" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/container/ndarray.h</text>
</a>
</g>
</g>
-<!-- Node32->Node33 -->
-<g id="edge48" class="edge">
-<title>Node32->Node33</title>
+<!-- Node33->Node34 -->
+<g id="edge49" class="edge">
+<title>Node33->Node34</title>
<path fill="none" stroke="midnightblue" d="M1368.82,-179.48C1320.7,-168.87 1238.51,-150.76 1186.17,-139.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1186.63,-135.74 1176.11,-137.01 1185.13,-142.58 1186.63,-135.74"/>
</g>
-<!-- Node34 -->
-<g id="node34" class="node">
-<title>Node34</title>
-<g id="a_node34"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API.">
+<!-- Node35 -->
+<g id="node35" class="node">
+<title>Node35</title>
+<g id="a_node35"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API.">
<polygon fill="white" stroke="black" points="1419,-112.5 1419,-142.5 1532,-142.5 1532,-112.5 1419,-112.5"/>
<text text-anchor="start" x="1427" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/device</text>
<text text-anchor="middle" x="1475.5" y="-119.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
</a>
</g>
</g>
-<!-- Node32->Node34 -->
-<g id="edge54" class="edge">
-<title>Node32->Node34</title>
+<!-- Node33->Node35 -->
+<g id="edge55" class="edge">
+<title>Node33->Node35</title>
<path fill="none" stroke="midnightblue" d="M1417.24,-179.48C1426.19,-171.64 1439.83,-159.71 1451.65,-149.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1454.25,-151.74 1459.47,-142.52 1449.64,-146.47 1454.25,-151.74"/>
</g>
-<!-- Node36 -->
-<g id="node36" class="node">
-<title>Node36</title>
-<g id="a_node36"><a xlink:href="serializer_8h.html" target="_top" xlink:title="Serializer extension to support TVM data types Include this file to enable serialization of DLDataTyp...">
+<!-- Node37 -->
+<g id="node37" class="node">
+<title>Node37</title>
+<g id="a_node37"><a xlink:href="serializer_8h.html" target="_top" xlink:title="Serializer extension to support TVM data types Include this file to enable serialization of DLDataTyp...">
<polygon fill="white" stroke="black" points="1550.5,-118 1550.5,-137 1684.5,-137 1684.5,-118 1550.5,-118"/>
<text text-anchor="middle" x="1617.5" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/serializer.h</text>
</a>
</g>
</g>
-<!-- Node32->Node36 -->
-<g id="edge61" class="edge">
-<title>Node32->Node36</title>
+<!-- Node33->Node37 -->
+<g id="edge62" class="edge">
+<title>Node33->Node37</title>
<path fill="none" stroke="midnightblue" d="M1432.69,-179.48C1467.36,-169 1529.99,-151.21 1572.71,-139.66"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1573.82,-142.98 1582.57,-137.01 1572.01,-136.22 1573.82,-142.98"/>
</g>
-<!-- Node39 -->
-<g id="node39" class="node">
-<title>Node39</title>
-<g id="a_node39"><a xlink:title=" ">
+<!-- Node40 -->
+<g id="node40" class="node">
+<title>Node40</title>
+<g id="a_node40"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="996.5,-118 996.5,-137 1046.5,-137 1046.5,-118 996.5,-118"/>
<text text-anchor="middle" x="1021.5" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00">atomic</text>
</a>
</g>
</g>
-<!-- Node32->Node39 -->
-<g id="edge66" class="edge">
-<title>Node32->Node39</title>
+<!-- Node33->Node40 -->
+<g id="edge67" class="edge">
+<title>Node33->Node40</title>
<path fill="none" stroke="midnightblue" d="M1344.92,-180.11C1244.7,-167.46 1058.97,-143.94 1055.5,-143 1053.2,-142.38 1050.85,-141.63 1048.52,-140.8"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1049.76,-137.53 1039.17,-137.13 1047.19,-144.04 1049.76,-137.53"/>
</g>
-<!-- Node32->Node40 -->
-<g id="edge67" class="edge">
-<title>Node32->Node40</title>
+<!-- Node33->Node41 -->
+<g id="edge68" class="edge">
+<title>Node33->Node41</title>
<path fill="none" stroke="midnightblue" d="M1470.01,-182.74C1485.82,-181.46 1502.78,-180.13 1518.5,-179 1771.24,-160.76 1835.11,-165.49 2087.5,-143 2115.33,-140.52 2146.52,-136.94 2170.91,-133.95"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2171.42,-137.42 2180.91,-132.72 2170.56,-130.47 2171.42,-137.42"/>
</g>
-<!-- Node34->Node14 -->
-<g id="edge58" class="edge">
-<title>Node34->Node14</title>
+<!-- Node35->Node15 -->
+<g id="edge59" class="edge">
+<title>Node35->Node15</title>
<path fill="none" stroke="midnightblue" d="M1431.18,-112.4C1398.87,-102.12 1355.6,-88.35 1325.21,-78.68"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1326.03,-75.27 1315.44,-75.57 1323.91,-81.94 1326.03,-75.27"/>
</g>
-<!-- Node34->Node18 -->
-<g id="edge56" class="edge">
-<title>Node34->Node18</title>
+<!-- Node35->Node19 -->
+<g id="edge57" class="edge">
+<title>Node35->Node19</title>
<path fill="none" stroke="midnightblue" d="M1462.23,-112.4C1453.92,-103.58 1443.2,-92.18 1434.58,-83.02"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1437.05,-80.54 1427.65,-75.66 1431.95,-85.34 1437.05,-80.54"/>
</g>
-<!-- Node34->Node19 -->
-<g id="edge57" class="edge">
-<title>Node34->Node19</title>
+<!-- Node35->Node20 -->
+<g id="edge58" class="edge">
+<title>Node35->Node20</title>
<path fill="none" stroke="midnightblue" d="M1532.02,-113.81C1579.79,-103.08 1647.45,-87.89 1692.6,-77.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1693.44,-81.15 1702.43,-75.55 1691.91,-74.32 1693.44,-81.15"/>
</g>
-<!-- Node34->Node26 -->
-<g id="edge59" class="edge">
-<title>Node34->Node26</title>
+<!-- Node35->Node27 -->
+<g id="edge60" class="edge">
+<title>Node35->Node27</title>
<path fill="none" stroke="midnightblue" d="M1418.84,-121.76C1382.24,-118.77 1333.57,-114.94 1290.5,-112 1252.9,-109.44 689.83,-77.07 547.16,-68.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="547.07,-65.36 536.88,-68.29 546.67,-72.35 547.07,-65.36"/>
</g>
-<!-- Node35 -->
-<g id="node35" class="node">
-<title>Node35</title>
-<g id="a_node35"><a xlink:title=" ">
+<!-- Node36 -->
+<g id="node36" class="node">
+<title>Node36</title>
+<g id="a_node36"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1916,-56.5 1916,-75.5 1993,-75.5 1993,-56.5 1916,-56.5"/>
<text text-anchor="middle" x="1954.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ffi/any.h</text>
</a>
</g>
</g>
-<!-- Node34->Node35 -->
-<g id="edge55" class="edge">
-<title>Node34->Node35</title>
+<!-- Node35->Node36 -->
+<g id="edge56" class="edge">
+<title>Node35->Node36</title>
<path fill="none" stroke="midnightblue" d="M1532.3,-113.57C1535.41,-113.01 1538.49,-112.48 1541.5,-112 1699.63,-86.94 1743.93,-98.88 1905.51,-76.17"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1906.41,-79.58 1915.82,-74.7 1905.42,-72.65 1906.41,-79.58"/>
</g>
-<!-- Node36->Node19 -->
-<g id="edge64" class="edge">
-<title>Node36->Node19</title>
+<!-- Node37->Node20 -->
+<g id="edge65" class="edge">
+<title>Node37->Node20</title>
<path fill="none" stroke="midnightblue" d="M1635.12,-117.98C1655.67,-108.03 1689.86,-91.49 1713.71,-79.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1715.43,-83.01 1722.91,-75.51 1712.38,-76.71 1715.43,-83.01"/>
</g>
-<!-- Node36->Node32 -->
-<g id="edge65" class="edge">
-<title>Node36->Node32</title>
+<!-- Node37->Node33 -->
+<g id="edge66" class="edge">
+<title>Node37->Node33</title>
<path fill="none" stroke="midnightblue" d="M1592.37,-137.01C1557.72,-147.47 1495.1,-165.26 1452.36,-176.82"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1451.24,-173.5 1442.49,-179.48 1453.05,-180.26 1451.24,-173.5"/>
</g>
-<!-- Node37 -->
-<g id="node37" class="node">
-<title>Node37</title>
-<g id="a_node37"><a xlink:title=" ">
+<!-- Node38 -->
+<g id="node38" class="node">
+<title>Node38</title>
+<g id="a_node38"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1488.5,-56.5 1488.5,-75.5 1550.5,-75.5 1550.5,-56.5 1488.5,-56.5"/>
<text text-anchor="middle" x="1519.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/io.h</text>
</a>
</g>
</g>
-<!-- Node36->Node37 -->
-<g id="edge62" class="edge">
-<title>Node36->Node37</title>
+<!-- Node37->Node38 -->
+<g id="edge63" class="edge">
+<title>Node37->Node38</title>
<path fill="none" stroke="midnightblue" d="M1603.46,-117.98C1587.45,-108.25 1561.05,-92.23 1542.13,-80.74"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1543.88,-77.71 1533.51,-75.51 1540.25,-83.69 1543.88,-77.71"/>
</g>
-<!-- Node38 -->
-<g id="node38" class="node">
-<title>Node38</title>
-<g id="a_node38"><a xlink:title=" ">
+<!-- Node39 -->
+<g id="node39" class="node">
+<title>Node39</title>
+<g id="a_node39"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1569,-56.5 1569,-75.5 1666,-75.5 1666,-56.5 1569,-56.5"/>
<text text-anchor="middle" x="1617.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/serializer.h</text>
</a>
</g>
</g>
-<!-- Node36->Node38 -->
-<g id="edge63" class="edge">
-<title>Node36->Node38</title>
+<!-- Node37->Node39 -->
+<g id="edge64" class="edge">
+<title>Node37->Node39</title>
<path fill="none" stroke="midnightblue" d="M1617.5,-117.98C1617.5,-109.58 1617.5,-96.48 1617.5,-85.66"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1621,-85.51 1617.5,-75.51 1614,-85.51 1621,-85.51"/>
</g>
-<!-- Node42->Node13 -->
-<g id="edge82" class="edge">
-<title>Node42->Node13</title>
+<!-- Node43->Node14 -->
+<g id="edge83" class="edge">
+<title>Node43->Node14</title>
<path fill="none" stroke="midnightblue" d="M1570.01,-414.45C1601.44,-393.64 1678.95,-336.86 1707.5,-266 1712.65,-253.22 1715.44,-246.26 1707.5,-235 1698.11,-221.68 1661.16,-209.44 1629.69,-201.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1630.26,-197.64 1619.7,-198.54 1628.51,-204.41 1630.26,-197.64"/>
</g>
-<!-- Node42->Node26 -->
-<g id="edge95" class="edge">
-<title>Node42->Node26</title>
+<!-- Node43->Node27 -->
+<g id="edge96" class="edge">
+<title>Node43->Node27</title>
<path fill="none" stroke="midnightblue" d="M1490.76,-420.2C1355.62,-413.19 1037.71,-390.25 780.5,-322 716.92,-305.13 700.51,-298.81 643.5,-266 632.92,-259.91 565.02,-207.73 556.5,-199 534.95,-176.93 525.28,-172.26 515.5,-143 509.24,-124.27 509.96,-101.46 511.63,-85.75"/>
<polygon fill="midnightblue" stroke="midnightblue" points="515.12,-86.09 512.94,-75.72 508.18,-85.18 515.12,-86.09"/>
</g>
-<!-- Node43 -->
-<g id="node43" class="node">
-<title>Node43</title>
-<g id="a_node43"><a xlink:href="script__printer_8h.html" target="_top" xlink:title=" ">
+<!-- Node44 -->
+<g id="node44" class="node">
+<title>Node44</title>
+<g id="a_node44"><a xlink:href="script__printer_8h.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="1215,-358.5 1215,-377.5 1354,-377.5 1354,-358.5 1215,-358.5"/>
<text text-anchor="middle" x="1284.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/script_printer.h</text>
</a>
</g>
</g>
-<!-- Node42->Node43 -->
-<g id="edge83" class="edge">
-<title>Node42->Node43</title>
+<!-- Node43->Node44 -->
+<g id="edge84" class="edge">
+<title>Node43->Node44</title>
<path fill="none" stroke="midnightblue" d="M1513.4,-414.44C1465.65,-404.96 1388.64,-389.67 1337.31,-379.48"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1337.89,-376.03 1327.4,-377.52 1336.52,-382.9 1337.89,-376.03"/>
</g>
-<!-- Node44 -->
-<g id="node44" class="node">
-<title>Node44</title>
-<g id="a_node44"><a xlink:title=" ">
+<!-- Node45 -->
+<g id="node45" class="node">
+<title>Node45</title>
+<g id="a_node45"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="1562.5,-302.5 1562.5,-321.5 1622.5,-321.5 1622.5,-302.5 1562.5,-302.5"/>
<text text-anchor="middle" x="1592.5" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
-<!-- Node42->Node44 -->
-<g id="edge94" class="edge">
-<title>Node42->Node44</title>
+<!-- Node43->Node45 -->
+<g id="edge95" class="edge">
+<title>Node43->Node45</title>
<path fill="none" stroke="midnightblue" d="M1559.32,-414.37C1565.16,-396.54 1578.66,-355.3 1586.52,-331.27"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1589.9,-332.18 1589.69,-321.59 1583.25,-330.01 1589.9,-332.18"/>
</g>
-<!-- Node43->Node3 -->
-<g id="edge86" class="edge">
-<title>Node43->Node3</title>
+<!-- Node44->Node3 -->
+<g id="edge87" class="edge">
+<title>Node44->Node3</title>
<path fill="none" stroke="midnightblue" d="M1214.72,-360.29C1158.69,-353.56 1085.81,-341.39 1063.5,-322 1048.67,-309.11 1042.64,-286.84 1040.18,-270.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1043.61,-269.91 1038.95,-260.39 1036.65,-270.73 1043.61,-269.91"/>
</g>
-<!-- Node43->Node6 -->
-<g id="edge87" class="edge">
-<title>Node43->Node6</title>
+<!-- Node44->Node7 -->
+<g id="edge88" class="edge">
+<title>Node44->Node7</title>
<path fill="none" stroke="midnightblue" d="M1282.84,-358.2C1277.94,-334.73 1261.44,-270.08 1222.5,-235 1114.13,-137.39 1048.6,-179.92 907.5,-143 903.67,-142 899.7,-140.92 895.73,-139.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="896.56,-136.41 885.98,-137.04 894.65,-143.14 896.56,-136.41"/>
</g>
-<!-- Node43->Node10 -->
-<g id="edge90" class="edge">
-<title>Node43->Node10</title>
+<!-- Node44->Node11 -->
+<g id="edge91" class="edge">
+<title>Node44->Node11</title>
<path fill="none" stroke="midnightblue" d="M1260.42,-358.44C1234.96,-349.4 1194.61,-335.06 1166.04,-324.92"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1167.07,-321.57 1156.47,-321.52 1164.72,-328.16 1167.07,-321.57"/>
</g>
-<!-- Node43->Node12 -->
-<g id="edge85" class="edge">
-<title>Node43->Node12</title>
+<!-- Node44->Node13 -->
+<g id="edge86" class="edge">
+<title>Node44->Node13</title>
<path fill="none" stroke="midnightblue" d="M1214.9,-365.78C1110.74,-361.35 910.6,-342.58 761.5,-266 733.45,-251.6 708.19,-224.59 693.6,-206.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="695.97,-204.31 686.98,-198.7 690.51,-208.69 695.97,-204.31"/>
</g>
-<!-- Node43->Node13 -->
-<g id="edge88" class="edge">
-<title>Node43->Node13</title>
+<!-- Node44->Node14 -->
+<g id="edge89" class="edge">
+<title>Node44->Node14</title>
<path fill="none" stroke="midnightblue" d="M1302.36,-358.37C1336.38,-341.74 1412.52,-303.56 1473.5,-266 1505.44,-246.33 1540.67,-220.76 1561.94,-204.86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1564.26,-207.5 1570.15,-198.69 1560.05,-201.9 1564.26,-207.5"/>
</g>
-<!-- Node43->Node25 -->
-<g id="edge89" class="edge">
-<title>Node43->Node25</title>
+<!-- Node44->Node26 -->
+<g id="edge90" class="edge">
+<title>Node44->Node26</title>
<path fill="none" stroke="midnightblue" d="M1288,-358.34C1296.17,-336.76 1314.65,-279.15 1298.5,-235 1294.44,-223.91 1286.31,-213.67 1278.61,-205.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1280.86,-203.07 1271.21,-198.7 1276.03,-208.14 1280.86,-203.07"/>
</g>
-<!-- Node43->Node26 -->
-<g id="edge93" class="edge">
-<title>Node43->Node26</title>
+<!-- Node44->Node27 -->
+<g id="edge94" class="edge">
+<title>Node44->Node27</title>
<path fill="none" stroke="midnightblue" d="M1214.78,-366.6C1126.65,-364.58 970.95,-355.95 842.5,-322 782.86,-306.24 770.24,-294.44 715.5,-266 628.54,-220.82 585.48,-225.44 532.5,-143 521.41,-125.74 517.14,-102.34 515.5,-86.08"/>
<polygon fill="midnightblue" stroke="midnightblue" points="518.96,-85.41 514.72,-75.7 511.98,-85.93 518.96,-85.41"/>
</g>
-<!-- Node43->Node27 -->
-<g id="edge91" class="edge">
-<title>Node43->Node27</title>
+<!-- Node44->Node28 -->
+<g id="edge92" class="edge">
+<title>Node44->Node28</title>
<path fill="none" stroke="midnightblue" d="M1276.38,-358.38C1254.89,-335.9 1194.05,-274.5 1134.5,-235 1007.62,-150.83 954.46,-169.37 804.5,-143 797.05,-141.69 789.21,-140.28 781.49,-138.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="781.9,-135.4 771.43,-137.05 780.64,-142.29 781.9,-135.4"/>
</g>
-<!-- Node43->Node35 -->
-<g id="edge84" class="edge">
-<title>Node43->Node35</title>
+<!-- Node44->Node36 -->
+<g id="edge85" class="edge">
+<title>Node44->Node36</title>
<path fill="none" stroke="midnightblue" d="M1319.73,-358.4C1371.1,-345.88 1469.6,-321.94 1553.5,-302 1794.42,-244.73 1945.86,-346.13 2087.5,-143 2095.38,-131.7 2095.53,-123.2 2087.5,-112 2077.28,-97.76 2036.58,-85.32 2002.86,-77.15"/>
<polygon fill="midnightblue" stroke="midnightblue" points="2003.65,-73.74 1993.11,-74.86 2002.05,-80.55 2003.65,-73.74"/>
</g>
-<!-- Node43->Node44 -->
-<g id="edge92" class="edge">
-<title>Node43->Node44</title>
+<!-- Node44->Node45 -->
+<g id="edge93" class="edge">
+<title>Node44->Node45</title>
<path fill="none" stroke="midnightblue" d="M1337.69,-358.46C1391.07,-349.77 1475.61,-335.66 1548.5,-322 1549.75,-321.77 1551.02,-321.52 1552.3,-321.28"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1553.09,-324.69 1562.23,-319.33 1551.74,-317.82 1553.09,-324.69"/>
</g>
-<!-- Node46->Node7 -->
-<g id="edge111" class="edge">
-<title>Node46->Node7</title>
-<path fill="none" stroke="midnightblue" d="M1749.24,-582.44C1782.44,-573.2 1835.49,-558.44 1872.06,-548.26"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1873.21,-551.57 1881.9,-545.52 1871.33,-544.83 1873.21,-551.57"/>
-</g>
-<!-- Node46->Node8 -->
+<!-- Node47->Node8 -->
<g id="edge112" class="edge">
-<title>Node46->Node8</title>
-<path fill="none" stroke="midnightblue" d="M1721.48,-582.37C1727.64,-564.54 1741.89,-523.3 1750.19,-499.27"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1753.57,-500.19 1753.53,-489.59 1746.96,-497.9 1753.57,-500.19"/>
+<title>Node47->Node8</title>
+<path fill="none" stroke="midnightblue" d="M1750.51,-582.44C1785.23,-573.16 1840.79,-558.31 1878.88,-548.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1879.89,-551.48 1888.64,-545.52 1878.08,-544.72 1879.89,-551.48"/>
</g>
-<!-- Node46->Node12 -->
-<g id="edge110" class="edge">
-<title>Node46->Node12</title>
-<path fill="none" stroke="midnightblue" d="M1678.4,-590.71C1494.99,-589.2 740.63,-580.89 641.5,-546 478.83,-488.75 298,-366.55 409.5,-235 433.93,-206.18 531.95,-195.79 603.09,-192.07"/>
+<!-- Node47->Node9 -->
+<g id="edge113" class="edge">
+<title>Node47->Node9</title>
+<path fill="none" stroke="midnightblue" d="M1720.93,-582.37C1725.96,-564.54 1737.58,-523.3 1744.35,-499.27"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1747.73,-500.17 1747.08,-489.59 1741,-498.27 1747.73,-500.17"/>
+</g>
+<!-- Node47->Node13 -->
+<g id="edge111" class="edge">
+<title>Node47->Node13</title>
+<path fill="none" stroke="midnightblue" d="M1678.46,-590.76C1491.81,-589.47 711.82,-581.94 609.5,-546 454.45,-491.54 303.24,-360.36 409.5,-235 433.93,-206.18 531.95,-195.79 603.09,-192.07"/>
<polygon fill="midnightblue" stroke="midnightblue" points="603.56,-195.55 613.38,-191.56 603.22,-188.56 603.56,-195.55"/>
</g>
-<!-- Node46->Node15 -->
-<g id="edge114" class="edge">
-<title>Node46->Node15</title>
+<!-- Node47->Node16 -->
+<g id="edge115" class="edge">
+<title>Node47->Node16</title>
<path fill="none" stroke="midnightblue" d="M1731.32,-582.32C1769.29,-555.46 1878.5,-469.48 1878.5,-369 1878.5,-369 1878.5,-369 1878.5,-311 1878.5,-252.29 1853.87,-234.33 1873.5,-179 1878.17,-165.83 1887.91,-153.59 1896.72,-144.46"/>
<polygon fill="midnightblue" stroke="midnightblue" points="1899.36,-146.78 1904.08,-137.29 1894.47,-141.77 1899.36,-146.78"/>
</g>
-<!-- Node46->Node26 -->
-<g id="edge115" class="edge">
-<title>Node46->Node26</title>
-<path fill="none" stroke="midnightblue" d="M1678.4,-590.47C1489.65,-587.81 694.36,-574.98 587.5,-546 499.1,-522.02 475.35,-502.46 414.5,-434 394.84,-411.88 388.83,-405.73 378.5,-378 369.72,-354.44 372.28,-347.08 370.5,-322 363.59,-224.8 367.63,-183.8 433.5,-112 447.05,-97.24 466.58,-86.19 483.08,-78.73"/>
+<!-- Node47->Node27 -->
+<g id="edge116" class="edge">
+<title>Node47->Node27</title>
+<path fill="none" stroke="midnightblue" d="M1678.2,-590.64C1485.69,-588.77 664.69,-578.91 555.5,-546 475.84,-521.99 455.68,-500.37 405.5,-434 388.47,-411.48 383.82,-404.98 375.5,-378 368.12,-354.08 370.84,-347 369.5,-322 364.3,-224.57 367.54,-183.9 433.5,-112 447.05,-97.24 466.58,-86.19 483.08,-78.73"/>
<polygon fill="midnightblue" stroke="midnightblue" points="484.55,-81.91 492.37,-74.76 481.8,-75.47 484.55,-81.91"/>
</g>
-<!-- Node46->Node27 -->
-<g id="edge113" class="edge">
-<title>Node46->Node27</title>
-<path fill="none" stroke="midnightblue" d="M1678.48,-587.84C1548.71,-576.31 1130.33,-528.93 824.5,-378 711.46,-322.21 658.64,-312.84 604.5,-199 589.74,-167.96 628.18,-149.7 665.56,-139.58"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="666.69,-142.9 675.52,-137.05 664.97,-136.12 666.69,-142.9"/>
+<!-- Node47->Node28 -->
+<g id="edge114" class="edge">
+<title>Node47->Node28</title>
+<path fill="none" stroke="midnightblue" d="M1678.42,-587.88C1548.46,-576.47 1129.5,-529.39 823.5,-378 710.83,-322.25 658.36,-312.59 604.5,-199 589.77,-167.94 628.21,-149.69 665.58,-139.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="666.71,-142.89 675.54,-137.05 664.99,-136.11 666.71,-142.89"/>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/attrs_8h_source.html b/docs/reference/api/doxygen/attrs_8h_source.html
index 0f9ecca212..03f76c8913 100644
--- a/docs/reference/api/doxygen/attrs_8h_source.html
+++ b/docs/reference/api/doxygen/attrs_8h_source.html
@@ -93,756 +93,816 @@ $(function() {
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include <dmlc/common.h></span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include <tvm/ffi/container/map.h></span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include <tvm/ffi/function.h></span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include <<a class="code" href="ir_2expr_8h.html">tvm/ir/expr.h</a>></span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include <<a class="code" href="structural__equal_8h.html">tvm/node/structural_equal.h</a>></span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include <<a class="code" href="structural__hash_8h.html">tvm/node/structural_hash.h</a>></span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include <functional></span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include <string></span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include <type_traits></span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include <unordered_map></span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include <utility></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include <vector></span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">namespace </span><a class="code" href="namespacetvm.html">tvm</a> {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="attrs_8h.html#ac869a7c3d7169282810ce7819918314a"> 67</a></span> <span class="preprocessor">#define TVM_DECLARE_ATTRS(ClassName, TypeKey) \</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"> static constexpr const char* _type_key = TypeKey; \</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"> TVM_DECLARE_FINAL_OBJECT_INFO(ClassName, ::tvm::BaseAttrsNode); \</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"> template <typename FVisit> \</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"> void _tvm_VisitAttrs(FVisit& _tvm_fvisit) </span><span class="comment">// NOLINT(*)</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="attrs_8h.html#a578da113eb199bad72e26c03ad24832f"> 77</a></span> <span class="preprocessor">#define TVM_ATTR_FIELD(FieldName) _tvm_fvisit(#FieldName, &FieldName)</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="namespacetvm.html#ab6c242e8ac09beb463fba306948b7f15"> 85</a></span> <span class="keyword">inline</span> TObjectRef <a class="code" href="namespacetvm.html#ab6c242e8ac09beb463fba306948b7f15">NullValue</a>() {</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  static_assert(TObjectRef::_type_is_nullable, <span class="stringliteral">"Can only get NullValue for nullable types"</span>);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> TObjectRef(ObjectPtr<Object>(<span class="keyword">nullptr</span>));</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> }</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacetvm.html#a28c693333c2b15702b1a9a57dec0fbf5"> 91</a></span> <span class="keyword">inline</span> <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> <a class="code" href="namespacetvm.html#a28c693333c2b15702b1a9a57dec0fbf5">NullValue<DataType></a>() {</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm.html#a41918af1a1dc386388639a9d3ad06c5d">DataType</a>(<a class="code" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da2a59b355bef5ebc40bd78833666197cb">DataType::kHandle</a>, 0, 0);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="structtvm_1_1AttrError.html"> 96</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1AttrError.html">AttrError</a> : <span class="keyword">public</span> Error {</div>
-<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structtvm_1_1AttrError.html#a3285db0171872bc2fdde8243f6e801d9"> 101</a></span>  <span class="keyword">explicit</span> <a class="code" href="structtvm_1_1AttrError.html#a3285db0171872bc2fdde8243f6e801d9">AttrError</a>(std::string msg) : Error(<span class="stringliteral">"AttributeError"</span>, msg, TVM_FFI_TRACEBACK_HERE) {}</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
-<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html"> 107</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a> : <span class="keyword">public</span> Object {</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#ad918a5375ed2f8db7557ba50f95e026b"> 110</a></span>  String <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#ad918a5375ed2f8db7557ba50f95e026b">name</a>;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#aa0e740cddb317c3a74a12302ab531b9b"> 112</a></span>  String <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#aa0e740cddb317c3a74a12302ab531b9b">type_info</a>;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#a7b565d9b3eca049a906e42fba57516a0"> 114</a></span>  String <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a7b565d9b3eca049a906e42fba57516a0">description</a>;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
-<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#aa8428bae334dcf9c3f2f6594a818742c"> 116</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#aa8428bae334dcf9c3f2f6594a818742c">VisitAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  v->Visit(<span class="stringliteral">"name"</span>, &<a class="code" href="classtvm_1_1AttrFieldInfoNode.html#ad918a5375ed2f8db7557ba50f95e026b">name</a>);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  v->Visit(<span class="stringliteral">"type_info"</span>, &<a class="code" href="classtvm_1_1AttrFieldInfoNode.html#aa0e740cddb317c3a74a12302ab531b9b">type_info</a>);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  v->Visit(<span class="stringliteral">"description"</span>, &<a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a7b565d9b3eca049a906e42fba57516a0">description</a>);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
-<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9"> 122</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9">_type_key</a> = <span class="stringliteral">"AttrFieldInfo"</span>;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#afdb98106a5c8d5ad2106fd03043283f7"> 123</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#afdb98106a5c8d5ad2106fd03043283f7">_type_has_method_sequal_reduce</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#a29563a91b0ce0f0118c755e072c10dfc"> 124</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a29563a91b0ce0f0118c755e072c10dfc">_type_has_method_shash_reduce</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81"> 125</a></span>  <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>, Object);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> };</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html"> 129</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html#af897e77cf019cd43014025ac0d2a5a37"> 131</a></span>  <a class="code" href="classtvm_1_1AttrFieldInfo.html#af897e77cf019cd43014025ac0d2a5a37">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a>, ObjectRef, <a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> };</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
-<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html"> 140</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> : <span class="keyword">public</span> Object {</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2"> 143</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">~BaseAttrsNode</a>() {}</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// visit function</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#af145cd54a0d92705871500a675e43abe"> 145</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#af145cd54a0d92705871500a675e43abe">VisitAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) {}</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">template</span> <<span class="keyword">typename</span>... Args></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args&&... args);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#a80929190102473038bce5b4f6c42dff6">PrintDocString</a>(std::ostream& os) <span class="keyword">const</span>; <span class="comment">// NOLINT(*)</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#acc8ff84447e3830050d96e2da4188195"> 164</a></span> <span class="comment"></span> TVM_DLL <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#acc8ff84447e3830050d96e2da4188195">VisitNonDefaultAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) = 0;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a6db664b2fcfb42f967652b596f0cab99"> 169</a></span>  TVM_DLL <span class="keyword">virtual</span> Array<AttrFieldInfo> <a class="code" href="classtvm_1_1BaseAttrsNode.html#a6db664b2fcfb42f967652b596f0cab99">ListFieldInfo</a>() <span class="keyword">const</span> = 0;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54"> 177</a></span>  TVM_DLL <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs& kwargs,</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtype">bool</span> allow_unknown = <span class="keyword">false</span>) = 0;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
-<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#ad812afdb028fe3944a80cd922dceff82"> 180</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#ad812afdb028fe3944a80cd922dceff82">_type_has_method_sequal_reduce</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#ad85f4aca5e8840d23851c0c07acd0862"> 181</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#ad85f4aca5e8840d23851c0c07acd0862">_type_has_method_shash_reduce</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6"> 182</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">_type_key</a> = <span class="stringliteral">"Attrs"</span>;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895"> 183</a></span>  <a class="code" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895">TVM_DECLARE_BASE_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>, Object);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> };</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  </div>
-<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html"> 190</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1Attrs.html">Attrs</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html#a1bf8ffc23955fe9b066d838ca41819e1"> 192</a></span>  <a class="code" href="classtvm_1_1Attrs.html#a1bf8ffc23955fe9b066d838ca41819e1">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1Attrs.html">Attrs</a>, ObjectRef, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> };</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  </div>
-<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html"> 201</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> {</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5"> 204</a></span>  Map<String, ffi::Any> <a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
-<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#afcd4e1c4b175eec86ca5a6c6f57d6457"> 206</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#afcd4e1c4b175eec86ca5a6c6f57d6457">SEqualReduce</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>* other, <a class="code" href="classtvm_1_1SEqualReducer.html">SEqualRe [...]
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm.html#a1c4f14382b85bcfa57d9a3460db2354a">equal</a>(<a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>, other-><a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>);</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
-<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#adbbe8967f5403cb2e4f993c9aa5f698c"> 210</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#adbbe8967f5403cb2e4f993c9aa5f698c">SHashReduce</a>(<a class="code" href="classtvm_1_1SHashReducer.html">SHashReducer</a> hash_reduce)<span class="keyword"> const </span>{ hash_reduce(<a class="code" href="classtvm_1_1DictAttrsNod [...]
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// implementations</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a8866b613e11f531ec6db5834bb1d15ef"> 213</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a8866b613e11f531ec6db5834bb1d15ef">VisitAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) <span class="keyword">final</span>;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#ac096af14759a1d48ecf78fd6545776e0"> 214</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#ac096af14759a1d48ecf78fd6545776e0">VisitNonDefaultAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) <span class="keyword">final</span>;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311"> 215</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs& args, <span class="keywordtype">bool</span> allow_unknown) <span class="keyword">final</span>;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#ab0cbd903adcee206626a192f008ca1e7"> 216</a></span>  Array<AttrFieldInfo> <a class="code" href="classtvm_1_1DictAttrsNode.html#ab0cbd903adcee206626a192f008ca1e7">ListFieldInfo</a>() const final;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// type info</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#aaef3e4d948905fc26a25d5ea8fd15c27"> 219</a></span>  static constexpr const <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1DictAttrsNode.html#aaef3e4d948905fc26a25d5ea8fd15c27">_type_key</a> = "<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a>";</div>
-<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a064a2af1c7fbe5140278e28cc5ec8c78"> 220</a></span>  <a class="code" href="classtvm_1_1DictAttrsNode.html#a064a2af1c7fbe5140278e28cc5ec8c78">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> };</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
-<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html"> 227</a></span> class <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> : public <a class="code" href="classtvm_1_1Attrs.html">Attrs</a> {</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a07aa10211fc3c98bce93e2ef9d8f9e45"> 233</a></span>  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1DictAttrs.html#a07aa10211fc3c98bce93e2ef9d8f9e45">DictAttrs</a>(Map<String, Any> <a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a> = {});</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// Utils for accessing attributes</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">// This needs to be on DictAttrs, not DictAttrsNode because we return the default</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">// value if DictAttrsNode is not defined.</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment"></span> <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
-<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a5b99ddfcb45e6cbe92f190c0124f6ced"> 258</a></span>  Optional<TObjectRef> <a class="code" href="classtvm_1_1DictAttrs.html#a5b99ddfcb45e6cbe92f190c0124f6ced">GetAttr</a>(</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keyword">const</span> std::string& attr_key,</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  Optional<TObjectRef> default_value = Optional<TObjectRef>(std::nullopt))<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span> (!defined()) <span class="keywordflow">return</span> default_value;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>* node = this->as<DictAttrsNode>();</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">auto</span> it = node-><a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>.find(attr_key);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">if</span> (it != node-><a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>.end()) {</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">return</span> (*it).second.cast<TObjectRef>();</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">return</span> default_value;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// variant that uses TObjectRef to enable implicit conversion to default value.</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
-<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#af021c0a1d934693d21cb93d4bfd60aca"> 272</a></span>  Optional<TObjectRef> <a class="code" href="classtvm_1_1DictAttrs.html#af021c0a1d934693d21cb93d4bfd60aca">GetAttr</a>(<span class="keyword">const</span> std::string& attr_key, TObjectRef default_value)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">return</span> GetAttr<TObjectRef>(attr_key, Optional<TObjectRef>(default_value));</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div>
-<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d"> 294</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">HasNonzeroAttr</a>(<span class="keyword">const</span> std::string& attr_key)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">return</span> GetAttr<Integer>(attr_key, 0).value_or(0).IntValue() != 0;</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  </div>
-<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#afcb5444a0a4ad51f9b2968368e17aa79"> 298</a></span>  <a class="code" href="classtvm_1_1DictAttrs.html#afcb5444a0a4ad51f9b2968368e17aa79">TVM_DEFINE_OBJECT_REF_METHODS_WITHOUT_DEFAULT_CONSTRUCTOR</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a>, <a class="code" href="classtvm_1_1Attrs.html">Attrs</a>, <a class="code" href="classtvm_1_1DictAttrsNode.html">Di [...]
-<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#adcb7e5ecede9d976bda30fb3f762c953"> 299</a></span>  <a class="code" href="classtvm_1_1DictAttrs.html#adcb7e5ecede9d976bda30fb3f762c953">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(<a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>);</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> };</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TAttrs></div>
-<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe"> 308</a></span> <span class="keyword">inline</span> TAttrs <a class="code" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe">AttrsWithDefaultValues</a>() {</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  static_assert(std::is_base_of<Attrs, TAttrs>::value, <span class="stringliteral">"Can only take attr nodes"</span>);</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keyword">auto</span> n = make_object<typename TAttrs::ContainerType>();</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  n->InitByPackedArgs(ffi::PackedArgs(<span class="keyword">nullptr</span>, 0), <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">return</span> TAttrs(n);</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> }</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  </div>
-<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="namespacetvm.html#a8eede0c885cbc8315e60ff6bbe4e534f"> 325</a></span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a8eede0c885cbc8315e60ff6bbe4e534f">WithAttrs</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, Map<String, Any> new_attrs);</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  </div>
-<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1"> 338</a></span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, String key, Any value);</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div>
-<div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2c089f4112b14b10d2288007d257382a"> 340</a></span> <span class="keyword">inline</span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, <span class="keyword">const</span> std::string& key, Any value) {</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(std::move(attrs), String(key), std::move(value));</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> }</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  </div>
-<div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692"> 353</a></span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, <span class="keyword">const</span> std::string& key);</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  </div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
-<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="namespacetvm.html#a61b12b12e74b3984360d40547aa7ab29"> 383</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(TFunc input, <span class="keyword">const</span> std::string& attr_key, Any attr_value) {</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  TNode* node = input.CopyOnWrite();</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  node->attrs = <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(std::move(node->attrs), attr_key, attr_value);</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">return</span> input;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> }</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  </div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
-<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="namespacetvm.html#a34191b42fb3cf9b30a8287abf0cecf0c"> 403</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a8eede0c885cbc8315e60ff6bbe4e534f">WithAttrs</a>(TFunc input, Map<String, Any> attrs) {</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  TNode* node = input.CopyOnWrite();</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  node->attrs = <a class="code" href="namespacetvm.html#a8eede0c885cbc8315e60ff6bbe4e534f">WithAttrs</a>(std::move(node->attrs), attrs);</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  </div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">return</span> input;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> }</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  </div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
-<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="namespacetvm.html#a7e2bc626db8be997b1562c79df3d9e11"> 440</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(TFunc input, <span class="keyword">const</span> std::string& attr_key) {</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  </div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  TNode* node = input.CopyOnWrite();</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  node->attrs = <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(std::move(node->attrs), attr_key);</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  </div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">return</span> input;</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> }</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  </div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment">// Namespace containing detail implementations</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html"> 451</a></span> <span class="keyword">namespace </span>detail {</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  </div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keyword">using</span> tvm::ffi::AnyView;</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  </div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment">// helper entry that does nothing in set_default/bound/describe calls.</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html"> 456</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> {</div>
-<div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#adab25bf47ec60e73d1e02c3cef2f6898"> 457</a></span>  <span class="keyword">using</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a> = <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  </div>
-<div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#a9bd1f913549c1b4376c0137f4101b791"> 459</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html#a9bd1f913549c1b4376c0137f4101b791">describe</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> <span class="keywordtype">char</span>* str) { <span class="keyw [...]
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#a370e92bafbada9ba805a52e72881f98b"> 461</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html#a370e92bafbada9ba805a52e72881f98b">set_default</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> T& value) {</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#a36da34fc54009d63283d07e9d41657f7"> 465</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html#a36da34fc54009d63283d07e9d41657f7">set_lower_bound</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> T& begin) {</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  }</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#add2843b725ee43be26672a8d2d641cce"> 469</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html#add2843b725ee43be26672a8d2d641cce">set_upper_bound</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> T& end) {</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  }</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> };</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  </div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="comment">// Wrapper for normal visitor.</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrNormalVisitor.html"> 475</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrNormalVisitor.html">AttrNormalVisitor</a> {</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrNormalVisitor.html#a6ba81b2db584e6625a7ccf04d4bd04ed"> 477</a></span>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1detail_1_1AttrNormalVisitor.html#a6ba81b2db584e6625a7ccf04d4bd04ed">AttrNormalVisitor</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* visitor) : visitor_(visitor) {}</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrNormalVisitor.html#a40693839ab67a4ba887040c8b4496463"> 479</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrNormalVisitor.html#a40693839ab67a4ba887040c8b4496463">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* value) {</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  visitor_->Visit(key, value);</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  </div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* visitor_;</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> };</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  </div>
-<div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html"> 488</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html">AttrsSEqualVisitor</a> {</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#aeda3a91f0b2d1a7a9a075828954ff77f"> 490</a></span>  <span class="keywordtype">bool</span> result_{<span class="keyword">true</span>};</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="comment">// constructor</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#ac67ceda6a413da78e61fa91ca61fcf26"> 492</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#ac67ceda6a413da78e61fa91ca61fcf26">AttrsSEqualVisitor</a>(<span class="keyword">const</span> Object* lhs, <span class="keyword">const</span> Object* rhs, <span class="keyword">const</span> <a class="code" href="classtvm_1_1SEqualReducer. [...]
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  : lhs_(lhs), rhs_(rhs), equal_(<a class="code" href="namespacetvm.html#a1c4f14382b85bcfa57d9a3460db2354a">equal</a>) {}</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#aaea4233b109948ae631d100368a02ad1"> 495</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#aaea4233b109948ae631d100368a02ad1">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* lhs_value) {</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">if</span> (!result_) <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keyword">const</span> T* rhs_value = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>T*<span class="keyword">></span>(</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">></span>(rhs_) +</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  (<span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">></span>(lhs_value) - <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">></span>(lhs_)));</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">if</span> (!equal_(*lhs_value, *rhs_value)) {</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  result_ = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  }</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  }</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  </div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keyword">const</span> Object* lhs_;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keyword">const</span> Object* rhs_;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1SEqualReducer.html">SEqualReducer</a>& equal_;</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> };</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  </div>
-<div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html"> 512</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html">AttrsSHashVisitor</a> {</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html#af5b71e60c1383705d275a5087f3073bb"> 514</a></span>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html#af5b71e60c1383705d275a5087f3073bb">AttrsSHashVisitor</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1SHashReducer.html">SHashReducer</a>& hash_reducer) : hash_reducer_(hash [...]
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html#a0b9995a8e489eefd6f8ef44eaf7840ca"> 517</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html#a0b9995a8e489eefd6f8ef44eaf7840ca">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* value) {</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  hash_reducer_(*value);</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  </div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1SHashReducer.html">SHashReducer</a>& hash_reducer_;</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> };</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  </div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="comment">// helper entry that does initialization, set default.</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html"> 528</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a> {</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="comment">// The attributes</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#acac846c239440c570206f36c2d04c373"> 530</a></span>  <span class="keyword">using</span> <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a> = <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry<T></a>;</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="comment">// The type key</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a573a25648ca0d3d8fe28f6c7614248bf"> 532</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a573a25648ca0d3d8fe28f6c7614248bf">type_key_</a>;</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="comment">// field name</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5ed0b852e3229c1c1e0b8c924c53479e"> 534</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5ed0b852e3229c1c1e0b8c924c53479e">key_</a>;</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="comment">// internal value.</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#aea83f0af9e7ea95e5f7d614a717b7760"> 536</a></span>  T* <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#aea83f0af9e7ea95e5f7d614a717b7760">value_</a>;</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="comment">// whether the value is missing.</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="comment">// NOTE: initialize to false so that the destructor does not throw unless</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="comment">// AttrInitVisitor::operator() is committed to returning an instance of this class.</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="comment">// It is expected not to set this to true until that is true.</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#aaba94dddd1e9c367023dbe03e76634bf"> 541</a></span>  <span class="keywordtype">bool</span> value_missing_{<span class="keyword">false</span>};</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  </div>
-<div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#ad68ac350b0d49e97caab8443cc8fb08b"> 543</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#ad68ac350b0d49e97caab8443cc8fb08b">AttrInitEntry</a>() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  </div>
-<div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#af07c4a3a8f4663ac03ae238ab7b9d791"> 545</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#af07c4a3a8f4663ac03ae238ab7b9d791">AttrInitEntry</a>(<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a>&& other) {</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  type_key_ = other.type_key_;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  key_ = other.key_;</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  value_ = other.value_;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  value_missing_ = other.value_missing_;</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="comment">// avoid unexpected throw</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  other.value_missing_ = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  </div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="comment">// If the value is still missing in destruction time throw an error.</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a7f0c496115e88acf39d413875b44cd28"> 555</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a7f0c496115e88acf39d413875b44cd28">~AttrInitEntry</a>() DMLC_THROW_EXCEPTION {</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">if</span> (value_missing_) {</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  std::ostringstream os;</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  os << type_key_ << <span class="stringliteral">": Cannot find required field \'"</span> << key_ << <span class="stringliteral">"\' during initialization. "</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  << <span class="stringliteral">"If the key is defined check that its type matches the declared type."</span>;</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">throw</span> <a class="code" href="structtvm_1_1AttrError.html">AttrError</a>(os.str());</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  }</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="comment">// override fields.</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="comment">// This function sets the lower bound of the attribute</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5608a2a457a397bf11f2be2776ec0653"> 565</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5608a2a457a397bf11f2be2776ec0653">set_lower_bound</a>(<span class="keyword">const</span> T& begin) {</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordflow">if</span> (this->value_missing_) <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keyword">const</span> T& val = *value_;</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">if</span> (begin > val) {</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  std::ostringstream os;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  os << type_key_ << <span class="stringliteral">"."</span> << key_ << <span class="stringliteral">"'s "</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  << <span class="stringliteral">"value "</span> << val << <span class="stringliteral">" is smaller than the lower bound "</span> << begin;</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">throw</span> <a class="code" href="structtvm_1_1AttrError.html">AttrError</a>(os.str());</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  }</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="comment">// This function sets the upper bound of the attribute</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a69e876dfc10eed9573c3043ea5ef2013"> 577</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a69e876dfc10eed9573c3043ea5ef2013">set_upper_bound</a>(<span class="keyword">const</span> T& end) {</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordflow">if</span> (this->value_missing_) <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keyword">const</span> T& val = *value_;</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">if</span> (val > end) {</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  std::ostringstream os;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  os << type_key_ << <span class="stringliteral">"."</span> << key_ << <span class="stringliteral">"'s "</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  << <span class="stringliteral">"value "</span> << val << <span class="stringliteral">" is bigger than the upper bound "</span> << end;</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">throw</span> <a class="code" href="structtvm_1_1AttrError.html">AttrError</a>(os.str());</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  }</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="comment">// set default when</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#ae6f6e6264a5b6373b2daada1f55a1dca"> 589</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#ae6f6e6264a5b6373b2daada1f55a1dca">set_default</a>(<span class="keyword">const</span> T& value) {</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">if</span> (!value_missing_) <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  *value_ = value;</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  value_missing_ = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  }</div>
-<div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a64eca870988f14379a2c47085cb5a0f2"> 595</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a64eca870988f14379a2c47085cb5a0f2">describe</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> <span class="keywordtype">char</span>* str) { <span class="k [...]
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> };</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  </div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="comment">// Template function to allow smart conversion</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="comment">// from Expr types into the constants.</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a5def354d13e7c9684f710c80f4cbf6ab"> 601</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a5def354d13e7c9684f710c80f4cbf6ab">SetValue</a>(T* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  *ptr = val.cast<T>();</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> }</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  </div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490"> 606</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(T* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">if</span> (<span class="keyword">auto</span> opt_int = val.try_cast<int64_t>()) {</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  *ptr = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(opt_int.value());</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <a class="code" href="classtvm_1_1IntImm.html">IntImm</a> expr = val.cast<<a class="code" href="classtvm_1_1IntImm.html">IntImm</a>>();</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  *ptr = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(expr->value);</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> }</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  </div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="comment">// Workaround for GCC8.1 / GCC8.2</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a0ff6b14da49c84ba03cb5695d9546d0b"> 617</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a0ff6b14da49c84ba03cb5695d9546d0b">SetValue<DataType></a>(<a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a>* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  *ptr = <a class="code" href="namespacetvm.html#a41918af1a1dc386388639a9d3ad06c5d">DataType</a>(val.cast<DLDataType>());</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> }</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  </div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> SetValue<std::string>(std::string* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  *ptr = val.cast<std::string>();</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> }</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  </div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a24b1d2ab479ffddbc99345a6c10f805d"> 627</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a24b1d2ab479ffddbc99345a6c10f805d">SetValue<double></a>(<span class="keywordtype">double</span>* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">if</span> (<span class="keyword">auto</span> opt_double = val.try_cast<<span class="keywordtype">double</span>>()) {</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  *ptr = opt_double.value();</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  ObjectRef expr = val.cast<ObjectRef>();</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  ICHECK(expr.defined());</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classtvm_1_1IntImmNode.html">IntImmNode</a>* op = expr.as<<a class="code" href="classtvm_1_1IntImmNode.html">IntImmNode</a>>()) {</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  *ptr = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(op->value);</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a>* op = expr.as<<a class="code" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a>>()) {</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  *ptr = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(op->value);</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  LOG(FATAL) << <span class="stringliteral">"Expect float value, but get "</span> << expr->GetTypeKey();</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  }</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  }</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> }</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00643"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a7731210cf43998c811c68e9615f8434e"> 643</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a7731210cf43998c811c68e9615f8434e">SetValue<int></a>(<span class="keywordtype">int</span>* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(ptr, val);</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> }</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#ae945b0f4b2611cf0fbbd2057429680be"> 647</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#ae945b0f4b2611cf0fbbd2057429680be">SetValue<int64_t></a>(int64_t* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(ptr, val);</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> }</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a6510e2c15f35d49a9e38306941a9edf1"> 651</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a6510e2c15f35d49a9e38306941a9edf1">SetValue<uint64_t></a>(uint64_t* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(ptr, val);</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> }</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a7347d1692382d89ee400fdde8842c691"> 655</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a7347d1692382d89ee400fdde8842c691">SetValue<bool></a>(<span class="keywordtype">bool</span>* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(ptr, val);</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> }</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  </div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="comment">// Visitor for value initialization</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FFind></div>
-<div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrInitVisitor.html"> 661</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor</a> {</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="comment">// Counter of number of matched attributes during visit.</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="comment">// This is used to decide if there is additional unmatched attributes.</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrInitVisitor.html#a40694e8ade57b3e5167ec74404188f9e"> 665</a></span>  <span class="keywordtype">size_t</span> hit_count_{0};</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="comment">// constructor</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrInitVisitor.html#ac3c800c9249fee195db2a5fa473fe960"> 667</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html#ac3c800c9249fee195db2a5fa473fe960">AttrInitVisitor</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* type_key, FFind ffind) : type_key_(type_key), ffind_(ffind) {}</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  </div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrInitVisitor.html#af0856406dd74c88334291da4eff0543d"> 670</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry<T></a> <a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html#af0856406dd74c88334291da4eff0543d">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* value) {</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  ffi::AnyView val;</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry<T></a> opt;</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a573a25648ca0d3d8fe28f6c7614248bf">type_key_</a> = type_key_;</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5ed0b852e3229c1c1e0b8c924c53479e">key_</a> = key;</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#aea83f0af9e7ea95e5f7d614a717b7760">value_</a> = value;</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">if</span> (ffind_(key, &val)) {</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <a class="code" href="namespacetvm_1_1detail.html#a5def354d13e7c9684f710c80f4cbf6ab">SetValue</a>(value, val);</div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#aaba94dddd1e9c367023dbe03e76634bf">value_missing_</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  ++hit_count_;</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#aaba94dddd1e9c367023dbe03e76634bf">value_missing_</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  }</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="preprocessor">#if defined(__GNUC__)</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor">#pragma GCC diagnostic ignored "-Wpragmas"</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="preprocessor">#pragma GCC diagnostic ignored "-Wpessimizing-move"</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">return</span> std::move(opt);</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  }</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  </div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="comment">// the type key</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* type_key_;</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  FFind ffind_;</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> };</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  </div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FFind></div>
-<div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#abe71237e8e483fd9277356234eca35d4"> 697</a></span> <span class="keyword">inline</span> <a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor<FFind></a> <a class="code" href="namespacetvm_1_1detail.html#abe71237e8e483fd9277356234eca35d4">CreateInitVisitor</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* type_key, [...]
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">return</span> <a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor<FFind></a>(type_key, ffind);</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> }</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  </div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName.html"> 706</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a> {</div>
-<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName.html#a58c1b5351ce2e7c0c7787448c18287a0"> 707</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = T::ContainerType::_type_key;</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> };</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  </div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01int_01_4.html"> 711</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><int> {</div>
-<div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01int_01_4.html#a3d260766bba29599abdef176ac44a9aa"> 712</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"int"</span>;</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> };</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  </div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01int64__t_01_4.html"> 716</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><int64_t> {</div>
-<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01int64__t_01_4.html#a0c4adfb05b647001a3b365b723269fa4"> 717</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"int"</span>;</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> };</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  </div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01Optional_3_01int64__t_01_4_01_4.html"> 721</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><Optional<int64_t>> {</div>
-<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01Optional_3_01int64__t_01_4_01_4.html#a561b5ec71b07f3599396d19c0f85fd2c"> 722</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"Optional[int]"</span>;</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> };</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  </div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01Optional_3_01double_01_4_01_4.html"> 726</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><Optional<double>> {</div>
-<div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01Optional_3_01double_01_4_01_4.html#a8b849fc5bfb11ee6dd7777770de6cfb8"> 727</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"Optional[float]"</span>;</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> };</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  </div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01uint64__t_01_4.html"> 731</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><uint64_t> {</div>
-<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01uint64__t_01_4.html#a49e7cec3abbfc4db8144c7a3741b19e6"> 732</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"int"</span>;</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> };</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  </div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01DataType_01_4.html"> 736</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><<a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a>> {</div>
-<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01DataType_01_4.html#a53fef3c8f6efd6960f326efdc7247191"> 737</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"DataType"</span>;</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> };</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  </div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><std::string> {</div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"str"</span>;</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> };</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  </div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01bool_01_4.html"> 746</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><bool> {</div>
-<div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01bool_01_4.html#a4ec09fca4aca8d1750d479c360f69c58"> 747</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"bool"</span>;</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> };</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  </div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01void_01_5_01_4.html"> 751</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><void*> {</div>
-<div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01void_01_5_01_4.html#a05dde8e9fdc15287aa0b1bf8d2e4b584"> 752</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"handle"</span>;</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> };</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  </div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00756"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01double_01_4.html"> 756</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><double> {</div>
-<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01double_01_4.html#abd511d0b0bf46cf6fe251eea8c20c386"> 757</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"float"</span>;</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> };</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  </div>
-<div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html"> 760</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> {</div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00762"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#a8bab3adf8242c94bd163ab7484170a5d"> 762</a></span>  <span class="keyword">using</span> <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a> = <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a>;</div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  </div>
-<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#ad364f21d28cf391fcfd8dc2364d88f89"> 764</a></span>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#ad364f21d28cf391fcfd8dc2364d88f89">AttrDocEntry</a>(ObjectPtr<AttrFieldInfoNode> info) : info_(info) {}</div>
-<div class="line"><a name="l00765"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#afc381afff22170ba864a32745c9f8266"> 765</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a>& <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#afc381afff22170ba864a32745c9f8266">describe</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str) {</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  info_->description = str;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  }</div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#a2a0d680fbaaef688f3ffb9e5d897e417"> 770</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a>& <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#a2a0d680fbaaef688f3ffb9e5d897e417">set_default</a>(<span class="keyword">const</span> T& value) {</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  std::ostringstream os;</div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  os << info_->type_info << <span class="stringliteral">", default="</span> << value;</div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  info_->type_info = os.str();</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#a201e9d6c937d2f444d91fcc8185f8309"> 777</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a>& <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#a201e9d6c937d2f444d91fcc8185f8309">set_lower_bound</a>(DMLC_ATTRIBUTE_UNUSED T begin) {</div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  }</div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00781"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#aec039b071d826ab164c5abe123aefaa3"> 781</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a>& <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#aec039b071d826ab164c5abe123aefaa3">set_upper_bound</a>(DMLC_ATTRIBUTE_UNUSED T end) {</div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  }</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  </div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  ObjectPtr<AttrFieldInfoNode> info_;</div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> };</div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  </div>
-<div class="line"><a name="l00789"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocVisitor.html"> 789</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrDocVisitor.html">AttrDocVisitor</a> {</div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00792"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocVisitor.html#a1091752fc7d78b471b034877ad9344b3"> 792</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrDocVisitor.html#a1091752fc7d78b471b034877ad9344b3">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* v) {</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  ObjectPtr<AttrFieldInfoNode> info = make_object<AttrFieldInfoNode>();</div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  info->name = key;</div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  info->type_info = <a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName<T>::value</a>;</div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  fields_.push_back(<a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a>(info));</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">return</span> <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a>(info);</div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  }</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  </div>
-<div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocVisitor.html#aa32707d90cd2cf8e5334afa4fe3d4722"> 800</a></span>  Array<AttrFieldInfo> <a class="code" href="classtvm_1_1detail_1_1AttrDocVisitor.html#aa32707d90cd2cf8e5334afa4fe3d4722">fields_</a>;</div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> };</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  </div>
-<div class="line"><a name="l00803"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrExistVisitor.html"> 803</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html">AttrExistVisitor</a> {</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a42cfd0949c298dea06fb2c4fb39e188d"> 805</a></span>  std::string <a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a42cfd0949c298dea06fb2c4fb39e188d">key_</a>;</div>
-<div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrExistVisitor.html#ac6ae7aa3d30f25a953810bcc0d0a938f"> 806</a></span>  <span class="keywordtype">bool</span> exist_{<span class="keyword">false</span>};</div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  </div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a345bb38b31b732a830eb9df3e16f6895"> 809</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a345bb38b31b732a830eb9df3e16f6895">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* v) {</div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">if</span> (exist_) <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">if</span> (key == key_) exist_ = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> };</div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  </div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html"> 817</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry</a> {</div>
-<div class="line"><a name="l00818"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#ac7176780304bdf87b523bcae079e17ee"> 818</a></span>  <span class="keyword">using</span> <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">TSelf</a> = <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry<T></a>;</div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="comment">// constructor</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#a572356cfd8d20c258b03f7a5c62d3909"> 820</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#a572356cfd8d20c258b03f7a5c62d3909">AttrTriggerNonDefaultEntry</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* visitor, <span class="keyword">const</span> <span class="keywordtype">char</span>* k [...]
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  : visitor_(visitor), key_(key), data_(data) {}</div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  </div>
-<div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#ae3ca1012c8502b2d3132cc81530c6c0e"> 823</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#ae3ca1012c8502b2d3132cc81530c6c0e">~AttrTriggerNonDefaultEntry</a>() DMLC_THROW_EXCEPTION {</div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">if</span> (trigger_) {</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  visitor_->Visit(key_, data_);</div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  }</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  }</div>
-<div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#aa9eac8ca63d91dab631e14547ec4ce00"> 828</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#aa9eac8ca63d91dab631e14547ec4ce00">describe</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> <span class="keywordt [...]
-<div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#ae88a65b8d90a7c55fc6ea6bb1863b425"> 829</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#ae88a65b8d90a7c55fc6ea6bb1863b425">set_default</a>(<span class="keyword">const</span> T& value) {</div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">if</span> (<a class="code" href="classtvm_1_1StructuralEqual.html">tvm::StructuralEqual</a>()(value, *data_)) {</div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  trigger_ = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  }</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  }</div>
-<div class="line"><a name="l00835"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#a8cbd96cebaceae86c9c7613de9cc43dd"> 835</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#a8cbd96cebaceae86c9c7613de9cc43dd">set_lower_bound</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> T& begin) [...]
-<div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#a9d4c6a36abe06ee7e5edde567ae45f41"> 836</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html#a9d4c6a36abe06ee7e5edde567ae45f41">set_upper_bound</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> T& end) { [...]
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  </div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* visitor_;</div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* key_;</div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  T* data_;</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="keywordtype">bool</span> trigger_{<span class="keyword">true</span>};</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> };</div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  </div>
-<div class="line"><a name="l00845"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html"> 845</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html">AttrNonDefaultVisitor</a> {</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00847"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html#a8b27d05c6de24ab60b999c227e346337"> 847</a></span>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html#a8b27d05c6de24ab60b999c227e346337">AttrNonDefaultVisitor</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* visitor) : visitor_(visitor) {}</div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00849"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html#aa359d725f84781937ffd4eeb4445fc66"> 849</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry<T></a> <a class="code" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html#aa359d725f84781937ffd4eeb4445fc66">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">ch [...]
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry<T></a>(visitor_, key, value);</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  }</div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  </div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* visitor_;</div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> };</div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> } <span class="comment">// namespace detail</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  </div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="keyword">template</span> <<span class="keyword">typename</span> DerivedType></div>
-<div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNode.html"> 865</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1AttrsNode.html">AttrsNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> {</div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00867"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72"> 867</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">VisitAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) {</div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <a class="code" href="classtvm_1_1detail_1_1AttrNormalVisitor.html">::tvm::detail::AttrNormalVisitor</a> vis(v);</div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <span class="keyword">self</span>()->_tvm_VisitAttrs(vis);</div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  }</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  </div>
-<div class="line"><a name="l00872"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205"> 872</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">VisitNonDefaultAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) {</div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html">::tvm::detail::AttrNonDefaultVisitor</a> vis(v);</div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <span class="keyword">self</span>()->_tvm_VisitAttrs(vis);</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  }</div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  </div>
-<div class="line"><a name="l00877"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNode.html#a72e908b093962e9a47798fbe4dc44634"> 877</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrsNode.html#a72e908b093962e9a47798fbe4dc44634">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs& args, <span class="keywordtype">bool</span> allow_unknown) <span class="keyword">final</span> {</div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  ICHECK_EQ(args.size() % 2, 0);</div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> kLinearSearchBound = 16;</div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="keywordtype">int</span> hit_count = 0;</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="comment">// applies two strategies to lookup</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keywordflow">if</span> (args.size() < kLinearSearchBound) {</div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="comment">// linear search.</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keyword">auto</span> ffind = [&args](<span class="keyword">const</span> <span class="keywordtype">char</span>* key, ffi::AnyView* val) {</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < args.size(); i += 2) {</div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <span class="keywordflow">if</span> (!std::strcmp(key, args[i].cast<const char*>())) {</div>
-<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  *val = args[i + 1];</div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  }</div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  }</div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  };</div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keyword">auto</span> vis = <a class="code" href="namespacetvm_1_1detail.html#abe71237e8e483fd9277356234eca35d4">::tvm::detail::CreateInitVisitor</a>(DerivedType::_type_key, ffind);</div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="keyword">self</span>()->_tvm_VisitAttrs(vis);</div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  hit_count = vis.hit_count_;</div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="comment">// construct a map then do lookup.</span></div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  std::unordered_map<std::string, ffi::AnyView> kwargs;</div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < args.size(); i += 2) {</div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  kwargs[args[i].cast<std::string>()] = args[i + 1];</div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  }</div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <span class="keyword">auto</span> ffind = [&kwargs](<span class="keyword">const</span> <span class="keywordtype">char</span>* key, ffi::AnyView* val) {</div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <span class="keyword">auto</span> it = kwargs.find(key);</div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordflow">if</span> (it != kwargs.end()) {</div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  *val = it->second;</div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  }</div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  };</div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="keyword">auto</span> vis = <a class="code" href="namespacetvm_1_1detail.html#abe71237e8e483fd9277356234eca35d4">::tvm::detail::CreateInitVisitor</a>(DerivedType::_type_key, ffind);</div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="keyword">self</span>()->_tvm_VisitAttrs(vis);</div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  hit_count = vis.hit_count_;</div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  }</div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="comment">// error handling, slow path</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="keywordflow">if</span> (hit_count * 2 != args.size() && !allow_unknown) {</div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < args.size(); i += 2) {</div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html">::tvm::detail::AttrExistVisitor</a> visitor;</div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  visitor.<a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a42cfd0949c298dea06fb2c4fb39e188d">key_</a> = args[i].cast<std::string>();</div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <span class="keyword">self</span>()->_tvm_VisitAttrs(visitor);</div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keywordflow">if</span> (!visitor.<a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html#ac6ae7aa3d30f25a953810bcc0d0a938f">exist_</a>) {</div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  std::ostringstream os;</div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  os << DerivedType::_type_key << <span class="stringliteral">" does not have field \'"</span> << visitor.<a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a42cfd0949c298dea06fb2c4fb39e188d">key_</a></div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  << <span class="stringliteral">"\', Possible fields:\n"</span>;</div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  os << <span class="stringliteral">"----------------\n"</span>;</div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  this-><a class="code" href="classtvm_1_1BaseAttrsNode.html#a80929190102473038bce5b4f6c42dff6">PrintDocString</a>(os);</div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <span class="keywordflow">throw</span> <a class="code" href="structtvm_1_1AttrError.html">AttrError</a>(os.str());</div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  }</div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  }</div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  }</div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  }</div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  </div>
-<div class="line"><a name="l00932"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNode.html#a07bcda7b450ba8dbea70e1889d021443"> 932</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1AttrsNode.html#a07bcda7b450ba8dbea70e1889d021443">SEqualReduce</a>(<span class="keyword">const</span> DerivedType* other, <a class="code" href="classtvm_1_1SEqualReducer.html">SEqualReducer</a> <a class="code" href="namespacetvm.html#a1c4f14382b85bcfa5 [...]
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  DerivedType* pself = <span class="keyword">self</span>();</div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <a class="code" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html">::tvm::detail::AttrsSEqualVisitor</a> visitor(pself, other, <a class="code" href="namespacetvm.html#a1c4f14382b85bcfa57d9a3460db2354a">equal</a>);</div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keyword">self</span>()->_tvm_VisitAttrs(visitor);</div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <span class="keywordflow">return</span> visitor.<a class="code" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#aeda3a91f0b2d1a7a9a075828954ff77f">result_</a>;</div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  }</div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  </div>
-<div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNode.html#a3c10c6d2eb267521a96479d002ad93d5"> 939</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrsNode.html#a3c10c6d2eb267521a96479d002ad93d5">SHashReduce</a>(<a class="code" href="classtvm_1_1SHashReducer.html">SHashReducer</a> hash_reducer)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <a class="code" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html">::tvm::detail::AttrsSHashVisitor</a> visitor(hash_reducer);</div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keyword">self</span>()->_tvm_VisitAttrs(visitor);</div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  }</div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  </div>
-<div class="line"><a name="l00944"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981"> 944</a></span>  Array<AttrFieldInfo> <a class="code" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">ListFieldInfo</a>() const final {</div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocVisitor.html">::tvm::detail::AttrDocVisitor</a> visitor;</div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keyword">self</span>()->_tvm_VisitAttrs(visitor);</div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="keywordflow">return</span> visitor.<a class="code" href="classtvm_1_1detail_1_1AttrDocVisitor.html#aa32707d90cd2cf8e5334afa4fe3d4722">fields_</a>;</div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  }</div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  </div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  DerivedType* <span class="keyword">self</span>() <span class="keyword">const</span> {</div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span>DerivedType*<span class="keyword">></span>(<span class="keyword">static_cast<</span><span class="keyword">const </span>DerivedType*<span class="keyword">></span>(<span class="keyword">this</span>));</div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  }</div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> };</div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  </div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> <span class="keyword">template</span> <<span class="keyword">typename</span>... Args></div>
-<div class="line"><a name="l00957"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1"> 957</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">BaseAttrsNode::InitBySeq</a>(Args&&... args) {</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <a class="code" href="namespacetvm_1_1relax_1_1distributed_1_1transform.html#a119cea4ac37859b9c7438471bed93bef">ffi::Function</a> pf(</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  [<span class="keyword">this</span>](<span class="keyword">const</span> ffi::PackedArgs& args, ffi::Any* rv) { this-><a class="code" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">InitByPackedArgs</a>(args); });</div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  pf(std::forward<Args>(args)...);</div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> }</div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  </div>
-<div class="line"><a name="l00963"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a80929190102473038bce5b4f6c42dff6"> 963</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#a80929190102473038bce5b4f6c42dff6">BaseAttrsNode::PrintDocString</a>(std::ostream& os)<span class="keyword"> const </span>{ <span class="comment">// NOLINT(*)</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  Array<AttrFieldInfo> entry = this-><a class="code" href="classtvm_1_1DictAttrsNode.html#ab0cbd903adcee206626a192f008ca1e7">ListFieldInfo</a>();</div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keywordflow">for</span> (<a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> info : entry) {</div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  os << info->name << <span class="stringliteral">" : "</span> << info->type_info << <span class="charliteral">'\n'</span>;</div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">if</span> (info->description.length() != 0) {</div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  os << <span class="stringliteral">" "</span> << info->description << <span class="charliteral">'\n'</span>;</div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  }</div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  }</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> }</div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  </div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <span class="preprocessor">#endif </span><span class="comment">// TVM_IR_ATTRS_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></div><div class="ttdoc">Information about attribute fields in string representations.</div><div class="ttdef"><b>Definition:</b> attrs.h:107</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_a29563a91b0ce0f0118c755e072c10dfc"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#a29563a91b0ce0f0118c755e072c10dfc">tvm::AttrFieldInfoNode::_type_has_method_shash_reduce</a></div><div class="ttdeci">static constexpr bool _type_has_method_shash_reduce</div><div class="ttdef"><b>Definition:</b> attrs.h:124</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_a7b565d9b3eca049a906e42fba57516a0"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#a7b565d9b3eca049a906e42fba57516a0">tvm::AttrFieldInfoNode::description</a></div><div class="ttdeci">String description</div><div class="ttdoc">detailed description of the type</div><div class="ttdef"><b>Definition:</b> attrs.h:114</div></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include <tvm/ffi/reflection/reflection.h></span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include <<a class="code" href="ir_2expr_8h.html">tvm/ir/expr.h</a>></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include <<a class="code" href="structural__equal_8h.html">tvm/node/structural_equal.h</a>></span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include <<a class="code" href="structural__hash_8h.html">tvm/node/structural_hash.h</a>></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include <type_traits></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include <unordered_map></span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include <utility></span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">namespace </span><a class="code" href="namespacetvm.html">tvm</a> {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="attrs_8h.html#ac869a7c3d7169282810ce7819918314a"> 68</a></span> <span class="preprocessor">#define TVM_DECLARE_ATTRS(ClassName, TypeKey) \</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"> static constexpr const char* _type_key = TypeKey; \</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"> TVM_DECLARE_FINAL_OBJECT_INFO(ClassName, ::tvm::BaseAttrsNode); \</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"> template <typename FVisit> \</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"> void _tvm_VisitAttrs(FVisit& _tvm_fvisit) </span><span class="comment">// NOLINT(*)</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="attrs_8h.html#a578da113eb199bad72e26c03ad24832f"> 78</a></span> <span class="preprocessor">#define TVM_ATTR_FIELD(FieldName) _tvm_fvisit(#FieldName, &FieldName)</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespacetvm.html#ab6c242e8ac09beb463fba306948b7f15"> 86</a></span> <span class="keyword">inline</span> TObjectRef <a class="code" href="namespacetvm.html#ab6c242e8ac09beb463fba306948b7f15">NullValue</a>() {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  static_assert(TObjectRef::_type_is_nullable, <span class="stringliteral">"Can only get NullValue for nullable types"</span>);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> TObjectRef(ObjectPtr<Object>(<span class="keyword">nullptr</span>));</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="namespacetvm.html#a28c693333c2b15702b1a9a57dec0fbf5"> 92</a></span> <span class="keyword">inline</span> <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> <a class="code" href="namespacetvm.html#a28c693333c2b15702b1a9a57dec0fbf5">NullValue<DataType></a>() {</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm.html#a41918af1a1dc386388639a9d3ad06c5d">DataType</a>(<a class="code" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da2a59b355bef5ebc40bd78833666197cb">DataType::kHandle</a>, 0, 0);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structtvm_1_1AttrError.html"> 97</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1AttrError.html">AttrError</a> : <span class="keyword">public</span> Error {</div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structtvm_1_1AttrError.html#a3285db0171872bc2fdde8243f6e801d9"> 102</a></span>  <span class="keyword">explicit</span> <a class="code" href="structtvm_1_1AttrError.html#a3285db0171872bc2fdde8243f6e801d9">AttrError</a>(std::string msg) : Error(<span class="stringliteral">"AttributeError"</span>, msg, TVM_FFI_TRACEBACK_HERE) {}</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> };</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html"> 108</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a> : <span class="keyword">public</span> Object {</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#ad918a5375ed2f8db7557ba50f95e026b"> 111</a></span>  String <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#ad918a5375ed2f8db7557ba50f95e026b">name</a>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#aa0e740cddb317c3a74a12302ab531b9b"> 113</a></span>  String <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#aa0e740cddb317c3a74a12302ab531b9b">type_info</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#a7b565d9b3eca049a906e42fba57516a0"> 115</a></span>  String <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a7b565d9b3eca049a906e42fba57516a0">description</a>;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#aa8428bae334dcf9c3f2f6594a818742c"> 117</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#aa8428bae334dcf9c3f2f6594a818742c">VisitAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) {</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  v->Visit(<span class="stringliteral">"name"</span>, &<a class="code" href="classtvm_1_1AttrFieldInfoNode.html#ad918a5375ed2f8db7557ba50f95e026b">name</a>);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  v->Visit(<span class="stringliteral">"type_info"</span>, &<a class="code" href="classtvm_1_1AttrFieldInfoNode.html#aa0e740cddb317c3a74a12302ab531b9b">type_info</a>);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  v->Visit(<span class="stringliteral">"description"</span>, &<a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a7b565d9b3eca049a906e42fba57516a0">description</a>);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9"> 123</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9">_type_key</a> = <span class="stringliteral">"AttrFieldInfo"</span>;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#afdb98106a5c8d5ad2106fd03043283f7"> 124</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#afdb98106a5c8d5ad2106fd03043283f7">_type_has_method_sequal_reduce</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#a29563a91b0ce0f0118c755e072c10dfc"> 125</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a29563a91b0ce0f0118c755e072c10dfc">_type_has_method_shash_reduce</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81"> 126</a></span>  <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>, Object);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> };</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html"> 130</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html#af897e77cf019cd43014025ac0d2a5a37"> 132</a></span>  <a class="code" href="classtvm_1_1AttrFieldInfo.html#af897e77cf019cd43014025ac0d2a5a37">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a>, ObjectRef, <a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> };</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
+<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html"> 141</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> : <span class="keyword">public</span> Object {</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2"> 144</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">~BaseAttrsNode</a>() {}</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// visit function</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#af145cd54a0d92705871500a675e43abe"> 146</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#af145cd54a0d92705871500a675e43abe">VisitAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) {}</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">template</span> <<span class="keyword">typename</span>... Args></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args&&... args);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#a80929190102473038bce5b4f6c42dff6">PrintDocString</a>(std::ostream& os) <span class="keyword">const</span>; <span class="comment">// NOLINT(*)</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#acc8ff84447e3830050d96e2da4188195"> 165</a></span> <span class="comment"></span> TVM_DLL <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#acc8ff84447e3830050d96e2da4188195">VisitNonDefaultAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) = 0;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a6db664b2fcfb42f967652b596f0cab99"> 170</a></span>  TVM_DLL <span class="keyword">virtual</span> Array<AttrFieldInfo> <a class="code" href="classtvm_1_1BaseAttrsNode.html#a6db664b2fcfb42f967652b596f0cab99">ListFieldInfo</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54"> 178</a></span>  TVM_DLL <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs& kwargs,</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">bool</span> allow_unknown = <span class="keyword">false</span>) = 0;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
+<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#ad812afdb028fe3944a80cd922dceff82"> 181</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#ad812afdb028fe3944a80cd922dceff82">_type_has_method_sequal_reduce</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#ad85f4aca5e8840d23851c0c07acd0862"> 182</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#ad85f4aca5e8840d23851c0c07acd0862">_type_has_method_shash_reduce</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6"> 183</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">_type_key</a> = <span class="stringliteral">"Attrs"</span>;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895"> 184</a></span>  <a class="code" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895">TVM_DECLARE_BASE_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>, Object);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> };</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html"> 191</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1Attrs.html">Attrs</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html#a1bf8ffc23955fe9b066d838ca41819e1"> 193</a></span>  <a class="code" href="classtvm_1_1Attrs.html#a1bf8ffc23955fe9b066d838ca41819e1">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1Attrs.html">Attrs</a>, ObjectRef, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> };</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html"> 202</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> {</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5"> 205</a></span>  Map<String, ffi::Any> <a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#afcd4e1c4b175eec86ca5a6c6f57d6457"> 207</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#afcd4e1c4b175eec86ca5a6c6f57d6457">SEqualReduce</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>* other, <a class="code" href="classtvm_1_1SEqualReducer.html">SEqualRe [...]
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm.html#a1c4f14382b85bcfa57d9a3460db2354a">equal</a>(<a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>, other-><a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#adbbe8967f5403cb2e4f993c9aa5f698c"> 211</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#adbbe8967f5403cb2e4f993c9aa5f698c">SHashReduce</a>(<a class="code" href="classtvm_1_1SHashReducer.html">SHashReducer</a> hash_reduce)<span class="keyword"> const </span>{ hash_reduce(<a class="code" href="classtvm_1_1DictAttrsNod [...]
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// implementations</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a8866b613e11f531ec6db5834bb1d15ef"> 214</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a8866b613e11f531ec6db5834bb1d15ef">VisitAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) <span class="keyword">final</span>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#ac096af14759a1d48ecf78fd6545776e0"> 215</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#ac096af14759a1d48ecf78fd6545776e0">VisitNonDefaultAttrs</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* v) <span class="keyword">final</span>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311"> 216</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs& args, <span class="keywordtype">bool</span> allow_unknown) <span class="keyword">final</span>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#ab0cbd903adcee206626a192f008ca1e7"> 217</a></span>  Array<AttrFieldInfo> <a class="code" href="classtvm_1_1DictAttrsNode.html#ab0cbd903adcee206626a192f008ca1e7">ListFieldInfo</a>() const final;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// type info</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#aaef3e4d948905fc26a25d5ea8fd15c27"> 220</a></span>  static constexpr const <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1DictAttrsNode.html#aaef3e4d948905fc26a25d5ea8fd15c27">_type_key</a> = "<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a>";</div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a064a2af1c7fbe5140278e28cc5ec8c78"> 221</a></span>  <a class="code" href="classtvm_1_1DictAttrsNode.html#a064a2af1c7fbe5140278e28cc5ec8c78">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> };</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html"> 228</a></span> class <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> : public <a class="code" href="classtvm_1_1Attrs.html">Attrs</a> {</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a07aa10211fc3c98bce93e2ef9d8f9e45"> 234</a></span>  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1DictAttrs.html#a07aa10211fc3c98bce93e2ef9d8f9e45">DictAttrs</a>(Map<String, Any> <a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a> = {});</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">// Utils for accessing attributes</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">// This needs to be on DictAttrs, not DictAttrsNode because we return the default</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="comment">// value if DictAttrsNode is not defined.</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment"></span> <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a5b99ddfcb45e6cbe92f190c0124f6ced"> 259</a></span>  Optional<TObjectRef> <a class="code" href="classtvm_1_1DictAttrs.html#a5b99ddfcb45e6cbe92f190c0124f6ced">GetAttr</a>(</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">const</span> std::string& attr_key,</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  Optional<TObjectRef> default_value = Optional<TObjectRef>(std::nullopt))<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">if</span> (!defined()) <span class="keywordflow">return</span> default_value;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>* node = this->as<DictAttrsNode>();</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">auto</span> it = node-><a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>.find(attr_key);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">if</span> (it != node-><a class="code" href="classtvm_1_1DictAttrsNode.html#a8e86fa5294deba1359129d3962149cd5">dict</a>.end()) {</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span> (*it).second.cast<TObjectRef>();</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">return</span> default_value;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="comment">// variant that uses TObjectRef to enable implicit conversion to default value.</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
+<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#af021c0a1d934693d21cb93d4bfd60aca"> 273</a></span>  Optional<TObjectRef> <a class="code" href="classtvm_1_1DictAttrs.html#af021c0a1d934693d21cb93d4bfd60aca">GetAttr</a>(<span class="keyword">const</span> std::string& attr_key, TObjectRef default_value)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">return</span> GetAttr<TObjectRef>(attr_key, Optional<TObjectRef>(default_value));</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div>
+<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d"> 295</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">HasNonzeroAttr</a>(<span class="keyword">const</span> std::string& attr_key)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">return</span> GetAttr<Integer>(attr_key, 0).value_or(0).IntValue() != 0;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
+<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#afcb5444a0a4ad51f9b2968368e17aa79"> 299</a></span>  <a class="code" href="classtvm_1_1DictAttrs.html#afcb5444a0a4ad51f9b2968368e17aa79">TVM_DEFINE_OBJECT_REF_METHODS_WITHOUT_DEFAULT_CONSTRUCTOR</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a>, <a class="code" href="classtvm_1_1Attrs.html">Attrs</a>, <a class="code" href="classtvm_1_1DictAttrsNode.html">Di [...]
+<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#adcb7e5ecede9d976bda30fb3f762c953"> 300</a></span>  <a class="code" href="classtvm_1_1DictAttrs.html#adcb7e5ecede9d976bda30fb3f762c953">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(<a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> };</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  </div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TAttrs></div>
+<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe"> 309</a></span> <span class="keyword">inline</span> TAttrs <a class="code" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe">AttrsWithDefaultValues</a>() {</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  static_assert(std::is_base_of<Attrs, TAttrs>::value, <span class="stringliteral">"Can only take attr nodes"</span>);</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">auto</span> n = make_object<typename TAttrs::ContainerType>();</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  n->InitByPackedArgs(ffi::PackedArgs(<span class="keyword">nullptr</span>, 0), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">return</span> TAttrs(n);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> }</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div>
+<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="namespacetvm.html#a8eede0c885cbc8315e60ff6bbe4e534f"> 326</a></span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a8eede0c885cbc8315e60ff6bbe4e534f">WithAttrs</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, Map<String, Any> new_attrs);</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  </div>
+<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1"> 339</a></span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, String key, Any value);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  </div>
+<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2c089f4112b14b10d2288007d257382a"> 341</a></span> <span class="keyword">inline</span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, <span class="keyword">const</span> std::string& key, Any value) {</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(std::move(attrs), String(key), std::move(value));</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> }</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
+<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692"> 354</a></span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, <span class="keyword">const</span> std::string& key);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  </div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
+<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="namespacetvm.html#a61b12b12e74b3984360d40547aa7ab29"> 384</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(TFunc input, <span class="keyword">const</span> std::string& attr_key, Any attr_value) {</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  TNode* node = input.CopyOnWrite();</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  node->attrs = <a class="code" href="namespacetvm.html#a30a9d9d2c152033957e04d62cc706ca1">WithAttr</a>(std::move(node->attrs), attr_key, attr_value);</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">return</span> input;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> }</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  </div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
+<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="namespacetvm.html#a34191b42fb3cf9b30a8287abf0cecf0c"> 404</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a8eede0c885cbc8315e60ff6bbe4e534f">WithAttrs</a>(TFunc input, Map<String, Any> attrs) {</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  TNode* node = input.CopyOnWrite();</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  </div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  node->attrs = <a class="code" href="namespacetvm.html#a8eede0c885cbc8315e60ff6bbe4e534f">WithAttrs</a>(std::move(node->attrs), attrs);</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  </div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> input;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> }</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
+<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="namespacetvm.html#a7e2bc626db8be997b1562c79df3d9e11"> 441</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(TFunc input, <span class="keyword">const</span> std::string& attr_key) {</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  </div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  TNode* node = input.CopyOnWrite();</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  node->attrs = <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(std::move(node->attrs), attr_key);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  </div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">return</span> input;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> }</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  </div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment">// Namespace containing detail implementations</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html"> 452</a></span> <span class="keyword">namespace </span>detail {</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  </div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="keyword">using</span> tvm::ffi::AnyView;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  </div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment">// helper entry that does nothing in set_default/bound/describe calls.</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html"> 457</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> {</div>
+<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#adab25bf47ec60e73d1e02c3cef2f6898"> 458</a></span>  <span class="keyword">using</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a> = <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  </div>
+<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#a9bd1f913549c1b4376c0137f4101b791"> 460</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html#a9bd1f913549c1b4376c0137f4101b791">describe</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> <span class="keywordtype">char</span>* str) { <span class="keyw [...]
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#a370e92bafbada9ba805a52e72881f98b"> 462</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html#a370e92bafbada9ba805a52e72881f98b">set_default</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> T& value) {</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#a36da34fc54009d63283d07e9d41657f7"> 466</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html#a36da34fc54009d63283d07e9d41657f7">set_lower_bound</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> T& begin) {</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrNopEntry.html#add2843b725ee43be26672a8d2d641cce"> 470</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html#add2843b725ee43be26672a8d2d641cce">set_upper_bound</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> T& end) {</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> };</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  </div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="comment">// Wrapper for normal visitor.</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrNormalVisitor.html"> 476</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrNormalVisitor.html">AttrNormalVisitor</a> {</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrNormalVisitor.html#a6ba81b2db584e6625a7ccf04d4bd04ed"> 478</a></span>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1detail_1_1AttrNormalVisitor.html#a6ba81b2db584e6625a7ccf04d4bd04ed">AttrNormalVisitor</a>(<a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* visitor) : visitor_(visitor) {}</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrNormalVisitor.html#a40693839ab67a4ba887040c8b4496463"> 480</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrNormalVisitor.html#a40693839ab67a4ba887040c8b4496463">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* value) {</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  visitor_->Visit(key, value);</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  }</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  </div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <a class="code" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a>* visitor_;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> };</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  </div>
+<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html"> 489</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html">AttrsSEqualVisitor</a> {</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#aeda3a91f0b2d1a7a9a075828954ff77f"> 491</a></span>  <span class="keywordtype">bool</span> result_{<span class="keyword">true</span>};</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="comment">// constructor</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#ac67ceda6a413da78e61fa91ca61fcf26"> 493</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#ac67ceda6a413da78e61fa91ca61fcf26">AttrsSEqualVisitor</a>(<span class="keyword">const</span> Object* lhs, <span class="keyword">const</span> Object* rhs, <span class="keyword">const</span> <a class="code" href="classtvm_1_1SEqualReducer. [...]
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  : lhs_(lhs), rhs_(rhs), equal_(<a class="code" href="namespacetvm.html#a1c4f14382b85bcfa57d9a3460db2354a">equal</a>) {}</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#aaea4233b109948ae631d100368a02ad1"> 496</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html#aaea4233b109948ae631d100368a02ad1">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* lhs_value) {</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">if</span> (!result_) <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keyword">const</span> T* rhs_value = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>T*<span class="keyword">></span>(</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">></span>(rhs_) +</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  (<span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">></span>(lhs_value) - <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">></span>(lhs_)));</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">if</span> (!equal_(*lhs_value, *rhs_value)) {</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  result_ = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  }</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  }</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  </div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keyword">const</span> Object* lhs_;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keyword">const</span> Object* rhs_;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1SEqualReducer.html">SEqualReducer</a>& equal_;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> };</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  </div>
+<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html"> 513</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html">AttrsSHashVisitor</a> {</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html#af5b71e60c1383705d275a5087f3073bb"> 515</a></span>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html#af5b71e60c1383705d275a5087f3073bb">AttrsSHashVisitor</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1SHashReducer.html">SHashReducer</a>& hash_reducer) : hash_reducer_(hash [...]
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  </div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html#a0b9995a8e489eefd6f8ef44eaf7840ca"> 518</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html#a0b9995a8e489eefd6f8ef44eaf7840ca">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* value) {</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  hash_reducer_(*value);</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  }</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  </div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1SHashReducer.html">SHashReducer</a>& hash_reducer_;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> };</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  </div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="comment">// helper entry that does initialization, set default.</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html"> 529</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a> {</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="comment">// The attributes</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#acac846c239440c570206f36c2d04c373"> 531</a></span>  <span class="keyword">using</span> <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a> = <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry<T></a>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="comment">// The type key</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a573a25648ca0d3d8fe28f6c7614248bf"> 533</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a573a25648ca0d3d8fe28f6c7614248bf">type_key_</a>;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="comment">// field name</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5ed0b852e3229c1c1e0b8c924c53479e"> 535</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5ed0b852e3229c1c1e0b8c924c53479e">key_</a>;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="comment">// internal value.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#aea83f0af9e7ea95e5f7d614a717b7760"> 537</a></span>  T* <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#aea83f0af9e7ea95e5f7d614a717b7760">value_</a>;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="comment">// whether the value is missing.</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="comment">// NOTE: initialize to false so that the destructor does not throw unless</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="comment">// AttrInitVisitor::operator() is committed to returning an instance of this class.</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="comment">// It is expected not to set this to true until that is true.</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#aaba94dddd1e9c367023dbe03e76634bf"> 542</a></span>  <span class="keywordtype">bool</span> value_missing_{<span class="keyword">false</span>};</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  </div>
+<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#ad68ac350b0d49e97caab8443cc8fb08b"> 544</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#ad68ac350b0d49e97caab8443cc8fb08b">AttrInitEntry</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  </div>
+<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#af07c4a3a8f4663ac03ae238ab7b9d791"> 546</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#af07c4a3a8f4663ac03ae238ab7b9d791">AttrInitEntry</a>(<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a>&& other) {</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  type_key_ = other.type_key_;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  key_ = other.key_;</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  value_ = other.value_;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  value_missing_ = other.value_missing_;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="comment">// avoid unexpected throw</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  other.value_missing_ = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  }</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  </div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="comment">// If the value is still missing in destruction time throw an error.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a7f0c496115e88acf39d413875b44cd28"> 556</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a7f0c496115e88acf39d413875b44cd28">~AttrInitEntry</a>() DMLC_THROW_EXCEPTION {</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">if</span> (value_missing_) {</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  std::ostringstream os;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  os << type_key_ << <span class="stringliteral">": Cannot find required field \'"</span> << key_ << <span class="stringliteral">"\' during initialization. "</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  << <span class="stringliteral">"If the key is defined check that its type matches the declared type."</span>;</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">throw</span> <a class="code" href="structtvm_1_1AttrError.html">AttrError</a>(os.str());</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  }</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="comment">// override fields.</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="comment">// This function sets the lower bound of the attribute</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5608a2a457a397bf11f2be2776ec0653"> 566</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5608a2a457a397bf11f2be2776ec0653">set_lower_bound</a>(<span class="keyword">const</span> T& begin) {</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">if</span> (this->value_missing_) <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keyword">const</span> T& val = *value_;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">if</span> (begin > val) {</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  std::ostringstream os;</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  os << type_key_ << <span class="stringliteral">"."</span> << key_ << <span class="stringliteral">"'s "</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  << <span class="stringliteral">"value "</span> << val << <span class="stringliteral">" is smaller than the lower bound "</span> << begin;</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">throw</span> <a class="code" href="structtvm_1_1AttrError.html">AttrError</a>(os.str());</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  }</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  }</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="comment">// This function sets the upper bound of the attribute</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a69e876dfc10eed9573c3043ea5ef2013"> 578</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a69e876dfc10eed9573c3043ea5ef2013">set_upper_bound</a>(<span class="keyword">const</span> T& end) {</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">if</span> (this->value_missing_) <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keyword">const</span> T& val = *value_;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">if</span> (val > end) {</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  std::ostringstream os;</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  os << type_key_ << <span class="stringliteral">"."</span> << key_ << <span class="stringliteral">"'s "</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  << <span class="stringliteral">"value "</span> << val << <span class="stringliteral">" is bigger than the upper bound "</span> << end;</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">throw</span> <a class="code" href="structtvm_1_1AttrError.html">AttrError</a>(os.str());</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  }</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  }</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="comment">// set default when</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#ae6f6e6264a5b6373b2daada1f55a1dca"> 590</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#ae6f6e6264a5b6373b2daada1f55a1dca">set_default</a>(<span class="keyword">const</span> T& value) {</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">if</span> (!value_missing_) <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  *value_ = value;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  value_missing_ = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  }</div>
+<div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1AttrInitEntry.html#a64eca870988f14379a2c47085cb5a0f2"> 596</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">TSelf</a>& <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a64eca870988f14379a2c47085cb5a0f2">describe</a>(DMLC_ATTRIBUTE_UNUSED <span class="keyword">const</span> <span class="keywordtype">char</span>* str) { <span class="k [...]
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> };</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  </div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="comment">// Template function to allow smart conversion</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="comment">// from Expr types into the constants.</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a5def354d13e7c9684f710c80f4cbf6ab"> 602</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a5def354d13e7c9684f710c80f4cbf6ab">SetValue</a>(T* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  *ptr = val.cast<T>();</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> }</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  </div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490"> 607</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(T* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">if</span> (<span class="keyword">auto</span> opt_int = val.try_cast<int64_t>()) {</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  *ptr = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(opt_int.value());</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="classtvm_1_1IntImm.html">IntImm</a> expr = val.cast<<a class="code" href="classtvm_1_1IntImm.html">IntImm</a>>();</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  *ptr = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(expr->value);</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  }</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> }</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  </div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="comment">// Workaround for GCC8.1 / GCC8.2</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a0ff6b14da49c84ba03cb5695d9546d0b"> 618</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a0ff6b14da49c84ba03cb5695d9546d0b">SetValue<DataType></a>(<a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a>* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  *ptr = <a class="code" href="namespacetvm.html#a41918af1a1dc386388639a9d3ad06c5d">DataType</a>(val.cast<DLDataType>());</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> }</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  </div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> SetValue<std::string>(std::string* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  *ptr = val.cast<std::string>();</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> }</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  </div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a24b1d2ab479ffddbc99345a6c10f805d"> 628</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a24b1d2ab479ffddbc99345a6c10f805d">SetValue<double></a>(<span class="keywordtype">double</span>* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="keywordflow">if</span> (<span class="keyword">auto</span> opt_double = val.try_cast<<span class="keywordtype">double</span>>()) {</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  *ptr = opt_double.value();</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  ObjectRef expr = val.cast<ObjectRef>();</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  ICHECK(expr.defined());</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classtvm_1_1IntImmNode.html">IntImmNode</a>* op = expr.as<<a class="code" href="classtvm_1_1IntImmNode.html">IntImmNode</a>>()) {</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  *ptr = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(op->value);</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a>* op = expr.as<<a class="code" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a>>()) {</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  *ptr = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(op->value);</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  LOG(FATAL) << <span class="stringliteral">"Expect float value, but get "</span> << expr->GetTypeKey();</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  }</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  }</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> }</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a7731210cf43998c811c68e9615f8434e"> 644</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a7731210cf43998c811c68e9615f8434e">SetValue<int></a>(<span class="keywordtype">int</span>* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(ptr, val);</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> }</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#ae945b0f4b2611cf0fbbd2057429680be"> 648</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#ae945b0f4b2611cf0fbbd2057429680be">SetValue<int64_t></a>(int64_t* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(ptr, val);</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> }</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a6510e2c15f35d49a9e38306941a9edf1"> 652</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a6510e2c15f35d49a9e38306941a9edf1">SetValue<uint64_t></a>(uint64_t* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(ptr, val);</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> }</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#a7347d1692382d89ee400fdde8842c691"> 656</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacetvm_1_1detail.html#a7347d1692382d89ee400fdde8842c691">SetValue<bool></a>(<span class="keywordtype">bool</span>* ptr, <span class="keyword">const</span> ffi::AnyView& val) {</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <a class="code" href="namespacetvm_1_1detail.html#ae3e7fb513086de1c83f31b0ea7567490">SetIntValue</a>(ptr, val);</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> }</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  </div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="comment">// Visitor for value initialization</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FFind></div>
+<div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrInitVisitor.html"> 662</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor</a> {</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="comment">// Counter of number of matched attributes during visit.</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="comment">// This is used to decide if there is additional unmatched attributes.</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrInitVisitor.html#a40694e8ade57b3e5167ec74404188f9e"> 666</a></span>  <span class="keywordtype">size_t</span> hit_count_{0};</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="comment">// constructor</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrInitVisitor.html#ac3c800c9249fee195db2a5fa473fe960"> 668</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html#ac3c800c9249fee195db2a5fa473fe960">AttrInitVisitor</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* type_key, FFind ffind) : type_key_(type_key), ffind_(ffind) {}</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  </div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrInitVisitor.html#af0856406dd74c88334291da4eff0543d"> 671</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry<T></a> <a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html#af0856406dd74c88334291da4eff0543d">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* value) {</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  ffi::AnyView val;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry<T></a> opt;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a573a25648ca0d3d8fe28f6c7614248bf">type_key_</a> = type_key_;</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#a5ed0b852e3229c1c1e0b8c924c53479e">key_</a> = key;</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#aea83f0af9e7ea95e5f7d614a717b7760">value_</a> = value;</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">if</span> (ffind_(key, &val)) {</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <a class="code" href="namespacetvm_1_1detail.html#a5def354d13e7c9684f710c80f4cbf6ab">SetValue</a>(value, val);</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#aaba94dddd1e9c367023dbe03e76634bf">value_missing_</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  ++hit_count_;</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  opt.<a class="code" href="structtvm_1_1detail_1_1AttrInitEntry.html#aaba94dddd1e9c367023dbe03e76634bf">value_missing_</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  }</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor">#if defined(__GNUC__)</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="preprocessor">#pragma GCC diagnostic ignored "-Wpragmas"</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor">#pragma GCC diagnostic ignored "-Wpessimizing-move"</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">return</span> std::move(opt);</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  }</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  </div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="comment">// the type key</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* type_key_;</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  FFind ffind_;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> };</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  </div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FFind></div>
+<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="namespacetvm_1_1detail.html#abe71237e8e483fd9277356234eca35d4"> 698</a></span> <span class="keyword">inline</span> <a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor<FFind></a> <a class="code" href="namespacetvm_1_1detail.html#abe71237e8e483fd9277356234eca35d4">CreateInitVisitor</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* type_key, [...]
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">return</span> <a class="code" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor<FFind></a>(type_key, ffind);</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> }</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  </div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName.html"> 707</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a> {</div>
+<div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName.html#a58c1b5351ce2e7c0c7787448c18287a0"> 708</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = T::ContainerType::_type_key;</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> };</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  </div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01int_01_4.html"> 712</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><int> {</div>
+<div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01int_01_4.html#a3d260766bba29599abdef176ac44a9aa"> 713</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"int"</span>;</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> };</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  </div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01int64__t_01_4.html"> 717</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><int64_t> {</div>
+<div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01int64__t_01_4.html#a0c4adfb05b647001a3b365b723269fa4"> 718</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"int"</span>;</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> };</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  </div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01Optional_3_01int64__t_01_4_01_4.html"> 722</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><Optional<int64_t>> {</div>
+<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01Optional_3_01int64__t_01_4_01_4.html#a561b5ec71b07f3599396d19c0f85fd2c"> 723</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"Optional[int]"</span>;</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> };</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  </div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01Optional_3_01double_01_4_01_4.html"> 727</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><Optional<double>> {</div>
+<div class="line"><a name="l00728"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01Optional_3_01double_01_4_01_4.html#a8b849fc5bfb11ee6dd7777770de6cfb8"> 728</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"Optional[float]"</span>;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> };</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  </div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01uint64__t_01_4.html"> 732</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><uint64_t> {</div>
+<div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01uint64__t_01_4.html#a49e7cec3abbfc4db8144c7a3741b19e6"> 733</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"int"</span>;</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> };</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  </div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01DataType_01_4.html"> 737</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><<a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a>> {</div>
+<div class="line"><a name="l00738"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01DataType_01_4.html#a53fef3c8f6efd6960f326efdc7247191"> 738</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"DataType"</span>;</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> };</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  </div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><std::string> {</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"str"</span>;</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> };</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  </div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01bool_01_4.html"> 747</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><bool> {</div>
+<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01bool_01_4.html#a4ec09fca4aca8d1750d479c360f69c58"> 748</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"bool"</span>;</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> };</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  </div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01void_01_5_01_4.html"> 752</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><void*> {</div>
+<div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01void_01_5_01_4.html#a05dde8e9fdc15287aa0b1bf8d2e4b584"> 753</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"handle"</span>;</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> };</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  </div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01double_01_4.html"> 757</a></span> <span class="keyword">struct </span><a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a><double> {</div>
+<div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="structtvm_1_1detail_1_1TypeName_3_01double_01_4.html#abd511d0b0bf46cf6fe251eea8c20c386"> 758</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* value = <span class="stringliteral">"float"</span>;</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> };</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  </div>
+<div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html"> 761</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> {</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#a8bab3adf8242c94bd163ab7484170a5d"> 763</a></span>  <span class="keyword">using</span> <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a> = <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a>;</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  </div>
+<div class="line"><a name="l00765"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#ad364f21d28cf391fcfd8dc2364d88f89"> 765</a></span>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#ad364f21d28cf391fcfd8dc2364d88f89">AttrDocEntry</a>(ObjectPtr<AttrFieldInfoNode> info) : info_(info) {}</div>
+<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#afc381afff22170ba864a32745c9f8266"> 766</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a>& <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#afc381afff22170ba864a32745c9f8266">describe</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str) {</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  info_->description = str;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  }</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#a2a0d680fbaaef688f3ffb9e5d897e417"> 771</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a>& <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#a2a0d680fbaaef688f3ffb9e5d897e417">set_default</a>(<span class="keyword">const</span> T& value) {</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  std::ostringstream os;</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  os << info_->type_info << <span class="stringliteral">", default="</span> << value;</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  info_->type_info = os.str();</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  }</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#a201e9d6c937d2f444d91fcc8185f8309"> 778</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a>& <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#a201e9d6c937d2f444d91fcc8185f8309">set_lower_bound</a>(DMLC_ATTRIBUTE_UNUSED T begin) {</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  }</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocEntry.html#aec039b071d826ab164c5abe123aefaa3"> 782</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">TSelf</a>& <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html#aec039b071d826ab164c5abe123aefaa3">set_upper_bound</a>(DMLC_ATTRIBUTE_UNUSED T end) {</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  }</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  </div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  ObjectPtr<AttrFieldInfoNode> info_;</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> };</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  </div>
+<div class="line"><a name="l00790"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocVisitor.html"> 790</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrDocVisitor.html">AttrDocVisitor</a> {</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocVisitor.html#a1091752fc7d78b471b034877ad9344b3"> 793</a></span>  <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrDocVisitor.html#a1091752fc7d78b471b034877ad9344b3">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* v) {</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  ObjectPtr<AttrFieldInfoNode> info = make_object<AttrFieldInfoNode>();</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  info->name = key;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  info->type_info = <a class="code" href="structtvm_1_1detail_1_1TypeName.html">TypeName<T>::value</a>;</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  fields_.push_back(<a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a>(info));</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keywordflow">return</span> <a class="code" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a>(info);</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  }</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  </div>
+<div class="line"><a name="l00801"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrDocVisitor.html#aa32707d90cd2cf8e5334afa4fe3d4722"> 801</a></span>  Array<AttrFieldInfo> <a class="code" href="classtvm_1_1detail_1_1AttrDocVisitor.html#aa32707d90cd2cf8e5334afa4fe3d4722">fields_</a>;</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> };</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  </div>
+<div class="line"><a name="l00804"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrExistVisitor.html"> 804</a></span> <span class="keyword">class </span><a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html">AttrExistVisitor</a> {</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a42cfd0949c298dea06fb2c4fb39e188d"> 806</a></span>  std::string <a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a42cfd0949c298dea06fb2c4fb39e188d">key_</a>;</div>
+<div class="line"><a name="l00807"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrExistVisitor.html#ac6ae7aa3d30f25a953810bcc0d0a938f"> 807</a></span>  <span class="keywordtype">bool</span> exist_{<span class="keyword">false</span>};</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  </div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a345bb38b31b732a830eb9df3e16f6895"> 810</a></span>  <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> <a class="code" href="classtvm_1_1detail_1_1AttrExistVisitor.html#a345bb38b31b732a830eb9df3e16f6895">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, T* v) {</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">if</span> (exist_) <span class="keywordflow">return</span> <a class="code" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a>();</div>
... 417222 lines suppressed ...