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 2020/04/01 20:45:31 UTC

[incubator-tvm-site] branch asf-site updated: Docs build at Wed Apr 1 13:45:20 PDT 2020

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/incubator-tvm-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new c96f37d  Docs build at Wed Apr  1 13:45:20 PDT 2020
c96f37d is described below

commit c96f37d66746f71526d21feb2f27aa360e332032
Author: tqchen <tq...@octoml.ai>
AuthorDate: Wed Apr 1 13:45:20 2020 -0700

    Docs build at Wed Apr  1 13:45:20 PDT 2020
---
 docs/.buildinfo                                    |    4 +
 .../opt_matmul_auto_tensorcore.py                  |    2 +-
 .../matrix_multiply.py                             |    2 +-
 .../tutorials_jupyter.zip                          |  Bin 473912 -> 473920 bytes
 .../matrix_multiply_opt.ipynb                      |    2 +-
 .../tune_relay_vta.ipynb                           |    2 +-
 .../tune_relay_vta.py                              |    2 +-
 .../deploy_detection.ipynb                         |    2 +-
 .../matrix_multiply_opt.py                         |    2 +-
 .../tutorials_python.zip                           |  Bin 116302 -> 116332 bytes
 .../opt_matmul_auto_tensorcore.ipynb               |    2 +-
 .../deploy_classification.ipynb                    |    2 +-
 .../convolution_opt.ipynb                          |    2 +-
 .../tutorials_python.zip                           |  Bin 409257 -> 409265 bytes
 .../convolution_opt.py                             |    2 +-
 .../matrix_multiply.ipynb                          |    2 +-
 .../tutorials_jupyter.zip                          |  Bin 131891 -> 131921 bytes
 .../deploy_detection.py                            |    2 +-
 .../deploy_classification.py                       |    2 +-
 docs/_sources/install/nnpack.md.txt                |    2 +
 .../tutorials/autotvm/sg_execution_times.rst.txt   |   12 +-
 .../tutorials/autotvm/tune_conv2d_cuda.rst.txt     |   44 +-
 .../tutorials/autotvm/tune_relay_arm.rst.txt       |    2 +-
 .../tutorials/autotvm/tune_relay_cuda.rst.txt      |    2 +-
 .../tutorials/autotvm/tune_relay_x86.rst.txt       |    2 +-
 .../tutorials/autotvm/tune_simple_template.rst.txt |   22 +-
 .../tutorials/cross_compilation_and_rpc.rst.txt    |    4 +-
 .../tutorials/dev/low_level_custom_pass.rst.txt    |    2 +-
 .../tutorials/dev/relay_pass_infra.rst.txt         |    2 +-
 .../tutorials/dev/sg_execution_times.rst.txt       |    6 +-
 docs/_sources/tutorials/frontend/build_gcn.rst.txt |    2 +-
 .../frontend/deploy_model_on_android.rst.txt       |    4 +-
 .../frontend/deploy_model_on_rasp.rst.txt          |    2 +-
 .../tutorials/frontend/deploy_quantized.rst.txt    |    2 +-
 .../tutorials/frontend/deploy_ssd_gluoncv.rst.txt  |   80 +-
 .../tutorials/frontend/from_caffe2.rst.txt         |    2 +-
 .../tutorials/frontend/from_coreml.rst.txt         |    2 +-
 .../tutorials/frontend/from_darknet.rst.txt        |    2 +-
 .../_sources/tutorials/frontend/from_keras.rst.txt |    2 +-
 .../_sources/tutorials/frontend/from_mxnet.rst.txt |    2 +-
 docs/_sources/tutorials/frontend/from_onnx.rst.txt |    4 +-
 .../tutorials/frontend/from_pytorch.rst.txt        |    2 +-
 .../tutorials/frontend/from_tensorflow.rst.txt     |    2 +-
 .../tutorials/frontend/from_tflite.rst.txt         |    2 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |   32 +-
 .../tutorials/frontend/using_external_lib.rst.txt  |    2 +-
 docs/_sources/tutorials/language/extern_op.rst.txt |    2 +-
 .../tutorials/language/intrin_math.rst.txt         |    2 +-
 docs/_sources/tutorials/language/reduction.rst.txt |    2 +-
 docs/_sources/tutorials/language/scan.rst.txt      |    2 +-
 .../tutorials/language/schedule_primitives.rst.txt |    2 +-
 .../tutorials/language/sg_execution_times.rst.txt  |   18 +-
 docs/_sources/tutorials/language/tedd.rst.txt      |    2 +-
 docs/_sources/tutorials/language/tensorize.rst.txt |    4 +-
 .../tutorials/language/tuple_inputs.rst.txt        |    2 +-
 .../tutorials/optimize/opt_conv_cuda.rst.txt       |    4 +-
 .../tutorials/optimize/opt_conv_tensorcore.rst.txt |    4 +-
 docs/_sources/tutorials/optimize/opt_gemm.rst.txt  |   18 +-
 .../optimize/opt_matmul_auto_tensorcore.rst.txt    |    4 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |   10 +-
 docs/_sources/tutorials/relay_quick_start.rst.txt  |    6 +-
 docs/_sources/tutorials/sg_execution_times.rst.txt |    8 +-
 .../tutorials/tensor_expr_get_started.rst.txt      |    4 +-
 docs/_sources/tutorials/topi/intro_topi.rst.txt    |    4 +-
 .../tutorials/topi/sg_execution_times.rst.txt      |    4 +-
 docs/_sources/vta/dev/config.rst.txt               |    2 +-
 docs/_sources/vta/dev/hardware.rst.txt             |   10 +-
 docs/_sources/vta/install.md.txt                   |   38 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |    4 +-
 .../vta/tutorials/autotvm/tune_relay_vta.rst.txt   |    6 +-
 .../frontend/deploy_classification.rst.txt         |    8 +-
 .../tutorials/frontend/deploy_detection.rst.txt    |    6 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |    6 +-
 .../_sources/vta/tutorials/matrix_multiply.rst.txt |    4 +-
 .../vta/tutorials/optimize/convolution_opt.rst.txt |    4 +-
 .../tutorials/optimize/matrix_multiply_opt.rst.txt |    4 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |    6 +-
 .../vta/tutorials/sg_execution_times.rst.txt       |    6 +-
 .../_sources/vta/tutorials/vta_get_started.rst.txt |    2 +-
 docs/api/python/relay/transform.html               |   49 +-
 docs/api/python/te.html                            |  111 +-
 docs/api/python/tir.html                           |   57 +-
 docs/doxygen/{bound_8h.html => autodiff_8h.html}   |   53 +-
 docs/doxygen/autodiff_8h__incl.svg                 | 1104 +++++++++++++++
 docs/doxygen/autodiff_8h_source.html               |  109 ++
 docs/doxygen/bound_8h.html                         |    2 +-
 docs/doxygen/bound_8h__dep__incl.svg               |  737 +++++-----
 docs/doxygen/c__runtime__api_8h.html               |    2 +-
 docs/doxygen/c__runtime__api_8h__dep__incl.svg     | 1167 ++++++++--------
 docs/doxygen/classtvm_1_1IRModule-members.html     |   13 +-
 docs/doxygen/classtvm_1_1IRModule.html             |   24 +-
 docs/doxygen/data__type_8h.html                    |    2 +-
 docs/doxygen/data__type_8h__dep__incl.svg          | 1227 ++++++++---------
 docs/doxygen/dir_000018_000007.html                |    2 +-
 ...r_000018_000007.html => dir_000018_000008.html} |    4 +-
 .../dir_02be2c9d68e402f80df60bd528724ee5.html      |    2 +-
 .../dir_02be2c9d68e402f80df60bd528724ee5_dep.svg   |  163 +--
 .../dir_63946bee875c6d52bce55e72a67a86ad.html      |    2 +-
 .../dir_63946bee875c6d52bce55e72a67a86ad_dep.svg   |  219 +--
 .../dir_72c2f11201cd7636dc7624de0754daa5.html      |    2 +-
 .../dir_72c2f11201cd7636dc7624de0754daa5_dep.svg   |   71 +-
 .../dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg   |  333 ++---
 .../dir_f97d855a3173728370e632aa77170e34.html      |    5 +-
 .../dir_f97d855a3173728370e632aa77170e34_dep.svg   |  145 +-
 docs/doxygen/files.html                            |   11 +-
 docs/doxygen/functions_c.html                      |    1 +
 docs/doxygen/functions_type.html                   |    1 +
 docs/doxygen/functor_8h.html                       |    2 +-
 docs/doxygen/functor_8h__dep__incl.svg             | 1054 +++++++-------
 docs/doxygen/include_2tvm_2tir_2transform_8h.html  |   11 +-
 .../include_2tvm_2tir_2transform_8h_source.html    |    7 +-
 docs/doxygen/int__set_8h.html                      |    2 +-
 docs/doxygen/int__set_8h__dep__incl.svg            | 1014 +++++++-------
 docs/doxygen/ir_2expr_8h__dep__incl.svg            |    4 +-
 docs/doxygen/ir_2module_8h_source.html             |    2 +-
 docs/doxygen/ir_2type_8h__dep__incl.svg            |    8 +-
 docs/doxygen/namespacemembers.html                 |    1 +
 docs/doxygen/namespacemembers_b.html               |    1 +
 docs/doxygen/namespacemembers_c.html               |    1 +
 docs/doxygen/namespacemembers_d.html               |    4 +
 docs/doxygen/namespacemembers_e.html               |    1 +
 docs/doxygen/namespacemembers_f.html               |    1 +
 docs/doxygen/namespacemembers_func.html            |    1 +
 docs/doxygen/namespacemembers_func_b.html          |    1 +
 docs/doxygen/namespacemembers_func_c.html          |    1 +
 docs/doxygen/namespacemembers_func_d.html          |    8 +-
 docs/doxygen/namespacemembers_func_e.html          |    1 +
 docs/doxygen/namespacemembers_func_f.html          |    1 +
 docs/doxygen/namespacemembers_func_g.html          |    6 +-
 docs/doxygen/namespacemembers_func_h.html          |    1 +
 docs/doxygen/namespacemembers_func_i.html          |    1 +
 ...rs_func_y.html => namespacemembers_func_j.html} |    9 +-
 docs/doxygen/namespacemembers_func_k.html          |    1 +
 docs/doxygen/namespacemembers_func_l.html          |    6 +-
 docs/doxygen/namespacemembers_func_m.html          |    1 +
 docs/doxygen/namespacemembers_func_n.html          |    1 +
 docs/doxygen/namespacemembers_func_o.html          |    1 +
 docs/doxygen/namespacemembers_func_p.html          |    1 +
 docs/doxygen/namespacemembers_func_r.html          |    1 +
 docs/doxygen/namespacemembers_func_s.html          |    1 +
 docs/doxygen/namespacemembers_func_t.html          |    1 +
 docs/doxygen/namespacemembers_func_u.html          |    1 +
 docs/doxygen/namespacemembers_func_v.html          |    4 +
 docs/doxygen/namespacemembers_func_w.html          |    1 +
 docs/doxygen/namespacemembers_func_y.html          |    1 +
 docs/doxygen/namespacemembers_g.html               |    6 +-
 docs/doxygen/namespacemembers_h.html               |    1 +
 docs/doxygen/namespacemembers_i.html               |    1 +
 ...spacemembers_y.html => namespacemembers_j.html} |    9 +-
 docs/doxygen/namespacemembers_k.html               |    1 +
 docs/doxygen/namespacemembers_l.html               |    4 +
 docs/doxygen/namespacemembers_m.html               |    1 +
 docs/doxygen/namespacemembers_n.html               |    1 +
 docs/doxygen/namespacemembers_o.html               |    1 +
 docs/doxygen/namespacemembers_p.html               |    1 +
 docs/doxygen/namespacemembers_r.html               |    1 +
 docs/doxygen/namespacemembers_s.html               |    1 +
 docs/doxygen/namespacemembers_t.html               |    1 +
 docs/doxygen/namespacemembers_u.html               |    1 +
 docs/doxygen/namespacemembers_v.html               |    4 +
 docs/doxygen/namespacemembers_w.html               |    1 +
 docs/doxygen/namespacemembers_y.html               |    1 +
 docs/doxygen/namespacetvm_1_1te.html               |  263 +++-
 docs/doxygen/namespacetvm_1_1tir_1_1transform.html |   68 +-
 docs/doxygen/node_2container_8h.html               |    2 +-
 docs/doxygen/node_2container_8h__dep__incl.svg     |  955 +++++++------
 docs/doxygen/node_8h.html                          |    2 +-
 docs/doxygen/node_8h__dep__incl.svg                | 1082 +++++++--------
 docs/doxygen/object_8h.html                        |    2 +-
 docs/doxygen/object_8h__dep__incl.svg              | 1439 ++++++++++---------
 docs/doxygen/object_8h_source.html                 |    2 +-
 docs/doxygen/reflection_8h.html                    |    2 +-
 docs/doxygen/reflection_8h__dep__incl.svg          | 1305 +++++++++---------
 docs/doxygen/repr__printer_8h.html                 |    2 +-
 docs/doxygen/repr__printer_8h__dep__incl.svg       | 1160 ++++++++--------
 docs/doxygen/runtime_2memory_8h.html               |    2 +-
 docs/doxygen/runtime_2memory_8h__dep__incl.svg     | 1452 ++++++++++----------
 docs/doxygen/search/all_17.js                      |    3 +-
 docs/doxygen/search/all_2.js                       |    7 +-
 docs/doxygen/search/all_4.js                       |    2 +-
 docs/doxygen/search/all_5.js                       |    1 +
 docs/doxygen/search/all_8.js                       |    5 +-
 docs/doxygen/search/all_b.js                       |    1 +
 docs/doxygen/search/all_d.js                       |    6 +-
 docs/doxygen/search/files_0.js                     |    3 +-
 docs/doxygen/search/functions_15.js                |    1 +
 docs/doxygen/search/functions_4.js                 |    1 +
 docs/doxygen/search/functions_7.js                 |    1 +
 docs/doxygen/search/functions_a.js                 |    1 +
 docs/doxygen/search/functions_c.js                 |    6 +-
 docs/doxygen/search/typedefs_2.js                  |    2 +-
 docs/doxygen/span_8h__dep__incl.svg                |    8 +-
 docs/doxygen/stmt_8h.html                          |    2 +-
 docs/doxygen/stmt_8h__dep__incl.svg                | 1043 +++++++-------
 docs/doxygen/tensor_8h.html                        |    2 +-
 docs/doxygen/tensor_8h__dep__incl.svg              | 1264 +++++++++--------
 docs/doxygen/tir_2expr_8h.html                     |    2 +-
 docs/doxygen/tir_2expr_8h__dep__incl.svg           | 1067 +++++++-------
 docs/doxygen/tir_2op_8h.html                       |    2 +-
 docs/doxygen/tir_2op_8h__dep__incl.svg             | 1290 ++++++++---------
 docs/genindex.html                                 |   20 +-
 docs/install/nnpack.html                           |    1 +
 .../javadoc/org/apache/tvm/class-use/Function.html |   12 +-
 docs/javadoc/org/apache/tvm/class-use/Module.html  |    8 +-
 docs/objects.inv                                   |  Bin 13806 -> 13845 bytes
 docs/searchindex.js                                |    2 +-
 docs/tutorials/autotvm/sg_execution_times.html     |   12 +-
 docs/tutorials/autotvm/tune_conv2d_cuda.html       |   44 +-
 docs/tutorials/autotvm/tune_relay_arm.html         |    2 +-
 docs/tutorials/autotvm/tune_relay_cuda.html        |    2 +-
 docs/tutorials/autotvm/tune_relay_x86.html         |    2 +-
 docs/tutorials/autotvm/tune_simple_template.html   |   22 +-
 docs/tutorials/cross_compilation_and_rpc.html      |    4 +-
 docs/tutorials/dev/low_level_custom_pass.html      |    2 +-
 docs/tutorials/dev/relay_pass_infra.html           |    2 +-
 docs/tutorials/dev/sg_execution_times.html         |    6 +-
 docs/tutorials/frontend/build_gcn.html             |    2 +-
 .../frontend/deploy_model_on_android.html          |    4 +-
 docs/tutorials/frontend/deploy_model_on_rasp.html  |    2 +-
 docs/tutorials/frontend/deploy_quantized.html      |    2 +-
 docs/tutorials/frontend/deploy_ssd_gluoncv.html    |   82 +-
 docs/tutorials/frontend/from_caffe2.html           |    2 +-
 docs/tutorials/frontend/from_coreml.html           |    2 +-
 docs/tutorials/frontend/from_darknet.html          |    2 +-
 docs/tutorials/frontend/from_keras.html            |    2 +-
 docs/tutorials/frontend/from_mxnet.html            |    2 +-
 docs/tutorials/frontend/from_onnx.html             |    8 +-
 docs/tutorials/frontend/from_pytorch.html          |    2 +-
 docs/tutorials/frontend/from_tensorflow.html       |    2 +-
 docs/tutorials/frontend/from_tflite.html           |    2 +-
 docs/tutorials/frontend/sg_execution_times.html    |   32 +-
 docs/tutorials/frontend/using_external_lib.html    |    2 +-
 docs/tutorials/language/extern_op.html             |    2 +-
 docs/tutorials/language/intrin_math.html           |    2 +-
 docs/tutorials/language/reduction.html             |    2 +-
 docs/tutorials/language/scan.html                  |    2 +-
 docs/tutorials/language/schedule_primitives.html   |    2 +-
 docs/tutorials/language/sg_execution_times.html    |   18 +-
 docs/tutorials/language/tedd.html                  |    2 +-
 docs/tutorials/language/tensorize.html             |    4 +-
 docs/tutorials/language/tuple_inputs.html          |    2 +-
 docs/tutorials/optimize/opt_conv_cuda.html         |    4 +-
 docs/tutorials/optimize/opt_conv_tensorcore.html   |    4 +-
 docs/tutorials/optimize/opt_gemm.html              |   18 +-
 .../optimize/opt_matmul_auto_tensorcore.html       |    4 +-
 docs/tutorials/optimize/sg_execution_times.html    |   10 +-
 docs/tutorials/relay_quick_start.html              |  106 +-
 docs/tutorials/sg_execution_times.html             |    8 +-
 docs/tutorials/tensor_expr_get_started.html        |    4 +-
 docs/tutorials/topi/intro_topi.html                |    4 +-
 docs/tutorials/topi/sg_execution_times.html        |    4 +-
 docs/vta/dev/config.html                           |    2 +-
 docs/vta/dev/hardware.html                         |   10 +-
 docs/vta/install.html                              |   38 +-
 docs/vta/tutorials/autotvm/sg_execution_times.html |    4 +-
 docs/vta/tutorials/autotvm/tune_relay_vta.html     |  188 +--
 .../tutorials/frontend/deploy_classification.html  |   22 +-
 docs/vta/tutorials/frontend/deploy_detection.html  |    6 +-
 .../vta/tutorials/frontend/sg_execution_times.html |    6 +-
 docs/vta/tutorials/matrix_multiply.html            |    4 +-
 docs/vta/tutorials/optimize/convolution_opt.html   |    4 +-
 .../tutorials/optimize/matrix_multiply_opt.html    |    4 +-
 .../vta/tutorials/optimize/sg_execution_times.html |    6 +-
 docs/vta/tutorials/sg_execution_times.html         |    6 +-
 docs/vta/tutorials/vta_get_started.html            |    2 +-
 265 files changed, 11624 insertions(+), 9931 deletions(-)

diff --git a/docs/.buildinfo b/docs/.buildinfo
new file mode 100644
index 0000000..65a29f9
--- /dev/null
+++ b/docs/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: 1ba81d7f59a4af53a0ec8b3a796842eb
+tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/_downloads/10e16681be542cc483fa89e9b4678a27/opt_matmul_auto_tensorcore.py b/docs/_downloads/10e16681be542cc483fa89e9b4678a27/opt_matmul_auto_tensorcore.py
index aae1333..50cc1eb 100644
--- a/docs/_downloads/10e16681be542cc483fa89e9b4678a27/opt_matmul_auto_tensorcore.py
+++ b/docs/_downloads/10e16681be542cc483fa89e9b4678a27/opt_matmul_auto_tensorcore.py
@@ -86,7 +86,7 @@ def matmul_nn(A, B, L, dtype='float16', layout='NN'):
 #   (2) The warp tile size is not 16x16x16 on CUDA9, or not one of {16x16x16, 32x8x16, 8x32x16} on CUDA version >= 10.0.
 #
 # In this schedule, storage_align is used to reduce bank conflicts of shared memory. Please refer to this
-# `doc <https://docs.tvm.ai/api/python/schedule.html#tvm.te.schedule.Stage.storage_align>`_
+# `doc <https://tvm.apache.org/docs/api/python/schedule.html#tvm.te.schedule.Stage.storage_align>`_
 # for the usage of storage_align primitive. In short, we need to add an offset to some shared memory buffer
 # to reduce bank conflicts.
 # According to the `wmma doc <https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#wmma-description>`_,
diff --git a/docs/_downloads/1195277fef6a622db64b78b4ea799ed4/matrix_multiply.py b/docs/_downloads/1195277fef6a622db64b78b4ea799ed4/matrix_multiply.py
index 227144e..024e179 100644
--- a/docs/_downloads/1195277fef6a622db64b78b4ea799ed4/matrix_multiply.py
+++ b/docs/_downloads/1195277fef6a622db64b78b4ea799ed4/matrix_multiply.py
@@ -43,7 +43,7 @@ from tvm import rpc
 from tvm.contrib import util
 from vta.testing import simulator
 
-# Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
 env = vta.get_env()
 
 # We read the Pynq RPC host IP address and port number from the OS environment
diff --git a/docs/_downloads/1d6c63023d70a80db938b62570b7281c/tutorials_jupyter.zip b/docs/_downloads/1d6c63023d70a80db938b62570b7281c/tutorials_jupyter.zip
index ff3caa6..08a34b2 100644
Binary files a/docs/_downloads/1d6c63023d70a80db938b62570b7281c/tutorials_jupyter.zip and b/docs/_downloads/1d6c63023d70a80db938b62570b7281c/tutorials_jupyter.zip differ
diff --git a/docs/_downloads/2daaacf3c023a8ad30b14e52b9aaa635/matrix_multiply_opt.ipynb b/docs/_downloads/2daaacf3c023a8ad30b14e52b9aaa635/matrix_multiply_opt.ipynb
index 96f65be..9fc93b2 100644
--- a/docs/_downloads/2daaacf3c023a8ad30b14e52b9aaa635/matrix_multiply_opt.ipynb
+++ b/docs/_downloads/2daaacf3c023a8ad30b14e52b9aaa635/matrix_multiply_opt.ipynb
@@ -33,7 +33,7 @@
       },
       "outputs": [],
       "source": [
-        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# Load VTA parameters from the vta/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.get(\"V [...]
+        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.ge [...]
       ]
     },
     {
diff --git a/docs/_downloads/48bd751ebaae08fce134e559f86a25cc/tune_relay_vta.ipynb b/docs/_downloads/48bd751ebaae08fce134e559f86a25cc/tune_relay_vta.ipynb
index 4d9ef9d..17b3109 100644
--- a/docs/_downloads/48bd751ebaae08fce134e559f86a25cc/tune_relay_vta.ipynb
+++ b/docs/_downloads/48bd751ebaae08fce134e559f86a25cc/tune_relay_vta.ipynb
@@ -83,7 +83,7 @@
       },
       "outputs": [],
       "source": [
-        "# Tracker host and port can be set by your environment\ntracker_host = os.environ.get(\"TVM_TRACKER_HOST\", '0.0.0.0')\ntracker_port = int(os.environ.get(\"TVM_TRACKER_PORT\", 9190))\n\n# Load VTA parameters from the vta/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# This target is used for cross compilation. You can query it by :code:`gcc -v` on your device.\n# Set ``device=arm_cpu`` to run inference on the CPU\n# or ``device=vta`` to run inference on the FPGA.\nd [...]
+        "# Tracker host and port can be set by your environment\ntracker_host = os.environ.get(\"TVM_TRACKER_HOST\", '0.0.0.0')\ntracker_port = int(os.environ.get(\"TVM_TRACKER_PORT\", 9190))\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# This target is used for cross compilation. You can query it by :code:`gcc -v` on your device.\n# Set ``device=arm_cpu`` to run inference on the CPU\n# or ``device=vta`` to run inference on the FPG [...]
       ]
     },
     {
diff --git a/docs/_downloads/612f9e42b0247df5c8ab277534e2af65/tune_relay_vta.py b/docs/_downloads/612f9e42b0247df5c8ab277534e2af65/tune_relay_vta.py
index b0870b1..571dde6 100644
--- a/docs/_downloads/612f9e42b0247df5c8ab277534e2af65/tune_relay_vta.py
+++ b/docs/_downloads/612f9e42b0247df5c8ab277534e2af65/tune_relay_vta.py
@@ -181,7 +181,7 @@ def compile_network(env, target, model, start_pack, stop_pack):
 tracker_host = os.environ.get("TVM_TRACKER_HOST", '0.0.0.0')
 tracker_port = int(os.environ.get("TVM_TRACKER_PORT", 9190))
 
-# Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
 env = vta.get_env()
 
 # This target is used for cross compilation. You can query it by :code:`gcc -v` on your device.
diff --git a/docs/_downloads/66258823cf03d1875c9ea84a82131101/deploy_detection.ipynb b/docs/_downloads/66258823cf03d1875c9ea84a82131101/deploy_detection.ipynb
index f4718e2..372bb0a 100644
--- a/docs/_downloads/66258823cf03d1875c9ea84a82131101/deploy_detection.ipynb
+++ b/docs/_downloads/66258823cf03d1875c9ea84a82131101/deploy_detection.ipynb
@@ -87,7 +87,7 @@
       },
       "outputs": [],
       "source": [
-        "# Load VTA parameters from the vta/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n# Set ``device=arm_cpu`` to run inference on the CPU\n# or ``device=vta`` to run inference on the FPGA.\ndevice = \"vta\"\ntarget = env.target if device == \"vta\" else env.target_vta_cpu\n\npack_dict = {\n    \"yolov3-tiny\": [\"nn.max_pool2d\", \"cast\", 4, 185],\n}\n\n# Name of Darknet model to compile\n# The ``start_pack`` and ``stop_pack`` labels indicate where\n# to start and end th [...]
+        "# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n# Set ``device=arm_cpu`` to run inference on the CPU\n# or ``device=vta`` to run inference on the FPGA.\ndevice = \"vta\"\ntarget = env.target if device == \"vta\" else env.target_vta_cpu\n\npack_dict = {\n    \"yolov3-tiny\": [\"nn.max_pool2d\", \"cast\", 4, 185],\n}\n\n# Name of Darknet model to compile\n# The ``start_pack`` and ``stop_pack`` labels indicate where\n# to start and e [...]
       ]
     },
     {
diff --git a/docs/_downloads/67c18c78b0f12c3be5dc41b22637d719/matrix_multiply_opt.py b/docs/_downloads/67c18c78b0f12c3be5dc41b22637d719/matrix_multiply_opt.py
index da3b9bb..77b0381 100644
--- a/docs/_downloads/67c18c78b0f12c3be5dc41b22637d719/matrix_multiply_opt.py
+++ b/docs/_downloads/67c18c78b0f12c3be5dc41b22637d719/matrix_multiply_opt.py
@@ -46,7 +46,7 @@ from tvm import rpc
 from tvm.contrib import util
 from vta.testing import simulator
 
-# Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
 env = vta.get_env()
 
 # We read the Pynq RPC host IP address and port number from the OS environment
diff --git a/docs/_downloads/6a30ed3c7bfd73f6d626ef79df7e54b3/tutorials_python.zip b/docs/_downloads/6a30ed3c7bfd73f6d626ef79df7e54b3/tutorials_python.zip
index 3b0f4d0..39fe8a3 100644
Binary files a/docs/_downloads/6a30ed3c7bfd73f6d626ef79df7e54b3/tutorials_python.zip and b/docs/_downloads/6a30ed3c7bfd73f6d626ef79df7e54b3/tutorials_python.zip differ
diff --git a/docs/_downloads/870680567a5bf1e4697356b416e302b4/opt_matmul_auto_tensorcore.ipynb b/docs/_downloads/870680567a5bf1e4697356b416e302b4/opt_matmul_auto_tensorcore.ipynb
index 8386fb1..6287d6e 100644
--- a/docs/_downloads/870680567a5bf1e4697356b416e302b4/opt_matmul_auto_tensorcore.ipynb
+++ b/docs/_downloads/870680567a5bf1e4697356b416e302b4/opt_matmul_auto_tensorcore.ipynb
@@ -40,7 +40,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Scheduling the Computation\n--------------------------\nThis schedule is no different than a non-tensorcore matmul schedule on GPU.\nPlease refer to `opt-gemm` tutorial for basics of optimizing matmul schedule.\nWhen the \"tensor_core\" pragma is set, the \"rewrite for tensorcore\" ir pass\nwill automatically transform the schedule for tensorcore codegen,\notherwise normal CUDA code, with lower performance but equal functionality, will be generated.\n\n<div class=\"alert alert-i [...]
+        "Scheduling the Computation\n--------------------------\nThis schedule is no different than a non-tensorcore matmul schedule on GPU.\nPlease refer to `opt-gemm` tutorial for basics of optimizing matmul schedule.\nWhen the \"tensor_core\" pragma is set, the \"rewrite for tensorcore\" ir pass\nwill automatically transform the schedule for tensorcore codegen,\notherwise normal CUDA code, with lower performance but equal functionality, will be generated.\n\n<div class=\"alert alert-i [...]
       ]
     },
     {
diff --git a/docs/_downloads/c4d683ae80a4b8a011286f239422638a/deploy_classification.ipynb b/docs/_downloads/c4d683ae80a4b8a011286f239422638a/deploy_classification.ipynb
index e8aa55c..cf6b413 100644
--- a/docs/_downloads/c4d683ae80a4b8a011286f239422638a/deploy_classification.ipynb
+++ b/docs/_downloads/c4d683ae80a4b8a011286f239422638a/deploy_classification.ipynb
@@ -51,7 +51,7 @@
       },
       "outputs": [],
       "source": [
-        "# Load VTA parameters from the vta/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# Set ``device=arm_cpu`` to run inference on the CPU\n# or ``device=vta`` to run inference on the FPGA.\ndevice = \"vta\"\ntarget = env.target if device == \"vta\" else env.target_vta_cpu\n\n# Dictionary lookup for when to start/end bit packing\npack_dict = {\n    \"resnet18_v1\": [\"nn.max_pool2d\", \"nn.global_avg_pool2d\"],\n    \"resnet34_v1\": [\"nn.max_pool2d\", \"nn.global_avg_po [...]
+        "# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# Set ``device=arm_cpu`` to run inference on the CPU\n# or ``device=vta`` to run inference on the FPGA.\ndevice = \"vta\"\ntarget = env.target if device == \"vta\" else env.target_vta_cpu\n\n# Dictionary lookup for when to start/end bit packing\npack_dict = {\n    \"resnet18_v1\": [\"nn.max_pool2d\", \"nn.global_avg_pool2d\"],\n    \"resnet34_v1\": [\"nn.max_pool2d\", \"nn.global_a [...]
       ]
     },
     {
diff --git a/docs/_downloads/c634482de86bbc712f15077b3ec3a92f/convolution_opt.ipynb b/docs/_downloads/c634482de86bbc712f15077b3ec3a92f/convolution_opt.ipynb
index cff9e0d..6f532d4 100644
--- a/docs/_downloads/c634482de86bbc712f15077b3ec3a92f/convolution_opt.ipynb
+++ b/docs/_downloads/c634482de86bbc712f15077b3ec3a92f/convolution_opt.ipynb
@@ -33,7 +33,7 @@
       },
       "outputs": [],
       "source": [
-        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\n\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# Load VTA parameters from the vta/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.get(\ [...]
+        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\n\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ. [...]
       ]
     },
     {
diff --git a/docs/_downloads/cb3cbb4ea88433c5b624f34496695502/tutorials_python.zip b/docs/_downloads/cb3cbb4ea88433c5b624f34496695502/tutorials_python.zip
index 01a823b..2b99228 100644
Binary files a/docs/_downloads/cb3cbb4ea88433c5b624f34496695502/tutorials_python.zip and b/docs/_downloads/cb3cbb4ea88433c5b624f34496695502/tutorials_python.zip differ
diff --git a/docs/_downloads/cbbaae24e5c894dda1ebeded6fded2c3/convolution_opt.py b/docs/_downloads/cbbaae24e5c894dda1ebeded6fded2c3/convolution_opt.py
index f609a72..0564a6a 100644
--- a/docs/_downloads/cbbaae24e5c894dda1ebeded6fded2c3/convolution_opt.py
+++ b/docs/_downloads/cbbaae24e5c894dda1ebeded6fded2c3/convolution_opt.py
@@ -47,7 +47,7 @@ from tvm import rpc
 from tvm.contrib import util
 from vta.testing import simulator
 
-# Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
 env = vta.get_env()
 
 # We read the Pynq RPC host IP address and port number from the OS environment
diff --git a/docs/_downloads/d37aecc420f8b90ce29faee4df5d0bcd/matrix_multiply.ipynb b/docs/_downloads/d37aecc420f8b90ce29faee4df5d0bcd/matrix_multiply.ipynb
index 1ea954e..b4daeaf 100644
--- a/docs/_downloads/d37aecc420f8b90ce29faee4df5d0bcd/matrix_multiply.ipynb
+++ b/docs/_downloads/d37aecc420f8b90ce29faee4df5d0bcd/matrix_multiply.ipynb
@@ -33,7 +33,7 @@
       },
       "outputs": [],
       "source": [
-        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# Load VTA parameters from the vta/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.get(\"V [...]
+        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.ge [...]
       ]
     },
     {
diff --git a/docs/_downloads/d70fd54d93ff81c79032a082537fdf92/tutorials_jupyter.zip b/docs/_downloads/d70fd54d93ff81c79032a082537fdf92/tutorials_jupyter.zip
index 449f2fa..6bacd0f 100644
Binary files a/docs/_downloads/d70fd54d93ff81c79032a082537fdf92/tutorials_jupyter.zip and b/docs/_downloads/d70fd54d93ff81c79032a082537fdf92/tutorials_jupyter.zip differ
diff --git a/docs/_downloads/ed4fcfc19b39f91a14d817676480a454/deploy_detection.py b/docs/_downloads/ed4fcfc19b39f91a14d817676480a454/deploy_detection.py
index 83fa8fb..efcd2c4 100644
--- a/docs/_downloads/ed4fcfc19b39f91a14d817676480a454/deploy_detection.py
+++ b/docs/_downloads/ed4fcfc19b39f91a14d817676480a454/deploy_detection.py
@@ -111,7 +111,7 @@ names = [x.strip() for x in content]
 # --------------------------------------
 # Execute on CPU vs. VTA, and define the model.
 
-# Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
 env = vta.get_env()
 # Set ``device=arm_cpu`` to run inference on the CPU
 # or ``device=vta`` to run inference on the FPGA.
diff --git a/docs/_downloads/ef2454f5c8b007c53ff214943df808ad/deploy_classification.py b/docs/_downloads/ef2454f5c8b007c53ff214943df808ad/deploy_classification.py
index 7ce3853..62fb321 100644
--- a/docs/_downloads/ef2454f5c8b007c53ff214943df808ad/deploy_classification.py
+++ b/docs/_downloads/ef2454f5c8b007c53ff214943df808ad/deploy_classification.py
@@ -68,7 +68,7 @@ assert tvm.runtime.enabled("rpc")
 # -------------------------------------
 # Execute on CPU vs. VTA, and define the model.
 
-# Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
 env = vta.get_env()
 
 # Set ``device=arm_cpu`` to run inference on the CPU
diff --git a/docs/_sources/install/nnpack.md.txt b/docs/_sources/install/nnpack.md.txt
index 6e46a83..e1bcb70 100644
--- a/docs/_sources/install/nnpack.md.txt
+++ b/docs/_sources/install/nnpack.md.txt
@@ -64,6 +64,8 @@ export PATH="${PATH}:~/ninja"
 
 The new CMAKE version of NNPACK download [Peach](https://github.com/Maratyszcza/PeachPy) and other dependencies alone
 
+Note: at least on OS X, running `ninja install` below will overwrite googletest libraries installed in `/usr/local/lib`. If you build googletest again to replace the nnpack copy, be sure to pass `-DBUILD_SHARED_LIBS=ON` to `cmake`.
+
 ```bash
 git clone --recursive https://github.com/Maratyszcza/NNPACK.git
 cd NNPACK
diff --git a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
index 5839598..0820dea 100644
--- a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,11 +5,11 @@
 
 Computation times
 =================
-**00:50.140** total execution time for **tutorials_autotvm** files:
+**00:50.584** total execution time for **tutorials_autotvm** files:
 
-- **00:26.717**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
-- **00:22.807**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
-- **00:00.165**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
-- **00:00.151**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+- **00:28.351**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
+- **00:21.581**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:00.200**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.153**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
 - **00:00.150**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
-- **00:00.150**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
+- **00:00.149**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
diff --git a/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
index e5e8abd..a8b439a 100644
--- a/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
@@ -234,26 +234,26 @@ for this template
        7 unroll_explicit: OtherOption([0, 1]) len=2
     )
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 6   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 7   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 8   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 9   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 10  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 11  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 12  GFLOPS: 58.20/58.20     result: MeasureResult(costs=(0.003977931769230769,), error_no=0, all_cost=1.9641742706298828, timestamp=1585556429.2650185)     [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8533140
-    No: 13  GFLOPS: 0.00/58.20      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 14  GFLOPS: 0.00/58.20      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 15  GFLOPS: 0.00/58.20      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 16  GFLOPS: 0.00/58.20      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 17  GFLOPS: 0.00/58.20      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 18  GFLOPS: 0.00/58.20      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (0) /workspace/build/libtvm.so(+0xc8bf2b) [0x7fd8bb1b4f2b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
-    No: 19  GFLOPS: 789.69/789.69   result: MeasureResult(costs=(0.00029315388418708243,), error_no=0, all_cost=2.4680051803588867, timestamp=1585556433.4341273)   [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
-    No: 20  GFLOPS: 6.97/789.69     result: MeasureResult(costs=(0.03319892275,), error_no=0, all_cost=2.184508800506592, timestamp=1585556434.8201776)     [('tile_f', [-1, 2, 1, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7502165
+    No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 6   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 7   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 8   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 9   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 10  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 11  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 12  GFLOPS: 22.82/22.82     result: MeasureResult(costs=(0.0101451466,), error_no=0, all_cost=1.6779661178588867, timestamp=1585762379.5627096)     [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8533140
+    No: 13  GFLOPS: 0.00/22.82      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 14  GFLOPS: 0.00/22.82      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 15  GFLOPS: 0.00/22.82      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 16  GFLOPS: 0.00/22.82      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 17  GFLOPS: 0.00/22.82      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 18  GFLOPS: 0.00/22.82      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (1) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f65e575be31]\n  [bt] (0) /workspace/build/libtvm.so(+0xcad61b) [0x7f65e575761b]\n  File "/workspace/docs/../python/tvm/_ffi/_ctypes/packed_func.py", line 78, in cfun\n    rv = local_pyfunc(*pyargs)\n  File "/workspace/docs/../python/tvm/autotvm/measure/measure_methods.py", line 621, in verify_pass\n    raise I [...]
+    No: 19  GFLOPS: 512.42/512.42   result: MeasureResult(costs=(0.00045177718081180807,), error_no=0, all_cost=2.259528875350952, timestamp=1585762383.449056)     [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
+    No: 20  GFLOPS: 4.98/512.42     result: MeasureResult(costs=(0.04648650475,), error_no=0, all_cost=1.9373598098754883, timestamp=1585762384.5231574)    [('tile_f', [-1, 2, 1, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7502165
 
 
 
@@ -307,14 +307,14 @@ and measure running time.
 
     Best config:
     [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
-    Time cost of this operator: 0.000355
+    Time cost of this operator: 0.000776
 
 
 
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  22.807 seconds)
+   **Total running time of the script:** ( 0 minutes  21.581 seconds)
 
 
 .. _sphx_glr_download_tutorials_autotvm_tune_conv2d_cuda.py:
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt
index 3834265..2367ce2 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt
@@ -431,7 +431,7 @@ It takes about 2 hours on a 32T AMD Ryzen Threadripper.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.151 seconds)
+   **Total running time of the script:** ( 0 minutes  0.149 seconds)
 
 
 .. _sphx_glr_download_tutorials_autotvm_tune_relay_arm.py:
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt
index c09c244..91c2176 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt
@@ -418,7 +418,7 @@ to replace the corresponding part above.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.150 seconds)
+   **Total running time of the script:** ( 0 minutes  0.153 seconds)
 
 
 .. _sphx_glr_download_tutorials_autotvm_tune_relay_cuda.py:
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt
index 7ea1b08..006f927 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt
@@ -269,7 +269,7 @@ One sample output is listed below.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.165 seconds)
+   **Total running time of the script:** ( 0 minutes  0.200 seconds)
 
 
 .. _sphx_glr_download_tutorials_autotvm_tune_relay_x86.py:
diff --git a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
index c795477..0ef4049 100644
--- a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
@@ -361,16 +361,16 @@ used to get the best config later.
  .. code-block:: none
 
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 6.96/6.96       result: MeasureResult(costs=(0.0385728382,), error_no=0, all_cost=0.823296308517456, timestamp=1585556397.3558123)      [('tile_y', [-1, 8]), ('tile_x', [-1, 8])],None,33
-    No: 2   GFLOPS: 2.25/6.96       result: MeasureResult(costs=(0.1192342126,), error_no=0, all_cost=2.1185624599456787, timestamp=1585556399.5840642)     [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
-    No: 3   GFLOPS: 7.27/7.27       result: MeasureResult(costs=(0.0369096948,), error_no=0, all_cost=1.1788554191589355, timestamp=1585556400.4997094)     [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
-    No: 4   GFLOPS: 4.35/7.27       result: MeasureResult(costs=(0.061714442800000005,), error_no=0, all_cost=1.3026938438415527, timestamp=1585556401.8039923)     [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
-    No: 5   GFLOPS: 6.01/7.27       result: MeasureResult(costs=(0.0446915612,), error_no=0, all_cost=0.986182689666748, timestamp=1585556402.8620286)      [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
-    No: 6   GFLOPS: 6.50/7.27       result: MeasureResult(costs=(0.0412838544,), error_no=0, all_cost=1.0038743019104004, timestamp=1585556403.8686693)     [('tile_y', [-1, 64]), ('tile_x', [-1, 8])],None,36
-    No: 7   GFLOPS: 22.93/22.93     result: MeasureResult(costs=(0.0117043134,), error_no=0, all_cost=0.5391783714294434, timestamp=1585556404.3909621)     [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
-    No: 8   GFLOPS: 20.32/22.93     result: MeasureResult(costs=(0.0132121842,), error_no=0, all_cost=0.4541635513305664, timestamp=1585556404.9171762)     [('tile_y', [-1, 4]), ('tile_x', [-1, 512])],None,92
-    No: 9   GFLOPS: 0.80/22.93      result: MeasureResult(costs=(0.3345709118,), error_no=0, all_cost=5.640729188919067, timestamp=1585556410.6114697)      [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
-    No: 10  GFLOPS: 0.00/22.93      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  [bt] (3) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fd8bb1b9741]\n  [bt] (2) /workspace/build/libtvm.so(std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::RPCModuleNode::WrapRemote(void*)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime:: [...]
+    No: 1   GFLOPS: 3.54/3.54       result: MeasureResult(costs=(0.07590410239999999,), error_no=0, all_cost=1.6031978130340576, timestamp=1585762348.2834651)      [('tile_y', [-1, 8]), ('tile_x', [-1, 8])],None,33
+    No: 2   GFLOPS: 2.11/3.54       result: MeasureResult(costs=(0.1269865824,), error_no=0, all_cost=2.3244104385375977, timestamp=1585762350.6949053)     [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
+    No: 3   GFLOPS: 10.60/10.60     result: MeasureResult(costs=(0.0253257884,), error_no=0, all_cost=1.2683050632476807, timestamp=1585762351.495554)      [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
+    No: 4   GFLOPS: 9.09/10.60      result: MeasureResult(costs=(0.0295168472,), error_no=0, all_cost=0.8757941722869873, timestamp=1585762352.3540964)     [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
+    No: 5   GFLOPS: 3.21/10.60      result: MeasureResult(costs=(0.0836431542,), error_no=0, all_cost=1.7907695770263672, timestamp=1585762354.0755901)     [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
+    No: 6   GFLOPS: 3.37/10.60      result: MeasureResult(costs=(0.0797073572,), error_no=0, all_cost=1.7097434997558594, timestamp=1585762355.7363749)     [('tile_y', [-1, 64]), ('tile_x', [-1, 8])],None,36
+    No: 7   GFLOPS: 8.96/10.60      result: MeasureResult(costs=(0.0299547868,), error_no=0, all_cost=0.8524417877197266, timestamp=1585762356.6053643)     [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
+    No: 8   GFLOPS: 14.31/14.31     result: MeasureResult(costs=(0.0187645802,), error_no=0, all_cost=0.6022071838378906, timestamp=1585762357.2941837)     [('tile_y', [-1, 4]), ('tile_x', [-1, 512])],None,92
+    No: 9   GFLOPS: 0.88/14.31      result: MeasureResult(costs=(0.3058133368,), error_no=0, all_cost=5.160778522491455, timestamp=1585762362.9668663)      [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
+    No: 10  GFLOPS: 0.45/14.31      result: MeasureResult(costs=(0.5970449322,), error_no=0, all_cost=9.82101845741272, timestamp=1585762372.906013)        [('tile_y', [-1, 512]), ('tile_x', [-1, 1])],None,9
 
 
 
@@ -408,7 +408,7 @@ with the same argument.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  26.717 seconds)
+   **Total running time of the script:** ( 0 minutes  28.351 seconds)
 
 
 .. _sphx_glr_download_tutorials_autotvm_tune_simple_template.py:
diff --git a/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
index a197629..13423e2 100644
--- a/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
@@ -235,7 +235,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.723e-07 secs/op
+    1.229e-07 secs/op
 
 
 
@@ -314,7 +314,7 @@ features in TVM.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.133 seconds)
+   **Total running time of the script:** ( 0 minutes  0.127 seconds)
 
 
 .. _sphx_glr_download_tutorials_cross_compilation_and_rpc.py:
diff --git a/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt b/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt
index 3d45274..100c412 100644
--- a/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt
+++ b/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt
@@ -260,7 +260,7 @@ This tutorial gives a quick view of writing a customized IR transformation pass:
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.160 seconds)
+   **Total running time of the script:** ( 0 minutes  0.153 seconds)
 
 
 .. _sphx_glr_download_tutorials_dev_low_level_custom_pass.py:
diff --git a/docs/_sources/tutorials/dev/relay_pass_infra.rst.txt b/docs/_sources/tutorials/dev/relay_pass_infra.rst.txt
index 08befc6..feb3ebf 100644
--- a/docs/_sources/tutorials/dev/relay_pass_infra.rst.txt
+++ b/docs/_sources/tutorials/dev/relay_pass_infra.rst.txt
@@ -521,7 +521,7 @@ them.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.395 seconds)
+   **Total running time of the script:** ( 0 minutes  0.361 seconds)
 
 
 .. _sphx_glr_download_tutorials_dev_relay_pass_infra.py:
diff --git a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
index af0ce11..845e3c7 100644
--- a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:00.554** total execution time for **tutorials_dev** files:
+**00:00.514** total execution time for **tutorials_dev** files:
 
-- **00:00.395**: :ref:`sphx_glr_tutorials_dev_relay_pass_infra.py` (``relay_pass_infra.py``)
-- **00:00.160**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
+- **00:00.361**: :ref:`sphx_glr_tutorials_dev_relay_pass_infra.py` (``relay_pass_infra.py``)
+- **00:00.153**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
diff --git a/docs/_sources/tutorials/frontend/build_gcn.rst.txt b/docs/_sources/tutorials/frontend/build_gcn.rst.txt
index 6afacfe..348badb 100644
--- a/docs/_sources/tutorials/frontend/build_gcn.rst.txt
+++ b/docs/_sources/tutorials/frontend/build_gcn.rst.txt
@@ -482,7 +482,7 @@ Run the TVM model, test for accuracy and verify with DGL
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  4.613 seconds)
+   **Total running time of the script:** ( 0 minutes  5.505 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_build_gcn.py:
diff --git a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
index 55b6be5..a5fc236 100644
--- a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
@@ -415,7 +415,7 @@ Execute on TVM
 
     TVM prediction top-1: tiger cat
     Evaluate inference time cost...
-    Mean inference time (std dev): 3.66 ms (0.15 ms)
+    Mean inference time (std dev): 3.91 ms (0.09 ms)
 
 
 
@@ -446,7 +446,7 @@ To speed up, we need to write and optimize the schedule according to the GPU arc
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  16.656 seconds)
+   **Total running time of the script:** ( 0 minutes  19.512 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_model_on_android.py:
diff --git a/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt b/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt
index 3b61921..7be0be8 100644
--- a/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt
@@ -311,7 +311,7 @@ to the remote device.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  4.752 seconds)
+   **Total running time of the script:** ( 0 minutes  5.777 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_model_on_rasp.py:
diff --git a/docs/_sources/tutorials/frontend/deploy_quantized.rst.txt b/docs/_sources/tutorials/frontend/deploy_quantized.rst.txt
index 807f1d5..30c69d0 100644
--- a/docs/_sources/tutorials/frontend/deploy_quantized.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_quantized.rst.txt
@@ -223,7 +223,7 @@ We create a Relay VM to build and execute the model.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  19.529 seconds)
+   **Total running time of the script:** ( 0 minutes  26.171 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_quantized.py:
diff --git a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
index ac9cb07..14a3959 100644
--- a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
@@ -169,6 +169,45 @@ Create TVM runtime and do inference
 
  .. code-block:: none
 
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (256, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (64, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (128, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (512, 128, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (512, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (128, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (1024, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (1024, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (256, 1024, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (84, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (512, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (2048, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (2048, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (512, 2048, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (126, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 4, 4), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (16, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (24, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
@@ -224,45 +263,6 @@ Create TVM runtime and do inference
     Cannot find config for target=cuda, workload=('conv2d_nchw_winograd.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=cuda, workload=('conv2d_nchw_winograd.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (256, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (64, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (128, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (512, 128, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (512, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (128, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (1024, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (1024, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (256, 1024, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (84, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (512, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (2048, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (2048, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (512, 2048, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (126, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 4, 4), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (16, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (24, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
 
 
 
@@ -287,7 +287,7 @@ Display result
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  30.139 seconds)
+   **Total running time of the script:** ( 0 minutes  35.197 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_ssd_gluoncv.py:
diff --git a/docs/_sources/tutorials/frontend/from_caffe2.rst.txt b/docs/_sources/tutorials/frontend/from_caffe2.rst.txt
index 21e303d..c7193ff 100644
--- a/docs/_sources/tutorials/frontend/from_caffe2.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_caffe2.rst.txt
@@ -191,7 +191,7 @@ Look up prediction top 1 index in 1000 class synset.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  11.917 seconds)
+   **Total running time of the script:** ( 0 minutes  13.186 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_from_caffe2.py:
diff --git a/docs/_sources/tutorials/frontend/from_coreml.rst.txt b/docs/_sources/tutorials/frontend/from_coreml.rst.txt
index 0f173c5..e1cb3f4 100644
--- a/docs/_sources/tutorials/frontend/from_coreml.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_coreml.rst.txt
@@ -201,7 +201,7 @@ Look up prediction top 1 index in 1000 class synset.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  7.164 seconds)
+   **Total running time of the script:** ( 0 minutes  7.437 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_from_coreml.py:
diff --git a/docs/_sources/tutorials/frontend/from_darknet.rst.txt b/docs/_sources/tutorials/frontend/from_darknet.rst.txt
index 741af7b..7f2f76f 100644
--- a/docs/_sources/tutorials/frontend/from_darknet.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_darknet.rst.txt
@@ -294,7 +294,7 @@ The process is no different from other examples.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  17.350 seconds)
+   **Total running time of the script:** ( 0 minutes  21.056 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_from_darknet.py:
diff --git a/docs/_sources/tutorials/frontend/from_keras.rst.txt b/docs/_sources/tutorials/frontend/from_keras.rst.txt
index 23ea8e2..bc5497f 100644
--- a/docs/_sources/tutorials/frontend/from_keras.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_keras.rst.txt
@@ -185,7 +185,7 @@ Look up prediction top 1 index in 1000 class synset.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  16.721 seconds)
+   **Total running time of the script:** ( 0 minutes  18.447 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_from_keras.py:
diff --git a/docs/_sources/tutorials/frontend/from_mxnet.rst.txt b/docs/_sources/tutorials/frontend/from_mxnet.rst.txt
index ecc27fc..69b61c9 100644
--- a/docs/_sources/tutorials/frontend/from_mxnet.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_mxnet.rst.txt
@@ -214,7 +214,7 @@ for a normal mxnet model, we start from here
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  5.138 seconds)
+   **Total running time of the script:** ( 0 minutes  6.591 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_from_mxnet.py:
diff --git a/docs/_sources/tutorials/frontend/from_onnx.rst.txt b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
index 765c247..7e5867a 100644
--- a/docs/_sources/tutorials/frontend/from_onnx.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
@@ -151,7 +151,7 @@ Execute on TVM
 
  .. code-block:: none
 
-
    ...47%, 0.01 MB, 45 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 91 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 137 KB/s, 0 seconds passed
+
    ...47%, 0.01 MB, 42 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 81 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 121 KB/s, 0 seconds passed
     Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 224, 224), 'float32'), ('TENSOR', (9, 32, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 224, 224), 'float32'), ('TENSOR', (32, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1, 224, 224), 'float32'), ('TENSOR', (64, 1, 5, 5), 'float32'), (1, 1), (2, 2, 2, 2), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
@@ -187,7 +187,7 @@ We put input and output image neck to neck
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  1.659 seconds)
+   **Total running time of the script:** ( 0 minutes  1.903 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_from_onnx.py:
diff --git a/docs/_sources/tutorials/frontend/from_pytorch.rst.txt b/docs/_sources/tutorials/frontend/from_pytorch.rst.txt
index f745f99..2db7f58 100644
--- a/docs/_sources/tutorials/frontend/from_pytorch.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_pytorch.rst.txt
@@ -241,7 +241,7 @@ Look up prediction top 1 index in 1000 class synset.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  5.601 seconds)
+   **Total running time of the script:** ( 0 minutes  5.746 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_from_pytorch.py:
diff --git a/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
index cf404fb..57e3c61 100644
--- a/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
@@ -373,7 +373,7 @@ Run the corresponding model on tensorflow
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  20.524 seconds)
+   **Total running time of the script:** ( 0 minutes  26.943 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_from_tensorflow.py:
diff --git a/docs/_sources/tutorials/frontend/from_tflite.rst.txt b/docs/_sources/tutorials/frontend/from_tflite.rst.txt
index 323e76f..49196bd 100644
--- a/docs/_sources/tutorials/frontend/from_tflite.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_tflite.rst.txt
@@ -276,7 +276,7 @@ Display results
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  20.383 seconds)
+   **Total running time of the script:** ( 0 minutes  25.351 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_from_tflite.py:
diff --git a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
index 6533dfe..2f208ba 100644
--- a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,20 +5,20 @@
 
 Computation times
 =================
-**03:04.468** total execution time for **tutorials_frontend** files:
+**03:41.816** total execution time for **tutorials_frontend** files:
 
-- **00:30.139**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
-- **00:20.524**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
-- **00:20.383**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
-- **00:19.529**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
-- **00:17.350**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
-- **00:16.721**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
-- **00:16.656**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
-- **00:11.917**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
-- **00:07.164**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
-- **00:05.601**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
-- **00:05.138**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
-- **00:04.752**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
-- **00:04.613**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
-- **00:02.320**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
-- **00:01.659**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
+- **00:35.197**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **00:26.943**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
+- **00:26.171**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
+- **00:25.351**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
+- **00:21.056**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
+- **00:19.512**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:18.447**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
+- **00:13.186**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
+- **00:07.437**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
+- **00:06.591**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
+- **00:05.777**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:05.746**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
+- **00:05.505**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
+- **00:02.995**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
+- **00:01.903**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
diff --git a/docs/_sources/tutorials/frontend/using_external_lib.rst.txt b/docs/_sources/tutorials/frontend/using_external_lib.rst.txt
index d4eb40c..952904f 100644
--- a/docs/_sources/tutorials/frontend/using_external_lib.rst.txt
+++ b/docs/_sources/tutorials/frontend/using_external_lib.rst.txt
@@ -616,7 +616,7 @@ To achieve this goal, we should continue developing better optimizations for TVM
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  2.320 seconds)
+   **Total running time of the script:** ( 0 minutes  2.995 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_using_external_lib.py:
diff --git a/docs/_sources/tutorials/language/extern_op.rst.txt b/docs/_sources/tutorials/language/extern_op.rst.txt
index d0f40e5..cd309e1 100644
--- a/docs/_sources/tutorials/language/extern_op.rst.txt
+++ b/docs/_sources/tutorials/language/extern_op.rst.txt
@@ -172,7 +172,7 @@ Summary
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.303 seconds)
+   **Total running time of the script:** ( 0 minutes  0.282 seconds)
 
 
 .. _sphx_glr_download_tutorials_language_extern_op.py:
diff --git a/docs/_sources/tutorials/language/intrin_math.rst.txt b/docs/_sources/tutorials/language/intrin_math.rst.txt
index 8cadabe..402ab35 100644
--- a/docs/_sources/tutorials/language/intrin_math.rst.txt
+++ b/docs/_sources/tutorials/language/intrin_math.rst.txt
@@ -314,7 +314,7 @@ Summary
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  1.212 seconds)
+   **Total running time of the script:** ( 0 minutes  1.336 seconds)
 
 
 .. _sphx_glr_download_tutorials_language_intrin_math.py:
diff --git a/docs/_sources/tutorials/language/reduction.rst.txt b/docs/_sources/tutorials/language/reduction.rst.txt
index f4198cc..edcf768 100644
--- a/docs/_sources/tutorials/language/reduction.rst.txt
+++ b/docs/_sources/tutorials/language/reduction.rst.txt
@@ -452,7 +452,7 @@ This tutorial provides a walk through of reduction schedule.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.461 seconds)
+   **Total running time of the script:** ( 0 minutes  0.473 seconds)
 
 
 .. _sphx_glr_download_tutorials_language_reduction.py:
diff --git a/docs/_sources/tutorials/language/scan.rst.txt b/docs/_sources/tutorials/language/scan.rst.txt
index deec675..7607b78 100644
--- a/docs/_sources/tutorials/language/scan.rst.txt
+++ b/docs/_sources/tutorials/language/scan.rst.txt
@@ -286,7 +286,7 @@ This tutorial provides a walk through of scan primitive.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.440 seconds)
+   **Total running time of the script:** ( 0 minutes  0.510 seconds)
 
 
 .. _sphx_glr_download_tutorials_language_scan.py:
diff --git a/docs/_sources/tutorials/language/schedule_primitives.rst.txt b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
index 29f6f4f..53b0743 100644
--- a/docs/_sources/tutorials/language/schedule_primitives.rst.txt
+++ b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
@@ -512,7 +512,7 @@ general workflow often is:
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.181 seconds)
+   **Total running time of the script:** ( 0 minutes  0.222 seconds)
 
 
 .. _sphx_glr_download_tutorials_language_schedule_primitives.py:
diff --git a/docs/_sources/tutorials/language/sg_execution_times.rst.txt b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
index de84888..6e10b74 100644
--- a/docs/_sources/tutorials/language/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
@@ -5,13 +5,13 @@
 
 Computation times
 =================
-**00:03.552** total execution time for **tutorials_language** files:
+**00:03.859** total execution time for **tutorials_language** files:
 
-- **00:01.212**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
-- **00:00.598**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
-- **00:00.461**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
-- **00:00.440**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
-- **00:00.303**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
-- **00:00.199**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
-- **00:00.181**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
-- **00:00.157**: :ref:`sphx_glr_tutorials_language_tuple_inputs.py` (``tuple_inputs.py``)
+- **00:01.336**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
+- **00:00.639**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
+- **00:00.510**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
+- **00:00.473**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
+- **00:00.282**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
+- **00:00.226**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
+- **00:00.222**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.170**: :ref:`sphx_glr_tutorials_language_tuple_inputs.py` (``tuple_inputs.py``)
diff --git a/docs/_sources/tutorials/language/tedd.rst.txt b/docs/_sources/tutorials/language/tedd.rst.txt
index 78df9e6..a2f95f0 100644
--- a/docs/_sources/tutorials/language/tedd.rst.txt
+++ b/docs/_sources/tutorials/language/tedd.rst.txt
@@ -204,7 +204,7 @@ it before and after any schedule primitive to inspect its effect.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.199 seconds)
+   **Total running time of the script:** ( 0 minutes  0.226 seconds)
 
 
 .. _sphx_glr_download_tutorials_language_tedd.py:
diff --git a/docs/_sources/tutorials/language/tensorize.rst.txt b/docs/_sources/tutorials/language/tensorize.rst.txt
index 1b462ed..f36b8f9 100644
--- a/docs/_sources/tutorials/language/tensorize.rst.txt
+++ b/docs/_sources/tutorials/language/tensorize.rst.txt
@@ -288,7 +288,7 @@ The importing needs to happen before the tensorized GEMV being executed.
  .. code-block:: none
 
     produce C {
-      // attr [iter_var(i, )] pragma_import_llvm = "; ModuleID = '/tmp/tmpjqfizk17/input0.cc'\nsource_filename = \"/tmp/tmpjqfizk17/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca float*, align 8\n  %8 = alloca float*, align 8\n  %9 = alloca float*, align 8\n  %10 = alloca i [...]
+      // attr [iter_var(i, )] pragma_import_llvm = "; ModuleID = '/tmp/tmp_tqfzpjl/input0.cc'\nsource_filename = \"/tmp/tmp_tqfzpjl/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca float*, align 8\n  %8 = alloca float*, align 8\n  %9 = alloca float*, align 8\n  %10 = alloca i [...]
       for (i, 0, 1024) {
         for (j.outer, 0, 32) {
           gemv_update(tvm_access_ptr(type_annotation(), C, ((i*512) + (j.outer*16)), 16, 2), tvm_access_ptr(type_annotation(), A, (i*64), 64, 1), tvm_access_ptr(type_annotation(), B, (j.outer*1024), 1024, 1), 16, 64, 64)
@@ -471,7 +471,7 @@ which helps users inject asm easily into the schedule.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.598 seconds)
+   **Total running time of the script:** ( 0 minutes  0.639 seconds)
 
 
 .. _sphx_glr_download_tutorials_language_tensorize.py:
diff --git a/docs/_sources/tutorials/language/tuple_inputs.rst.txt b/docs/_sources/tutorials/language/tuple_inputs.rst.txt
index 65be998..7a6b90e 100644
--- a/docs/_sources/tutorials/language/tuple_inputs.rst.txt
+++ b/docs/_sources/tutorials/language/tuple_inputs.rst.txt
@@ -207,7 +207,7 @@ This tutorial introduces the usage of tuple inputs operation.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.157 seconds)
+   **Total running time of the script:** ( 0 minutes  0.170 seconds)
 
 
 .. _sphx_glr_download_tutorials_language_tuple_inputs.py:
diff --git a/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
index c12a79e..a08732a 100644
--- a/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
@@ -293,14 +293,14 @@ latency of convolution.
 
  .. code-block:: none
 
-    Convolution: 19.552622 ms
+    Convolution: 36.016536 ms
 
 
 
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.664 seconds)
+   **Total running time of the script:** ( 0 minutes  0.886 seconds)
 
 
 .. _sphx_glr_download_tutorials_optimize_opt_conv_cuda.py:
diff --git a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
index b96446d..84c1897 100644
--- a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
@@ -567,7 +567,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 6.304654 ms
+    conv2d with tensor core: 13.299916 ms
 
 
 
@@ -579,7 +579,7 @@ call TensorCores on specific GPUs.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.892 seconds)
+   **Total running time of the script:** ( 0 minutes  1.112 seconds)
 
 
 .. _sphx_glr_download_tutorials_optimize_opt_conv_tensorcore.py:
diff --git a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
index 763b7dd..605f8a9 100644
--- a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
@@ -118,8 +118,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 
  .. code-block:: none
 
-    Numpy running time: 0.007367
-    Baseline: 6.090805
+    Numpy running time: 0.011041
+    Baseline: 3.404642
 
 
 
@@ -200,7 +200,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.112883
+    Opt1: 0.288281
 
 
 
@@ -288,7 +288,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.119189
+    Opt2: 0.321037
 
 
 
@@ -371,7 +371,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.060986
+    Opt3: 0.111675
 
 
 
@@ -473,7 +473,7 @@ the corresponding value from the packed array.
 
  .. code-block:: none
 
-    Opt4: 0.068338
+    Opt4: 0.104570
 
 
 
@@ -578,7 +578,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.080476
+    Opt5: 0.099314
 
 
 
@@ -691,7 +691,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
 
  .. code-block:: none
 
-    Opt6: 0.015324
+    Opt6: 0.032255
 
 
 
@@ -763,7 +763,7 @@ tutorial by yourself to observe the performance gain acheived by TVM.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  25.764 seconds)
+   **Total running time of the script:** ( 0 minutes  25.108 seconds)
 
 
 .. _sphx_glr_download_tutorials_optimize_opt_gemm.py:
diff --git a/docs/_sources/tutorials/optimize/opt_matmul_auto_tensorcore.rst.txt b/docs/_sources/tutorials/optimize/opt_matmul_auto_tensorcore.rst.txt
index d405cc8..507361d 100644
--- a/docs/_sources/tutorials/optimize/opt_matmul_auto_tensorcore.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_matmul_auto_tensorcore.rst.txt
@@ -82,7 +82,7 @@ otherwise normal CUDA code, with lower performance but equal functionality, will
   (2) The warp tile size is not 16x16x16 on CUDA9, or not one of {16x16x16, 32x8x16, 8x32x16} on CUDA version >= 10.0.
 
 In this schedule, storage_align is used to reduce bank conflicts of shared memory. Please refer to this
-`doc <https://docs.tvm.ai/api/python/schedule.html#tvm.te.schedule.Stage.storage_align>`_
+`doc <https://tvm.apache.org/docs/api/python/schedule.html#tvm.te.schedule.Stage.storage_align>`_
 for the usage of storage_align primitive. In short, we need to add an offset to some shared memory buffer
 to reduce bank conflicts.
 According to the `wmma doc <https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#wmma-description>`_,
@@ -546,7 +546,7 @@ to generate tensorcore kernels.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.162 seconds)
+   **Total running time of the script:** ( 0 minutes  0.200 seconds)
 
 
 .. _sphx_glr_download_tutorials_optimize_opt_matmul_auto_tensorcore.py:
diff --git a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
index 0a96e51..4b5a6df 100644
--- a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,9 +5,9 @@
 
 Computation times
 =================
-**00:27.482** total execution time for **tutorials_optimize** files:
+**00:27.306** total execution time for **tutorials_optimize** files:
 
-- **00:25.764**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
-- **00:00.892**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
-- **00:00.664**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
-- **00:00.162**: :ref:`sphx_glr_tutorials_optimize_opt_matmul_auto_tensorcore.py` (``opt_matmul_auto_tensorcore.py``)
+- **00:25.108**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
+- **00:01.112**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:00.886**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:00.200**: :ref:`sphx_glr_tutorials_optimize_opt_matmul_auto_tensorcore.py` (``opt_matmul_auto_tensorcore.py``)
diff --git a/docs/_sources/tutorials/relay_quick_start.rst.txt b/docs/_sources/tutorials/relay_quick_start.rst.txt
index 4ce219f..09a79f7 100644
--- a/docs/_sources/tutorials/relay_quick_start.rst.txt
+++ b/docs/_sources/tutorials/relay_quick_start.rst.txt
@@ -223,7 +223,7 @@ in this example. Then the machine code will be generated as the module library.
 
  .. code-block:: none
 
-
    ...1%, 0.01 MB, 34 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 69 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 104 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 138 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 173 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 207 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 241 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 275 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 309 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 343 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 377 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 410 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 444 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 477 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 511 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 544 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 578 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 610 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 644 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 677 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 710 KB/s, 0 seconds pa
 ssed
    ...43%, 0.17 MB, 742 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 775 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 808 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 841 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 874 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 907 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 939 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 972 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 1004 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 1037 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 1065 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 1098 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 1129 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 1161 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 1194 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 1226 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 1258 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 1290 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 1322 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 1354 KB/s, 0 seconds passed
    ...83%, 0.33 MB,
  1385 KB/s, 0 seconds passed
    ...85%, 0.34 MB, 1417 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 1447 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 1479 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 1509 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 1541 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 1572 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 1604 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 1636 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 1667 KB/s, 0 seconds passed
+
    ...1%, 0.01 MB, 40 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 77 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 116 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 149 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 187 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 223 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 260 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 296 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 333 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 369 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 405 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 434 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 470 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 506 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 542 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 576 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 612 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 645 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 681 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 717 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 752 KB/s, 0 seconds pa
 ssed
    ...43%, 0.17 MB, 785 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 821 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 843 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 877 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 910 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 945 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 980 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 1015 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 1048 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 1083 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 1118 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 1152 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 1183 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 1218 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 1252 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 1286 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 1318 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 1353 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 1387 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 1421 KB/s, 0 seconds passed
    ...83%, 0.33 MB
 , 1455 KB/s, 0 seconds passed
    ...85%, 0.34 MB, 1490 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 1521 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 1555 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 1587 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 1621 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 1655 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 1689 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 1722 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 1756 KB/s, 0 seconds passed
     Cannot find config for target=cuda -model=unknown, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 56, 56), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=cuda -model=unknown, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 28, 28), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=cuda -model=unknown, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 14, 14), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
@@ -302,7 +302,7 @@ back in deploy environment.
 
  .. code-block:: none
 
-    ['deploy_lib.tar', 'deploy_param.params', 'deploy_graph.json']
+    ['deploy_lib.tar', 'deploy_graph.json', 'deploy_param.params']
 
 
 
@@ -344,7 +344,7 @@ back in deploy environment.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  10.784 seconds)
+   **Total running time of the script:** ( 0 minutes  11.949 seconds)
 
 
 .. _sphx_glr_download_tutorials_relay_quick_start.py:
diff --git a/docs/_sources/tutorials/sg_execution_times.rst.txt b/docs/_sources/tutorials/sg_execution_times.rst.txt
index 422d865..dba2bd7 100644
--- a/docs/_sources/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/sg_execution_times.rst.txt
@@ -5,8 +5,8 @@
 
 Computation times
 =================
-**00:11.240** total execution time for **tutorials** files:
+**00:12.412** total execution time for **tutorials** files:
 
-- **00:10.784**: :ref:`sphx_glr_tutorials_relay_quick_start.py` (``relay_quick_start.py``)
-- **00:00.323**: :ref:`sphx_glr_tutorials_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
-- **00:00.133**: :ref:`sphx_glr_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
+- **00:11.949**: :ref:`sphx_glr_tutorials_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:00.335**: :ref:`sphx_glr_tutorials_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:00.127**: :ref:`sphx_glr_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
diff --git a/docs/_sources/tutorials/tensor_expr_get_started.rst.txt b/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
index c547b0e..3bd2b40 100644
--- a/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
@@ -324,7 +324,7 @@ The following code first performs the following steps:
 
  .. code-block:: none
 
-    ['myadd.tvm_meta.json', 'myadd.so', 'myadd.ptx', 'myadd.o']
+    ['myadd.tvm_meta.json', 'myadd.ptx', 'myadd.so', 'myadd.o']
 
 
 
@@ -450,7 +450,7 @@ and other features in TVM.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.323 seconds)
+   **Total running time of the script:** ( 0 minutes  0.335 seconds)
 
 
 .. _sphx_glr_download_tutorials_tensor_expr_get_started.py:
diff --git a/docs/_sources/tutorials/topi/intro_topi.rst.txt b/docs/_sources/tutorials/topi/intro_topi.rst.txt
index 94fe497..996173a 100644
--- a/docs/_sources/tutorials/topi/intro_topi.rst.txt
+++ b/docs/_sources/tutorials/topi/intro_topi.rst.txt
@@ -218,7 +218,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, 0x103c1c890), stage(b, 0x105cf1aa0), stage(T_add, 0xf30add10), stage(T_multiply, 0xf6cfb5a0), stage(T_elemwise_sum, 0xf30aa600), stage(T_divide, 0x106619d90), stage(T_divide_red.rf, 0x105cf6550), stage(T_divide_red, 0x126faa7a0)]
+    [stage(a, 0xa3d45d30), stage(b, 0x1158f53e0), stage(T_add, 0xf80cd810), stage(T_multiply, 0x116438130), stage(T_elemwise_sum, 0x1024c97d0), stage(T_divide, 0x10fc1a680), stage(T_divide_red.rf, 0xf39351d0), stage(T_divide_red, 0xf4e50f00)]
 
 
 
@@ -643,7 +643,7 @@ In this tutorial, we have seen
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.492 seconds)
+   **Total running time of the script:** ( 0 minutes  0.528 seconds)
 
 
 .. _sphx_glr_download_tutorials_topi_intro_topi.py:
diff --git a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
index 6829646..7c7c583 100644
--- a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:00.492** total execution time for **tutorials_topi** files:
+**00:00.528** total execution time for **tutorials_topi** files:
 
-- **00:00.492**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
+- **00:00.528**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
diff --git a/docs/_sources/vta/dev/config.rst.txt b/docs/_sources/vta/dev/config.rst.txt
index e9690cb..2f98d77 100644
--- a/docs/_sources/vta/dev/config.rst.txt
+++ b/docs/_sources/vta/dev/config.rst.txt
@@ -21,7 +21,7 @@ VTA Configuration
 The VTA stack incorporates both a hardware accelerator stack and
 a TVM based software stack.
 VTA incorporates flexibility out of the box: by modifying the
-``vta/vta-hw/config/vta_config.json`` high-level configuration file,
+``3rdparty/vta-hw/config/vta_config.json`` high-level configuration file,
 the user can change the shape of the tensor intrinsic,
 clock frequency, pipelining, data type width, and on-chip buffer sizes.
 
diff --git a/docs/_sources/vta/dev/hardware.rst.txt b/docs/_sources/vta/dev/hardware.rst.txt
index 84cfc45..6eb3040 100644
--- a/docs/_sources/vta/dev/hardware.rst.txt
+++ b/docs/_sources/vta/dev/hardware.rst.txt
@@ -53,17 +53,17 @@ HLS Hardware Source Organization
 
 The VTA design is currently specified in Vivado HLS C++, which is only supported
 by Xilinx toolchains.
-The VTA hardware sources are contained under ``vta/vta-hw/hardware/xilinx/sources``:
+The VTA hardware sources are contained under ``3rdparty/vta-hw/hardware/xilinx/sources``:
 
  - ``vta.cc`` contains the definitions for each VTA module, as well as a top
    level behavioral model for the top-level VTA design.
  - ``vta.h`` contains type definitions using Xilinx ``ap_int`` types, and
    function prototypes declarations.
 
-In addition preprocessor macros are defined under ``vta/vta-hw/include/vta/hw_spec.h``.
+In addition preprocessor macros are defined under ``3rdparty/vta-hw/include/vta/hw_spec.h``.
 Much of these macro definitions are derived from the parameters listed in the
-``vta/vta-hw/config/vta_config.json`` file.
-The json file is processed by ``vta/vta-hw/config/vta_config.py`` to produce a string of
+``3rdparty/vta-hw/config/vta_config.json`` file.
+The json file is processed by ``3rdparty/vta-hw/config/vta_config.py`` to produce a string of
 compile flags that define the preprocessor macros.
 That string is used by the makefile in order to set those high-level
 parameters in both the HLS hardware synthesis compiler, and the C++
@@ -220,7 +220,7 @@ Microarchitectural Overview
 ---------------------------
 
 We describe the modules that compose the VTA design.
-The module definitions are contained in ``vta/vta-hw/hardware/xilinx/sources/vta.cc``.
+The module definitions are contained in ``3rdparty/vta-hw/hardware/xilinx/sources/vta.cc``.
 
 Fetch Module
 ~~~~~~~~~~~~
diff --git a/docs/_sources/vta/install.md.txt b/docs/_sources/vta/install.md.txt
index e428514..a938a67 100644
--- a/docs/_sources/vta/install.md.txt
+++ b/docs/_sources/vta/install.md.txt
@@ -26,13 +26,13 @@ We present three installation guides, each extending on the previous one:
 
 ## VTA Simulator Installation
 
-You need [TVM installed](https://docs.tvm.ai/install/index.html) on your machine.
-For a quick and easy start, use the pre-built [TVM Docker image](https://docs.tvm.ai/install/docker.html).
+You need [TVM installed](https://tvm.apache.org/docs/install/index.html) on your machine.
+For a quick and easy start, checkout the [Docker Guide](https://tvm.apache.org/docs/install/docker.html).
 
 You'll need to set the following paths to use VTA:
 ```bash
 export TVM_PATH=<path to TVM root>
-export VTA_HW_PATH=$TVM_PATH/vta/vta-hw
+export VTA_HW_PATH=$TVM_PATH/3rdparty/vta-hw
 ```
 
 The VTA functional simulation library needs to be enabled when building TVM.
@@ -60,13 +60,13 @@ python <tvm root>/vta/tests/python/integration/test_benchmark_topi_conv2d.py
 
 > Note: You'll notice that for every convolution layer, the throughput gets reported in GOPS. These numbers are actually the computational throughput that the simulator achieves, by evaluating the convolutions in software.
 
-You are invited to try out our [VTA programming tutorials](https://docs.tvm.ai/vta/tutorials/index.html).
+You are invited to try out our [VTA programming tutorials](https://tvm.apache.org/docs/vta/tutorials/index.html).
 
 
 ### Advanced Configuration (optional)
 
 VTA is a generic configurable deep learning accelerator.
-The configuration is specified by `vta_config.json` under `vta/vta-hw/config`.
+The configuration is specified by `vta_config.json` under `3rdparty/vta-hw/config`.
 This file provides an architectural specification of the VTA accelerator to parameterize the TVM compiler stack and the VTA hardware stack.
 
 The VTA configuration file also specifies the TVM compiler target.
@@ -76,7 +76,7 @@ To do so,
 
 ```bash
 cd <tvm root>
-vim vta/vta-hw/config/vta_config.json
+vim 3rdparty/vta-hw/config/vta_config.json
 # edit vta_config.json
 make
 ```
@@ -134,7 +134,7 @@ mkdir build
 cp cmake/config.cmake build/.
 echo 'set(USE_VTA_FPGA ON)' >> build/config.cmake
 # Copy pynq specific configuration
-cp vta/vta-hw/config/pynq_sample.json vta/vta-hw/config/vta_config.json
+cp 3rdparty/vta-hw/config/pynq_sample.json 3rdparty/vta-hw/config/vta_config.json
 cd build
 cmake ..
 make runtime vta -j2
@@ -168,7 +168,7 @@ In addition, you'll need to edit the `vta_config.json` file on the host to indic
 ```bash
 # On the Host-side
 cd <tvm root>
-cp vta/vta-hw/config/pynq_sample.json vta/vta-hw/config/vta_config.json
+cp 3rdparty/vta-hw/config/pynq_sample.json 3rdparty/vta-hw/config/vta_config.json
 ```
 
 This time again, we will run the 2D convolution testbench.
@@ -193,7 +193,7 @@ python <tvm root>/vta/tests/python/integration/test_benchmark_topi_conv2d.py
 
 The performance metrics measured on the Pynq board will be reported for each convolutional layer.
 
-You can also try out our [VTA programming tutorials](https://docs.tvm.ai/vta/tutorials/index.html).
+You can also try out our [VTA programming tutorials](https://tvm.apache.org/docs/vta/tutorials/index.html).
 
 ## VTA Custom Test Setup for Intel FPGA
 
@@ -359,11 +359,11 @@ For this custom VTA bitstream compilation exercise, we'll change the frequency o
 * Set the `HW_FREQ` field to `142`. The Pynq board supports 100, 142, 167 and 200MHz clocks. Note that the higher the frequency, the harder it will be to close timing. Increasing the frequency can lead to timing violation and thus faulty hardware execution.
 * Set the `HW_CLK_TARGET` to `6`. This parameters refers to the target clock period in nano seconds for HLS - a lower clock period leads to more aggressive pipelining to achieve timing closure at higher frequencies. Technically a 142MHz clock would require a 7ns target, but we intentionally lower the clock target to 6ns to more aggressively pipeline our design.
 
-Bitstream generation is driven by a top-level `Makefile` under `<tvm root>/vta/vta-hw/hardware/xilinx/`.
+Bitstream generation is driven by a top-level `Makefile` under `<tvm root>/3rdparty/vta-hw/hardware/xilinx/`.
 
 If you just want to simulate the VTA design in software emulation to make sure that it is functional, enter:
 ```bash
-cd <tvm root>/vta/vta-hw/hardware/xilinx
+cd <tvm root>/3rdparty/vta-hw/hardware/xilinx
 make ip MODE=sim
 ```
 
@@ -371,7 +371,7 @@ If you just want to generate the HLS-based VTA IP cores without launching the en
 ```bash
 make ip
 ```
-You'll be able to view the HLS synthesis reports under `<tvm root>/vta/vta-hw/build/hardware/xilinx/hls/` `<configuration>/<block>/solution0/syn/report/<block>_csynth.rpt`
+You'll be able to view the HLS synthesis reports under `<tvm root>/3rdparty/vta-hw/build/hardware/xilinx/hls/` `<configuration>/<block>/solution0/syn/report/<block>_csynth.rpt`
 > Note: The `<configuration>` name is a string that summarizes the VTA configuration parameters listed in the `vta_config.json`. The `<block>` name refers to the specific module (or HLS function) that compose the high-level VTA pipeline.
 
 Finally to run the full hardware compilation and generate the VTA bitstream, run:
@@ -383,20 +383,20 @@ make
 This process is lengthy, and can take around up to an hour to complete depending on your machine's specs.
 We recommend setting the `VTA_HW_COMP_THREADS` variable in the Makefile to take full advantage of all the cores on your development machine.
 
-Once the compilation completes, the generated bitstream can be found under `<tvm root>/vta/vta-hw/build/hardware/xilinx/vivado/<configuration>/export/vta.bit`.
+Once the compilation completes, the generated bitstream can be found under `<tvm root>/3rdparty/vta-hw/build/hardware/xilinx/vivado/<configuration>/export/vta.bit`.
 
 ### Chisel-based Custom VTA Bitstream Compilation for DE10-Nano
 
-Similar to the HLS-based design, high-level hardware parameters in Chisel-based design are listed in the VTA configuration file [Configs.scala](https://github.com/apache/incubator-tvm/blob/master/vta/vta-hw/hardware/chisel/src/main/scala/core/Configs.scala), and they can be customized by the user.
+Similar to the HLS-based design, high-level hardware parameters in Chisel-based design are listed in the VTA configuration file [Configs.scala](https://github.com/apache/incubator-tvm/blob/master/3rdparty/vta-hw/hardware/chisel/src/main/scala/core/Configs.scala), and they can be customized by the user.
 
-For Intel FPGA, bitstream generation is driven by a top-level `Makefile` under `<tvmroot>/vta/vta-hw/hardware/intel`.
+For Intel FPGA, bitstream generation is driven by a top-level `Makefile` under `<tvm root>/3rdparty/vta-hw/hardware/intel`.
 
 If you just want to generate the Chisel-based VTA IP core for the DE10-Nano board without compiling the design for the FPGA hardware, enter:
 ```bash
-cd <tvmroot>/vta/vta-hw/hardware/intel
+cd <tvm root>/3rdparty/vta-hw/hardware/intel
 make ip
 ```
-Then you'll be able to locate the generated verilog file at `<tvmroot>/vta/vta-hw/build/hardware/intel/chisel/<configuration>/VTA.DefaultDe10Config.v`.
+Then you'll be able to locate the generated verilog file at `<tvm root>/3rdparty/vta-hw/build/hardware/intel/chisel/<configuration>/VTA.DefaultDe10Config.v`.
 
 If you would like to run the full hardware compilation for the `de10nano` board:
 ```bash
@@ -405,14 +405,14 @@ make
 
 This process might be a bit lengthy, and might take up to half an hour to complete depending on the performance of your PC. The Quartus Prime software would automatically detect the number of cores available on your PC and try to utilize all of them to perform such process.
 
-Once the compilation completes, the generated bistream can be found under `<tvmroot>vtay/vta-hw/build/hardware/intel/quartus/<configuration>/export/vta.rbf`. You can also open the Quartus project file (.qpf) available at `<tvmroot>/vta/vta-hw/build/hardware/intel/quartus/<configuration>/de10_nano_top.qpf` to look around the generated reports.
+Once the compilation completes, the generated bistream can be found under `<tvm root>/3rdparty/vta-hw/build/hardware/intel/quartus/<configuration>/export/vta.rbf`. You can also open the Quartus project file (.qpf) available at `<tvm root>/3rdparty/vta-hw/build/hardware/intel/quartus/<configuration>/de10_nano_top.qpf` to look around the generated reports.
 
 ### Use the Custom Bitstream
 
 We can program the new VTA FPGA bitstream by setting the bitstream path of the `vta.program_fpga()` function in the tutorial examples, or in the `test_program_rpc.py` script.
 
 ```python
-vta.program_fpga(remote, bitstream="<tvm root>/vta/vta-hw/build/hardware/xilinx/vivado/<configuration>/export/vta.bit")
+vta.program_fpga(remote, bitstream="<tvm root>/3rdparty/vta-hw/build/hardware/xilinx/vivado/<configuration>/export/vta.bit")
 ```
 
 Instead of downloading a pre-built bitstream from the VTA bitstream repository, TVM will instead use the new bitstream you just generated, which is a VTA design clocked at a higher frequency.
diff --git a/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
index bf97614..a768bbe 100644
--- a/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:04.362** total execution time for **vta_tutorials_autotvm** files:
+**00:05.575** total execution time for **vta_tutorials_autotvm** files:
 
-- **00:04.362**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:05.575**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
diff --git a/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt b/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
index 43363e8..76f6114 100644
--- a/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
+++ b/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
@@ -191,7 +191,7 @@ Here we use an Pynq-Z1 board as an example.
     tracker_host = os.environ.get("TVM_TRACKER_HOST", '0.0.0.0')
     tracker_port = int(os.environ.get("TVM_TRACKER_PORT", 9190))
 
-    # Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+    # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
     env = vta.get_env()
 
     # This target is used for cross compilation. You can query it by :code:`gcc -v` on your device.
@@ -481,7 +481,7 @@ Finally, we launch tuning jobs and evaluate the end-to-end performance.
  .. code-block:: none
 
     Extract tasks...
-
    ...1%, 0.01 MB, 48 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 96 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 145 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 192 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 239 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 287 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 334 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 380 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 427 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 472 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 519 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 565 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 612 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 655 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 701 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 747 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 792 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 837 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 883 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 928 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 974 KB/s, 0 seconds passed
 
    ...23%, 0.17 MB, 1017 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 1063 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 1106 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 1152 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 1196 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 1241 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 1284 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 1329 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 1371 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 1416 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 1458 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 1503 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 1546 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 1590 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 1631 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 1676 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 1718 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 1763 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 1805 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 1849 KB/s, 0 seconds passed
    ...45%, 0.33
  MB, 1888 KB/s, 0 seconds passed
    ...46%, 0.34 MB, 1932 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 1974 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 2018 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 2056 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 2099 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 2142 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 2186 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 2229 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 2272 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 2311 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 2354 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 2395 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 2438 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 2479 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 2522 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 2562 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 2604 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 2642 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 2684 KB/s, 0 seconds passed
    ...67%, 0.48 MB, 2725 KB/s, 0
  seconds passed
    ...68%, 0.49 MB, 2767 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 2808 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 2850 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 2891 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 2933 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 2973 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 3015 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 3056 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 3098 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 3135 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 3177 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 3218 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 3260 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 3301 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 3343 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 3379 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 3420 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 3461 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 3502 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 3537 KB/s, 0 seconds passed
 
    ...90%, 0.65 MB, 3578 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 3619 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 3660 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 3700 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 3742 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 3782 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 3823 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 3858 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 3899 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 3937 KB/s, 0 seconds passed
+
    ...1%, 0.01 MB, 35 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 70 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 104 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 136 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 170 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 203 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 237 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 270 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 304 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 336 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 369 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 398 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 431 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 463 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 496 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 527 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 560 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 593 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 626 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 657 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 689 KB/s, 0 seconds passed
 
    ...23%, 0.17 MB, 720 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 752 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 785 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 817 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 840 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 872 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 905 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 937 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 968 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 1000 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 1031 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 1063 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 1093 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 1124 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 1156 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 1188 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 1217 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 1249 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 1280 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 1312 KB/s, 0 seconds passed
    ...45%, 0.33 MB, 1343
  KB/s, 0 seconds passed
    ...46%, 0.34 MB, 1375 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 1407 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 1438 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 1467 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 1498 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 1530 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 1561 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 1578 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 1609 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 1640 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 1671 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 1699 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 1730 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 1761 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 1792 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 1820 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 1851 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 1882 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 1913 KB/s, 0 seconds passed
    ...67%, 0.48 MB, 1937 KB/s, 0 seconds 
 passed
    ...68%, 0.49 MB, 1968 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 1998 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 2029 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 2058 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 2088 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 2119 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 2150 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 2177 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 2207 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 2238 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 2268 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 2292 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 2323 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 2342 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 2372 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 2395 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 2425 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 2455 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 2485 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 2515 KB/s, 0 seconds passed
    ...90%
 , 0.65 MB, 2545 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 2572 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 2602 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 2631 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 2661 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 2684 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 2713 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 2743 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 2773 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 2802 KB/s, 0 seconds passed
     Extracted 10 conv2d tasks:
     (1, 14, 14, 256, 512, 1, 1, 0, 0, 2, 2)
     (1, 28, 28, 128, 256, 1, 1, 0, 0, 2, 2)
@@ -554,7 +554,7 @@ It takes about 2 hours on a 16T CPU, and 6 Pynq boards.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  4.362 seconds)
+   **Total running time of the script:** ( 0 minutes  5.575 seconds)
 
 
 .. _sphx_glr_download_vta_tutorials_autotvm_tune_relay_vta.py:
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
index 1da6583..58accc5 100644
--- a/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -71,7 +71,7 @@ Execute on CPU vs. VTA, and define the model.
 .. code-block:: default
 
 
-    # Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+    # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
     env = vta.get_env()
 
     # Set ``device=arm_cpu`` to run inference on the CPU
@@ -243,8 +243,8 @@ The compilation steps are:
 
  .. code-block:: none
 
-
    ...12%, 0.01 MB, 19 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 39 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 59 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 78 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 98 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 117 KB/s, 0 seconds passed
    ...90%, 0.05 MB, 137 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 156 KB/s, 0 seconds passed
-    resnet18_v1 inference graph built in 5.76s!
+
    ...12%, 0.01 MB, 33 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 65 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 98 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 128 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 160 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 191 KB/s, 0 seconds passed
    ...90%, 0.05 MB, 222 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 254 KB/s, 0 seconds passed
+    resnet18_v1 inference graph built in 5.68s!
 
 
 
@@ -364,7 +364,7 @@ and an input test image.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  27.929 seconds)
+   **Total running time of the script:** ( 0 minutes  25.108 seconds)
 
 
 .. _sphx_glr_download_vta_tutorials_frontend_deploy_classification.py:
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
index dfc7f2e..e3a5ad6 100644
--- a/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -151,7 +151,7 @@ Execute on CPU vs. VTA, and define the model.
 .. code-block:: default
 
 
-    # Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+    # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
     env = vta.get_env()
     # Set ``device=arm_cpu`` to run inference on the CPU
     # or ``device=vta`` to run inference on the FPGA.
@@ -315,7 +315,7 @@ The compilation steps are:
 
  .. code-block:: none
 
-    yolov3-tiny inference graph built in 6.96s!
+    yolov3-tiny inference graph built in 6.79s!
 
 
 
@@ -432,7 +432,7 @@ Download test image
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  34.708 seconds)
+   **Total running time of the script:** ( 0 minutes  37.287 seconds)
 
 
 .. _sphx_glr_download_vta_tutorials_frontend_deploy_detection.py:
diff --git a/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
index 9b5cc34..1790223 100644
--- a/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**01:02.636** total execution time for **vta_tutorials_frontend** files:
+**01:02.396** total execution time for **vta_tutorials_frontend** files:
 
-- **00:34.708**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
-- **00:27.929**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
+- **00:37.287**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
+- **00:25.108**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
diff --git a/docs/_sources/vta/tutorials/matrix_multiply.rst.txt b/docs/_sources/vta/tutorials/matrix_multiply.rst.txt
index 20e0d2f..d658a4f 100644
--- a/docs/_sources/vta/tutorials/matrix_multiply.rst.txt
+++ b/docs/_sources/vta/tutorials/matrix_multiply.rst.txt
@@ -37,7 +37,7 @@ as we did in the VTA introductory tutorial.
     from tvm.contrib import util
     from vta.testing import simulator
 
-    # Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+    # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
     env = vta.get_env()
 
     # We read the Pynq RPC host IP address and port number from the OS environment
@@ -722,7 +722,7 @@ The general workflow includes:
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.349 seconds)
+   **Total running time of the script:** ( 0 minutes  0.403 seconds)
 
 
 .. _sphx_glr_download_vta_tutorials_matrix_multiply.py:
diff --git a/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt b/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
index eca7fdb..f22d768 100644
--- a/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
@@ -41,7 +41,7 @@ We start by programming the Pynq's FPGA and building its RPC runtime.
     from tvm.contrib import util
     from vta.testing import simulator
 
-    # Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+    # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
     env = vta.get_env()
 
     # We read the Pynq RPC host IP address and port number from the OS environment
@@ -869,7 +869,7 @@ virtual threading.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  2.598 seconds)
+   **Total running time of the script:** ( 0 minutes  3.110 seconds)
 
 
 .. _sphx_glr_download_vta_tutorials_optimize_convolution_opt.py:
diff --git a/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt b/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
index 6ff494e..bd2dd3a 100644
--- a/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
@@ -40,7 +40,7 @@ We start by programming the Pynq's FPGA and building its RPC runtime.
     from tvm.contrib import util
     from vta.testing import simulator
 
-    # Load VTA parameters from the vta/vta-hw/config/vta_config.json file
+    # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
     env = vta.get_env()
 
     # We read the Pynq RPC host IP address and port number from the OS environment
@@ -689,7 +689,7 @@ hardware accelerator resources.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.392 seconds)
+   **Total running time of the script:** ( 0 minutes  0.448 seconds)
 
 
 .. _sphx_glr_download_vta_tutorials_optimize_matrix_multiply_opt.py:
diff --git a/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
index 5f01dab..a9edca1 100644
--- a/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:02.990** total execution time for **vta_tutorials_optimize** files:
+**00:03.558** total execution time for **vta_tutorials_optimize** files:
 
-- **00:02.598**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
-- **00:00.392**: :ref:`sphx_glr_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
+- **00:03.110**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.448**: :ref:`sphx_glr_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
diff --git a/docs/_sources/vta/tutorials/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
index 2115e4b..d7eed32 100644
--- a/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:00.690** total execution time for **vta_tutorials** files:
+**00:00.789** total execution time for **vta_tutorials** files:
 
-- **00:00.349**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
-- **00:00.341**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
+- **00:00.403**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.386**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
diff --git a/docs/_sources/vta/tutorials/vta_get_started.rst.txt b/docs/_sources/vta/tutorials/vta_get_started.rst.txt
index ae36821..e6f4da3 100644
--- a/docs/_sources/vta/tutorials/vta_get_started.rst.txt
+++ b/docs/_sources/vta/tutorials/vta_get_started.rst.txt
@@ -612,7 +612,7 @@ and other features supported by TVM to program VTA.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 0 minutes  0.341 seconds)
+   **Total running time of the script:** ( 0 minutes  0.386 seconds)
 
 
 .. _sphx_glr_download_vta_tutorials_vta_get_started.py:
diff --git a/docs/api/python/relay/transform.html b/docs/api/python/relay/transform.html
index ae12d9f..97b4ecb 100644
--- a/docs/api/python/relay/transform.html
+++ b/docs/api/python/relay/transform.html
@@ -284,52 +284,55 @@
 <tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.Legalize" title="tvm.relay.transform.Legalize"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Legalize</span></code></a>([legalize_map_attr_name])</p></td>
 <td><p>Legalizes an expression with another expression.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.MergeComposite" title="tvm.relay.transform.MergeComposite"><code class="xref py py-obj docutils literal notranslate"><span class="pre">MergeComposite</span></code></a>(pattern_table)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.MergeCompilerRegions" title="tvm.relay.transform.MergeCompilerRegions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">MergeCompilerRegions</span></code></a>()</p></td>
+<td><p>Merge together compiler regions.</p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.MergeComposite" title="tvm.relay.transform.MergeComposite"><code class="xref py py-obj docutils literal notranslate"><span class="pre">MergeComposite</span></code></a>(pattern_table)</p></td>
 <td><p>Merge multiple operators into a single composite relay function.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.PartialEvaluate" title="tvm.relay.transform.PartialEvaluate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PartialEvaluate</span></code></a>()</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.PartialEvaluate" title="tvm.relay.transform.PartialEvaluate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PartialEvaluate</span></code></a>()</p></td>
 <td><p>Evaluate the static fragment of the code.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.PartitionGraph" title="tvm.relay.transform.PartitionGraph"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PartitionGraph</span></code></a>()</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.PartitionGraph" title="tvm.relay.transform.PartitionGraph"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PartitionGraph</span></code></a>()</p></td>
 <td><p>Partition a Relay program into regions that can be executed on different backends.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.PrintIR" title="tvm.relay.transform.PrintIR"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PrintIR</span></code></a>([show_meta_data])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.PrintIR" title="tvm.relay.transform.PrintIR"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PrintIR</span></code></a>([show_meta_data])</p></td>
 <td><p>Print the IR for a module to help debugging.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.RemoveUnusedFunctions" title="tvm.relay.transform.RemoveUnusedFunctions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RemoveUnusedFunctions</span></code></a>([entry_functions])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.RemoveUnusedFunctions" title="tvm.relay.transform.RemoveUnusedFunctions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RemoveUnusedFunctions</span></code></a>([entry_functions])</p></td>
 <td><p>Remove unused global relay functions in a relay module.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.RewriteAnnotatedOps" title="tvm.relay.transform.RewriteAnnotatedOps"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RewriteAnnotatedOps</span></code></a>(fallback_device)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.RewriteAnnotatedOps" title="tvm.relay.transform.RewriteAnnotatedOps"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RewriteAnnotatedOps</span></code></a>(fallback_device)</p></td>
 <td><p>Rewrite the annotated program where annotation operators, e.g.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.SimplifyInference" title="tvm.relay.transform.SimplifyInference"><code class="xref py py-obj docutils literal notranslate"><span class="pre">SimplifyInference</span></code></a>()</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.SimplifyInference" title="tvm.relay.transform.SimplifyInference"><code class="xref py py-obj docutils literal notranslate"><span class="pre">SimplifyInference</span></code></a>()</p></td>
 <td><p>Simplify the data-flow graph for inference phase.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.ToANormalForm" title="tvm.relay.transform.ToANormalForm"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ToANormalForm</span></code></a>()</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.ToANormalForm" title="tvm.relay.transform.ToANormalForm"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ToANormalForm</span></code></a>()</p></td>
 <td><p>Turn Graph Normal Form expression into A Normal Form Expression.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.ToCPS" title="tvm.relay.transform.ToCPS"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ToCPS</span></code></a>(expr[, mod])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.ToCPS" title="tvm.relay.transform.ToCPS"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ToCPS</span></code></a>(expr[, mod])</p></td>
 <td><p>Turn expression into continuation passing style(CPS).</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.ToGraphNormalForm" title="tvm.relay.transform.ToGraphNormalForm"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ToGraphNormalForm</span></code></a>()</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.ToGraphNormalForm" title="tvm.relay.transform.ToGraphNormalForm"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ToGraphNormalForm</span></code></a>()</p></td>
 <td><p>Turn a Relay program in A Normal Form into Graph Normal Form</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.build_config" title="tvm.relay.transform.build_config"><code class="xref py py-obj docutils literal notranslate"><span class="pre">build_config</span></code></a>([opt_level, fallback_device, …])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.build_config" title="tvm.relay.transform.build_config"><code class="xref py py-obj docutils literal notranslate"><span class="pre">build_config</span></code></a>([opt_level, fallback_device, …])</p></td>
 <td><p>Configure the build behavior by setting config variables.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.function_pass" title="tvm.relay.transform.function_pass"><code class="xref py py-obj docutils literal notranslate"><span class="pre">function_pass</span></code></a>([pass_func, opt_level, name, …])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.function_pass" title="tvm.relay.transform.function_pass"><code class="xref py py-obj docutils literal notranslate"><span class="pre">function_pass</span></code></a>([pass_func, opt_level, name, …])</p></td>
 <td><p>Decorate a function pass.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.gradient" title="tvm.relay.transform.gradient"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gradient</span></code></a>(expr[, mod, mode])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.gradient" title="tvm.relay.transform.gradient"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gradient</span></code></a>(expr[, mod, mode])</p></td>
 <td><p>Transform the input function, returning a function that calculate the original result, paired with gradient of the input.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.module_pass" title="tvm.relay.transform.module_pass"><code class="xref py py-obj docutils literal notranslate"><span class="pre">module_pass</span></code></a>([pass_func, opt_level, name, …])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.module_pass" title="tvm.relay.transform.module_pass"><code class="xref py py-obj docutils literal notranslate"><span class="pre">module_pass</span></code></a>([pass_func, opt_level, name, …])</p></td>
 <td><p>Decorate a module pass.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.to_cps" title="tvm.relay.transform.to_cps"><code class="xref py py-obj docutils literal notranslate"><span class="pre">to_cps</span></code></a>(func[, mod])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.to_cps" title="tvm.relay.transform.to_cps"><code class="xref py py-obj docutils literal notranslate"><span class="pre">to_cps</span></code></a>(func[, mod])</p></td>
 <td><p>Turn expression into CPS expression.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.transform.un_cps" title="tvm.relay.transform.un_cps"><code class="xref py py-obj docutils literal notranslate"><span class="pre">un_cps</span></code></a>(func)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.transform.un_cps" title="tvm.relay.transform.un_cps"><code class="xref py py-obj docutils literal notranslate"><span class="pre">un_cps</span></code></a>(func)</p></td>
 <td><p>Turn an cps function into a Function without the continuation argument.</p></td>
 </tr>
 </tbody>
@@ -764,6 +767,20 @@ can be used to legalize the expr in a target-dependent manner.</p>
 </dd></dl>
 
 <dl class="function">
+<dt id="tvm.relay.transform.MergeCompilerRegions">
+<code class="sig-prename descclassname">tvm.relay.transform.</code><code class="sig-name descname">MergeCompilerRegions</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.transform.MergeCompilerRegions" title="Permalink to this definition">¶</a></dt>
+<dd><p>Merge together compiler regions.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p><strong>ret</strong> – The registered pass that merges compiler regions.</p>
+</dd>
+<dt class="field-even">Return type</dt>
+<dd class="field-even"><p>tvm.relay.Pass</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="function">
 <dt id="tvm.relay.transform.MergeComposite">
 <code class="sig-prename descclassname">tvm.relay.transform.</code><code class="sig-name descname">MergeComposite</code><span class="sig-paren">(</span><em class="sig-param">pattern_table</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.transform.MergeComposite" title="Permalink to this definition">¶</a></dt>
 <dd><p>Merge multiple operators into a single composite relay function.</p>
diff --git a/docs/api/python/te.html b/docs/api/python/te.html
index 5ce6ace..2061566 100644
--- a/docs/api/python/te.html
+++ b/docs/api/python/te.html
@@ -304,103 +304,106 @@
 <tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.fmod" title="tvm.te.fmod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">fmod</span></code></a>(x, y)</p></td>
 <td><p>Return the remainder of x divided by y with the same sign as x.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.if_then_else" title="tvm.te.if_then_else"><code class="xref py py-obj docutils literal notranslate"><span class="pre">if_then_else</span></code></a>(cond, t, f)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.gradient" title="tvm.te.gradient"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gradient</span></code></a>(output, inputs[, head])</p></td>
+<td><p>Perform reverse-mode automatic differentiation.</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.if_then_else" title="tvm.te.if_then_else"><code class="xref py py-obj docutils literal notranslate"><span class="pre">if_then_else</span></code></a>(cond, t, f)</p></td>
 <td><p>Conditional selection expression.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.indexdiv" title="tvm.te.indexdiv"><code class="xref py py-obj docutils literal notranslate"><span class="pre">indexdiv</span></code></a>(a, b)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.indexdiv" title="tvm.te.indexdiv"><code class="xref py py-obj docutils literal notranslate"><span class="pre">indexdiv</span></code></a>(a, b)</p></td>
 <td><p>Compute floor(a / b) where a and b are non-negative.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.indexmod" title="tvm.te.indexmod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">indexmod</span></code></a>(a, b)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.indexmod" title="tvm.te.indexmod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">indexmod</span></code></a>(a, b)</p></td>
 <td><p>Compute the remainder of indexdiv.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.isfinite" title="tvm.te.isfinite"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isfinite</span></code></a>(x)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.isfinite" title="tvm.te.isfinite"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isfinite</span></code></a>(x)</p></td>
 <td><p>Check if input value is finite.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.isinf" title="tvm.te.isinf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isinf</span></code></a>(x)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.isinf" title="tvm.te.isinf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isinf</span></code></a>(x)</p></td>
 <td><p>Check if input value is infinite.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.isnan" title="tvm.te.isnan"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isnan</span></code></a>(x)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.isnan" title="tvm.te.isnan"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isnan</span></code></a>(x)</p></td>
 <td><p>Check if input value is Nan.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.log" title="tvm.te.log"><code class="xref py py-obj docutils literal notranslate"><span class="pre">log</span></code></a>(x)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.log" title="tvm.te.log"><code class="xref py py-obj docutils literal notranslate"><span class="pre">log</span></code></a>(x)</p></td>
 <td><p>Take log of input x.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.max" title="tvm.te.max"><code class="xref py py-obj docutils literal notranslate"><span class="pre">max</span></code></a>(expr, axis[, where])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.max" title="tvm.te.max"><code class="xref py py-obj docutils literal notranslate"><span class="pre">max</span></code></a>(expr, axis[, where])</p></td>
 <td><p>Create a max expression over axis.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.max_value" title="tvm.te.max_value"><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_value</span></code></a>(dtype)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.max_value" title="tvm.te.max_value"><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_value</span></code></a>(dtype)</p></td>
 <td><p>maximum value of dtype</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.min" title="tvm.te.min"><code class="xref py py-obj docutils literal notranslate"><span class="pre">min</span></code></a>(expr, axis[, where])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.min" title="tvm.te.min"><code class="xref py py-obj docutils literal notranslate"><span class="pre">min</span></code></a>(expr, axis[, where])</p></td>
 <td><p>Create a min expression over axis.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.min_value" title="tvm.te.min_value"><code class="xref py py-obj docutils literal notranslate"><span class="pre">min_value</span></code></a>(dtype)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.min_value" title="tvm.te.min_value"><code class="xref py py-obj docutils literal notranslate"><span class="pre">min_value</span></code></a>(dtype)</p></td>
 <td><p>minimum value of dtype</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.nearbyint" title="tvm.te.nearbyint"><code class="xref py py-obj docutils literal notranslate"><span class="pre">nearbyint</span></code></a>(x)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.nearbyint" title="tvm.te.nearbyint"><code class="xref py py-obj docutils literal notranslate"><span class="pre">nearbyint</span></code></a>(x)</p></td>
 <td><p>Round elements of the array to the nearest integer.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.placeholder" title="tvm.te.placeholder"><code class="xref py py-obj docutils literal notranslate"><span class="pre">placeholder</span></code></a>(shape[, dtype, name])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.placeholder" title="tvm.te.placeholder"><code class="xref py py-obj docutils literal notranslate"><span class="pre">placeholder</span></code></a>(shape[, dtype, name])</p></td>
 <td><p>Construct an empty tensor object.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.popcount" title="tvm.te.popcount"><code class="xref py py-obj docutils literal notranslate"><span class="pre">popcount</span></code></a>(x)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.popcount" title="tvm.te.popcount"><code class="xref py py-obj docutils literal notranslate"><span class="pre">popcount</span></code></a>(x)</p></td>
 <td><p>Count the number of set bits in input x.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.power" title="tvm.te.power"><code class="xref py py-obj docutils literal notranslate"><span class="pre">power</span></code></a>(x, y)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.power" title="tvm.te.power"><code class="xref py py-obj docutils literal notranslate"><span class="pre">power</span></code></a>(x, y)</p></td>
 <td><p>x power y</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.reduce_axis" title="tvm.te.reduce_axis"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reduce_axis</span></code></a>(dom[, name])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.reduce_axis" title="tvm.te.reduce_axis"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reduce_axis</span></code></a>(dom[, name])</p></td>
 <td><p>Create a new IterVar for reduction.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.round" title="tvm.te.round"><code class="xref py py-obj docutils literal notranslate"><span class="pre">round</span></code></a>(x)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.round" title="tvm.te.round"><code class="xref py py-obj docutils literal notranslate"><span class="pre">round</span></code></a>(x)</p></td>
 <td><p>Round elements of the array to the nearest integer.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.rsqrt" title="tvm.te.rsqrt"><code class="xref py py-obj docutils literal notranslate"><span class="pre">rsqrt</span></code></a>(x)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.rsqrt" title="tvm.te.rsqrt"><code class="xref py py-obj docutils literal notranslate"><span class="pre">rsqrt</span></code></a>(x)</p></td>
 <td><p>Take reciprocal of square root of input x.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.scan" title="tvm.te.scan"><code class="xref py py-obj docutils literal notranslate"><span class="pre">scan</span></code></a>(init, update, state_placeholder[, …])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.scan" title="tvm.te.scan"><code class="xref py py-obj docutils literal notranslate"><span class="pre">scan</span></code></a>(init, update, state_placeholder[, …])</p></td>
 <td><p>Construct new tensors by scanning over axis.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.sigmoid" title="tvm.te.sigmoid"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sigmoid</span></code></a>(x)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.sigmoid" title="tvm.te.sigmoid"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sigmoid</span></code></a>(x)</p></td>
 <td><p>Quick function to get sigmoid</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.sin" title="tvm.te.sin"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sin</span></code></a>(x)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.sin" title="tvm.te.sin"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sin</span></code></a>(x)</p></td>
 <td><p>Take sin of input x.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.size_var" title="tvm.te.size_var"><code class="xref py py-obj docutils literal notranslate"><span class="pre">size_var</span></code></a>([name, dtype])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.size_var" title="tvm.te.size_var"><code class="xref py py-obj docutils literal notranslate"><span class="pre">size_var</span></code></a>([name, dtype])</p></td>
 <td><p>Create a new variable represents a tensor shape size, which is non-negative.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.sqrt" title="tvm.te.sqrt"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sqrt</span></code></a>(x)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.sqrt" title="tvm.te.sqrt"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sqrt</span></code></a>(x)</p></td>
 <td><p>Take square root of input x.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.sum" title="tvm.te.sum"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sum</span></code></a>(expr, axis[, where])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.sum" title="tvm.te.sum"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sum</span></code></a>(expr, axis[, where])</p></td>
 <td><p>Create a sum expression over axis.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.tag_scope" title="tvm.te.tag_scope"><code class="xref py py-obj docutils literal notranslate"><span class="pre">tag_scope</span></code></a>(tag)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.tag_scope" title="tvm.te.tag_scope"><code class="xref py py-obj docutils literal notranslate"><span class="pre">tag_scope</span></code></a>(tag)</p></td>
 <td><p>The operator tag scope.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.tan" title="tvm.te.tan"><code class="xref py py-obj docutils literal notranslate"><span class="pre">tan</span></code></a>(x)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.tan" title="tvm.te.tan"><code class="xref py py-obj docutils literal notranslate"><span class="pre">tan</span></code></a>(x)</p></td>
 <td><p>Take tan of input x.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.tanh" title="tvm.te.tanh"><code class="xref py py-obj docutils literal notranslate"><span class="pre">tanh</span></code></a>(x)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.tanh" title="tvm.te.tanh"><code class="xref py py-obj docutils literal notranslate"><span class="pre">tanh</span></code></a>(x)</p></td>
 <td><p>Take hyperbolic tanh of input x.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.thread_axis" title="tvm.te.thread_axis"><code class="xref py py-obj docutils literal notranslate"><span class="pre">thread_axis</span></code></a>([dom, tag, name])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.thread_axis" title="tvm.te.thread_axis"><code class="xref py py-obj docutils literal notranslate"><span class="pre">thread_axis</span></code></a>([dom, tag, name])</p></td>
 <td><p>Create a new IterVar to represent thread index.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.trace" title="tvm.te.trace"><code class="xref py py-obj docutils literal notranslate"><span class="pre">trace</span></code></a>(args[, trace_action])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.trace" title="tvm.te.trace"><code class="xref py py-obj docutils literal notranslate"><span class="pre">trace</span></code></a>(args[, trace_action])</p></td>
 <td><p>Trace tensor data at the runtime.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.trunc" title="tvm.te.trunc"><code class="xref py py-obj docutils literal notranslate"><span class="pre">trunc</span></code></a>(x)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.trunc" title="tvm.te.trunc"><code class="xref py py-obj docutils literal notranslate"><span class="pre">trunc</span></code></a>(x)</p></td>
 <td><p>Get truncated value of the input.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.truncdiv" title="tvm.te.truncdiv"><code class="xref py py-obj docutils literal notranslate"><span class="pre">truncdiv</span></code></a>(a, b)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.truncdiv" title="tvm.te.truncdiv"><code class="xref py py-obj docutils literal notranslate"><span class="pre">truncdiv</span></code></a>(a, b)</p></td>
 <td><p>Compute the truncdiv of two expressions.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.truncmod" title="tvm.te.truncmod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">truncmod</span></code></a>(a, b)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.truncmod" title="tvm.te.truncmod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">truncmod</span></code></a>(a, b)</p></td>
 <td><p>Compute the truncmod of two expressions.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.te.var" title="tvm.te.var"><code class="xref py py-obj docutils literal notranslate"><span class="pre">var</span></code></a>([name, dtype])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.te.var" title="tvm.te.var"><code class="xref py py-obj docutils literal notranslate"><span class="pre">var</span></code></a>([name, dtype])</p></td>
 <td><p>Create a new variable with specified name and dtype</p></td>
 </tr>
 </tbody>
@@ -2335,6 +2338,48 @@ When str is passed, dom is set to None and str is used as tag</p></li>
 
 </dd></dl>
 
+<dl class="function">
+<dt id="tvm.te.gradient">
+<code class="sig-prename descclassname">tvm.te.</code><code class="sig-name descname">gradient</code><span class="sig-paren">(</span><em class="sig-param">output</em>, <em class="sig-param">inputs</em>, <em class="sig-param">head=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.te.gradient" title="Permalink to this definition">¶</a></dt>
+<dd><p>Perform reverse-mode automatic differentiation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>output</strong> (<a class="reference internal" href="#tvm.te.Tensor" title="tvm.te.Tensor"><em>Tensor</em></a>) – The tensor to differentiate.</p></li>
+<li><p><strong>inputs</strong> (<em>List</em><em>[</em><a class="reference internal" href="#tvm.te.Tensor" title="tvm.te.Tensor"><em>Tensor</em></a><em>]</em>) – The list of input tensors to be differentiated wrt.</p></li>
+<li><p><strong>head</strong> (<a class="reference internal" href="#tvm.te.Tensor" title="tvm.te.Tensor"><em>Tensor</em></a>) – The adjoint of the output, in other words, some tensor, by which the Jacobians
+will be multiplied. Its shape must be of the form <cite>prefix + output.shape</cite>.
+If <cite>None</cite> is passed, the identity tensor of shape <cite>output.shape + output.shape</cite>
+will be used.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p><strong>tensors</strong> – The result gradient, in the same order as the inputs</p>
+</dd>
+<dt class="field-odd">Return type</dt>
+<dd class="field-odd"><p>List[<a class="reference internal" href="#tvm.te.Tensor" title="tvm.te.Tensor">Tensor</a>]</p>
+</dd>
+</dl>
+<p class="rubric">Example</p>
+<div class="highlight-python notranslate"><div class="highlight"><pre><span class="n">x</span> <span class="o">=</span> <span class="n">tvm</span><span class="o">.</span><span class="n">placeholder</span><span class="p">((</span><span class="mi">32</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">28</span><span class="p">,</span> <span class="mi">28</span><span class="p">),</span> <span class="n">name</span><span class="o">=</span><span cl [...]
+<span class="n">w1</span> <span class="o">=</span> <span class="n">tvm</span><span class="o">.</span><span class="n">placeholder</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;w1&#39;</span><span class="p">)</span>
+<span class="n">w2</span> <span class="o">=</span> <span class="n">tvm</span><span class="o">.</span><span class="n">placeholder</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;w2&#39;</span><span class="p">)</span>
+<span class="n">z1</span> <span class="o">=</span> <span class="n">topi</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">conv2d</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">w1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+<span class="n">z2</span> <span class="o">=</span> <span class="n">topi</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">conv2d</span><span class="p">(</span><span class="n">z1</span><span class="p">,</span> <span class="n">w2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+<span class="n">y</span> <span class="o">=</span> <span class="n">topi</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">z2</span><span class="p">)</span>
+
+<span class="c1"># produce gradients</span>
+<span class="p">[</span><span class="n">dw1</span><span class="p">,</span> <span class="n">dw2</span><span class="p">]</span> <span class="o">=</span> <span class="n">tvm</span><span class="o">.</span><span class="n">gradient</span><span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="p">[</span><span class="n">w1</span><span class="p">,</span> <span class="n">w2</span><span class="p">])</span>
+
+<span class="c1"># produce Jacobians</span>
+<span class="p">[</span><span class="n">jw1</span><span class="p">,</span> <span class="n">jw2</span><span class="p">]</span> <span class="o">=</span> <span class="n">tvm</span><span class="o">.</span><span class="n">gradient</span><span class="p">(</span><span class="n">z2</span><span class="p">,</span> <span class="p">[</span><span class="n">w1</span><span class="p">,</span> <span class="n">w2</span><span class="p">])</span>
+
+<span class="c1"># produce gradients, the head adjoint for z2 is provided manually</span>
+<span class="p">[</span><span class="n">dw1</span><span class="p">,</span> <span class="n">dw2</span><span class="p">]</span> <span class="o">=</span> <span class="n">tvm</span><span class="o">.</span><span class="n">gradient</span><span class="p">(</span><span class="n">z2</span><span class="p">,</span> <span class="p">[</span><span class="n">w1</span><span class="p">,</span> <span class="n">w2</span><span class="p">],</span> <span class="n">topi</span><span class="o">.</span><span clas [...]
+</pre></div>
+</div>
+</dd></dl>
+
 </div>
 
 
diff --git a/docs/api/python/tir.html b/docs/api/python/tir.html
index 3e1ac44..a5a8962 100644
--- a/docs/api/python/tir.html
+++ b/docs/api/python/tir.html
@@ -2858,7 +2858,16 @@ specified axis;</p></li>
 <tr class="row-odd"><td><p><a class="reference internal" href="#tvm.tir.transform.CombineContextCall" title="tvm.tir.transform.CombineContextCall"><code class="xref py py-obj docutils literal notranslate"><span class="pre">CombineContextCall</span></code></a>()</p></td>
 <td><p>Combine context calls in the host function.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.tir.transform.prim_func_pass" title="tvm.tir.transform.prim_func_pass"><code class="xref py py-obj docutils literal notranslate"><span class="pre">prim_func_pass</span></code></a>([pass_func, opt_level, name, …])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.tir.transform.LowerDeviceStorageAccessInfo" title="tvm.tir.transform.LowerDeviceStorageAccessInfo"><code class="xref py py-obj docutils literal notranslate"><span class="pre">LowerDeviceStorageAccessInfo</span></code></a>()</p></td>
+<td><p>Lower attached storage access information on device.</p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.tir.transform.LowerIntrin" title="tvm.tir.transform.LowerIntrin"><code class="xref py py-obj docutils literal notranslate"><span class="pre">LowerIntrin</span></code></a>()</p></td>
+<td><p>Lower target specific intrinsic calls.</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.tir.transform.LowerWarpMemory" title="tvm.tir.transform.LowerWarpMemory"><code class="xref py py-obj docutils literal notranslate"><span class="pre">LowerWarpMemory</span></code></a>()</p></td>
+<td><p>Lower warp memory access to low-level device related function calls.</p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.tir.transform.prim_func_pass" title="tvm.tir.transform.prim_func_pass"><code class="xref py py-obj docutils literal notranslate"><span class="pre">prim_func_pass</span></code></a>([pass_func, opt_level, name, …])</p></td>
 <td><p>Decorate a function pass.</p></td>
 </tr>
 </tbody>
@@ -2956,6 +2965,52 @@ pass class should be created through py:func:<cite>tvm.tir.transform.function_pa
 </dl>
 </dd></dl>
 
+<dl class="function">
+<dt id="tvm.tir.transform.LowerDeviceStorageAccessInfo">
+<code class="sig-prename descclassname">tvm.tir.transform.</code><code class="sig-name descname">LowerDeviceStorageAccessInfo</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.tir.transform.LowerDeviceStorageAccessInfo" title="Permalink to this definition">¶</a></dt>
+<dd><p>Lower attached storage access information on device.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p><strong>fpass</strong> – The result pass</p>
+</dd>
+<dt class="field-even">Return type</dt>
+<dd class="field-even"><p>tvm.ir.transform.Pass</p>
+</dd>
+</dl>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>Run this pass after all storage access analysis finish.</p>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="tvm.tir.transform.LowerIntrin">
+<code class="sig-prename descclassname">tvm.tir.transform.</code><code class="sig-name descname">LowerIntrin</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.tir.transform.LowerIntrin" title="Permalink to this definition">¶</a></dt>
+<dd><p>Lower target specific intrinsic calls.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p><strong>fpass</strong> – The result pass</p>
+</dd>
+<dt class="field-even">Return type</dt>
+<dd class="field-even"><p>tvm.ir.transform.Pass</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="function">
+<dt id="tvm.tir.transform.LowerWarpMemory">
+<code class="sig-prename descclassname">tvm.tir.transform.</code><code class="sig-name descname">LowerWarpMemory</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.tir.transform.LowerWarpMemory" title="Permalink to this definition">¶</a></dt>
+<dd><p>Lower warp memory access to low-level device related function calls.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p><strong>fpass</strong> – The result pass</p>
+</dd>
+<dt class="field-even">Return type</dt>
+<dd class="field-even"><p>tvm.ir.transform.Pass</p>
+</dd>
+</dl>
+</dd></dl>
+
 </div>
 
 
diff --git a/docs/doxygen/bound_8h.html b/docs/doxygen/autodiff_8h.html
similarity index 57%
copy from docs/doxygen/bound_8h.html
copy to docs/doxygen/autodiff_8h.html
index d11d8be..8ead41c 100644
--- a/docs/doxygen/bound_8h.html
+++ b/docs/doxygen/autodiff_8h.html
@@ -4,7 +4,7 @@
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.11"/>
-<title>tvm: include/tvm/arith/bound.h File Reference</title>
+<title>tvm: include/tvm/te/autodiff.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -81,7 +81,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_b4c7d8e826c599ba55146c099a14beb5.html">tvm</a></li><li class="navelem"><a class="el" href="dir_194ecda214f05a38134392ac6a69b970.html">arith</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_b4c7d8e826c599ba55146c099a14beb5.html">tvm</a></li><li class="navelem"><a class="el" href="dir_f97d855a3173728370e632aa77170e34.html">te</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -89,32 +89,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <a href="#namespaces">Namespaces</a> &#124;
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">bound.h File Reference</div>  </div>
+<div class="title">autodiff.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p>Bound deducers.  
+<p>Automatic differentiation of tensor expressions.  
 <a href="#details">More...</a></p>
-<div class="textblock"><code>#include &lt;<a class="el" href="node_2container_8h_source.html">tvm/node/container.h</a>&gt;</code><br />
-<code>#include &lt;<a class="el" href="ir_2expr_8h_source.html">tvm/ir/expr.h</a>&gt;</code><br />
-<code>#include &lt;<a class="el" href="int__set_8h_source.html">tvm/arith/int_set.h</a>&gt;</code><br />
+<div class="textblock"><code>#include &lt;<a class="el" href="object_8h_source.html">tvm/runtime/object.h</a>&gt;</code><br />
 <code>#include &lt;<a class="el" href="tir_2expr_8h_source.html">tvm/tir/expr.h</a>&gt;</code><br />
-<code>#include &lt;<a class="el" href="stmt_8h_source.html">tvm/tir/stmt.h</a>&gt;</code><br />
-<code>#include &lt;unordered_map&gt;</code><br />
+<code>#include &quot;<a class="el" href="tensor_8h_source.html">tensor.h</a>&quot;</code><br />
 </div><div class="textblock"><div class="dynheader">
-Include dependency graph for bound.h:</div>
+Include dependency graph for autodiff.h:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="bound_8h__incl.svg" width="3363" height="1202"><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="autodiff_8h__incl.svg" width="3678" height="1351"><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">
-This graph shows which files directly or indirectly include this file:</div>
-<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="bound_8h__dep__incl.svg" width="4596" height="812"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
-</div>
 </div>
-</div>
-<p><a href="bound_8h_source.html">Go to the source code of this file.</a></p>
+<p><a href="autodiff_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
 Namespaces</h2></td></tr>
@@ -123,24 +114,24 @@ Namespaces</h2></td></tr>
 <tr class="memitem:namespacetvm_1_1te"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1te.html">tvm::te</a></td></tr>
 <tr class="memdesc:namespacetvm_1_1te"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation result. ">Tensor</a> expression language DSL. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:namespacetvm_1_1arith"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a></td></tr>
-<tr class="memdesc:namespacetvm_1_1arith"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace of arithmetic analysis. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:af0860828b70ea8ff0d2f7c036c37afd5"><td class="memItemLeft" align="right" valign="top">IntSet&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1arith.html#af0860828b70ea8ff0d2f7c036c37afd5">tvm::arith::DeduceBound</a> (PrimExpr v, PrimExpr cond, const Map&lt; Var, IntSet &gt; &amp;hint_map, const Map&lt; Var, IntSet &gt; &amp;relax_map)</td></tr>
-<tr class="memdesc:af0860828b70ea8ff0d2f7c036c37afd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deduce the bound of the target variable in a expression, give the domain of each variables. Return undefined <a class="el" href="classtvm_1_1arith_1_1IntSet.html" title="Managed reference to IntSetNode. ">IntSet</a> to represent failure.  <a href="namespacetvm_1_1arith.html#af0860828b70ea8ff0d2f7c036c37afd5">More...</a><br /></td></tr>
-<tr class="separator:af0860828b70ea8ff0d2f7c036c37afd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3658d391f2333f405abdd54a9f174c9f"><td class="memItemLeft" align="right" valign="top">IntSet&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1arith.html#a3658d391f2333f405abdd54a9f174c9f">tvm::arith::DeduceBound</a> (PrimExpr v, PrimExpr cond, const std::unordered_map&lt; const VarNode *, IntSet &gt; &amp;hint_map, const std::unordered_map&lt; const VarNode *, IntSet &gt; &amp;relax_map)</td></tr>
-<tr class="memdesc:a3658d391f2333f405abdd54a9f174c9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as DeduceBound with unordered_map signature.  <a href="namespacetvm_1_1arith.html#a3658d391f2333f405abdd54a9f174c9f">More...</a><br /></td></tr>
-<tr class="separator:a3658d391f2333f405abdd54a9f174c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7f55bb82049e1b5f3a22fbd7b7ef3570"><td class="memItemLeft" align="right" valign="top">Domain&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1arith.html#a7f55bb82049e1b5f3a22fbd7b7ef3570">tvm::arith::DomainTouched</a> (Stmt body, const te::Tensor &amp;tensor, bool consider_calls, bool consider_provides)</td></tr>
-<tr class="memdesc:a7f55bb82049e1b5f3a22fbd7b7ef3570"><td class="mdescLeft">&#160;</td><td class="mdescRight">Infer a regular domain that covers all the calls or provides within the given statement.  <a href="namespacetvm_1_1arith.html#a7f55bb82049e1b5f3a22fbd7b7ef3570">More...</a><br /></td></tr>
-<tr class="separator:a7f55bb82049e1b5f3a22fbd7b7ef3570"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c207a8c51face2c69657fb93ecec9c8"><td class="memItemLeft" align="right" valign="top">PrimExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1te.html#a5c207a8c51face2c69657fb93ecec9c8">tvm::te::Derivative</a> (const PrimExpr &amp;expr, const Var &amp;var)</td></tr>
+<tr class="memdesc:a5c207a8c51face2c69657fb93ecec9c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Take the derivative of the expression with respect to the given variable.  <a href="namespacetvm_1_1te.html#a5c207a8c51face2c69657fb93ecec9c8">More...</a><br /></td></tr>
+<tr class="separator:a5c207a8c51face2c69657fb93ecec9c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6298db2545a416ec1fd47c593b7217b7"><td class="memItemLeft" align="right" valign="top">Tensor&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1te.html#a6298db2545a416ec1fd47c593b7217b7">tvm::te::Jacobian</a> (const Tensor &amp;output, const Tensor &amp;input)</td></tr>
+<tr class="memdesc:a6298db2545a416ec1fd47c593b7217b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the tensor representing the Jacobian of the output with respect to the input.  <a href="namespacetvm_1_1te.html#a6298db2545a416ec1fd47c593b7217b7">More...</a><br /></td></tr>
+<tr class="separator:a6298db2545a416ec1fd47c593b7217b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a547183f5a311af53ab598faba423fd64"><td class="memItemLeft" align="right" valign="top">Tensor&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1te.html#a547183f5a311af53ab598faba423fd64">tvm::te::VectorJacobianProduct</a> (const Tensor &amp;output, const Tensor &amp;input, const Tensor &amp;head)</td></tr>
+<tr class="memdesc:a547183f5a311af53ab598faba423fd64"><td class="mdescLeft">&#160;</td><td class="mdescRight">The building block for reverse-mode AD.  <a href="namespacetvm_1_1te.html#a547183f5a311af53ab598faba423fd64">More...</a><br /></td></tr>
+<tr class="separator:a547183f5a311af53ab598faba423fd64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0de1399717049f2b3582f0344b267d56"><td class="memItemLeft" align="right" valign="top">Array&lt; Tensor &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1te.html#a0de1399717049f2b3582f0344b267d56">tvm::te::Gradient</a> (const Tensor &amp;output, const Array&lt; Tensor &gt; &amp;inputs, const Tensor &amp;head=Tensor())</td></tr>
+<tr class="memdesc:a0de1399717049f2b3582f0344b267d56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform reverse mode automatic differentiation.  <a href="namespacetvm_1_1te.html#a0de1399717049f2b3582f0344b267d56">More...</a><br /></td></tr>
+<tr class="separator:a0de1399717049f2b3582f0344b267d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Bound deducers. </p>
+<div class="textblock"><p>Automatic differentiation of tensor expressions. </p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/doxygen/autodiff_8h__incl.svg b/docs/doxygen/autodiff_8h__incl.svg
new file mode 100644
index 0000000..5d17cee
--- /dev/null
+++ b/docs/doxygen/autodiff_8h__incl.svg
@@ -0,0 +1,1104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.38.0 (20140413.2041)
+ -->
+<!-- Title: include/tvm/te/autodiff.h Pages: 1 -->
+<svg width="2758pt" height="1013pt"
+ viewBox="0.00 0.00 2757.52 1013.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 1009)">
+<title>include/tvm/te/autodiff.h</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-1009 2753.52,-1009 2753.52,4 -4,4"/>
+<!-- Node1 -->
+<g id="node1" class="node"><title>Node1</title>
+<polygon fill="#bfbfbf" stroke="black" points="2036.5,-985.5 2036.5,-1004.5 2169.5,-1004.5 2169.5,-985.5 2036.5,-985.5"/>
+<text text-anchor="middle" x="2103" y="-992.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
+</g>
+<!-- Node2 -->
+<g id="node2" class="node"><title>Node2</title>
+<g id="a_node2"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
+<polygon fill="white" stroke="black" points="1260.5,-123.5 1260.5,-142.5 1377.5,-142.5 1377.5,-123.5 1260.5,-123.5"/>
+<text text-anchor="middle" x="1319" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/object.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node2 -->
+<g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M2169.52,-994.809C2318.5,-994.832 2666,-984.151 2666,-884 2666,-884 2666,-884 2666,-428.5 2666,-319.686 2612.61,-285.063 2516,-235 2436.7,-193.91 1799.55,-221.038 1713,-199 1693.35,-193.997 1691.43,-184.804 1672,-179 1576.09,-150.344 1460.17,-139.936 1388,-136.155"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1387.84,-132.643 1377.68,-135.644 1387.49,-139.635 1387.84,-132.643"/>
+</g>
+<!-- Node12 -->
+<g id="node12" class="node"><title>Node12</title>
+<g id="a_node12"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
+<polygon fill="white" stroke="black" points="2000,-761.5 2000,-780.5 2080,-780.5 2080,-761.5 2000,-761.5"/>
+<text text-anchor="middle" x="2040" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/expr.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node12 -->
+<g id="edge11" class="edge"><title>Node1&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M2103.89,-985.374C2106.27,-958.798 2110.78,-876.383 2083,-817 2077.6,-805.46 2068.05,-795.004 2059.32,-787.082"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2061.56,-784.388 2051.68,-780.56 2057.02,-789.713 2061.56,-784.388"/>
+</g>
+<!-- Node41 -->
+<g id="node41" class="node"><title>Node41</title>
+<g id="a_node41"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
+<polygon fill="white" stroke="black" points="1935,-929.5 1935,-948.5 1991,-948.5 1991,-929.5 1935,-929.5"/>
+<text text-anchor="middle" x="1963" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">tensor.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node41 -->
+<g id="edge130" class="edge"><title>Node1&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M2080.82,-985.444C2057.57,-976.478 2020.85,-962.314 1994.58,-952.183"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1995.67,-948.85 1985.08,-948.516 1993.15,-955.381 1995.67,-948.85"/>
+</g>
+<!-- Node3 -->
+<g id="node3" class="node"><title>Node3</title>
+<polygon fill="white" stroke="#bfbfbf" points="2052,-62 2052,-81 2138,-81 2138,-62 2052,-62"/>
+<text text-anchor="middle" x="2095" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/logging.h</text>
+</g>
+<!-- Node2&#45;&gt;Node3 -->
+<g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M1377.91,-129.443C1494.82,-124.06 1764.38,-110.115 1990,-87 2006.9,-85.2682 2025.27,-82.8993 2041.85,-80.5782"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2042.51,-84.0202 2051.91,-79.1453 2041.52,-77.0901 2042.51,-84.0202"/>
+</g>
+<!-- Node4 -->
+<g id="node4" class="node"><title>Node4</title>
+<g id="a_node4"><a xlink:href="c__runtime__api_8h.html" target="_top" xlink:title="tvm/runtime/c_runtime\l_api.h">
+<polygon fill="white" stroke="black" points="1854.5,-56.5 1854.5,-86.5 1981.5,-86.5 1981.5,-56.5 1854.5,-56.5"/>
+<text text-anchor="start" x="1862.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/c_runtime</text>
+<text text-anchor="middle" x="1918" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
+</a>
+</g>
+</g>
+<!-- Node2&#45;&gt;Node4 -->
+<g id="edge3" class="edge"><title>Node2&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1377.53,-126.187C1487.22,-115.29 1723.54,-91.8165 1844.05,-79.8453"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1844.68,-83.2999 1854.29,-78.8285 1843.99,-76.3341 1844.68,-83.2999"/>
+</g>
+<!-- Node8 -->
+<g id="node8" class="node"><title>Node8</title>
+<polygon fill="white" stroke="#bfbfbf" points="2359,-62 2359,-81 2427,-81 2427,-62 2359,-62"/>
+<text text-anchor="middle" x="2393" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
+</g>
+<!-- Node2&#45;&gt;Node8 -->
+<g id="edge7" class="edge"><title>Node2&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1377.73,-128.901C1513.29,-121.727 1858.46,-103.344 2147,-87 2217.58,-83.0018 2299.54,-78.1236 2348.78,-75.1674"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2349.01,-78.6604 2358.78,-74.5668 2348.59,-71.6731 2349.01,-78.6604"/>
+</g>
+<!-- Node9 -->
+<g id="node9" class="node"><title>Node9</title>
+<polygon fill="white" stroke="#bfbfbf" points="377,-62 377,-81 421,-81 421,-62 377,-62"/>
+<text text-anchor="middle" x="399" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
+</g>
+<!-- Node2&#45;&gt;Node9 -->
+<g id="edge8" class="edge"><title>Node2&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1260.4,-128.21C1084.68,-116.846 565.992,-83.3 431.269,-74.587"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="431.388,-71.0875 421.183,-73.9347 430.936,-78.0729 431.388,-71.0875"/>
+</g>
+<!-- Node10 -->
+<g id="node10" class="node"><title>Node10</title>
+<polygon fill="white" stroke="#bfbfbf" points="843,-62 843,-81 885,-81 885,-62 843,-62"/>
+<text text-anchor="middle" x="864" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">utility</text>
+</g>
+<!-- Node2&#45;&gt;Node10 -->
+<g id="edge9" class="edge"><title>Node2&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1260.45,-124.343C1162.99,-111.599 970.783,-86.464 895.394,-76.6054"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="895.513,-73.0912 885.144,-75.265 894.606,-80.0322 895.513,-73.0912"/>
+</g>
+<!-- Node11 -->
+<g id="node11" class="node"><title>Node11</title>
+<polygon fill="white" stroke="#bfbfbf" points="1410,-62 1410,-81 1460,-81 1460,-62 1410,-62"/>
+<text text-anchor="middle" x="1435" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">atomic</text>
+</g>
+<!-- Node2&#45;&gt;Node11 -->
+<g id="edge10" class="edge"><title>Node2&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1335.62,-123.475C1354.92,-113.578 1386.96,-97.1416 1409.43,-85.6151"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1411.11,-88.6873 1418.41,-81.0091 1407.92,-82.4589 1411.11,-88.6873"/>
+</g>
+<!-- Node5 -->
+<g id="node5" class="node"><title>Node5</title>
+<polygon fill="white" stroke="#bfbfbf" points="1783,-0.5 1783,-19.5 1873,-19.5 1873,-0.5 1783,-0.5"/>
+<text text-anchor="middle" x="1828" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">dlpack/dlpack.h</text>
+</g>
+<!-- Node4&#45;&gt;Node5 -->
+<g id="edge4" class="edge"><title>Node4&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M1896.67,-56.3993C1882.51,-47.0402 1863.99,-34.7924 1849.75,-25.3771"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1851.37,-22.2531 1841.1,-19.6578 1847.51,-28.0923 1851.37,-22.2531"/>
+</g>
+<!-- Node6 -->
+<g id="node6" class="node"><title>Node6</title>
+<polygon fill="white" stroke="#bfbfbf" points="1891.5,-0.5 1891.5,-19.5 1944.5,-19.5 1944.5,-0.5 1891.5,-0.5"/>
+<text text-anchor="middle" x="1918" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdint.h</text>
+</g>
+<!-- Node4&#45;&gt;Node6 -->
+<g id="edge5" class="edge"><title>Node4&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M1918,-56.3993C1918,-48.4664 1918,-38.458 1918,-29.8583"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1921.5,-29.6577 1918,-19.6578 1914.5,-29.6578 1921.5,-29.6577"/>
+</g>
+<!-- Node7 -->
+<g id="node7" class="node"><title>Node7</title>
+<polygon fill="white" stroke="#bfbfbf" points="1962.5,-0.5 1962.5,-19.5 2017.5,-19.5 2017.5,-0.5 1962.5,-0.5"/>
+<text text-anchor="middle" x="1990" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stddef.h</text>
+</g>
+<!-- Node4&#45;&gt;Node7 -->
+<g id="edge6" class="edge"><title>Node4&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1935.06,-56.3993C1946.06,-47.3076 1960.37,-35.4899 1971.62,-26.1909"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1974.04,-28.726 1979.52,-19.6578 1969.59,-23.33 1974.04,-28.726"/>
+</g>
+<!-- Node12&#45;&gt;Node4 -->
+<g id="edge103" class="edge"><title>Node12&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M2080.14,-766.919C2150.77,-761.014 2294.04,-746.727 2339,-725 2371.84,-709.129 2377.95,-698.791 2399,-669 2448.5,-598.936 2476,-577.788 2476,-492 2476,-492 2476,-492 2476,-428.5 2476,-342.086 2546.7,-304.241 2495,-235 2434.46,-153.921 2132.97,-102.256 1991.51,-82.1012"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1992,-78.6354 1981.61,-80.7045 1991.02,-85.5668 1992,-78.6354"/>
+</g>
+<!-- Node12&#45;&gt;Node9 -->
+<g id="edge124" class="edge"><title>Node12&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1999.73,-769.708C1757.25,-767.844 499.637,-756.673 425,-725 299.029,-671.543 38,-382.845 38,-246 38,-246 38,-246 38,-188 38,-143.215 74.4525,-142.016 115,-123 199.8,-83.2293 312.281,-74.6158 366.732,-72.8613"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="366.919,-76.3577 376.823,-72.5946 366.734,-69.3601 366.919,-76.3577"/>
+</g>
+<!-- Node12&#45;&gt;Node10 -->
+<g id="edge129" class="edge"><title>Node12&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1999.72,-769.783C1818.16,-768.606 1074.76,-761.6 845,-725 755.531,-710.748 734.797,-698.097 649,-669 531.775,-629.244 459.263,-662.181 394,-557 293.79,-395.497 442.084,-293.223 594,-179 669.705,-122.079 779.801,-91.3295 832.97,-79.0065"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="833.833,-82.3999 842.818,-76.7852 832.293,-75.5714 833.833,-82.3999"/>
+</g>
+<!-- Node13 -->
+<g id="node13" class="node"><title>Node13</title>
+<g id="a_node13"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
+<polygon fill="white" stroke="black" points="1391,-537.5 1391,-556.5 1489,-556.5 1489,-537.5 1391,-537.5"/>
+<text text-anchor="middle" x="1440" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
+</a>
+</g>
+</g>
+<!-- Node12&#45;&gt;Node13 -->
+<g id="edge12" class="edge"><title>Node12&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M2016.85,-761.433C1924.22,-727.163 1580.19,-599.872 1472.47,-560.013"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1473.68,-556.729 1463.08,-556.541 1471.25,-563.294 1473.68,-556.729"/>
+</g>
+<!-- Node22 -->
+<g id="node22" class="node"><title>Node22</title>
+<polygon fill="white" stroke="#bfbfbf" points="124.5,-179.5 124.5,-198.5 217.5,-198.5 217.5,-179.5 124.5,-179.5"/>
+<text text-anchor="middle" x="171" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
+</g>
+<!-- Node12&#45;&gt;Node22 -->
+<g id="edge126" class="edge"><title>Node12&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1999.61,-769.98C1757.89,-769.719 510.689,-766.366 442,-725 430.982,-718.365 219.184,-333.771 214,-322 196.736,-282.804 182.72,-234.42 175.762,-208.49"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="179.078,-207.337 173.149,-198.557 172.308,-209.118 179.078,-207.337"/>
+</g>
+<!-- Node26 -->
+<g id="node26" class="node"><title>Node26</title>
+<g id="a_node26"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
+<polygon fill="white" stroke="black" points="2214,-235.5 2214,-254.5 2350,-254.5 2350,-235.5 2214,-235.5"/>
+<text text-anchor="middle" x="2282" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
+</a>
+</g>
+</g>
+<!-- Node12&#45;&gt;Node26 -->
+<g id="edge104" class="edge"><title>Node12&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M2080.25,-769.554C2174.19,-766.175 2400,-743.542 2400,-604 2400,-604 2400,-604 2400,-546 2400,-431.289 2324.36,-307.958 2294.2,-263.34"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2296.89,-261.081 2288.34,-254.825 2291.13,-265.047 2296.89,-261.081"/>
+</g>
+<!-- Node29 -->
+<g id="node29" class="node"><title>Node29</title>
+<polygon fill="white" stroke="#bfbfbf" points="2444,-235.5 2444,-254.5 2486,-254.5 2486,-235.5 2444,-235.5"/>
+<text text-anchor="middle" x="2465" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">limits</text>
+</g>
+<!-- Node12&#45;&gt;Node29 -->
+<g id="edge128" class="edge"><title>Node12&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M2080.13,-767.647C2166.45,-760.197 2362,-729.474 2362,-604 2362,-604 2362,-604 2362,-546 2362,-487.412 2433.16,-318.954 2457.19,-263.751"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2460.41,-265.113 2461.21,-254.549 2454,-262.307 2460.41,-265.113"/>
+</g>
+<!-- Node31 -->
+<g id="node31" class="node"><title>Node31</title>
+<g id="a_node31"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures. ">
+<polygon fill="white" stroke="black" points="1936.5,-235.5 1936.5,-254.5 2043.5,-254.5 2043.5,-235.5 1936.5,-235.5"/>
+<text text-anchor="middle" x="1990" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/functor.h</text>
+</a>
+</g>
+</g>
+<!-- Node12&#45;&gt;Node31 -->
+<g id="edge102" class="edge"><title>Node12&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M2070.9,-761.491C2120.59,-745.911 2210.79,-708.799 2191,-649 2165.25,-571.193 2119.64,-573.275 2081,-501 2036.45,-417.665 2005.75,-307.96 1994.62,-264.693"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1997.95,-263.59 1992.11,-254.751 1991.17,-265.304 1997.95,-263.59"/>
+</g>
+<!-- Node32 -->
+<g id="node32" class="node"><title>Node32</title>
+<g id="a_node32"><a xlink:href="node_2container_8h.html" target="_top" xlink:title="Array/Map container in the DSL graph. ">
+<polygon fill="white" stroke="black" points="729.5,-358.5 729.5,-377.5 848.5,-377.5 848.5,-358.5 729.5,-358.5"/>
+<text text-anchor="middle" x="789" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/container.h</text>
+</a>
+</g>
+</g>
+<!-- Node12&#45;&gt;Node32 -->
+<g id="edge101" class="edge"><title>Node12&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1999.78,-768.986C1771.22,-762.968 646,-729.795 646,-660 646,-660 646,-660 646,-490 646,-433.731 711.322,-398.25 753.668,-381.161"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="755.046,-384.381 763.104,-377.501 752.515,-377.854 755.046,-384.381"/>
+</g>
+<!-- Node36 -->
+<g id="node36" class="node"><title>Node36</title>
+<polygon fill="white" stroke="#bfbfbf" points="2178.5,-420 2178.5,-439 2237.5,-439 2237.5,-420 2178.5,-420"/>
+<text text-anchor="middle" x="2208" y="-427" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
+</g>
+<!-- Node12&#45;&gt;Node36 -->
+<g id="edge127" class="edge"><title>Node12&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M2080.29,-765.819C2128.87,-759.859 2206.24,-747.115 2224,-725 2290.9,-641.697 2238.11,-498.541 2216.3,-448.443"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2219.45,-446.916 2212.17,-439.22 2213.07,-449.777 2219.45,-446.916"/>
+</g>
+<!-- Node37 -->
+<g id="node37" class="node"><title>Node37</title>
+<g id="a_node37"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
+<polygon fill="white" stroke="black" points="1502.5,-705.5 1502.5,-724.5 1579.5,-724.5 1579.5,-705.5 1502.5,-705.5"/>
+<text text-anchor="middle" x="1541" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
+</a>
+</g>
+</g>
+<!-- Node12&#45;&gt;Node37 -->
+<g id="edge105" class="edge"><title>Node12&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M1999.59,-765.627C1908.61,-755.781 1688,-731.908 1589.68,-721.268"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1590.03,-717.786 1579.72,-720.19 1589.28,-724.745 1590.03,-717.786"/>
+</g>
+<!-- Node40 -->
+<g id="node40" class="node"><title>Node40</title>
+<polygon fill="white" stroke="#bfbfbf" points="2120,-649.5 2120,-668.5 2182,-668.5 2182,-649.5 2120,-649.5"/>
+<text text-anchor="middle" x="2151" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
+</g>
+<!-- Node12&#45;&gt;Node40 -->
+<g id="edge125" class="edge"><title>Node12&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M2048.71,-761.368C2067.35,-742.894 2111.35,-699.293 2135.11,-675.744"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2137.69,-678.117 2142.33,-668.591 2132.76,-673.144 2137.69,-678.117"/>
+</g>
+<!-- Node13&#45;&gt;Node2 -->
+<g id="edge14" class="edge"><title>Node13&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1411.23,-537.448C1362.63,-522.402 1261.98,-488.613 1184,-445 1168.66,-436.42 938.856,-270.725 931,-255 883.243,-159.41 921.396,-260.856 1110,-199 1130.03,-192.432 1133.2,-186.228 1153,-179 1191.64,-164.895 1236.76,-152.94 1270.2,-144.905"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1271.26,-148.251 1280.18,-142.54 1269.64,-141.44 1271.26,-148.251"/>
+</g>
+<!-- Node13&#45;&gt;Node4 -->
+<g id="edge13" class="edge"><title>Node13&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1489.27,-538.868C1532.02,-531.852 1595.17,-519.486 1648,-501 1705.95,-480.724 1943.91,-368.686 2006,-322 2043.95,-293.466 2077.55,-281.511 2068,-235 2056.05,-176.796 2039.82,-162.01 1995,-123 1981.84,-111.549 1965.92,-100.686 1951.97,-91.9898"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1953.5,-88.823 1943.14,-86.6037 1949.85,-94.799 1953.5,-88.823"/>
+</g>
+<!-- Node13&#45;&gt;Node8 -->
+<g id="edge100" class="edge"><title>Node13&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1489.15,-537.77C1538.91,-529.259 1618.01,-515.242 1686,-501 1940.92,-447.604 2005.18,-425.909 2244,-322 2306.15,-294.958 2333.92,-303.759 2381,-255 2422.86,-211.649 2422.78,-182.29 2412,-123 2409.96,-111.765 2405.55,-99.7786 2401.5,-90.3041"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2404.67,-88.8328 2397.36,-81.1636 2398.29,-91.7174 2404.67,-88.8328"/>
+</g>
+<!-- Node13&#45;&gt;Node9 -->
+<g id="edge97" class="edge"><title>Node13&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1390.64,-544.127C1271.6,-539.28 971.385,-525.002 874,-501 812.521,-485.847 799.629,-473.327 743,-445 645.233,-396.094 609.485,-397.049 530,-322 482.759,-277.396 485.077,-254.317 451,-199 435.728,-174.209 428.28,-169.843 417,-143 409.895,-126.092 405.059,-105.686 402.204,-91.1886"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="405.583,-90.2109 400.334,-81.0081 398.699,-91.476 405.583,-90.2109"/>
+</g>
+<!-- Node13&#45;&gt;Node10 -->
+<g id="edge99" class="edge"><title>Node13&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1390.89,-543.798C1284.99,-538.664 1038.25,-524.515 958,-501 843.736,-467.518 781.92,-479.702 720,-378 655.732,-272.443 794.897,-133.619 846.082,-87.8563"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="848.565,-90.3333 853.762,-81.1005 843.942,-85.0773 848.565,-90.3333"/>
+</g>
+<!-- Node14 -->
+<g id="node14" class="node"><title>Node14</title>
+<g id="a_node14"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
+<polygon fill="white" stroke="black" points="940.5,-179.5 940.5,-198.5 1067.5,-198.5 1067.5,-179.5 940.5,-179.5"/>
+<text text-anchor="middle" x="1004" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/memory.h</text>
+</a>
+</g>
+</g>
+<!-- Node13&#45;&gt;Node14 -->
+<g id="edge15" class="edge"><title>Node13&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1390.78,-544.33C1303.25,-540.658 1124.59,-529.786 1070,-501 1033.09,-481.538 1008,-472.226 1008,-430.5 1008,-430.5 1008,-430.5 1008,-367 1008,-297.229 924.409,-319.579 898,-255 886.781,-227.567 918.085,-210.863 949.528,-201.271"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="950.576,-204.612 959.243,-198.518 948.668,-197.877 950.576,-204.612"/>
+</g>
+<!-- Node16 -->
+<g id="node16" class="node"><title>Node16</title>
+<g id="a_node16"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
+<polygon fill="white" stroke="black" points="1460.5,-481.5 1460.5,-500.5 1579.5,-500.5 1579.5,-481.5 1460.5,-481.5"/>
+<text text-anchor="middle" x="1520" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/reflection.h</text>
+</a>
+</g>
+</g>
+<!-- Node13&#45;&gt;Node16 -->
+<g id="edge20" class="edge"><title>Node13&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M1452.85,-537.324C1465.22,-528.979 1484.13,-516.212 1498.74,-506.352"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1500.85,-509.15 1507.18,-500.655 1496.93,-503.348 1500.85,-509.15"/>
+</g>
+<!-- Node21 -->
+<g id="node21" class="node"><title>Node21</title>
+<polygon fill="white" stroke="#bfbfbf" points="1580.5,-179.5 1580.5,-198.5 1627.5,-198.5 1627.5,-179.5 1580.5,-179.5"/>
+<text text-anchor="middle" x="1604" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
+</g>
+<!-- Node13&#45;&gt;Node21 -->
+<g id="edge98" class="edge"><title>Node13&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1485.92,-537.455C1575.66,-517.917 1771.84,-460.515 1844,-322 1892.86,-228.223 1745.12,-231.06 1637.18,-200.461"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1638.1,-197.084 1627.52,-197.596 1636.11,-203.795 1638.1,-197.084"/>
+</g>
+<!-- Node30 -->
+<g id="node30" class="node"><title>Node30</title>
+<g id="a_node30"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
+<polygon fill="white" stroke="black" points="1322.5,-414.5 1322.5,-444.5 1433.5,-444.5 1433.5,-414.5 1322.5,-414.5"/>
+<text text-anchor="start" x="1330.5" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="1378" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
+</a>
+</g>
+</g>
+<!-- Node13&#45;&gt;Node30 -->
+<g id="edge95" class="edge"><title>Node13&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M1435.34,-537.319C1425.9,-519.734 1404.25,-479.394 1390.42,-453.629"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1393.35,-451.701 1385.54,-444.545 1387.19,-455.012 1393.35,-451.701"/>
+</g>
+<!-- Node13&#45;&gt;Node32 -->
+<g id="edge94" class="edge"><title>Node13&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1390.69,-544.741C1290,-541.57 1064.34,-531.223 994,-501 939.566,-477.612 943.206,-445.457 893,-414 871.268,-400.384 844.702,-388.966 823.86,-381.039"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="825.024,-377.738 814.431,-377.541 822.589,-384.301 825.024,-377.738"/>
+</g>
+<!-- Node34 -->
+<g id="node34" class="node"><title>Node34</title>
+<g id="a_node34"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="tvm/node/structural\l_hash.h">
+<polygon fill="white" stroke="black" points="1193.5,-414.5 1193.5,-444.5 1304.5,-444.5 1304.5,-414.5 1193.5,-414.5"/>
+<text text-anchor="start" x="1201.5" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="1249" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
+</a>
+</g>
+</g>
+<!-- Node13&#45;&gt;Node34 -->
+<g id="edge96" class="edge"><title>Node13&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1425.64,-537.319C1395.09,-518.843 1323,-475.249 1280.97,-449.83"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1282.59,-446.725 1272.23,-444.545 1278.97,-452.715 1282.59,-446.725"/>
+</g>
+<!-- Node35 -->
+<g id="node35" class="node"><title>Node35</title>
+<g id="a_node35"><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="2090,-481.5 2090,-500.5 2220,-500.5 2220,-481.5 2090,-481.5"/>
+<text text-anchor="middle" x="2155" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/repr_printer.h</text>
+</a>
+</g>
+</g>
+<!-- Node13&#45;&gt;Node35 -->
+<g id="edge91" class="edge"><title>Node13&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M1489.13,-543.242C1595.99,-537.087 1857.48,-521.169 2076,-501 2077.28,-500.882 2078.56,-500.761 2079.86,-500.637"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2080.32,-504.109 2089.93,-499.637 2079.63,-497.143 2080.32,-504.109"/>
+</g>
+<!-- Node14&#45;&gt;Node2 -->
+<g id="edge16" class="edge"><title>Node14&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1053.91,-179.444C1109.67,-169.885 1199.89,-154.419 1259.33,-144.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1260.06,-147.656 1269.32,-142.516 1258.87,-140.756 1260.06,-147.656"/>
+</g>
+<!-- Node14&#45;&gt;Node8 -->
+<g id="edge19" class="edge"><title>Node14&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1029.22,-179.41C1073.49,-164.774 1168.34,-135.387 1251,-123 1645.14,-63.9388 1748.94,-106.726 2147,-87 2217.61,-83.5008 2299.56,-78.4775 2348.79,-75.3556"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2349.03,-78.8478 2358.79,-74.7195 2348.58,-71.8619 2349.03,-78.8478"/>
+</g>
+<!-- Node14&#45;&gt;Node10 -->
+<g id="edge18" class="edge"><title>Node14&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M993.434,-179.131C978.467,-166.583 950.216,-142.951 926,-123 911.375,-110.95 894.719,-97.3931 882.356,-87.3618"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="884.533,-84.6208 874.561,-81.0421 880.125,-90.0585 884.533,-84.6208"/>
+</g>
+<!-- Node15 -->
+<g id="node15" class="node"><title>Node15</title>
+<polygon fill="white" stroke="#bfbfbf" points="980.5,-123.5 980.5,-142.5 1027.5,-142.5 1027.5,-123.5 980.5,-123.5"/>
+<text text-anchor="middle" x="1004" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">cstdlib</text>
+</g>
+<!-- Node14&#45;&gt;Node15 -->
+<g id="edge17" class="edge"><title>Node14&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M1004,-179.083C1004,-172.006 1004,-161.861 1004,-152.986"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1007.5,-152.751 1004,-142.751 1000.5,-152.751 1007.5,-152.751"/>
+</g>
+<!-- Node16&#45;&gt;Node2 -->
+<g id="edge22" class="edge"><title>Node16&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1522.21,-481.261C1527.01,-461.436 1538,-411.476 1538,-369 1538,-369 1538,-369 1538,-305.5 1538,-259.427 1501.82,-258.167 1462,-235 1416.07,-208.283 1387.65,-234.374 1348,-199 1334.48,-186.938 1326.93,-167.37 1322.95,-152.851"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1326.31,-151.842 1320.57,-142.941 1319.51,-153.482 1326.31,-151.842"/>
+</g>
+<!-- Node16&#45;&gt;Node4 -->
+<g id="edge21" class="edge"><title>Node16&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1549.83,-481.483C1653.09,-451.336 1992.34,-346.58 2052,-255 2072.86,-222.987 1984.77,-134.355 1941.16,-93.5543"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1943.29,-90.7513 1933.58,-86.517 1938.53,-95.8836 1943.29,-90.7513"/>
+</g>
+<!-- Node16&#45;&gt;Node8 -->
+<g id="edge90" class="edge"><title>Node16&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1579.62,-486.663C1649.58,-481.748 1768.66,-470.25 1868,-445 1875.09,-443.199 2353.98,-260.319 2359,-255 2401.91,-209.519 2399.31,-128.161 2395.53,-91.4235"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2398.97,-90.6862 2394.32,-81.1655 2392.02,-91.5068 2398.97,-90.6862"/>
+</g>
+<!-- Node16&#45;&gt;Node9 -->
+<g id="edge89" class="edge"><title>Node16&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1460.36,-490.096C1320.17,-488.618 960.382,-474.852 680,-378 536.474,-328.422 511.612,-272.304 432,-143 421.509,-125.961 412.115,-105.049 406.058,-90.4433"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="409.261,-89.0285 402.269,-81.0683 402.771,-91.6513 409.261,-89.0285"/>
+</g>
+<!-- Node16&#45;&gt;Node14 -->
+<g id="edge23" class="edge"><title>Node16&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1512.39,-481.33C1499.07,-466.453 1470.24,-435.583 1442,-414 1305.61,-309.774 1113.42,-231.139 1037.1,-202.151"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1038.13,-198.799 1027.54,-198.549 1035.66,-205.349 1038.13,-198.799"/>
+</g>
+<!-- Node17 -->
+<g id="node17" class="node"><title>Node17</title>
+<g id="a_node17"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
+<polygon fill="white" stroke="black" points="1396.5,-291.5 1396.5,-321.5 1509.5,-321.5 1509.5,-291.5 1396.5,-291.5"/>
+<text text-anchor="start" x="1404.5" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/packed</text>
+<text text-anchor="middle" x="1453" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
+</a>
+</g>
+</g>
+<!-- Node16&#45;&gt;Node17 -->
+<g id="edge24" class="edge"><title>Node16&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1517.43,-481.238C1511.1,-459.898 1493.94,-403.637 1476,-358 1472.5,-349.107 1468.26,-339.524 1464.38,-331.121"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1467.47,-329.473 1460.05,-321.911 1461.14,-332.45 1467.47,-329.473"/>
+</g>
+<!-- Node16&#45;&gt;Node21 -->
+<g id="edge88" class="edge"><title>Node16&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1533.38,-481.34C1574.02,-454.097 1695.72,-365.359 1736,-255 1739.05,-246.65 1741.17,-242.229 1736,-235 1734.49,-232.893 1675.97,-213.479 1637.36,-200.848"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1638.13,-197.419 1627.54,-197.642 1635.96,-204.073 1638.13,-197.419"/>
+</g>
+<!-- Node23 -->
+<g id="node23" class="node"><title>Node23</title>
+<g id="a_node23"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device&#45;independent managed NDArray abstraction. ">
+<polygon fill="white" stroke="black" points="1604.5,-235.5 1604.5,-254.5 1727.5,-254.5 1727.5,-235.5 1604.5,-235.5"/>
+<text text-anchor="middle" x="1666" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/ndarray.h</text>
+</a>
+</g>
+</g>
+<!-- Node16&#45;&gt;Node23 -->
+<g id="edge61" class="edge"><title>Node16&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1526.64,-481.212C1533.3,-472.268 1543.73,-457.92 1552,-445 1593.8,-379.676 1637.98,-298.559 1656.73,-263.494"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1659.9,-264.988 1661.51,-254.516 1653.72,-261.698 1659.9,-264.988"/>
+</g>
+<!-- Node16&#45;&gt;Node26 -->
+<g id="edge62" class="edge"><title>Node16&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M1579.75,-484.714C1638.22,-478.583 1729.41,-466.459 1806,-445 1944.37,-406.234 1972.53,-377.682 2105,-322 2157.19,-300.062 2217.76,-273.904 2252.8,-258.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2254.62,-261.726 2262.4,-254.533 2251.83,-255.305 2254.62,-261.726"/>
+</g>
+<!-- Node16&#45;&gt;Node30 -->
+<g id="edge63" class="edge"><title>Node16&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M1499.65,-481.475C1479.16,-472.889 1446.93,-459.383 1420.79,-448.429"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1422.04,-445.16 1411.47,-444.523 1419.34,-451.616 1422.04,-445.16"/>
+</g>
+<!-- Node16&#45;&gt;Node34 -->
+<g id="edge82" class="edge"><title>Node16&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1480.29,-481.476C1440.72,-472.957 1377.95,-459.378 1314.95,-445.424"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1315.36,-441.93 1304.84,-443.182 1313.85,-448.764 1315.36,-441.93"/>
+</g>
+<!-- Node17&#45;&gt;Node2 -->
+<g id="edge52" class="edge"><title>Node17&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1454.94,-291.453C1456.27,-275.723 1455.79,-250.42 1442,-235 1401.46,-189.673 1346.91,-247.326 1310,-199 1299.76,-185.595 1304.38,-165.953 1310.09,-151.772"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1313.31,-153.133 1314.25,-142.579 1306.94,-150.249 1313.31,-153.133"/>
+</g>
+<!-- Node17&#45;&gt;Node3 -->
+<g id="edge25" class="edge"><title>Node17&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M1509.51,-300.759C1573.98,-294.387 1682.12,-280.76 1772,-255 1833.26,-237.443 1847.86,-229.166 1904,-199 1969.61,-163.744 2041.44,-112.377 2075.28,-87.336"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2077.47,-90.0625 2083.41,-81.2837 2073.29,-84.4473 2077.47,-90.0625"/>
+</g>
+<!-- Node17&#45;&gt;Node4 -->
+<g id="edge26" class="edge"><title>Node17&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1509.56,-299.627C1567.41,-292.646 1659.39,-278.832 1736,-255 1756.51,-248.619 1760.08,-243.027 1780,-235 1824.59,-217.036 1847.42,-232.393 1882,-199 1909.84,-172.116 1916.6,-125.376 1917.98,-96.8596"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1921.49,-96.655 1918.29,-86.5558 1914.49,-96.4479 1921.49,-96.655"/>
+</g>
+<!-- Node17&#45;&gt;Node8 -->
+<g id="edge60" class="edge"><title>Node17&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1509.75,-302.007C1649.16,-293.242 2000.78,-269.955 2052,-255 2077.67,-247.505 2241.45,-155.673 2265,-143 2301.25,-123.489 2342.97,-100.387 2368.67,-86.0853"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2370.65,-88.9857 2377.68,-81.0608 2367.24,-82.8708 2370.65,-88.9857"/>
+</g>
+<!-- Node17&#45;&gt;Node9 -->
+<g id="edge56" class="edge"><title>Node17&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1396.21,-303.029C1323.44,-298.649 1194.02,-286.747 1088,-255 1068.19,-249.069 1065.7,-241.274 1046,-235 957.022,-206.664 930.05,-219.735 839,-199 749.831,-178.694 725.926,-176.926 641,-143 623.277,-135.92 620.838,-129.787 603,-123 544.181,-100.62 472.014,-85.4727 431.188,-77.9715"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="431.73,-74.5129 421.268,-76.1866 430.49,-81.4022 431.73,-74.5129"/>
+</g>
+<!-- Node17&#45;&gt;Node10 -->
+<g id="edge59" class="edge"><title>Node17&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1396.27,-295.068C1342.76,-285.128 1260.33,-269.56 1189,-255 1174.63,-252.066 942.688,-207.861 931,-199 894.811,-171.561 876.147,-118.836 868.429,-90.9075"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="871.814,-90.0165 865.919,-81.2133 865.037,-91.7714 871.814,-90.0165"/>
+</g>
+<!-- Node18 -->
+<g id="node18" class="node"><title>Node18</title>
+<g id="a_node18"><a xlink:href="runtime_2module_8h.html" target="_top" xlink:title="Runtime container of the functions generated by TVM, This is used to support dynamically link...">
+<polygon fill="white" stroke="black" points="1212,-235.5 1212,-254.5 1336,-254.5 1336,-235.5 1212,-235.5"/>
+<text text-anchor="middle" x="1274" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/module.h</text>
+</a>
+</g>
+</g>
+<!-- Node17&#45;&gt;Node18 -->
+<g id="edge27" class="edge"><title>Node17&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1404.74,-291.399C1372.87,-281.238 1332.15,-267.672 1304.62,-258.022"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1305.71,-254.695 1295.12,-254.658 1303.38,-261.294 1305.71,-254.695"/>
+</g>
+<!-- Node20 -->
+<g id="node20" class="node"><title>Node20</title>
+<polygon fill="white" stroke="#bfbfbf" points="1162.5,-179.5 1162.5,-198.5 1219.5,-198.5 1219.5,-179.5 1162.5,-179.5"/>
+<text text-anchor="middle" x="1191" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
+</g>
+<!-- Node17&#45;&gt;Node20 -->
+<g id="edge58" class="edge"><title>Node17&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1396.34,-297.458C1326.83,-287.075 1216.49,-268.714 1203,-255 1191.19,-242.992 1188.98,-223.388 1189.24,-208.845"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1192.75,-208.696 1189.84,-198.508 1185.77,-208.287 1192.75,-208.696"/>
+</g>
+<!-- Node17&#45;&gt;Node21 -->
+<g id="edge55" class="edge"><title>Node17&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1471.52,-291.337C1500.21,-269.392 1555.14,-227.37 1584.45,-204.953"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1586.85,-207.525 1592.67,-198.669 1582.6,-201.965 1586.85,-207.525"/>
+</g>
+<!-- Node17&#45;&gt;Node23 -->
+<g id="edge37" class="edge"><title>Node17&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1503.21,-291.475C1540.6,-281.03 1590.98,-266.958 1625.74,-257.247"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1626.86,-260.568 1635.55,-254.506 1624.98,-253.826 1626.86,-260.568"/>
+</g>
+<!-- Node17&#45;&gt;Node26 -->
+<g id="edge48" class="edge"><title>Node17&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M1509.65,-301.434C1654.41,-291.044 2038.06,-263.508 2203.86,-251.608"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2204.26,-255.089 2213.98,-250.882 2203.76,-248.107 2204.26,-255.089"/>
+</g>
+<!-- Node27 -->
+<g id="node27" class="node"><title>Node27</title>
+<polygon fill="white" stroke="#bfbfbf" points="940.5,-235.5 940.5,-254.5 1003.5,-254.5 1003.5,-235.5 940.5,-235.5"/>
+<text text-anchor="middle" x="972" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
+</g>
+<!-- Node17&#45;&gt;Node27 -->
+<g id="edge53" class="edge"><title>Node17&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M1396.41,-298.5C1298.57,-286.397 1100,-261.833 1013.66,-251.153"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1014.05,-247.675 1003.7,-249.921 1013.19,-254.622 1014.05,-247.675"/>
+</g>
+<!-- Node28 -->
+<g id="node28" class="node"><title>Node28</title>
+<polygon fill="white" stroke="#bfbfbf" points="1392.5,-235.5 1392.5,-254.5 1433.5,-254.5 1433.5,-235.5 1392.5,-235.5"/>
+<text text-anchor="middle" x="1413" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">tuple</text>
+</g>
+<!-- Node17&#45;&gt;Node28 -->
+<g id="edge54" class="edge"><title>Node17&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M1443.52,-291.399C1437.83,-282.932 1430.55,-272.099 1424.52,-263.139"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1427.3,-261.004 1418.82,-254.658 1421.49,-264.909 1427.3,-261.004"/>
+</g>
+<!-- Node17&#45;&gt;Node29 -->
+<g id="edge57" class="edge"><title>Node17&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M1509.75,-302.91C1652.5,-296.27 2038.03,-277.567 2359,-255 2384.22,-253.227 2412.77,-250.777 2433.88,-248.881"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2434.25,-252.362 2443.9,-247.973 2433.62,-245.391 2434.25,-252.362"/>
+</g>
+<!-- Node18&#45;&gt;Node2 -->
+<g id="edge30" class="edge"><title>Node18&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1271.47,-235.157C1268.25,-222.232 1264.02,-197.69 1272,-179 1277.15,-166.947 1287.28,-156.576 1296.83,-148.839"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1299.04,-151.553 1304.92,-142.741 1294.83,-145.962 1299.04,-151.553"/>
+</g>
+<!-- Node18&#45;&gt;Node4 -->
+<g id="edge29" class="edge"><title>Node18&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1293.17,-235.418C1343.04,-213.428 1481.33,-154.576 1602,-123 1683.63,-101.639 1779.62,-87.8496 1844.21,-80.1658"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1844.77,-83.6239 1854.3,-78.9848 1843.96,-76.6713 1844.77,-83.6239"/>
+</g>
+<!-- Node18&#45;&gt;Node9 -->
+<g id="edge34" class="edge"><title>Node18&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1211.97,-238.235C1142.97,-231.273 1028.4,-218.073 931,-199 800.242,-173.394 770.702,-153.508 641,-123 566.194,-105.405 477.645,-87.7181 431.172,-78.6756"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="431.588,-75.1911 421.105,-76.724 430.256,-82.0632 431.588,-75.1911"/>
+</g>
+<!-- Node18&#45;&gt;Node14 -->
+<g id="edge31" class="edge"><title>Node18&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1231.22,-235.444C1183.82,-225.964 1107.37,-210.675 1056.42,-200.483"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1057.07,-197.046 1046.58,-198.516 1055.7,-203.91 1057.07,-197.046"/>
+</g>
+<!-- Node18&#45;&gt;Node17 -->
+<g id="edge36" class="edge"><title>Node18&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1304.7,-254.571C1332.82,-263.291 1374.66,-277.054 1406.79,-288.076"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1405.82,-291.446 1416.42,-291.399 1408.11,-284.829 1405.82,-291.446"/>
+</g>
+<!-- Node19 -->
+<g id="node19" class="node"><title>Node19</title>
+<polygon fill="white" stroke="#bfbfbf" points="1611,-123.5 1611,-142.5 1671,-142.5 1671,-123.5 1611,-123.5"/>
+<text text-anchor="middle" x="1641" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/io.h</text>
+</g>
+<!-- Node18&#45;&gt;Node19 -->
+<g id="edge28" class="edge"><title>Node18&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1311.75,-235.424C1347.96,-226.972 1404.04,-213.283 1452,-199 1507.48,-182.48 1570.91,-159.889 1608.37,-146.155"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1610.04,-149.268 1618.22,-142.528 1607.62,-142.699 1610.04,-149.268"/>
+</g>
+<!-- Node18&#45;&gt;Node20 -->
+<g id="edge32" class="edge"><title>Node18&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1260.66,-235.324C1247.84,-226.979 1228.22,-214.212 1213.06,-204.352"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1214.59,-201.174 1204.3,-198.655 1210.78,-207.042 1214.59,-201.174"/>
+</g>
+<!-- Node18&#45;&gt;Node21 -->
+<g id="edge33" class="edge"><title>Node18&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1326.29,-235.444C1394.73,-224.245 1512.72,-204.937 1570.35,-195.506"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1571.08,-198.934 1580.38,-193.865 1569.95,-192.025 1571.08,-198.934"/>
+</g>
+<!-- Node18&#45;&gt;Node22 -->
+<g id="edge35" class="edge"><title>Node18&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1211.94,-240.962C1016.58,-231.397 416.137,-202.001 227.99,-192.79"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="227.926,-189.283 217.767,-192.29 227.584,-196.274 227.926,-189.283"/>
+</g>
+<!-- Node23&#45;&gt;Node2 -->
+<g id="edge39" class="edge"><title>Node23&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1613.2,-235.493C1571.52,-228.032 1512.23,-215.751 1462,-199 1419.19,-184.724 1371.97,-161.742 1343.93,-147.277"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1345.34,-144.063 1334.85,-142.543 1342.1,-150.27 1345.34,-144.063"/>
+</g>
+<!-- Node23&#45;&gt;Node4 -->
+<g id="edge38" class="edge"><title>Node23&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1727.76,-235.821C1776.95,-228.222 1840.79,-215.584 1861,-199 1877.64,-185.35 1898.81,-129.138 1910.09,-96.4213"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1913.49,-97.3026 1913.39,-86.7083 1906.86,-95.0536 1913.49,-97.3026"/>
+</g>
+<!-- Node23&#45;&gt;Node10 -->
+<g id="edge47" class="edge"><title>Node23&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1639.34,-235.353C1613.8,-226.85 1574.34,-213.125 1541,-199 1470.35,-169.072 1459.82,-143.92 1386,-123 1292.7,-96.5591 993.25,-79.1558 895.318,-74.0568"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="895.342,-70.5535 885.176,-73.5354 894.983,-77.5443 895.342,-70.5535"/>
+</g>
+<!-- Node23&#45;&gt;Node11 -->
+<g id="edge45" class="edge"><title>Node23&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1643.07,-235.461C1623.15,-227.512 1593.96,-214.567 1571,-199 1521.84,-165.672 1473.02,-114.822 1449.5,-88.9133"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1451.81,-86.2495 1442.53,-81.1445 1446.6,-90.9247 1451.81,-86.2495"/>
+</g>
+<!-- Node23&#45;&gt;Node21 -->
+<g id="edge46" class="edge"><title>Node23&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1656.04,-235.324C1646.87,-227.341 1633.06,-215.313 1621.97,-205.653"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1623.98,-202.762 1614.14,-198.834 1619.38,-208.041 1623.98,-202.762"/>
+</g>
+<!-- Node24 -->
+<g id="node24" class="node"><title>Node24</title>
+<g id="a_node24"><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="1722,-179.5 1722,-198.5 1852,-198.5 1852,-179.5 1722,-179.5"/>
+<text text-anchor="middle" x="1787" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/serializer.h</text>
+</a>
+</g>
+</g>
+<!-- Node23&#45;&gt;Node24 -->
+<g id="edge40" class="edge"><title>Node23&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M1680.33,-235.324C1698.25,-226.467 1729.03,-212.63 1753.02,-202.573"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1754.59,-205.71 1762.5,-198.655 1751.92,-199.241 1754.59,-205.71"/>
+</g>
+<!-- Node24&#45;&gt;Node4 -->
+<g id="edge43" class="edge"><title>Node24&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1796.85,-179.319C1817.41,-161.192 1865.39,-118.885 1894.42,-93.2879"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1896.88,-95.784 1902.07,-86.5453 1892.25,-90.5334 1896.88,-95.784"/>
+</g>
+<!-- Node24&#45;&gt;Node19 -->
+<g id="edge41" class="edge"><title>Node24&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1763.87,-179.444C1739.52,-170.438 1700.99,-156.189 1673.58,-146.049"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1674.62,-142.703 1664.03,-142.516 1672.19,-149.268 1674.62,-142.703"/>
+</g>
+<!-- Node24&#45;&gt;Node23 -->
+<g id="edge44" class="edge"><title>Node24&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1773,-198.516C1755.07,-207.388 1723.96,-221.38 1699.8,-231.503"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1698.17,-228.39 1690.26,-235.444 1700.84,-234.86 1698.17,-228.39"/>
+</g>
+<!-- Node25 -->
+<g id="node25" class="node"><title>Node25</title>
+<polygon fill="white" stroke="#bfbfbf" points="1720,-123.5 1720,-142.5 1814,-142.5 1814,-123.5 1720,-123.5"/>
+<text text-anchor="middle" x="1767" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/serializer.h</text>
+</g>
+<!-- Node24&#45;&gt;Node25 -->
+<g id="edge42" class="edge"><title>Node24&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M1783.7,-179.083C1781.02,-171.849 1777.15,-161.409 1773.81,-152.397"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1777,-150.913 1770.24,-142.751 1770.43,-153.344 1777,-150.913"/>
+</g>
+<!-- Node26&#45;&gt;Node3 -->
+<g id="edge50" class="edge"><title>Node26&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M2277.08,-235.375C2269.37,-222.297 2253.51,-197.065 2236,-179 2199.01,-140.84 2147.51,-105.553 2118.08,-86.7277"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2119.67,-83.5928 2109.34,-81.2113 2115.93,-89.511 2119.67,-83.5928"/>
+</g>
+<!-- Node26&#45;&gt;Node4 -->
+<g id="edge49" class="edge"><title>Node26&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M2270.09,-235.217C2240.19,-213.509 2158.98,-156.656 2084,-123 2053,-109.085 2017.1,-97.6289 1986.62,-89.1657"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1987.5,-85.7775 1976.93,-86.5237 1985.66,-92.531 1987.5,-85.7775"/>
+</g>
+<!-- Node26&#45;&gt;Node8 -->
+<g id="edge51" class="edge"><title>Node26&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M2301.57,-235.435C2316.76,-227.87 2337.29,-215.479 2350,-199 2375.3,-166.199 2386.22,-117.606 2390.52,-91.2134"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2394.02,-91.482 2392.02,-81.0779 2387.09,-90.4593 2394.02,-91.482"/>
+</g>
+<!-- Node30&#45;&gt;Node9 -->
+<g id="edge81" class="edge"><title>Node30&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1349.76,-414.347C1292.17,-385.345 1157.17,-316.695 1046,-255 1030.67,-246.493 1028.56,-240.741 1012,-235 900.11,-196.221 862.979,-227.336 748,-199 625.553,-168.823 486.387,-110.869 427.603,-85.2338"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="428.791,-81.9328 418.227,-81.1208 425.979,-88.3431 428.791,-81.9328"/>
+</g>
+<!-- Node30&#45;&gt;Node26 -->
+<g id="edge64" class="edge"><title>Node30&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M1433.83,-424.655C1515.94,-418.381 1673.85,-403.961 1806,-378 1973.51,-345.093 2168.32,-283.549 2246.69,-257.801"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2248.13,-261.012 2256.53,-254.555 2245.94,-254.364 2248.13,-261.012"/>
+</g>
+<!-- Node30&#45;&gt;Node31 -->
+<g id="edge65" class="edge"><title>Node30&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M1425.01,-414.483C1542.01,-379.592 1844.57,-289.368 1951.7,-257.42"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1952.87,-260.726 1961.45,-254.514 1950.87,-254.018 1952.87,-260.726"/>
+</g>
+<!-- Node30&#45;&gt;Node32 -->
+<g id="edge71" class="edge"><title>Node30&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1322.42,-415.589C1319.24,-415.01 1316.09,-414.474 1313,-414 1151.37,-389.146 959.423,-377.043 858.689,-372.014"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="858.798,-368.515 848.638,-371.521 858.455,-375.507 858.798,-368.515"/>
+</g>
+<!-- Node31&#45;&gt;Node2 -->
+<g id="edge67" class="edge"><title>Node31&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1936.21,-236.592C1850.71,-224.761 1692.15,-202.565 1680,-199 1659.39,-192.952 1656.62,-185.015 1636,-179 1552.55,-154.658 1452.76,-143.263 1387.74,-138.081"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1387.84,-134.579 1377.61,-137.302 1387.31,-141.559 1387.84,-134.579"/>
+</g>
+<!-- Node31&#45;&gt;Node3 -->
+<g id="edge66" class="edge"><title>Node31&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M1995.35,-235.26C2011.85,-208.306 2062.17,-126.116 2084.33,-89.9237"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2087.55,-91.3754 2089.78,-81.0194 2081.58,-87.7203 2087.55,-91.3754"/>
+</g>
+<!-- Node31&#45;&gt;Node8 -->
+<g id="edge69" class="edge"><title>Node31&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M2009.98,-235.495C2075.78,-207.495 2285.87,-118.092 2363.66,-84.9857"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2365.06,-88.1924 2372.89,-81.056 2362.32,-81.7513 2365.06,-88.1924"/>
+</g>
+<!-- Node31&#45;&gt;Node10 -->
+<g id="edge70" class="edge"><title>Node31&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1981.99,-235.451C1959.58,-212.187 1893.21,-147.822 1823,-123 1733.97,-91.5244 1051.39,-76.2075 895.594,-73.1011"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="895.369,-69.5961 885.302,-72.8985 895.231,-76.5947 895.369,-69.5961"/>
+</g>
+<!-- Node31&#45;&gt;Node21 -->
+<g id="edge68" class="edge"><title>Node31&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1936.18,-236.858C1931.39,-236.227 1926.61,-235.601 1922,-235 1797.59,-218.769 1765.44,-221.489 1642,-199 1640.54,-198.734 1639.05,-198.448 1637.55,-198.147"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1638.15,-194.695 1627.64,-196.002 1636.67,-201.537 1638.15,-194.695"/>
+</g>
+<!-- Node32&#45;&gt;Node2 -->
+<g id="edge72" class="edge"><title>Node32&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M803.078,-358.259C814.353,-350.355 829.346,-337.584 836,-322 841.411,-309.329 842.394,-303.204 836,-291 822.954,-266.102 797.046,-279.898 784,-255 779.875,-247.126 779.991,-242.934 784,-235 802.923,-197.552 820.828,-194.03 860,-179 929.502,-152.332 1140.2,-140.663 1250.31,-136.274"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1250.46,-139.771 1260.32,-135.884 1250.19,-132.776 1250.46,-139.771"/>
+</g>
+<!-- Node32&#45;&gt;Node8 -->
+<g id="edge75" class="edge"><title>Node32&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M848.617,-364.44C973.128,-358.846 1269.82,-344.228 1518,-322 1549.76,-319.156 2057.5,-264.295 2088,-255 2208.08,-218.406 2329.92,-124.722 2374.89,-87.7936"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2377.38,-90.2784 2382.84,-81.1984 2372.91,-84.892 2377.38,-90.2784"/>
+</g>
+<!-- Node32&#45;&gt;Node9 -->
+<g id="edge80" class="edge"><title>Node32&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M776.237,-358.32C763.358,-349.459 742.998,-335.175 726,-322 617.289,-237.741 602.136,-201.217 489,-123 468.544,-108.857 443.812,-95.2049 425.454,-85.6687"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="426.988,-82.5218 416.492,-81.0763 423.796,-88.7516 426.988,-82.5218"/>
+</g>
+<!-- Node32&#45;&gt;Node10 -->
+<g id="edge79" class="edge"><title>Node32&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M771.498,-358.465C758.213,-350.917 740.924,-338.533 733,-322 727.045,-309.576 729.324,-304.278 733,-291 745.092,-247.316 821.793,-133.522 851.897,-89.8831"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="854.91,-91.6794 857.727,-81.4658 849.156,-87.6937 854.91,-91.6794"/>
+</g>
+<!-- Node32&#45;&gt;Node14 -->
+<g id="edge73" class="edge"><title>Node32&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M774.63,-358.33C763.12,-350.469 747.811,-337.722 741,-322 735.523,-309.358 734.602,-303.202 741,-291 776.251,-223.773 865.42,-200.937 930.178,-193.377"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="930.777,-196.833 940.349,-192.29 930.034,-189.872 930.777,-196.833"/>
+</g>
+<!-- Node32&#45;&gt;Node17 -->
+<g id="edge74" class="edge"><title>Node32&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M848.51,-361.667C972.17,-350.586 1256.18,-325.137 1386.02,-313.502"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1386.58,-316.966 1396.22,-312.588 1385.95,-309.994 1386.58,-316.966"/>
+</g>
+<!-- Node32&#45;&gt;Node21 -->
+<g id="edge76" class="edge"><title>Node32&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M848.516,-360.667C951.905,-348.433 1170.35,-317.101 1345,-255 1362.98,-248.606 1365.02,-241.413 1383,-235 1447.05,-212.15 1525.91,-199.592 1570.01,-193.879"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1570.69,-197.32 1580.18,-192.603 1569.82,-190.375 1570.69,-197.32"/>
+</g>
+<!-- Node32&#45;&gt;Node22 -->
+<g id="edge78" class="edge"><title>Node32&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M759.193,-358.463C657.734,-329.404 325.737,-234.318 210.682,-201.365"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="211.447,-197.944 200.869,-198.555 209.519,-204.673 211.447,-197.944"/>
+</g>
+<!-- Node33 -->
+<g id="node33" class="node"><title>Node33</title>
+<polygon fill="white" stroke="#bfbfbf" points="750.5,-297 750.5,-316 827.5,-316 827.5,-297 750.5,-297"/>
+<text text-anchor="middle" x="789" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00">initializer_list</text>
+</g>
+<!-- Node32&#45;&gt;Node33 -->
+<g id="edge77" class="edge"><title>Node32&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M789,-358.475C789,-350.08 789,-336.981 789,-326.163"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="792.5,-326.009 789,-316.009 785.5,-326.009 792.5,-326.009"/>
+</g>
+<!-- Node34&#45;&gt;Node9 -->
+<g id="edge86" class="edge"><title>Node34&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1193.11,-424.152C1061.45,-413.777 741.3,-387.715 720,-378 570.768,-309.934 447.463,-143.354 410.404,-89.5553"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="413.192,-87.4312 404.674,-81.1303 407.404,-91.3676 413.192,-87.4312"/>
+</g>
+<!-- Node34&#45;&gt;Node26 -->
+<g id="edge83" class="edge"><title>Node34&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M1304.81,-415.679C1307.58,-415.099 1310.32,-414.536 1313,-414 1651.93,-346.271 2060.74,-280.608 2216.99,-256.093"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2217.57,-259.544 2226.91,-254.539 2216.49,-252.629 2217.57,-259.544"/>
+</g>
+<!-- Node34&#45;&gt;Node27 -->
+<g id="edge87" class="edge"><title>Node34&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M1233.11,-414.302C1202.9,-387.774 1134.43,-329.86 1070,-291 1048.88,-278.261 1023.54,-266.716 1003.92,-258.51"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1005.1,-255.208 994.518,-254.647 1002.44,-261.683 1005.1,-255.208"/>
+</g>
+<!-- Node34&#45;&gt;Node31 -->
+<g id="edge84" class="edge"><title>Node34&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M1292.65,-414.453C1377.02,-387.67 1568.66,-328.625 1733,-291 1798.2,-276.073 1873.68,-263.395 1925.9,-255.337"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1926.67,-258.761 1936.02,-253.788 1925.61,-251.841 1926.67,-258.761"/>
+</g>
+<!-- Node34&#45;&gt;Node32 -->
+<g id="edge85" class="edge"><title>Node34&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1193.05,-421.264C1108.93,-410.383 950.007,-389.826 858.545,-377.995"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="858.917,-374.515 848.551,-376.703 858.019,-381.457 858.917,-374.515"/>
+</g>
+<!-- Node35&#45;&gt;Node31 -->
+<g id="edge92" class="edge"><title>Node35&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M2150.58,-481.207C2135.97,-452.485 2087.07,-359.344 2034,-291 2025.89,-280.56 2015.62,-269.939 2007.04,-261.638"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2009.42,-259.069 1999.75,-254.74 2004.61,-264.155 2009.42,-259.069"/>
+</g>
+<!-- Node35&#45;&gt;Node36 -->
+<g id="edge93" class="edge"><title>Node35&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M2162.59,-481.475C2170.7,-472.373 2183.73,-457.741 2193.76,-446.483"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2196.38,-448.804 2200.42,-439.009 2191.16,-444.148 2196.38,-448.804"/>
+</g>
+<!-- Node37&#45;&gt;Node2 -->
+<g id="edge106" class="edge"><title>Node37&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1502.28,-712.027C1404.42,-705.332 1142.62,-676.636 969,-557 943.6,-539.498 940.135,-529.359 928,-501 871.696,-369.423 814.395,-261.981 931,-179 980.76,-143.589 1152.59,-135.731 1250.07,-134.184"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1250.18,-137.683 1260.13,-134.042 1250.08,-130.683 1250.18,-137.683"/>
+</g>
+<!-- Node37&#45;&gt;Node8 -->
+<g id="edge123" class="edge"><title>Node37&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1579.65,-712.688C1652.54,-709.563 1814.96,-699.501 1948,-669 2020.62,-652.351 2035.89,-638.2 2106,-613 2253.79,-559.878 2438,-649.05 2438,-492 2438,-492 2438,-492 2438,-428.5 2438,-338.846 2518.87,-321.416 2495,-235 2478.44,-175.062 2431.79,-116.125 2407.74,-88.6048"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2410.33,-86.2456 2401.06,-81.1062 2405.1,-90.9015 2410.33,-86.2456"/>
+</g>
+<!-- Node37&#45;&gt;Node9 -->
+<g id="edge120" class="edge"><title>Node37&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1502.3,-713.295C1347.7,-710.291 779.171,-697.396 704,-669 390.702,-550.649 254.558,-503.443 115,-199 68.4573,-97.468 282.717,-77.424 366.566,-73.4703"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="366.964,-76.9567 376.808,-73.0376 366.669,-69.9629 366.964,-76.9567"/>
+</g>
+<!-- Node37&#45;&gt;Node13 -->
+<g id="edge107" class="edge"><title>Node37&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1529.46,-705.426C1518.86,-697.079 1503.28,-683.552 1493,-669 1480.68,-651.569 1458.26,-595.515 1446.93,-566.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1450.15,-564.842 1443.3,-556.759 1443.62,-567.349 1450.15,-564.842"/>
+</g>
+<!-- Node37&#45;&gt;Node29 -->
+<g id="edge122" class="edge"><title>Node37&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M1579.87,-713.262C1696.49,-709.014 2047.9,-681.123 2252,-501 2342.45,-421.17 2345.12,-382.288 2424,-291 2432.48,-281.182 2442.26,-270.432 2450.14,-261.901"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2452.76,-264.215 2457,-254.506 2447.63,-259.452 2452.76,-264.215"/>
+</g>
+<!-- Node37&#45;&gt;Node32 -->
+<g id="edge108" class="edge"><title>Node37&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1502.35,-713.472C1352.54,-711.202 815.023,-700.888 746,-669 709.757,-652.256 684,-643.923 684,-604 684,-604 684,-604 684,-490 684,-441.143 733.437,-402.364 764.467,-382.836"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="766.32,-385.805 773.053,-377.624 762.688,-379.821 766.32,-385.805"/>
+</g>
+<!-- Node38 -->
+<g id="node38" class="node"><title>Node38</title>
+<g id="a_node38"><a xlink:href="span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
+<polygon fill="white" stroke="black" points="1366,-593.5 1366,-612.5 1446,-612.5 1446,-593.5 1366,-593.5"/>
+<text text-anchor="middle" x="1406" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/span.h</text>
+</a>
+</g>
+</g>
+<!-- Node37&#45;&gt;Node38 -->
+<g id="edge109" class="edge"><title>Node37&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M1521.08,-705.482C1503.85,-697.546 1478.82,-684.609 1460,-669 1443.14,-655.018 1427.58,-635.237 1417.54,-621.177"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1420.35,-619.098 1411.78,-612.881 1414.6,-623.091 1420.35,-619.098"/>
+</g>
+<!-- Node39 -->
+<g id="node39" class="node"><title>Node39</title>
+<g id="a_node39"><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="1502.5,-649.5 1502.5,-668.5 1579.5,-668.5 1579.5,-649.5 1502.5,-649.5"/>
+<text text-anchor="middle" x="1541" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/type.h</text>
+</a>
+</g>
+</g>
+<!-- Node37&#45;&gt;Node39 -->
+<g id="edge113" class="edge"><title>Node37&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M1541,-705.083C1541,-698.006 1541,-687.861 1541,-678.986"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1544.5,-678.751 1541,-668.751 1537.5,-678.751 1544.5,-678.751"/>
+</g>
+<!-- Node37&#45;&gt;Node40 -->
+<g id="edge121" class="edge"><title>Node37&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M1579.53,-712.499C1671.17,-708.59 1909.13,-696.429 2106,-669 2107.1,-668.846 2108.22,-668.682 2109.35,-668.51"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2110.34,-671.893 2119.61,-666.769 2109.16,-664.991 2110.34,-671.893"/>
+</g>
+<!-- Node38&#45;&gt;Node2 -->
+<g id="edge110" class="edge"><title>Node38&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1366,-601.225C1251.72,-597.939 932,-580.808 932,-492 932,-492 932,-492 932,-367 932,-308.004 881.208,-281.118 918,-235 962.916,-178.699 1009.06,-225.572 1076,-199 1092.29,-192.532 1093.67,-185.371 1110,-179 1155.2,-161.369 1208.74,-150.01 1250.31,-143.116"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1251.02,-146.546 1260.34,-141.5 1249.91,-139.635 1251.02,-146.546"/>
+</g>
+<!-- Node38&#45;&gt;Node9 -->
+<g id="edge112" class="edge"><title>Node38&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1365.83,-600.536C1288.35,-597.127 1113.2,-586.562 969,-557 706.801,-503.248 600.417,-548.382 394,-378 303.716,-303.477 274.328,-227.039 328,-123 336.557,-106.413 353.36,-94.0833 368.472,-85.7607"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="370.272,-88.7711 377.573,-81.0943 367.078,-82.5421 370.272,-88.7711"/>
+</g>
+<!-- Node38&#45;&gt;Node13 -->
+<g id="edge111" class="edge"><title>Node38&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1411.61,-593.083C1416.37,-585.534 1423.32,-574.495 1429.15,-565.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1432.12,-567.078 1434.49,-556.751 1426.2,-563.349 1432.12,-567.078"/>
+</g>
+<!-- Node39&#45;&gt;Node2 -->
+<g id="edge114" class="edge"><title>Node39&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1579.8,-653.285C1666.41,-641.677 1868,-608.196 1868,-548 1868,-548 1868,-548 1868,-490 1868,-289.552 1672.04,-330.868 1496,-235 1459.61,-215.183 1446.2,-219.168 1410,-199 1383.33,-184.139 1355.08,-163.006 1337.26,-148.916"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1339.4,-146.143 1329.41,-142.623 1335.02,-151.606 1339.4,-146.143"/>
+</g>
+<!-- Node39&#45;&gt;Node9 -->
+<g id="edge119" class="edge"><title>Node39&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1502.34,-656.439C1396.68,-651.899 1104.81,-637.45 1012,-613 758.521,-546.222 666.077,-523.981 499,-322 441.857,-252.919 430.889,-229.128 406,-143 401.096,-126.031 399.492,-105.914 399.028,-91.5218"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="402.525,-91.3162 398.859,-81.3759 395.526,-91.4327 402.525,-91.3162"/>
+</g>
+<!-- Node39&#45;&gt;Node13 -->
+<g id="edge116" class="edge"><title>Node39&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1534.49,-649.282C1524.82,-636.512 1505.88,-612.162 1488,-593 1478.36,-582.665 1466.82,-571.807 1457.47,-563.346"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1459.72,-560.656 1449.93,-556.601 1455.05,-565.875 1459.72,-560.656"/>
+</g>
+<!-- Node39&#45;&gt;Node26 -->
+<g id="edge115" class="edge"><title>Node39&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M1579.8,-654.568C1711.21,-642.154 2136.37,-595.267 2229,-501 2293.86,-434.995 2288.89,-311.553 2284.29,-264.693"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2287.74,-264.068 2283.17,-254.51 2280.78,-264.833 2287.74,-264.068"/>
+</g>
+<!-- Node39&#45;&gt;Node32 -->
+<g id="edge117" class="edge"><title>Node39&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1502.09,-655.67C1381.54,-647.845 1016.44,-619.413 918,-557 851.69,-514.957 810.693,-425.203 795.591,-386.911"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="798.856,-385.651 792.019,-377.558 792.317,-388.148 798.856,-385.651"/>
+</g>
+<!-- Node39&#45;&gt;Node38 -->
+<g id="edge118" class="edge"><title>Node39&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M1519.61,-649.444C1497.29,-640.517 1462.1,-626.439 1436.79,-616.317"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1437.88,-612.981 1427.29,-612.516 1435.28,-619.48 1437.88,-612.981"/>
+</g>
+<!-- Node41&#45;&gt;Node8 -->
+<g id="edge158" class="edge"><title>Node41&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1991.34,-937.664C2103.37,-935.739 2513.5,-922.844 2603,-837 2797.74,-650.221 2742,-515.834 2742,-246 2742,-246 2742,-246 2742,-188 2742,-150.157 2719.85,-141.781 2687,-123 2645.11,-99.0534 2508.44,-83.2121 2437.16,-76.3637"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2437.42,-72.8729 2427.14,-75.4187 2436.76,-79.842 2437.42,-72.8729"/>
+</g>
+<!-- Node41&#45;&gt;Node9 -->
+<g id="edge155" class="edge"><title>Node41&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1934.77,-938.084C1716.87,-938.629 306.494,-940.307 124,-893 63.767,-877.386 0,-890.224 0,-828 0,-828 0,-828 0,-188 0,-147.769 27.2243,-141.403 63,-123 115.746,-95.8673 292.979,-80.199 366.557,-74.7273"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="366.914,-78.2106 376.634,-73.9938 366.406,-71.2291 366.914,-78.2106"/>
+</g>
+<!-- Node41&#45;&gt;Node10 -->
+<g id="edge157" class="edge"><title>Node41&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1934.79,-938.199C1745.97,-939.387 663.372,-943.858 338,-893 235.581,-876.991 114,-931.662 114,-828 114,-828 114,-828 114,-602 114,-442.257 503.315,-186.257 650,-123 711.882,-96.3139 790.184,-82.418 832.832,-76.3626"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="833.441,-79.812 842.875,-74.989 832.493,-72.8765 833.441,-79.812"/>
+</g>
+<!-- Node41&#45;&gt;Node12 -->
+<g id="edge147" class="edge"><title>Node41&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1962.28,-929.368C1960.97,-908.476 1960.05,-854.171 1982,-817 1989.64,-804.057 2002.55,-793.489 2014.26,-785.854"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2016.15,-788.797 2022.86,-780.597 2012.5,-782.823 2016.15,-788.797"/>
+</g>
+<!-- Node41&#45;&gt;Node21 -->
+<g id="edge156" class="edge"><title>Node41&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1991.16,-936.088C2113.16,-927.438 2590,-889.682 2590,-828 2590,-828 2590,-828 2590,-546 2590,-509.868 2523.56,-257.131 2495,-235 2459.17,-207.24 1725.17,-202.667 1680,-199 1666.1,-197.872 1650.83,-196.156 1637.64,-194.524"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1637.94,-191.034 1627.58,-193.246 1637.06,-197.978 1637.94,-191.034"/>
+</g>
+<!-- Node41&#45;&gt;Node32 -->
+<g id="edge131" class="edge"><title>Node41&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1934.79,-937.779C1707.98,-935.822 190,-919.317 190,-828 190,-828 190,-828 190,-714 190,-472.094 561.379,-397.242 719.289,-376.349"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="719.905,-379.798 729.376,-375.049 719.01,-372.856 719.905,-379.798"/>
+</g>
+<!-- Node42 -->
+<g id="node42" class="node"><title>Node42</title>
+<g id="a_node42"><a xlink:href="bound_8h.html" target="_top" xlink:title="Bound deducers. ">
+<polygon fill="white" stroke="black" points="1570,-873.5 1570,-892.5 1672,-892.5 1672,-873.5 1570,-873.5"/>
+<text text-anchor="middle" x="1621" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/arith/bound.h</text>
+</a>
+</g>
+</g>
+<!-- Node41&#45;&gt;Node42 -->
+<g id="edge132" class="edge"><title>Node41&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M1934.72,-933.535C1879.7,-924.847 1757.1,-905.489 1682.5,-893.71"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1682.72,-890.202 1672.3,-892.1 1681.63,-897.117 1682.72,-890.202"/>
+</g>
+<!-- Node45 -->
+<g id="node45" class="node"><title>Node45</title>
+<g id="a_node45"><a xlink:href="tir_2op_8h.html" target="_top" xlink:title="Common operators defined for Expr. ">
+<polygon fill="white" stroke="black" points="2143,-873.5 2143,-892.5 2215,-892.5 2215,-873.5 2143,-873.5"/>
+<text text-anchor="middle" x="2179" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/op.h</text>
+</a>
+</g>
+</g>
+<!-- Node41&#45;&gt;Node45 -->
+<g id="edge148" class="edge"><title>Node41&#45;&gt;Node45</title>
+<path fill="none" stroke="midnightblue" d="M1991.24,-930.94C2027.76,-921.809 2091.78,-905.804 2134.78,-895.054"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2135.84,-898.397 2144.7,-892.576 2134.15,-891.606 2135.84,-898.397"/>
+</g>
+<!-- Node42&#45;&gt;Node12 -->
+<g id="edge139" class="edge"><title>Node42&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1653.53,-873.46C1728.64,-853.742 1914.09,-805.055 1997.8,-783.078"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1998.71,-786.459 2007.49,-780.535 1996.93,-779.689 1998.71,-786.459"/>
+</g>
+<!-- Node42&#45;&gt;Node22 -->
+<g id="edge146" class="edge"><title>Node42&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1569.91,-881.295C1354.73,-878.162 528.204,-864.435 415,-837 237.32,-793.94 76,-786.823 76,-604 76,-604 76,-604 76,-305.5 76,-260.518 119.51,-223.521 147.639,-204.303"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="149.725,-207.12 156.156,-198.7 145.878,-201.271 149.725,-207.12"/>
+</g>
+<!-- Node42&#45;&gt;Node32 -->
+<g id="edge133" class="edge"><title>Node42&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1569.84,-882C1340.39,-881.479 413.666,-873.618 328,-781 245.701,-692.022 415.966,-556.218 660,-414 685.962,-398.87 717.819,-387.695 743.379,-380.265"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="744.517,-383.581 753.196,-377.504 742.622,-376.842 744.517,-383.581"/>
+</g>
+<!-- Node42&#45;&gt;Node37 -->
+<g id="edge134" class="edge"><title>Node42&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M1619.22,-873.338C1616.45,-860.639 1610.51,-836.376 1602,-817 1588.27,-785.731 1566.55,-752.354 1553.07,-732.876"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1555.8,-730.671 1547.19,-724.5 1550.07,-734.695 1555.8,-730.671"/>
+</g>
+<!-- Node43 -->
+<g id="node43" class="node"><title>Node43</title>
+<g id="a_node43"><a xlink:href="int__set_8h.html" target="_top" xlink:title="Integer set. ">
+<polygon fill="white" stroke="black" points="1489,-817.5 1489,-836.5 1593,-836.5 1593,-817.5 1489,-817.5"/>
+<text text-anchor="middle" x="1541" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/arith/int_set.h</text>
+</a>
+</g>
+</g>
+<!-- Node42&#45;&gt;Node43 -->
+<g id="edge135" class="edge"><title>Node42&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M1608.15,-873.324C1595.78,-864.979 1576.87,-852.212 1562.26,-842.352"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1564.07,-839.348 1553.82,-836.655 1560.15,-845.15 1564.07,-839.348"/>
+</g>
+<!-- Node44 -->
+<g id="node44" class="node"><title>Node44</title>
+<g id="a_node44"><a xlink:href="stmt_8h.html" target="_top" xlink:title="TIR statements. ">
+<polygon fill="white" stroke="black" points="1991.5,-817.5 1991.5,-836.5 2074.5,-836.5 2074.5,-817.5 1991.5,-817.5"/>
+<text text-anchor="middle" x="2033" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/stmt.h</text>
+</a>
+</g>
+</g>
+<!-- Node42&#45;&gt;Node44 -->
+<g id="edge140" class="edge"><title>Node42&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M1672.35,-875.27C1751.31,-864.92 1901.72,-845.207 1981.05,-834.809"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1981.83,-838.237 1991.29,-833.467 1980.92,-831.296 1981.83,-838.237"/>
+</g>
+<!-- Node43&#45;&gt;Node12 -->
+<g id="edge137" class="edge"><title>Node43&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1593.46,-820.323C1690.05,-809.87 1894.83,-787.71 1989.75,-777.438"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1990.38,-780.89 1999.95,-776.334 1989.63,-773.93 1990.38,-780.89"/>
+</g>
+<!-- Node43&#45;&gt;Node22 -->
+<g id="edge138" class="edge"><title>Node43&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1488.97,-825.438C1259.06,-822.789 343.188,-810.422 290,-781 83.8135,-666.943 148.244,-296.426 166.78,-208.731"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="170.218,-209.391 168.926,-198.875 163.378,-207.901 170.218,-209.391"/>
+</g>
+<!-- Node43&#45;&gt;Node37 -->
+<g id="edge136" class="edge"><title>Node43&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M1541,-817.368C1541,-799.617 1541,-758.666 1541,-734.597"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1544.5,-734.591 1541,-724.591 1537.5,-734.591 1544.5,-734.591"/>
+</g>
+<!-- Node44&#45;&gt;Node8 -->
+<g id="edge142" class="edge"><title>Node44&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M2074.68,-824.504C2184.96,-819.421 2476,-798.217 2476,-716 2476,-716 2476,-716 2476,-658 2476,-511.236 2552.43,-491.225 2614,-358 2637.02,-308.181 2666,-300.881 2666,-246 2666,-246 2666,-246 2666,-188 2666,-89.9432 2514.77,-73.8685 2437.42,-72.0593"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2437.08,-68.5534 2427.02,-71.8917 2436.97,-75.5525 2437.08,-68.5534"/>
+</g>
+<!-- Node44&#45;&gt;Node9 -->
+<g id="edge143" class="edge"><title>Node44&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1991.42,-824.945C1764.95,-819.162 687.611,-791.208 618,-781 454.321,-756.997 266,-825.429 266,-660 266,-660 266,-660 266,-428.5 266,-290.987 231.352,-232.147 315,-123 328.362,-105.565 349.608,-92.8722 367.389,-84.5725"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="369.098,-87.6447 376.839,-80.4114 366.276,-81.2383 369.098,-87.6447"/>
+</g>
+<!-- Node44&#45;&gt;Node10 -->
+<g id="edge145" class="edge"><title>Node44&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1991.17,-824.973C1743.7,-818.698 480.263,-783.843 425,-725 212.277,-498.497 724.739,-159.025 841.115,-86.4589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="843.017,-89.3983 849.676,-81.1582 839.332,-83.4467 843.017,-89.3983"/>
+</g>
+<!-- Node44&#45;&gt;Node12 -->
+<g id="edge141" class="edge"><title>Node44&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M2034.16,-817.083C2035.08,-809.927 2036.42,-799.635 2037.58,-790.691"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2041.05,-791.118 2038.87,-780.751 2034.11,-790.218 2041.05,-791.118"/>
+</g>
+<!-- Node44&#45;&gt;Node21 -->
+<g id="edge144" class="edge"><title>Node44&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M2074.85,-819.577C2125.22,-809.359 2207.68,-784.124 2245,-725 2271.97,-682.277 2266.93,-699.713 2182,-593 2144.19,-545.489 2124.4,-543.47 2081,-501 1964.39,-386.881 1971.49,-312.655 1828,-235 1753,-194.41 1720.35,-218.633 1637.57,-200.199"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1638.31,-196.777 1627.77,-197.871 1636.69,-203.587 1638.31,-196.777"/>
+</g>
+<!-- Node45&#45;&gt;Node8 -->
+<g id="edge153" class="edge"><title>Node45&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M2215.44,-881.636C2270.96,-879.907 2379.1,-871.876 2463,-837 2508.23,-818.198 2552,-820.982 2552,-772 2552,-772 2552,-772 2552,-658 2552,-576.858 2628,-573.142 2628,-492 2628,-492 2628,-492 2628,-428.5 2628,-340.637 2704,-333.863 2704,-246 2704,-246 2704,-246 2704,-188 2704,-152.864 2688.46,-142.151 2659,-123 2623.09,-99.654 2503.49,-83.9542 2437.57,-76.846"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2437.78,-73.3491 2427.47,-75.7791 2437.05,-80.3104 2437.78,-73.3491"/>
+</g>
+<!-- Node45&#45;&gt;Node12 -->
+<g id="edge150" class="edge"><title>Node45&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M2172.03,-873.259C2161.21,-860.029 2139.27,-834.602 2117,-817 2101.41,-804.675 2082.09,-793.396 2066.71,-785.213"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2068.2,-782.04 2057.71,-780.536 2064.97,-788.252 2068.2,-782.04"/>
+</g>
+<!-- Node45&#45;&gt;Node29 -->
+<g id="edge154" class="edge"><title>Node45&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M2215.17,-877.917C2301.79,-867.137 2514,-834.363 2514,-772 2514,-772 2514,-772 2514,-428.5 2514,-366.309 2487.13,-296.15 2473.19,-263.926"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2476.27,-262.238 2469.01,-254.518 2469.87,-265.078 2476.27,-262.238"/>
+</g>
+<!-- Node45&#45;&gt;Node39 -->
+<g id="edge149" class="edge"><title>Node45&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2175.62,-873.217C2166.12,-849.93 2136.74,-786.645 2089,-761 1922.11,-671.358 1689.9,-659.758 1589.94,-659.259"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1589.84,-655.759 1579.84,-659.244 1589.83,-662.759 1589.84,-655.759"/>
+</g>
+<!-- Node45&#45;&gt;Node40 -->
+<g id="edge152" class="edge"><title>Node45&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M2182.6,-873.222C2186.06,-864.285 2191.03,-849.942 2193,-837 2201.83,-778.918 2208.48,-759.277 2186,-705 2181.61,-694.413 2174.04,-684.198 2167.05,-676.183"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2169.5,-673.677 2160.14,-668.705 2164.36,-678.426 2169.5,-673.677"/>
+</g>
+<!-- Node45&#45;&gt;Node44 -->
+<g id="edge151" class="edge"><title>Node45&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M2155.87,-873.444C2131.52,-864.438 2092.99,-850.189 2065.58,-840.049"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2066.62,-836.703 2056.03,-836.516 2064.19,-843.268 2066.62,-836.703"/>
+</g>
+</g>
+</svg>
diff --git a/docs/doxygen/autodiff_8h_source.html b/docs/doxygen/autodiff_8h_source.html
new file mode 100644
index 0000000..7efc0af
--- /dev/null
+++ b/docs/doxygen/autodiff_8h_source.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>tvm: include/tvm/te/autodiff.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_b4c7d8e826c599ba55146c099a14beb5.html">tvm</a></li><li class="navelem"><a class="el" href="dir_f97d855a3173728370e632aa77170e34.html">te</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">autodiff.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="autodiff_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more co [...]
+<div class="ttc" id="namespacetvm_1_1te_html_a5c207a8c51face2c69657fb93ecec9c8"><div class="ttname"><a href="namespacetvm_1_1te.html#a5c207a8c51face2c69657fb93ecec9c8">tvm::te::Derivative</a></div><div class="ttdeci">PrimExpr Derivative(const PrimExpr &amp;expr, const Var &amp;var)</div><div class="ttdoc">Take the derivative of the expression with respect to the given variable. </div></div>
+<div class="ttc" id="tensor_8h_html"><div class="ttname"><a href="tensor_8h.html">tensor.h</a></div><div class="ttdoc">Dataflow tensor object. </div></div>
+<div class="ttc" id="tir_2expr_8h_html"><div class="ttname"><a href="tir_2expr_8h.html">expr.h</a></div><div class="ttdoc">TIR expressions. </div></div>
+<div class="ttc" id="namespacetvm_1_1te_html_a6298db2545a416ec1fd47c593b7217b7"><div class="ttname"><a href="namespacetvm_1_1te.html#a6298db2545a416ec1fd47c593b7217b7">tvm::te::Jacobian</a></div><div class="ttdeci">Tensor Jacobian(const Tensor &amp;output, const Tensor &amp;input)</div><div class="ttdoc">Get the tensor representing the Jacobian of the output with respect to the input. ...</div></div>
+<div class="ttc" id="namespacetvm_1_1te_html_ae0c71f84710b436cbe0b32289d0838f4"><div class="ttname"><a href="namespacetvm_1_1te.html#ae0c71f84710b436cbe0b32289d0838f4">tvm::te::var</a></div><div class="ttdeci">Var var(std::string name_hint, DataType t=DataType::Int(32))</div><div class="ttdoc">Construct a new Var expression. </div></div>
+<div class="ttc" id="object_8h_html"><div class="ttname"><a href="object_8h.html">object.h</a></div><div class="ttdoc">A managed object in the TVM runtime. </div></div>
+<div class="ttc" id="namespacetvm_1_1te_html_a547183f5a311af53ab598faba423fd64"><div class="ttname"><a href="namespacetvm_1_1te.html#a547183f5a311af53ab598faba423fd64">tvm::te::VectorJacobianProduct</a></div><div class="ttdeci">Tensor VectorJacobianProduct(const Tensor &amp;output, const Tensor &amp;input, const Tensor &amp;head)</div><div class="ttdoc">The building block for reverse-mode AD. </div></div>
+<div class="ttc" id="namespacetvm_1_1te_html_a0de1399717049f2b3582f0344b267d56"><div class="ttname"><a href="namespacetvm_1_1te.html#a0de1399717049f2b3582f0344b267d56">tvm::te::Gradient</a></div><div class="ttdeci">Array&lt; Tensor &gt; Gradient(const Tensor &amp;output, const Array&lt; Tensor &gt; &amp;inputs, const Tensor &amp;head=Tensor())</div><div class="ttdoc">Perform reverse mode automatic differentiation. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/docs/doxygen/bound_8h.html b/docs/doxygen/bound_8h.html
index d11d8be..498f38b 100644
--- a/docs/doxygen/bound_8h.html
+++ b/docs/doxygen/bound_8h.html
@@ -110,7 +110,7 @@ Include dependency graph for bound.h:</div>
 </div><div class="textblock"><div class="dynheader">
 This graph shows which files directly or indirectly include this file:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="bound_8h__dep__incl.svg" width="4596" height="812"><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="bound_8h__dep__incl.svg" width="4704" height="812"><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/doxygen/bound_8h__dep__incl.svg b/docs/doxygen/bound_8h__dep__incl.svg
index 5d19a42..b053ad4 100644
--- a/docs/doxygen/bound_8h__dep__incl.svg
+++ b/docs/doxygen/bound_8h__dep__incl.svg
@@ -4,984 +4,983 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/arith/bound.h Pages: 1 -->
-<svg width="3447pt" height="609pt"
- viewBox="0.00 0.00 3446.50 609.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="3528pt" height="609pt"
+ viewBox="0.00 0.00 3528.00 609.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 605)">
 <title>include/tvm/arith/bound.h</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-605 3442.5,-605 3442.5,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-605 3524,-605 3524,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="230,-581.5 230,-600.5 369,-600.5 369,-581.5 230,-581.5"/>
-<text text-anchor="middle" x="299.5" y="-588.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/bound.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="368.5,-581.5 368.5,-600.5 507.5,-600.5 507.5,-581.5 368.5,-581.5"/>
+<text text-anchor="middle" x="438" y="-588.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/bound.h</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
 <g id="a_node2"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
-<polygon fill="white" stroke="black" points="236,-525.5 236,-544.5 363,-544.5 363,-525.5 236,-525.5"/>
-<text text-anchor="middle" x="299.5" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
+<polygon fill="white" stroke="black" points="374.5,-525.5 374.5,-544.5 501.5,-544.5 501.5,-525.5 374.5,-525.5"/>
+<text text-anchor="middle" x="438" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M299.5,-570.805C299.5,-561.91 299.5,-551.78 299.5,-544.751"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="296,-571.083 299.5,-581.083 303,-571.083 296,-571.083"/>
+<path fill="none" stroke="midnightblue" d="M438,-570.805C438,-561.91 438,-551.78 438,-544.751"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="434.5,-571.083 438,-581.083 441.5,-571.083 434.5,-571.083"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
 <g id="a_node3"><a xlink:href="op__attr__types_8h.html" target="_top" xlink:title="The Expr and related elements in DataFlow construction. ">
-<polygon fill="white" stroke="black" points="175,-335.5 175,-365.5 288,-365.5 288,-335.5 175,-335.5"/>
-<text text-anchor="start" x="183" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
-<text text-anchor="middle" x="231.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attr_types.h</text>
+<polygon fill="white" stroke="black" points="238.5,-335.5 238.5,-365.5 351.5,-365.5 351.5,-335.5 238.5,-335.5"/>
+<text text-anchor="start" x="246.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
+<text text-anchor="middle" x="295" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attr_types.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node3 -->
 <g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M292.729,-515.827C279.184,-479.475 249.008,-398.487 236.789,-365.695"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="289.449,-517.049 296.22,-525.198 296.008,-514.605 289.449,-517.049"/>
+<path fill="none" stroke="midnightblue" d="M364.277,-529.667C336.423,-523.998 307.304,-512.348 290,-489 262.549,-451.961 279.331,-392.618 289.253,-365.654"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="363.996,-533.173 374.458,-531.496 365.234,-526.283 363.996,-533.173"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
 <g id="a_node4"><a xlink:href="op__strategy_8h.html" target="_top" xlink:title="The Relay operator Strategy and related data structure. ">
-<polygon fill="white" stroke="black" points="0,-268.5 0,-298.5 113,-298.5 113,-268.5 0,-268.5"/>
-<text text-anchor="start" x="8" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
-<text text-anchor="middle" x="56.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">_strategy.h</text>
+<polygon fill="white" stroke="black" points="176.5,-268.5 176.5,-298.5 289.5,-298.5 289.5,-268.5 176.5,-268.5"/>
+<text text-anchor="start" x="184.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
+<text text-anchor="middle" x="233" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">_strategy.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node4 -->
-<g id="edge6" class="edge"><title>Node2&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M284.08,-518.168C239.721,-472.622 112.272,-341.764 70.1765,-298.542"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="281.651,-520.69 291.135,-525.412 286.666,-515.806 281.651,-520.69"/>
+<g id="edge5" class="edge"><title>Node2&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M364.46,-528.68C333.252,-522.966 298.504,-511.551 274,-489 218.848,-438.242 226.08,-335.862 230.87,-298.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="364.012,-532.154 374.45,-530.342 365.16,-525.249 364.012,-532.154"/>
+</g>
+<!-- Node6 -->
+<g id="node6" class="node"><title>Node6</title>
+<g id="a_node6"><a xlink:href="autodiff_8h.html" target="_top" xlink:title="Automatic differentiation of tensor expressions. ">
+<polygon fill="white" stroke="black" points="299.5,-464 299.5,-483 432.5,-483 432.5,-464 299.5,-464"/>
+<text text-anchor="middle" x="366" y="-471" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
+</a>
+</g>
+</g>
+<!-- Node2&#45;&gt;Node6 -->
+<g id="edge6" class="edge"><title>Node2&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M419.816,-518.973C406.045,-507.593 387.623,-492.369 376.297,-483.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="417.746,-521.803 427.684,-525.475 422.205,-516.407 417.746,-521.803"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node"><title>Node7</title>
 <g id="a_node7"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
-<polygon fill="white" stroke="black" points="1929,-341 1929,-360 2072,-360 2072,-341 1929,-341"/>
-<text text-anchor="middle" x="2000.5" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
+<polygon fill="white" stroke="black" points="2010.5,-341 2010.5,-360 2153.5,-360 2153.5,-341 2010.5,-341"/>
+<text text-anchor="middle" x="2082" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node7 -->
 <g id="edge7" class="edge"><title>Node2&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M373.135,-526.1C653.384,-496.032 1651.57,-388.936 1928.69,-359.205"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="372.646,-522.632 363.077,-527.179 373.393,-529.592 372.646,-522.632"/>
+<path fill="none" stroke="midnightblue" d="M511.909,-525.795C785.639,-495.409 1739.84,-389.484 2010.14,-359.477"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="511.243,-522.348 501.691,-526.93 512.016,-529.305 511.243,-522.348"/>
 </g>
 <!-- Node47 -->
 <g id="node47" class="node"><title>Node47</title>
 <g id="a_node47"><a xlink:href="schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
-<polygon fill="white" stroke="black" points="317.5,-402.5 317.5,-421.5 457.5,-421.5 457.5,-402.5 317.5,-402.5"/>
-<text text-anchor="middle" x="387.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
+<polygon fill="white" stroke="black" points="440,-402.5 440,-421.5 580,-421.5 580,-402.5 440,-402.5"/>
+<text text-anchor="middle" x="510" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node47 -->
 <g id="edge87" class="edge"><title>Node2&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M300.397,-515.142C302.013,-498.707 306.447,-474.921 318.5,-458 330.531,-441.11 351.07,-428.916 366.618,-421.518"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="296.902,-514.943 299.67,-525.17 303.884,-515.45 296.902,-514.943"/>
+<path fill="none" stroke="midnightblue" d="M511.76,-527.736C536.897,-521.651 562.533,-510.218 578,-489 586.116,-477.866 584.522,-470.136 578,-458 568.619,-440.542 549.161,-428.72 533.454,-421.592"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="510.836,-524.354 501.801,-529.887 512.314,-531.197 510.836,-524.354"/>
 </g>
 <!-- Node50 -->
 <g id="node50" class="node"><title>Node50</title>
 <g id="a_node50"><a xlink:href="tensor__intrin_8h.html" target="_top" xlink:title="Tensor intrinsic operations. ">
-<polygon fill="white" stroke="black" points="328,-458.5 328,-488.5 447,-488.5 447,-458.5 328,-458.5"/>
-<text text-anchor="start" x="336" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor</text>
-<text text-anchor="middle" x="387.5" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00">_intrin.h</text>
+<polygon fill="white" stroke="black" points="450.5,-458.5 450.5,-488.5 569.5,-488.5 569.5,-458.5 450.5,-458.5"/>
+<text text-anchor="start" x="458.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor</text>
+<text text-anchor="middle" x="510" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00">_intrin.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node50 -->
 <g id="edge106" class="edge"><title>Node2&#45;&gt;Node50</title>
-<path fill="none" stroke="midnightblue" d="M320.592,-519.739C334.578,-510.282 352.847,-497.93 366.76,-488.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="318.432,-516.974 312.108,-525.475 322.353,-522.773 318.432,-516.974"/>
+<path fill="none" stroke="midnightblue" d="M456.246,-518.921C467.551,-509.579 481.973,-497.662 493.031,-488.523"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="453.795,-516.407 448.316,-525.475 458.254,-521.803 453.795,-516.407"/>
 </g>
 <!-- Node3&#45;&gt;Node4 -->
 <g id="edge3" class="edge"><title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M183.896,-331.819C155.767,-321.371 120.639,-308.323 94.3983,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="182.935,-335.195 193.528,-335.396 185.372,-328.633 182.935,-335.195"/>
+<path fill="none" stroke="midnightblue" d="M274.515,-328.024C265.278,-318.34 254.627,-307.174 246.427,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="272.112,-330.576 281.547,-335.396 277.177,-325.744 272.112,-330.576"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
 <g id="a_node5"><a xlink:href="include_2tvm_2relay_2transform_8h.html" target="_top" xlink:title="Relay specific transformation passes. ">
-<polygon fill="white" stroke="black" points="131.5,-274 131.5,-293 289.5,-293 289.5,-274 131.5,-274"/>
-<text text-anchor="middle" x="210.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/transform.h</text>
+<polygon fill="white" stroke="red" points="0,-274 0,-293 158,-293 158,-274 0,-274"/>
+<text text-anchor="middle" x="79" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node5 -->
 <g id="edge4" class="edge"><title>Node3&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M223.777,-325.596C220.121,-314.278 215.98,-301.461 213.309,-293.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="220.538,-326.956 226.943,-335.396 227.199,-324.804 220.538,-326.956"/>
-</g>
-<!-- Node6 -->
-<g id="node6" class="node"><title>Node6</title>
-<g id="a_node6"><a xlink:href="include_2tvm_2relay_2qnn_2transform_8h.html" target="_top" xlink:title="include/tvm/relay/qnn\l/transform.h">
-<polygon fill="white" stroke="black" points="151,-201.5 151,-231.5 270,-231.5 270,-201.5 151,-201.5"/>
-<text text-anchor="start" x="159" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
-<text text-anchor="middle" x="210.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
-</a>
-</g>
-</g>
-<!-- Node5&#45;&gt;Node6 -->
-<g id="edge5" class="edge"><title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M210.5,-263.411C210.5,-253.222 210.5,-240.901 210.5,-231.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="207,-263.734 210.5,-273.734 214,-263.734 207,-263.734"/>
+<path fill="none" stroke="midnightblue" d="M238.808,-332.59C196.624,-319.896 140.62,-303.043 107.341,-293.029"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="237.813,-335.946 248.397,-335.476 239.83,-329.243 237.813,-335.946"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node"><title>Node8</title>
 <g id="a_node8"><a xlink:href="cublas_8h.html" target="_top" xlink:title="External function interface to cuBLAS libraries. ">
-<polygon fill="white" stroke="black" points="688.5,-201.5 688.5,-231.5 816.5,-231.5 816.5,-201.5 688.5,-201.5"/>
-<text text-anchor="start" x="696.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
-<text text-anchor="middle" x="752.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/cublas.h</text>
+<polygon fill="white" stroke="black" points="726,-201.5 726,-231.5 854,-231.5 854,-201.5 726,-201.5"/>
+<text text-anchor="start" x="734" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
+<text text-anchor="middle" x="790" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/cublas.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node8 -->
 <g id="edge8" class="edge"><title>Node7&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1918.62,-348.702C1679.6,-345.959 993.715,-335.009 899.5,-299 879.14,-291.219 879.977,-279.561 861.5,-268 838.427,-253.564 810.553,-240.723 788.768,-231.602"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.6,-352.202 1928.64,-348.815 1918.68,-345.202 1918.6,-352.202"/>
+<path fill="none" stroke="midnightblue" d="M1999.88,-348.857C1754.13,-346.517 1035.41,-336.511 937,-299 916.634,-291.237 917.477,-279.561 899,-268 875.927,-253.564 848.053,-240.723 826.268,-231.602"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.14,-352.359 2010.17,-348.953 2000.2,-345.36 2000.14,-352.359"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node"><title>Node9</title>
 <g id="a_node9"><a xlink:href="cuda_2dense_8h.html" target="_top" xlink:title="CUDA schedule for dense operation. ">
-<polygon fill="white" stroke="black" points="2282,-67.5 2282,-97.5 2401,-97.5 2401,-67.5 2282,-67.5"/>
-<text text-anchor="start" x="2290" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2341.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
+<polygon fill="white" stroke="black" points="2308.5,-67.5 2308.5,-97.5 2427.5,-97.5 2427.5,-67.5 2308.5,-67.5"/>
+<text text-anchor="start" x="2316.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2368" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node9 -->
 <g id="edge13" class="edge"><title>Node7&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2065.65,-339.07C2106.61,-331.141 2159.95,-318.261 2204.5,-299 2227.81,-288.922 2228.43,-276.083 2252.5,-268 2303.52,-250.871 2698.89,-271.442 2735.5,-232 2744.87,-221.902 2743.73,-212.047 2735.5,-201 2695.35,-147.13 2501.2,-108.949 2401.24,-92.5138"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2064.96,-335.639 2055.78,-340.932 2066.26,-342.517 2064.96,-335.639"/>
+<path fill="none" stroke="midnightblue" d="M2147.15,-339.07C2188.11,-331.141 2241.45,-318.261 2286,-299 2309.31,-288.922 2309.99,-276.265 2334,-268 2418.6,-238.882 2674.63,-298.032 2735,-232 2744.3,-221.831 2743.08,-212.159 2735,-201 2698.56,-150.674 2521.78,-111.519 2427.51,-93.8192"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2146.46,-335.639 2137.28,-340.932 2147.76,-342.517 2146.46,-335.639"/>
 </g>
 <!-- Node10 -->
 <g id="node10" class="node"><title>Node10</title>
 <g id="a_node10"><a xlink:href="rocm_2dense_8h.html" target="_top" xlink:title="rocm schedule for dense operation ">
-<polygon fill="white" stroke="black" points="2325.5,-0.5 2325.5,-30.5 2445.5,-30.5 2445.5,-0.5 2325.5,-0.5"/>
-<text text-anchor="start" x="2333.5" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="2385.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
+<polygon fill="white" stroke="black" points="2352,-0.5 2352,-30.5 2472,-30.5 2472,-0.5 2352,-0.5"/>
+<text text-anchor="start" x="2360" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="2412" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node10 -->
 <g id="edge76" class="edge"><title>Node7&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M2082.2,-348.651C2371.35,-345.37 3331.94,-332.023 3388.5,-299 3425.2,-277.574 3438.5,-259.996 3438.5,-217.5 3438.5,-217.5 3438.5,-217.5 3438.5,-148.5 3438.5,-95.5174 3400.25,-87.7543 3351.5,-67 3268.45,-31.641 2643.54,-20.0545 2445.51,-17.2502"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2082.16,-345.151 2072.2,-348.763 2082.24,-352.15 2082.16,-345.151"/>
+<path fill="none" stroke="midnightblue" d="M2163.76,-348.959C2455.41,-346.72 3430.32,-336.455 3485,-299 3517.52,-276.723 3520,-256.921 3520,-217.5 3520,-217.5 3520,-217.5 3520,-148.5 3520,-71.0617 3440.64,-87.6416 3366,-67 3196.65,-20.1649 2654.15,-16.2631 2472.16,-16.3094"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.65,-345.46 2153.68,-349.036 2163.7,-352.46 2163.65,-345.46"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node"><title>Node11</title>
 <g id="a_node11"><a xlink:href="rocblas_8h.html" target="_top" xlink:title="topi/include/topi/contrib\l/rocblas.h">
-<polygon fill="white" stroke="black" points="542.5,-201.5 542.5,-231.5 670.5,-231.5 670.5,-201.5 542.5,-201.5"/>
-<text text-anchor="start" x="550.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
-<text text-anchor="middle" x="606.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/rocblas.h</text>
+<polygon fill="white" stroke="black" points="542,-201.5 542,-231.5 670,-231.5 670,-201.5 542,-201.5"/>
+<text text-anchor="start" x="550" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
+<text text-anchor="middle" x="606" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/rocblas.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node11 -->
 <g id="edge11" class="edge"><title>Node7&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1918.49,-349.215C1653.84,-347.886 833.09,-340.435 721.5,-299 700.743,-291.293 700.404,-281.028 682.5,-268 664.823,-255.137 644.119,-241.467 628.789,-231.598"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.78,-352.716 1928.8,-349.265 1918.82,-345.716 1918.78,-352.716"/>
+<path fill="none" stroke="midnightblue" d="M1999.86,-349.204C1724.7,-347.832 846.021,-340.235 726,-299 703.719,-291.345 702.411,-281.352 683,-268 664.692,-255.406 643.565,-241.6 628.077,-231.611"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.15,-352.706 2010.17,-349.254 2000.19,-345.706 2000.15,-352.706"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node"><title>Node12</title>
 <g id="a_node12"><a xlink:href="cuda_2injective_8h.html" target="_top" xlink:title="CUDA schedule for injective operations. ">
-<polygon fill="white" stroke="black" points="2254,-201.5 2254,-231.5 2373,-231.5 2373,-201.5 2254,-201.5"/>
-<text text-anchor="start" x="2262" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2313.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
+<polygon fill="white" stroke="black" points="2253.5,-201.5 2253.5,-231.5 2372.5,-231.5 2372.5,-201.5 2253.5,-201.5"/>
+<text text-anchor="start" x="2261.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2313" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node12 -->
 <g id="edge14" class="edge"><title>Node7&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M2008.96,-331.929C2019,-313.03 2037.59,-283.597 2062.5,-268 2064.55,-266.715 2180.1,-243.783 2253.69,-229.267"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2005.78,-330.455 2004.38,-340.957 2012.02,-333.621 2005.78,-330.455"/>
+<path fill="none" stroke="midnightblue" d="M2090.89,-332.068C2101.22,-313.53 2119.96,-284.638 2144,-268 2161.94,-255.583 2212.27,-241.342 2253.38,-231.156"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2087.79,-330.459 2086.16,-340.928 2093.96,-333.759 2087.79,-330.459"/>
 </g>
 <!-- Node13 -->
 <g id="node13" class="node"><title>Node13</title>
 <g id="a_node13"><a xlink:href="rocm_2injective_8h.html" target="_top" xlink:title="rocm schedule for injective operations ">
-<polygon fill="white" stroke="black" points="2225.5,-134.5 2225.5,-164.5 2345.5,-164.5 2345.5,-134.5 2225.5,-134.5"/>
-<text text-anchor="start" x="2233.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="2285.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
+<polygon fill="white" stroke="black" points="2252,-134.5 2252,-164.5 2372,-164.5 2372,-134.5 2252,-134.5"/>
+<text text-anchor="start" x="2260" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="2312" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node13 -->
 <g id="edge77" class="edge"><title>Node7&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M2037.32,-337.657C2063.89,-328.529 2100.25,-314.817 2130.5,-299 2152.35,-287.577 2153.18,-276.006 2176.5,-268 2231.8,-249.013 2661.59,-274.736 2701.5,-232 2710.9,-221.93 2710.72,-211.234 2701.5,-201 2649.74,-143.579 2431.89,-176.855 2355.5,-165 2352.31,-164.505 2349.05,-163.961 2345.76,-163.383"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2036.01,-334.408 2027.65,-340.926 2038.25,-341.039 2036.01,-334.408"/>
+<path fill="none" stroke="midnightblue" d="M2118.82,-337.657C2145.39,-328.529 2181.75,-314.817 2212,-299 2233.85,-287.577 2234.73,-276.153 2258,-268 2351.21,-235.337 2634.05,-304.614 2701,-232 2710.34,-221.871 2710.18,-211.274 2701,-201 2653.47,-147.803 2452.45,-176.247 2382,-165 2378.81,-164.491 2375.55,-163.936 2372.26,-163.35"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2117.51,-334.408 2109.15,-340.926 2119.75,-341.039 2117.51,-334.408"/>
 </g>
 <!-- Node14 -->
 <g id="node14" class="node"><title>Node14</title>
 <g id="a_node14"><a xlink:href="cuda_2normalization_8h.html" target="_top" xlink:title="CUDA schedule for LRN and l2 normalization operations. ">
-<polygon fill="white" stroke="black" points="2040,-201.5 2040,-231.5 2159,-231.5 2159,-201.5 2040,-201.5"/>
-<text text-anchor="start" x="2048" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2099.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
+<polygon fill="white" stroke="black" points="1162.5,-201.5 1162.5,-231.5 1281.5,-231.5 1281.5,-201.5 1162.5,-201.5"/>
+<text text-anchor="start" x="1170.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="1222" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node14 -->
 <g id="edge16" class="edge"><title>Node7&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M2002.37,-330.635C2004.91,-312.994 2010.84,-286.643 2024.5,-268 2035.91,-252.425 2053.67,-240.158 2069.04,-231.617"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1998.86,-330.453 2001.14,-340.801 2005.81,-331.294 1998.86,-330.453"/>
+<path fill="none" stroke="midnightblue" d="M2000.25,-347.502C1812.98,-342.454 1364.23,-327.517 1302,-299 1270.1,-284.381 1244.07,-251.017 1231.04,-231.817"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.23,-351.002 2010.32,-347.77 2000.41,-344.005 2000.23,-351.002"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node"><title>Node15</title>
 <g id="a_node15"><a xlink:href="cuda_2pooling_8h.html" target="_top" xlink:title="CUDA schedule for pooling operations. ">
-<polygon fill="white" stroke="black" points="987,-201.5 987,-231.5 1106,-231.5 1106,-201.5 987,-201.5"/>
-<text text-anchor="start" x="995" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="1046.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
+<polygon fill="white" stroke="black" points="986.5,-201.5 986.5,-231.5 1105.5,-231.5 1105.5,-201.5 986.5,-201.5"/>
+<text text-anchor="start" x="994.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="1046" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node15 -->
 <g id="edge17" class="edge"><title>Node7&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1918.92,-348.324C1714.45,-344.881 1191.37,-332.839 1120.5,-299 1089.8,-284.342 1066.02,-250.666 1054.37,-231.505"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.94,-351.824 1929,-348.491 1919.06,-344.825 1918.94,-351.824"/>
+<path fill="none" stroke="midnightblue" d="M2000.19,-348.757C1782.17,-346.277 1198.41,-336.205 1120,-299 1089.27,-284.417 1065.5,-250.712 1053.86,-231.526"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.25,-352.257 2010.29,-348.869 2000.33,-345.258 2000.25,-352.257"/>
 </g>
 <!-- Node16 -->
 <g id="node16" class="node"><title>Node16</title>
 <g id="a_node16"><a xlink:href="rocm_2pooling_8h.html" target="_top" xlink:title="rocm schedule for pooling operations ">
-<polygon fill="white" stroke="black" points="967.5,-134.5 967.5,-164.5 1087.5,-164.5 1087.5,-134.5 967.5,-134.5"/>
-<text text-anchor="start" x="975.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="1027.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
+<polygon fill="white" stroke="black" points="986,-134.5 986,-164.5 1106,-164.5 1106,-134.5 986,-134.5"/>
+<text text-anchor="start" x="994" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="1046" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node16 -->
 <g id="edge79" class="edge"><title>Node7&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1918.8,-347.798C1708.03,-343.013 1156.91,-327.876 1079.5,-299 1058.43,-291.139 1058.16,-280.564 1039.5,-268 1013.07,-250.201 993.398,-259.615 977.5,-232 970.626,-220.06 972.259,-213.742 977.5,-201 983.554,-186.281 996.203,-173.573 1007.26,-164.587"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.81,-351.299 1928.88,-348.024 1918.96,-344.3 1918.81,-351.299"/>
+<path fill="none" stroke="midnightblue" d="M2000.4,-348.48C1720.39,-344.708 812.799,-330.126 759,-299 717.983,-275.269 686.139,-236.96 717,-201 750.965,-161.424 900.592,-152.551 985.894,-150.76"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.45,-351.981 2010.49,-348.615 2000.54,-344.981 2000.45,-351.981"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node"><title>Node17</title>
 <g id="a_node17"><a xlink:href="cuda_2reduction_8h.html" target="_top" xlink:title="CUDA schedule for reduction operations. ">
-<polygon fill="white" stroke="black" points="1239,-201.5 1239,-231.5 1358,-231.5 1358,-201.5 1239,-201.5"/>
-<text text-anchor="start" x="1247" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="1298.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
+<polygon fill="white" stroke="black" points="2077.5,-201.5 2077.5,-231.5 2196.5,-231.5 2196.5,-201.5 2077.5,-201.5"/>
+<text text-anchor="start" x="2085.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2137" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node17 -->
 <g id="edge19" class="edge"><title>Node7&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M1918.25,-346.965C1755.36,-341.379 1403.24,-326.29 1355.5,-299 1328.97,-283.833 1311.88,-250.679 1303.85,-231.661"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.59,-350.478 1928.71,-347.319 1918.83,-343.482 1918.59,-350.478"/>
+<path fill="none" stroke="midnightblue" d="M2086.09,-330.468C2090.07,-313.622 2096.84,-288.587 2106,-268 2111.77,-255.028 2120.33,-241.367 2126.99,-231.529"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2082.58,-330.142 2083.8,-340.667 2089.41,-331.682 2082.58,-330.142"/>
 </g>
 <!-- Node18 -->
 <g id="node18" class="node"><title>Node18</title>
 <g id="a_node18"><a xlink:href="rocm_2reduction_8h.html" target="_top" xlink:title="rocm schedule for reduction operations ">
-<polygon fill="white" stroke="black" points="1238.5,-134.5 1238.5,-164.5 1358.5,-164.5 1358.5,-134.5 1238.5,-134.5"/>
-<text text-anchor="start" x="1246.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="1298.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
+<polygon fill="white" stroke="black" points="1989,-134.5 1989,-164.5 2109,-164.5 2109,-134.5 1989,-134.5"/>
+<text text-anchor="start" x="1997" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="2049" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node18 -->
 <g id="edge80" class="edge"><title>Node7&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M1918.64,-348.64C1735.69,-346.059 1305.42,-336.076 1251.5,-299 1213.86,-273.116 1198.67,-241.132 1220.5,-201 1229.44,-184.561 1246.29,-172.651 1262.05,-164.541"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.7,-352.142 1928.75,-348.779 1918.8,-345.142 1918.7,-352.142"/>
+<path fill="none" stroke="midnightblue" d="M2000.34,-346.929C1863.67,-341.864 1594.78,-328.428 1505,-299 1479.79,-290.738 1477.63,-280.044 1454,-268 1417.08,-249.186 1390.96,-266.496 1368,-232 1360.37,-220.53 1358.62,-211.096 1368,-201 1409.8,-155.988 1830.25,-150.759 1988.87,-150.4"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.22,-350.427 2010.34,-347.294 2000.48,-343.432 2000.22,-350.427"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node"><title>Node19</title>
 <g id="a_node19"><a xlink:href="cuda_2softmax_8h.html" target="_top" xlink:title="topi/include/topi/cuda\l/softmax.h">
-<polygon fill="white" stroke="black" points="1903,-201.5 1903,-231.5 2022,-231.5 2022,-201.5 1903,-201.5"/>
-<text text-anchor="start" x="1911" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="1962.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
+<polygon fill="white" stroke="black" points="1376.5,-201.5 1376.5,-231.5 1495.5,-231.5 1495.5,-201.5 1376.5,-201.5"/>
+<text text-anchor="start" x="1384.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="1436" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node19 -->
 <g id="edge21" class="edge"><title>Node7&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1995.14,-330.889C1987.47,-304.244 1973.53,-255.798 1966.61,-231.783"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1991.88,-332.198 1998.01,-340.839 1998.6,-330.261 1991.88,-332.198"/>
+<path fill="none" stroke="midnightblue" d="M2000.15,-350.281C1811.78,-351.223 1360.13,-348.263 1314,-299 1286.67,-269.809 1338.74,-245.769 1383.11,-231.542"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.29,-353.781 2010.28,-350.226 2000.26,-346.781 2000.29,-353.781"/>
 </g>
 <!-- Node20 -->
 <g id="node20" class="node"><title>Node20</title>
 <g id="a_node20"><a xlink:href="rocm_2softmax_8h.html" target="_top" xlink:title="topi/include/topi/rocm\l/softmax.h">
-<polygon fill="white" stroke="black" points="1902.5,-134.5 1902.5,-164.5 2022.5,-164.5 2022.5,-134.5 1902.5,-134.5"/>
-<text text-anchor="start" x="1910.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="1962.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
+<polygon fill="white" stroke="black" points="1376,-134.5 1376,-164.5 1496,-164.5 1496,-134.5 1376,-134.5"/>
+<text text-anchor="start" x="1384" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="1436" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node20 -->
 <g id="edge81" class="edge"><title>Node7&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1918.8,-349.057C1762.72,-347.291 1428.12,-338.821 1320.5,-299 1273.4,-281.571 1252.16,-276.822 1229.5,-232 1223.28,-219.704 1220.1,-211.072 1229.5,-201 1275.01,-152.25 1735.31,-149.448 1902.35,-150.056"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.78,-352.557 1928.81,-349.164 1918.85,-345.557 1918.78,-352.557"/>
+<path fill="none" stroke="midnightblue" d="M2000.16,-349.716C1819.96,-349.347 1394.11,-343.615 1258,-299 1205.75,-281.873 1180.32,-280.273 1154,-232 1147.4,-219.904 1145.16,-211.566 1154,-201 1181.73,-167.863 1301.72,-156.444 1375.96,-152.527"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.37,-353.216 2010.37,-349.731 2000.38,-346.216 2000.37,-353.216"/>
 </g>
 <!-- Node21 -->
 <g id="node21" class="node"><title>Node21</title>
 <g id="a_node21"><a xlink:href="array__utils_8h.html" target="_top" xlink:title="Utility functions for handling arrays. ">
-<polygon fill="white" stroke="black" points="908.5,-268.5 908.5,-298.5 1030.5,-298.5 1030.5,-268.5 908.5,-268.5"/>
-<text text-anchor="start" x="916.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="969.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/array_utils.h</text>
+<polygon fill="white" stroke="black" points="946,-268.5 946,-298.5 1068,-298.5 1068,-268.5 946,-268.5"/>
+<text text-anchor="start" x="954" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="1007" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/array_utils.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node21 -->
 <g id="edge23" class="edge"><title>Node7&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1918.74,-348.981C1753.14,-347.093 1366.46,-338.435 1044.5,-299 1040.02,-298.452 1035.41,-297.793 1030.79,-297.064"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.81,-352.482 1928.85,-349.091 1918.89,-345.482 1918.81,-352.482"/>
+<path fill="none" stroke="midnightblue" d="M2000.29,-349.253C1829.25,-347.883 1421.28,-340.157 1082,-299 1077.52,-298.457 1072.91,-297.802 1068.28,-297.076"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.45,-352.754 2010.47,-349.329 2000.5,-345.754 2000.45,-352.754"/>
 </g>
 <!-- Node22 -->
 <g id="node22" class="node"><title>Node22</title>
 <g id="a_node22"><a xlink:href="detail_2broadcast_8h.html" target="_top" xlink:title="Detail broadcast. ">
-<polygon fill="white" stroke="red" points="1364.5,-268.5 1364.5,-298.5 1486.5,-298.5 1486.5,-268.5 1364.5,-268.5"/>
-<text text-anchor="start" x="1372.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="1425.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/broadcast.h</text>
+<polygon fill="white" stroke="red" points="1323,-268.5 1323,-298.5 1445,-298.5 1445,-268.5 1323,-268.5"/>
+<text text-anchor="start" x="1331" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="1384" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/broadcast.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node22 -->
 <g id="edge28" class="edge"><title>Node7&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1918.36,-343.493C1819.06,-335.703 1647.02,-320.519 1500.5,-299 1496.04,-298.345 1491.44,-297.608 1486.82,-296.823"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.39,-347.005 1928.63,-344.292 1918.93,-340.026 1918.39,-347.005"/>
+<path fill="none" stroke="midnightblue" d="M2000.09,-345.74C1880.68,-339.606 1652.01,-325.398 1459,-299 1454.53,-298.389 1449.93,-297.684 1445.3,-296.922"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.08,-349.244 2010.25,-346.255 2000.44,-342.253 2000.08,-349.244"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node"><title>Node23</title>
 <g id="a_node23"><a xlink:href="detail_2extern_8h.html" target="_top" xlink:title="Helpers for using external functions. ">
-<polygon fill="white" stroke="black" points="730.5,-268.5 730.5,-298.5 852.5,-298.5 852.5,-268.5 730.5,-268.5"/>
-<text text-anchor="start" x="738.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="791.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
+<polygon fill="white" stroke="black" points="768,-268.5 768,-298.5 890,-298.5 890,-268.5 768,-268.5"/>
+<text text-anchor="start" x="776" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="829" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node23 -->
 <g id="edge29" class="edge"><title>Node7&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M1918.87,-349.953C1731.94,-350.099 1258.77,-345.4 866.5,-299 862.022,-298.47 857.411,-297.826 852.78,-297.106"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.89,-353.453 1928.89,-349.941 1918.89,-346.453 1918.89,-353.453"/>
+<path fill="none" stroke="midnightblue" d="M2000.32,-350.15C1808.34,-350.773 1313.7,-347.117 904,-299 899.522,-298.474 894.91,-297.832 890.279,-297.114"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.34,-353.65 2010.33,-350.112 2000.32,-346.65 2000.34,-353.65"/>
 </g>
 <!-- Node24 -->
 <g id="node24" class="node"><title>Node24</title>
 <g id="a_node24"><a xlink:href="fuse_8h.html" target="_top" xlink:title="Fuse operation. ">
-<polygon fill="white" stroke="black" points="1812.5,-268.5 1812.5,-298.5 1934.5,-298.5 1934.5,-268.5 1812.5,-268.5"/>
-<text text-anchor="start" x="1820.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="1873.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/fuse.h</text>
+<polygon fill="white" stroke="black" points="1932,-268.5 1932,-298.5 2054,-298.5 2054,-268.5 1932,-268.5"/>
+<text text-anchor="start" x="1940" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="1993" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/fuse.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node24 -->
 <g id="edge32" class="edge"><title>Node7&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M1974.5,-336.194C1953.14,-325.261 1922.95,-309.81 1901.15,-298.652"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1973.14,-339.428 1983.64,-340.869 1976.33,-333.197 1973.14,-339.428"/>
+<path fill="none" stroke="midnightblue" d="M2061.52,-334.544C2046.71,-323.725 2026.82,-309.203 2012.29,-298.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2059.86,-337.662 2070,-340.734 2063.99,-332.009 2059.86,-337.662"/>
 </g>
 <!-- Node25 -->
 <g id="node25" class="node"><title>Node25</title>
 <g id="a_node25"><a xlink:href="generic_2default_8h.html" target="_top" xlink:title="Generic default schedule. ">
-<polygon fill="white" stroke="black" points="1376,-201.5 1376,-231.5 1507,-231.5 1507,-201.5 1376,-201.5"/>
-<text text-anchor="start" x="1384" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
-<text text-anchor="middle" x="1441.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/default.h</text>
+<polygon fill="white" stroke="black" points="1513.5,-201.5 1513.5,-231.5 1644.5,-231.5 1644.5,-201.5 1513.5,-201.5"/>
+<text text-anchor="start" x="1521.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
+<text text-anchor="middle" x="1579" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/default.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node25 -->
 <g id="edge60" class="edge"><title>Node7&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1918.6,-346.54C1803.75,-341.39 1601.4,-328.378 1534.5,-299 1525.36,-294.986 1480.41,-253.782 1456.51,-231.548"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.61,-350.044 1928.75,-346.985 1918.92,-343.05 1918.61,-350.044"/>
+<path fill="none" stroke="midnightblue" d="M2011.66,-339.431C1956.56,-330.817 1878.25,-316.964 1811,-299 1739.65,-279.94 1658.78,-249.421 1613.85,-231.635"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2011.25,-342.91 2021.67,-340.979 2012.32,-335.992 2011.25,-342.91"/>
 </g>
 <!-- Node26 -->
 <g id="node26" class="node"><title>Node26</title>
 <g id="a_node26"><a xlink:href="generic_2extern_8h.html" target="_top" xlink:title="Schedule for extern followed by injective ops. ">
-<polygon fill="white" stroke="black" points="2364,-134.5 2364,-164.5 2495,-164.5 2495,-134.5 2364,-134.5"/>
-<text text-anchor="start" x="2372" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
-<text text-anchor="middle" x="2429.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
+<polygon fill="white" stroke="black" points="2390.5,-134.5 2390.5,-164.5 2521.5,-164.5 2521.5,-134.5 2390.5,-134.5"/>
+<text text-anchor="start" x="2398.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
+<text text-anchor="middle" x="2456" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node26 -->
 <g id="edge61" class="edge"><title>Node7&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M2050.3,-338.466C2084.25,-329.983 2129.72,-316.71 2167.5,-299 2190.16,-288.379 2190.8,-276.042 2214.5,-268 2267.66,-249.957 2680.24,-273.089 2718.5,-232 2727.89,-221.917 2727.36,-211.548 2718.5,-201 2690.56,-167.759 2571.65,-156.395 2495.33,-152.513"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2049.03,-335.171 2040.15,-340.944 2050.7,-341.971 2049.03,-335.171"/>
+<path fill="none" stroke="midnightblue" d="M2131.8,-338.466C2165.75,-329.983 2211.22,-316.71 2249,-299 2271.66,-288.379 2272.36,-276.205 2296,-268 2384.91,-237.138 2654.34,-301.323 2718,-232 2727.32,-221.852 2726.77,-211.624 2718,-201 2693.56,-171.396 2590.93,-158.957 2521.61,-153.866"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2130.53,-335.171 2121.65,-340.944 2132.2,-341.971 2130.53,-335.171"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node"><title>Node27</title>
 <g id="a_node27"><a xlink:href="generic_2injective_8h.html" target="_top" xlink:title="Generic schedule for injective operations. ">
-<polygon fill="white" stroke="black" points="2430,-201.5 2430,-231.5 2561,-231.5 2561,-201.5 2430,-201.5"/>
-<text text-anchor="start" x="2438" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
-<text text-anchor="middle" x="2495.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
+<polygon fill="white" stroke="black" points="2390.5,-201.5 2390.5,-231.5 2521.5,-231.5 2521.5,-201.5 2390.5,-201.5"/>
+<text text-anchor="start" x="2398.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
+<text text-anchor="middle" x="2456" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node27 -->
 <g id="edge62" class="edge"><title>Node7&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M2018.26,-334.101C2044.39,-311.599 2091.1,-271.963 2100.5,-268 2230.35,-213.282 2276.1,-252.576 2415.5,-232 2420.11,-231.32 2424.86,-230.574 2429.64,-229.791"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2015.86,-331.552 2010.58,-340.737 2020.44,-336.85 2015.86,-331.552"/>
+<path fill="none" stroke="midnightblue" d="M2100.32,-334.373C2128.54,-311.105 2179.65,-269.081 2182,-268 2264.06,-230.271 2293.24,-248.684 2382,-232 2384.7,-231.492 2387.46,-230.97 2390.24,-230.439"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2097.87,-331.862 2092.38,-340.926 2102.32,-337.262 2097.87,-331.862"/>
 </g>
 <!-- Node28 -->
 <g id="node28" class="node"><title>Node28</title>
 <g id="a_node28"><a xlink:href="x86_2bnn_8h.html" target="_top" xlink:title="x86 schedule for binary operations ">
-<polygon fill="white" stroke="black" points="1695,-201.5 1695,-231.5 1808,-231.5 1808,-201.5 1695,-201.5"/>
-<text text-anchor="start" x="1703" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
-<text text-anchor="middle" x="1751.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bnn.h</text>
+<polygon fill="white" stroke="black" points="1793.5,-201.5 1793.5,-231.5 1906.5,-231.5 1906.5,-201.5 1793.5,-201.5"/>
+<text text-anchor="start" x="1801.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
+<text text-anchor="middle" x="1850" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bnn.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node28 -->
 <g id="edge84" class="edge"><title>Node7&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M1918.96,-342.444C1881.01,-335.874 1836.97,-323.242 1803.5,-299 1779.71,-281.769 1764.15,-250.011 1756.68,-231.639"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.55,-345.922 1928.98,-344.064 1919.67,-339.012 1918.55,-345.922"/>
+<path fill="none" stroke="midnightblue" d="M2022.88,-338.633C1991.45,-330.972 1953.18,-318.511 1923,-299 1895.24,-281.054 1871.49,-249.853 1859.13,-231.705"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2022.3,-342.09 2032.83,-340.955 2023.89,-335.273 2022.3,-342.09"/>
 </g>
 <!-- Node29 -->
 <g id="node29" class="node"><title>Node29</title>
 <g id="a_node29"><a xlink:href="x86_2default_8h.html" target="_top" xlink:title="default x86 schedule ">
-<polygon fill="white" stroke="black" points="1564,-201.5 1564,-231.5 1677,-231.5 1677,-201.5 1564,-201.5"/>
-<text text-anchor="start" x="1572" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
-<text text-anchor="middle" x="1620.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/default.h</text>
+<polygon fill="white" stroke="black" points="1662.5,-201.5 1662.5,-231.5 1775.5,-231.5 1775.5,-201.5 1662.5,-201.5"/>
+<text text-anchor="start" x="1670.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
+<text text-anchor="middle" x="1719" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/default.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node29 -->
 <g id="edge85" class="edge"><title>Node7&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M1929.67,-339.259C1883.42,-331.289 1822.25,-318.296 1770.5,-299 1722.18,-280.982 1670.25,-249.806 1641.94,-231.683"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1929.16,-342.721 1939.6,-340.932 1930.32,-335.819 1929.16,-342.721"/>
+<path fill="none" stroke="midnightblue" d="M2028.33,-338.869C1988.2,-330.174 1932.33,-316.473 1885,-299 1832.9,-279.763 1775.4,-249.307 1743.6,-231.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2027.67,-342.307 2038.18,-340.972 2029.13,-335.461 2027.67,-342.307"/>
 </g>
 <!-- Node30 -->
 <g id="node30" class="node"><title>Node30</title>
 <g id="a_node30"><a xlink:href="x86_2injective_8h.html" target="_top" xlink:title="x86 schedule for injective ops ">
-<polygon fill="white" stroke="black" points="2579,-201.5 2579,-231.5 2692,-231.5 2692,-201.5 2579,-201.5"/>
-<text text-anchor="start" x="2587" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
-<text text-anchor="middle" x="2635.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
+<polygon fill="white" stroke="black" points="2578.5,-201.5 2578.5,-231.5 2691.5,-231.5 2691.5,-201.5 2578.5,-201.5"/>
+<text text-anchor="start" x="2586.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
+<text text-anchor="middle" x="2635" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node30 -->
 <g id="edge86" class="edge"><title>Node7&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M2026.85,-336.426C2045.96,-326.684 2072.25,-312.743 2094.5,-299 2114.85,-286.428 2116.02,-276.168 2138.5,-268 2319.59,-202.215 2380.04,-261.042 2570.5,-232 2573.24,-231.582 2576.04,-231.114 2578.87,-230.611"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2025.18,-333.349 2017.83,-340.983 2028.33,-339.597 2025.18,-333.349"/>
+<path fill="none" stroke="midnightblue" d="M2109.04,-336.362C2128.36,-326.682 2154.75,-312.845 2177,-299 2197,-286.553 2198.01,-276.453 2220,-268 2356.89,-215.382 2402.73,-252.063 2548,-232 2557.86,-230.638 2568.32,-229.033 2578.44,-227.396"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2107.31,-333.311 2099.91,-340.892 2110.43,-339.582 2107.31,-333.311"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node"><title>Node31</title>
 <g id="a_node31"><a xlink:href="ravel__unravel_8h.html" target="_top" xlink:title="Index ravel and unraval operations. ">
-<polygon fill="white" stroke="black" points="3212.5,-268.5 3212.5,-298.5 3334.5,-298.5 3334.5,-268.5 3212.5,-268.5"/>
-<text text-anchor="start" x="3220.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="3273.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/ravel_unravel.h</text>
+<polygon fill="white" stroke="black" points="3332,-268.5 3332,-298.5 3454,-298.5 3454,-268.5 3332,-268.5"/>
+<text text-anchor="start" x="3340" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="3393" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/ravel_unravel.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node31 -->
 <g id="edge50" class="edge"><title>Node7&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M2082.15,-350.234C2276.35,-351.072 2780.83,-347.903 3198.5,-299 3202.98,-298.476 3207.59,-297.835 3212.22,-297.118"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2082.04,-346.734 2072.02,-350.186 2082,-353.734 2082.04,-346.734"/>
+<path fill="none" stroke="midnightblue" d="M2163.57,-347.924C2402.39,-343.033 3097.51,-326.753 3323,-299 3325.83,-298.651 3328.72,-298.248 3331.63,-297.803"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.49,-344.425 2153.56,-348.128 2163.63,-351.423 2163.49,-344.425"/>
 </g>
 <!-- Node32 -->
 <g id="node32" class="node"><title>Node32</title>
 <g id="a_node32"><a xlink:href="reduction_8h.html" target="_top" xlink:title="Reduction op constructors. ">
-<polygon fill="white" stroke="red" points="3207,-140 3207,-159 3356,-159 3356,-140 3207,-140"/>
-<text text-anchor="middle" x="3281.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/reduction.h</text>
+<polygon fill="white" stroke="red" points="3119.5,-140 3119.5,-159 3268.5,-159 3268.5,-140 3119.5,-140"/>
+<text text-anchor="middle" x="3194" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/reduction.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node32 -->
 <g id="edge75" class="edge"><title>Node7&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M2082.65,-349.513C2367.76,-349.162 3299.66,-344.522 3343.5,-299 3384.2,-256.742 3316.41,-183.886 3290.73,-159.068"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2082.37,-346.014 2072.37,-349.525 2082.38,-353.014 2082.37,-346.014"/>
+<path fill="none" stroke="midnightblue" d="M2163.75,-349.575C2389.69,-349.201 3011.23,-344.043 3091,-299 3136.73,-273.179 3126.81,-243.966 3157,-201 3167.5,-186.06 3180.15,-168.98 3187.61,-159.003"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.61,-346.075 2153.62,-349.589 2163.62,-353.075 2163.61,-346.075"/>
 </g>
 <!-- Node33 -->
 <g id="node33" class="node"><title>Node33</title>
 <g id="a_node33"><a xlink:href="nn_2softmax_8h.html" target="_top" xlink:title="Softmax op constructions. ">
-<polygon fill="white" stroke="black" points="2899,-67.5 2899,-97.5 3006,-97.5 3006,-67.5 2899,-67.5"/>
-<text text-anchor="start" x="2907" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2952.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
+<polygon fill="white" stroke="black" points="2844.5,-67.5 2844.5,-97.5 2951.5,-97.5 2951.5,-67.5 2844.5,-67.5"/>
+<text text-anchor="start" x="2852.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2898" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node33 -->
 <g id="edge73" class="edge"><title>Node7&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M2082.25,-340.881C2130.38,-333.766 2191.6,-321.108 2242.5,-299 2264.44,-289.47 2263.99,-276.1 2286.5,-268 2481.96,-197.662 2556.08,-299.589 2752.5,-232 2834.29,-203.857 2910.35,-129.05 2939.72,-97.669"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2081.59,-337.439 2072.19,-342.316 2082.58,-344.369 2081.59,-337.439"/>
+<path fill="none" stroke="midnightblue" d="M2163.75,-340.881C2211.88,-333.766 2273.1,-321.108 2324,-299 2345.94,-289.47 2345.56,-276.284 2368,-268 2528.81,-208.639 2597.18,-305.583 2752,-232 2816.98,-201.115 2869.16,-128.514 2889.17,-97.7142"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.09,-337.439 2153.69,-342.316 2164.08,-344.369 2163.09,-337.439"/>
 </g>
 <!-- Node34 -->
 <g id="node34" class="node"><title>Node34</title>
 <g id="a_node34"><a xlink:href="reorg_8h.html" target="_top" xlink:title="Reorg op constructions. ">
-<polygon fill="white" stroke="black" points="3220.5,-67.5 3220.5,-97.5 3342.5,-97.5 3342.5,-67.5 3220.5,-67.5"/>
-<text text-anchor="start" x="3228.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/vision</text>
-<text text-anchor="middle" x="3281.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reorg.h</text>
+<polygon fill="white" stroke="black" points="3235,-67.5 3235,-97.5 3357,-97.5 3357,-67.5 3235,-67.5"/>
+<text text-anchor="start" x="3243" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/vision</text>
+<text text-anchor="middle" x="3296" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reorg.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node34 -->
 <g id="edge83" class="edge"><title>Node7&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M2082.37,-349.538C2369.88,-349.278 3318.57,-344.931 3363.5,-299 3414.78,-246.572 3401.61,-197.835 3365.5,-134 3356.03,-117.264 3338.56,-105.463 3321.99,-97.5016"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2082.01,-346.038 2072.01,-349.546 2082.02,-353.038 2082.01,-346.038"/>
+<path fill="none" stroke="midnightblue" d="M2163.55,-349.603C2453.22,-349.574 3417.74,-345.941 3463,-299 3530.18,-229.317 3383.46,-133.447 3321.71,-97.6947"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.53,-346.103 2153.53,-349.603 2163.53,-353.103 2163.53,-346.103"/>
 </g>
 <!-- Node35 -->
 <g id="node35" class="node"><title>Node35</title>
 <g id="a_node35"><a xlink:href="topi_2include_2topi_2transform_8h.html" target="_top" xlink:title="Transform op constructors. ">
-<polygon fill="white" stroke="black" points="3101.5,-207 3101.5,-226 3253.5,-226 3253.5,-207 3101.5,-207"/>
-<text text-anchor="middle" x="3177.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/transform.h</text>
+<polygon fill="white" stroke="black" points="3166,-207 3166,-226 3318,-226 3318,-207 3166,-207"/>
+<text text-anchor="middle" x="3242" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node35 -->
 <g id="edge82" class="edge"><title>Node7&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M2082.32,-348.784C2340.82,-346.155 3125.36,-335.214 3165.5,-299 3186.1,-280.415 3182.37,-243.194 3179.35,-226.255"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2082.21,-345.285 2072.24,-348.885 2082.28,-352.285 2082.21,-345.285"/>
+<path fill="none" stroke="midnightblue" d="M2163.85,-348.491C2396.35,-345.22 3049.73,-333.073 3140,-299 3150.76,-294.938 3208.59,-246.071 3232.08,-226.011"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.72,-344.993 2153.77,-348.631 2163.82,-351.992 2163.72,-344.993"/>
 </g>
 <!-- Node36 -->
 <g id="node36" class="node"><title>Node36</title>
 <g id="a_node36"><a xlink:href="bias__add_8h.html" target="_top" xlink:title="bias_add op constructions ">
-<polygon fill="white" stroke="black" points="2972,-134.5 2972,-164.5 3079,-164.5 3079,-134.5 2972,-134.5"/>
-<text text-anchor="start" x="2980" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="3025.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bias_add.h</text>
+<polygon fill="white" stroke="black" points="2975.5,-134.5 2975.5,-164.5 3082.5,-164.5 3082.5,-134.5 2975.5,-134.5"/>
+<text text-anchor="start" x="2983.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="3029" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bias_add.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node36 -->
 <g id="edge64" class="edge"><title>Node7&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M2082.31,-344.713C2184.76,-337.812 2353.83,-323.173 2411.5,-299 2431.92,-290.44 2429.91,-276.151 2450.5,-268 2631.28,-196.422 2701.12,-290.638 2886.5,-232 2933.71,-217.068 2982.08,-183.823 3007.45,-164.728"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2082.05,-341.222 2072.31,-345.376 2082.52,-348.207 2082.05,-341.222"/>
+<path fill="none" stroke="midnightblue" d="M2163.81,-344.713C2266.26,-337.812 2435.33,-323.173 2493,-299 2513.42,-290.44 2511.54,-276.47 2532,-268 2662.6,-213.93 2711.7,-269.466 2848,-232 2906.65,-215.878 2970.46,-183.246 3004.44,-164.533"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.55,-341.222 2153.81,-345.376 2164.02,-348.207 2163.55,-341.222"/>
 </g>
 <!-- Node37 -->
 <g id="node37" class="node"><title>Node37</title>
 <g id="a_node37"><a xlink:href="tensor__utils_8h.html" target="_top" xlink:title="Utility functions for handling tensor. ">
-<polygon fill="white" stroke="black" points="3034.5,-268.5 3034.5,-298.5 3156.5,-298.5 3156.5,-268.5 3034.5,-268.5"/>
-<text text-anchor="start" x="3042.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="3095.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/tensor_utils.h</text>
+<polygon fill="white" stroke="black" points="3192,-268.5 3192,-298.5 3314,-298.5 3314,-268.5 3192,-268.5"/>
+<text text-anchor="start" x="3200" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="3253" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/tensor_utils.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node37 -->
 <g id="edge58" class="edge"><title>Node7&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M2082.29,-349.368C2255.81,-348.229 2673.39,-340.933 3020.5,-299 3024.98,-298.459 3029.59,-297.806 3034.22,-297.081"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2082.19,-345.868 2072.21,-349.429 2082.23,-352.868 2082.19,-345.868"/>
+<path fill="none" stroke="midnightblue" d="M2163.85,-349.771C2346.49,-349.493 2800.93,-343.897 3178,-299 3182.48,-298.467 3187.09,-297.82 3191.72,-297.098"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.78,-346.271 2153.78,-349.781 2163.79,-353.271 2163.78,-346.271"/>
 </g>
 <!-- Node38 -->
 <g id="node38" class="node"><title>Node38</title>
 <g id="a_node38"><a xlink:href="batch__matmul_8h.html" target="_top" xlink:title="Batch matmul op constructions. ">
-<polygon fill="white" stroke="black" points="2295,-268.5 2295,-298.5 2402,-298.5 2402,-268.5 2295,-268.5"/>
-<text text-anchor="start" x="2303" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2348.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/batch_matmul.h</text>
+<polygon fill="white" stroke="black" points="2376.5,-268.5 2376.5,-298.5 2483.5,-298.5 2483.5,-268.5 2376.5,-268.5"/>
+<text text-anchor="start" x="2384.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2430" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/batch_matmul.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node38 -->
 <g id="edge63" class="edge"><title>Node7&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M2060.29,-339.281C2117.05,-329.446 2204.72,-313.91 2280.5,-299 2285.12,-298.091 2289.91,-297.123 2294.71,-296.134"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2059.67,-335.837 2050.41,-340.989 2060.86,-342.734 2059.67,-335.837"/>
+<path fill="none" stroke="midnightblue" d="M2141.79,-339.281C2198.55,-329.446 2286.22,-313.91 2362,-299 2366.62,-298.091 2371.41,-297.123 2376.21,-296.134"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2141.17,-335.837 2131.91,-340.989 2142.36,-342.734 2141.17,-335.837"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node"><title>Node39</title>
 <g id="a_node39"><a xlink:href="nn_2bnn_8h.html" target="_top" xlink:title="Binary op constructions. ">
-<polygon fill="white" stroke="black" points="442,-268.5 442,-298.5 549,-298.5 549,-268.5 442,-268.5"/>
-<text text-anchor="start" x="450" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="495.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bnn.h</text>
+<polygon fill="white" stroke="black" points="307.5,-268.5 307.5,-298.5 414.5,-298.5 414.5,-268.5 307.5,-268.5"/>
+<text text-anchor="start" x="315.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="361" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bnn.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node39 -->
 <g id="edge65" class="edge"><title>Node7&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M1918.25,-348.727C1653.22,-345.906 823.395,-334.401 557.5,-299 554.761,-298.635 551.965,-298.203 549.15,-297.721"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.53,-352.23 1928.57,-348.836 1918.61,-345.231 1918.53,-352.23"/>
+<path fill="none" stroke="midnightblue" d="M2000.01,-349.166C1709.94,-347.646 733.079,-339.566 423,-299 420.26,-298.642 417.463,-298.215 414.648,-297.736"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.02,-352.666 2010.04,-349.217 2000.06,-345.666 2000.02,-352.666"/>
 </g>
 <!-- Node40 -->
 <g id="node40" class="node"><title>Node40</title>
 <g id="a_node40"><a xlink:href="nn_2dense_8h.html" target="_top" xlink:title="Dense op constructions. ">
-<polygon fill="white" stroke="black" points="2737,-134.5 2737,-164.5 2844,-164.5 2844,-134.5 2737,-134.5"/>
-<text text-anchor="start" x="2745" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2790.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
+<polygon fill="white" stroke="black" points="2698.5,-134.5 2698.5,-164.5 2805.5,-164.5 2805.5,-134.5 2698.5,-134.5"/>
+<text text-anchor="start" x="2706.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2752" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node40 -->
 <g id="edge66" class="edge"><title>Node7&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M2082.04,-348.351C2312.92,-344.701 2956.49,-331.632 2987.5,-299 3042.52,-241.093 2912.82,-188.744 2838.34,-164.588"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2081.97,-344.851 2072.02,-348.507 2082.08,-351.851 2081.97,-344.851"/>
+<path fill="none" stroke="midnightblue" d="M2163.54,-348.351C2394.42,-344.701 3037.99,-331.632 3069,-299 3151.99,-211.655 2916.33,-170.534 2805.79,-156.427"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.47,-344.851 2153.52,-348.507 2163.58,-351.851 2163.47,-344.851"/>
 </g>
 <!-- Node41 -->
 <g id="node41" class="node"><title>Node41</title>
 <g id="a_node41"><a xlink:href="dilate_8h.html" target="_top" xlink:title="Dilate op constructions. ">
-<polygon fill="white" stroke="black" points="567,-268.5 567,-298.5 674,-298.5 674,-268.5 567,-268.5"/>
-<text text-anchor="start" x="575" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="620.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dilate.h</text>
+<polygon fill="white" stroke="black" points="432.5,-268.5 432.5,-298.5 539.5,-298.5 539.5,-268.5 432.5,-268.5"/>
+<text text-anchor="start" x="440.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="486" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dilate.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node41 -->
 <g id="edge69" class="edge"><title>Node7&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M1918.58,-348.188C1670.24,-343.92 928.189,-328.943 688.5,-299 683.829,-298.416 679.002,-297.674 674.177,-296.835"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.56,-351.688 1928.62,-348.359 1918.68,-344.689 1918.56,-351.688"/>
+<path fill="none" stroke="midnightblue" d="M1999.85,-348.887C1724.15,-346.502 833.332,-336.05 549,-299 545.995,-298.608 542.923,-298.138 539.832,-297.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.14,-352.39 2010.17,-348.975 2000.2,-345.39 2000.14,-352.39"/>
 </g>
 <!-- Node42 -->
 <g id="node42" class="node"><title>Node42</title>
 <g id="a_node42"><a xlink:href="flatten_8h.html" target="_top" xlink:title="Softmax op constructions. ">
-<polygon fill="white" stroke="black" points="2459,-268.5 2459,-298.5 2566,-298.5 2566,-268.5 2459,-268.5"/>
-<text text-anchor="start" x="2467" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2512.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/flatten.h</text>
+<polygon fill="white" stroke="black" points="2540.5,-268.5 2540.5,-298.5 2647.5,-298.5 2647.5,-268.5 2540.5,-268.5"/>
+<text text-anchor="start" x="2548.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2594" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/flatten.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node42 -->
 <g id="edge70" class="edge"><title>Node7&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M2082.38,-342.582C2171.72,-334.477 2318.8,-319.502 2444.5,-299 2449.15,-298.242 2453.96,-297.379 2458.77,-296.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2081.96,-339.106 2072.31,-343.489 2082.58,-346.078 2081.96,-339.106"/>
+<path fill="none" stroke="midnightblue" d="M2163.88,-342.582C2253.22,-334.477 2400.3,-319.502 2526,-299 2530.65,-298.242 2535.46,-297.379 2540.27,-296.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.46,-339.106 2153.81,-343.489 2164.08,-346.078 2163.46,-339.106"/>
 </g>
 <!-- Node43 -->
 <g id="node43" class="node"><title>Node43</title>
 <g id="a_node43"><a xlink:href="local__response__norm_8h.html" target="_top" xlink:title="local response normalization op constructions ">
-<polygon fill="white" stroke="black" points="2584,-268.5 2584,-298.5 2715,-298.5 2715,-268.5 2584,-268.5"/>
-<text text-anchor="start" x="2592" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2649.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/local_response_norm.h</text>
+<polygon fill="white" stroke="black" points="2665.5,-268.5 2665.5,-298.5 2796.5,-298.5 2796.5,-268.5 2665.5,-268.5"/>
+<text text-anchor="start" x="2673.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2731" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/local_response_norm.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node43 -->
 <g id="edge71" class="edge"><title>Node7&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M2082.23,-345.054C2194,-338.352 2400.62,-323.742 2575.5,-299 2578.22,-298.615 2581,-298.195 2583.79,-297.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2081.82,-341.572 2072.04,-345.659 2082.23,-348.56 2081.82,-341.572"/>
+<path fill="none" stroke="midnightblue" d="M2163.73,-345.054C2275.5,-338.352 2482.12,-323.742 2657,-299 2659.72,-298.615 2662.5,-298.195 2665.29,-297.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.32,-341.572 2153.54,-345.659 2163.73,-348.56 2163.32,-341.572"/>
 </g>
 <!-- Node44 -->
 <g id="node44" class="node"><title>Node44</title>
 <g id="a_node44"><a xlink:href="mapping_8h.html" target="_top" xlink:title="Mapping op constructions. ">
-<polygon fill="white" stroke="black" points="2733,-268.5 2733,-298.5 2840,-298.5 2840,-268.5 2733,-268.5"/>
-<text text-anchor="start" x="2741" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2786.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/mapping.h</text>
+<polygon fill="white" stroke="black" points="2814.5,-268.5 2814.5,-298.5 2921.5,-298.5 2921.5,-268.5 2814.5,-268.5"/>
+<text text-anchor="start" x="2822.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2868" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/mapping.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node44 -->
 <g id="edge72" class="edge"><title>Node7&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M2082.31,-348.052C2216.94,-344.719 2493.33,-333.864 2724.5,-299 2727.23,-298.588 2730.02,-298.118 2732.83,-297.605"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2081.99,-344.559 2072.08,-348.298 2082.16,-351.557 2081.99,-344.559"/>
+<path fill="none" stroke="midnightblue" d="M2163.81,-348.052C2298.44,-344.719 2574.83,-333.864 2806,-299 2808.73,-298.588 2811.52,-298.118 2814.33,-297.605"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.49,-344.559 2153.58,-348.298 2163.66,-351.557 2163.49,-344.559"/>
 </g>
 <!-- Node45 -->
 <g id="node45" class="node"><title>Node45</title>
 <g id="a_node45"><a xlink:href="topi_2include_2topi_2nn_8h.html" target="_top" xlink:title="NN op constructions. ">
-<polygon fill="white" stroke="red" points="307.5,-274 307.5,-293 423.5,-293 423.5,-274 307.5,-274"/>
-<text text-anchor="middle" x="365.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
+<polygon fill="white" stroke="red" points="558,-274 558,-293 674,-293 674,-274 558,-274"/>
+<text text-anchor="middle" x="616" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node45 -->
 <g id="edge74" class="edge"><title>Node7&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M1918.83,-348.821C1639.64,-346.194 724.383,-334.984 432.5,-299 421.515,-297.646 409.669,-295.362 399.038,-293.002"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1918.86,-352.321 1928.89,-348.915 1918.92,-345.322 1918.86,-352.321"/>
+<path fill="none" stroke="midnightblue" d="M2000.36,-348.286C1742.06,-344.17 944.616,-329.284 688,-299 676.35,-297.625 663.775,-295.366 652.444,-293.035"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2000.36,-351.786 2010.42,-348.445 2000.48,-344.787 2000.36,-351.786"/>
 </g>
 <!-- Node46 -->
 <g id="node46" class="node"><title>Node46</title>
 <g id="a_node46"><a xlink:href="rocm_2normalization_8h.html" target="_top" xlink:title="rocm schedule for LRN and l2 normalization operations ">
-<polygon fill="white" stroke="black" points="2858.5,-268.5 2858.5,-298.5 2978.5,-298.5 2978.5,-268.5 2858.5,-268.5"/>
-<text text-anchor="start" x="2866.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="2918.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
+<polygon fill="white" stroke="black" points="2940,-268.5 2940,-298.5 3060,-298.5 3060,-268.5 2940,-268.5"/>
+<text text-anchor="start" x="2948" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="3000" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node46 -->
 <g id="edge78" class="edge"><title>Node7&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M2082.29,-348.643C2234.14,-346.164 2569.64,-336.52 2849.5,-299 2852.41,-298.61 2855.38,-298.165 2858.38,-297.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2082.06,-345.146 2072.12,-348.803 2082.17,-352.145 2082.06,-345.146"/>
+<path fill="none" stroke="midnightblue" d="M2163.79,-348.643C2315.64,-346.164 2651.14,-336.52 2931,-299 2933.91,-298.61 2936.88,-298.165 2939.88,-297.68"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2163.56,-345.146 2153.62,-348.803 2163.67,-352.145 2163.56,-345.146"/>
 </g>
 <!-- Node8&#45;&gt;Node9 -->
 <g id="edge9" class="edge"><title>Node8&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M780.771,-195.466C810.478,-175.674 859.356,-146.59 906.5,-134 1040.62,-98.1825 2027.78,-86.4621 2281.95,-84.0218"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="778.504,-192.774 772.19,-201.282 782.431,-198.569 778.504,-192.774"/>
+<path fill="none" stroke="midnightblue" d="M818.271,-195.469C847.98,-175.678 896.858,-146.596 944,-134 1077.01,-98.4586 2055.59,-86.542 2308.48,-84.0389"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="816.005,-192.776 809.69,-201.284 819.932,-198.571 816.005,-192.776"/>
 </g>
 <!-- Node9&#45;&gt;Node10 -->
 <g id="edge10" class="edge"><title>Node9&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M2356.82,-58.8669C2363.19,-49.4594 2370.38,-38.8334 2375.97,-30.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2353.75,-57.1529 2351.05,-67.396 2359.55,-61.0769 2353.75,-57.1529"/>
+<path fill="none" stroke="midnightblue" d="M2383.32,-58.8669C2389.69,-49.4594 2396.88,-38.8334 2402.47,-30.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2380.25,-57.1529 2377.55,-67.396 2386.05,-61.0769 2380.25,-57.1529"/>
 </g>
 <!-- Node11&#45;&gt;Node10 -->
 <g id="edge12" class="edge"><title>Node11&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M628.602,-194.578C666.414,-160.337 747.504,-93.4891 830.5,-67 974.599,-21.009 2057.07,-16.8382 2325.44,-16.5141"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="626.208,-192.025 621.205,-201.364 630.94,-197.183 626.208,-192.025"/>
+<path fill="none" stroke="midnightblue" d="M631.686,-195.207C676.546,-161.147 773.432,-93.5977 868,-67 1012.5,-26.3586 2085.07,-18.179 2351.99,-16.7662"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="629.478,-192.49 623.676,-201.355 633.74,-198.043 629.478,-192.49"/>
 </g>
 <!-- Node12&#45;&gt;Node13 -->
 <g id="edge15" class="edge"><title>Node12&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M2303.37,-191.991C2299.42,-182.804 2295.01,-172.578 2291.56,-164.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2300.25,-193.597 2307.42,-201.396 2306.68,-190.827 2300.25,-193.597"/>
+<path fill="none" stroke="midnightblue" d="M2312.62,-191.108C2312.49,-182.154 2312.34,-172.323 2312.22,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2309.13,-191.451 2312.78,-201.396 2316.13,-191.343 2309.13,-191.451"/>
 </g>
 <!-- Node15&#45;&gt;Node16 -->
 <g id="edge18" class="edge"><title>Node15&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1039.54,-191.697C1036.88,-182.587 1033.93,-172.493 1031.61,-164.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1036.21,-192.78 1042.38,-201.396 1042.93,-190.816 1036.21,-192.78"/>
+<path fill="none" stroke="midnightblue" d="M1046,-191.108C1046,-182.154 1046,-172.323 1046,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1042.5,-191.396 1046,-201.396 1049.5,-191.396 1042.5,-191.396"/>
 </g>
 <!-- Node17&#45;&gt;Node18 -->
 <g id="edge20" class="edge"><title>Node17&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M1298.5,-191.108C1298.5,-182.154 1298.5,-172.323 1298.5,-164.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1295,-191.396 1298.5,-201.396 1302,-191.396 1295,-191.396"/>
+<path fill="none" stroke="midnightblue" d="M2109.86,-195.451C2096.32,-185.452 2080.27,-173.6 2068.06,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2107.78,-198.27 2117.91,-201.396 2111.94,-192.639 2107.78,-198.27"/>
 </g>
 <!-- Node19&#45;&gt;Node20 -->
 <g id="edge22" class="edge"><title>Node19&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1962.5,-191.108C1962.5,-182.154 1962.5,-172.323 1962.5,-164.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1959,-191.396 1962.5,-201.396 1966,-191.396 1959,-191.396"/>
+<path fill="none" stroke="midnightblue" d="M1436,-191.108C1436,-182.154 1436,-172.323 1436,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1432.5,-191.396 1436,-201.396 1439.5,-191.396 1432.5,-191.396"/>
 </g>
 <!-- Node21&#45;&gt;Node9 -->
 <g id="edge24" class="edge"><title>Node21&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M950.906,-260.142C945.116,-251.831 939.473,-241.983 936.5,-232 923.761,-189.217 922.829,-160.838 958.5,-134 1012.05,-93.7122 2022.86,-85.2901 2281.59,-83.7913"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="948.113,-262.251 956.888,-268.188 953.731,-258.075 948.113,-262.251"/>
+<path fill="none" stroke="midnightblue" d="M986.389,-260.729C979.828,-252.395 973.396,-242.382 970,-232 962.863,-210.182 972.255,-138.433 977,-134 1026.3,-87.9336 2048.62,-83.8099 2308.39,-83.507"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="983.771,-263.054 992.885,-268.455 989.128,-258.549 983.771,-263.054"/>
 </g>
 <!-- Node21&#45;&gt;Node10 -->
 <g id="edge26" class="edge"><title>Node21&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M944.595,-260.86C936.96,-252.678 929.518,-242.728 925.5,-232 918.333,-212.864 920.137,-143.561 929.5,-134 1028.59,-32.8191 2063.29,-18.7511 2325.41,-16.8087"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="942.322,-263.536 951.869,-268.13 947.27,-258.585 942.322,-263.536"/>
+<path fill="none" stroke="midnightblue" d="M982.095,-260.86C974.46,-252.678 967.018,-242.728 963,-232 956.067,-213.49 955.618,-144.767 966,-134 1063.58,-32.8095 2090.66,-18.7499 2351.85,-16.8087"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="979.822,-263.536 989.369,-268.13 984.77,-258.585 979.822,-263.536"/>
 </g>
 <!-- Node21&#45;&gt;Node15 -->
 <g id="edge25" class="edge"><title>Node21&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M993.923,-261.883C1005.62,-252.005 1019.34,-240.429 1029.82,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="991.592,-259.271 986.208,-268.396 996.107,-264.62 991.592,-259.271"/>
+<path fill="none" stroke="midnightblue" d="M1020.75,-259.576C1026.36,-250.241 1032.65,-239.748 1037.55,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.61,-258.02 1015.46,-268.396 1023.61,-261.622 1017.61,-258.02"/>
 </g>
 <!-- Node21&#45;&gt;Node16 -->
 <g id="edge27" class="edge"><title>Node21&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M953.04,-259.52C943.094,-242.585 934.159,-219.397 944.5,-201 953.84,-184.385 971.106,-172.599 987.481,-164.615"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="950.243,-261.643 958.554,-268.214 956.154,-257.894 950.243,-261.643"/>
+<path fill="none" stroke="midnightblue" d="M989.112,-259.655C978.353,-242.963 968.435,-220.019 978,-201 985.995,-185.104 1001.62,-172.953 1015.88,-164.558"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="986.48,-262.001 995.057,-268.22 992.23,-258.009 986.48,-262.001"/>
 </g>
 <!-- Node23&#45;&gt;Node8 -->
 <g id="edge30" class="edge"><title>Node23&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M777.745,-259.576C772.144,-250.241 765.849,-239.748 760.946,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="774.891,-261.622 783.038,-268.396 780.894,-258.02 774.891,-261.622"/>
+<path fill="none" stroke="midnightblue" d="M815.245,-259.576C809.644,-250.241 803.349,-239.748 798.446,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="812.391,-261.622 820.538,-268.396 818.394,-258.02 812.391,-261.622"/>
 </g>
 <!-- Node23&#45;&gt;Node11 -->
 <g id="edge31" class="edge"><title>Node23&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M741.565,-264.955C711.764,-254.485 674.425,-241.366 646.564,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="740.763,-268.383 751.358,-268.396 743.083,-261.779 740.763,-268.383"/>
+<path fill="none" stroke="midnightblue" d="M770.951,-265.58C734.731,-255.022 688.655,-241.592 654.411,-231.611"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="770.307,-269.038 780.887,-268.476 772.266,-262.317 770.307,-269.038"/>
 </g>
 <!-- Node24&#45;&gt;Node12 -->
 <g id="edge33" class="edge"><title>Node24&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1944.65,-273.889C2018.54,-264.665 2137.38,-249.037 2239.5,-232 2244.15,-231.224 2248.95,-230.38 2253.78,-229.502"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1944.03,-270.44 1934.53,-275.147 1944.89,-277.387 1944.03,-270.44"/>
+<path fill="none" stroke="midnightblue" d="M2064.31,-268.016C2121.11,-256.478 2199.71,-240.512 2253.24,-229.639"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2063.42,-264.624 2054.32,-270.044 2064.82,-271.484 2063.42,-264.624"/>
 </g>
 <!-- Node24&#45;&gt;Node13 -->
 <g id="edge43" class="edge"><title>Node24&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1945.16,-275.332C2023.83,-266.694 2144.56,-250.951 2186.5,-232 2222.21,-215.868 2255.61,-183.396 2273,-164.676"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1944.39,-271.895 1934.83,-276.452 1945.15,-278.854 1944.39,-271.895"/>
+<path fill="none" stroke="midnightblue" d="M2064.18,-273.62C2106.88,-266.377 2161.38,-253.676 2206,-232 2225.92,-222.325 2227.49,-214.554 2245,-201 2261.13,-188.517 2279.65,-174.584 2293.13,-164.521"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2063.46,-270.192 2054.15,-275.258 2064.58,-277.1 2063.46,-270.192"/>
 </g>
 <!-- Node24&#45;&gt;Node15 -->
 <g id="edge34" class="edge"><title>Node24&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1802.17,-276.926C1683.39,-267.639 1437.54,-248.399 1229.5,-232 1188.36,-228.757 1142.01,-225.084 1106.25,-222.247"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1801.99,-280.422 1812.23,-277.712 1802.53,-273.443 1801.99,-280.422"/>
+<path fill="none" stroke="midnightblue" d="M1921.73,-279.975C1776.86,-274.453 1437.67,-259.543 1154,-232 1138.28,-230.473 1121.32,-228.4 1105.61,-226.299"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1921.7,-283.476 1931.82,-280.356 1921.96,-276.481 1921.7,-283.476"/>
 </g>
 <!-- Node24&#45;&gt;Node16 -->
 <g id="edge44" class="edge"><title>Node24&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1864.3,-258.954C1855.43,-239.734 1840.02,-213.744 1817.5,-201 1760.53,-168.763 1294.81,-169.343 1229.5,-165 1181.79,-161.827 1127.76,-157.933 1087.59,-154.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1861.16,-260.499 1868.35,-268.282 1867.58,-257.715 1861.16,-260.499"/>
+<path fill="none" stroke="midnightblue" d="M1974,-260.787C1953.66,-237.82 1923.34,-204.419 1916,-201 1897.62,-192.441 1299.94,-162.804 1106.07,-153.392"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1971.48,-263.223 1980.72,-268.409 1976.73,-258.593 1971.48,-263.223"/>
 </g>
 <!-- Node24&#45;&gt;Node17 -->
 <g id="edge35" class="edge"><title>Node24&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M1802.3,-276.349C1683.4,-265.917 1449.42,-244.657 1367.5,-232 1364.48,-231.533 1361.38,-231.018 1358.27,-230.471"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1802.13,-279.847 1812.39,-277.233 1802.74,-272.874 1802.13,-279.847"/>
+<path fill="none" stroke="midnightblue" d="M2033.39,-264.269C2056.32,-253.916 2084.6,-241.153 2105.82,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2031.92,-261.092 2024.25,-268.396 2034.8,-267.472 2031.92,-261.092"/>
 </g>
 <!-- Node24&#45;&gt;Node18 -->
 <g id="edge45" class="edge"><title>Node24&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M1873.58,-258.318C1872.25,-239.679 1867.13,-214.827 1850.5,-201 1813.29,-170.07 1493.83,-156.569 1358.59,-152.203"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1870.09,-258.593 1874,-268.443 1877.09,-258.309 1870.09,-258.593"/>
+<path fill="none" stroke="midnightblue" d="M2009.41,-259.597C2014.91,-251.203 2020.72,-241.442 2025,-232 2035.23,-209.43 2042.37,-181.384 2046.07,-164.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2006.37,-257.847 2003.66,-268.089 2012.17,-261.773 2006.37,-257.847"/>
 </g>
 <!-- Node24&#45;&gt;Node19 -->
 <g id="edge36" class="edge"><title>Node24&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1900.95,-262.451C1914.64,-252.452 1930.87,-240.6 1943.23,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1898.82,-259.672 1892.81,-268.396 1902.95,-265.324 1898.82,-259.672"/>
+<path fill="none" stroke="midnightblue" d="M1921.78,-277.464C1826.47,-270.193 1652.37,-255.045 1505,-232 1501.98,-231.527 1498.89,-231.008 1495.77,-230.457"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1921.64,-280.963 1931.87,-278.227 1922.17,-273.983 1921.64,-280.963"/>
 </g>
 <!-- Node24&#45;&gt;Node20 -->
 <g id="edge46" class="edge"><title>Node24&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1944.92,-275.09C2027.55,-265.783 2154.19,-248.968 2168.5,-232 2212.2,-180.18 2098.08,-161.083 2022.74,-154.213"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1944.37,-271.63 1934.82,-276.215 1945.14,-278.587 1944.37,-271.63"/>
+<path fill="none" stroke="midnightblue" d="M1986.76,-258.451C1980.5,-239.53 1968.88,-214.224 1949,-201 1912.02,-176.405 1623.96,-159.589 1496.42,-153.276"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1983.46,-259.628 1989.7,-268.189 1990.16,-257.604 1983.46,-259.628"/>
 </g>
 <!-- Node24&#45;&gt;Node25 -->
 <g id="edge37" class="edge"><title>Node24&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1802.09,-271.755C1720.14,-259.424 1586.85,-239.369 1507.32,-227.404"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1801.65,-275.229 1812.06,-273.256 1802.7,-268.307 1801.65,-275.229"/>
+<path fill="none" stroke="midnightblue" d="M1921.67,-272.785C1852.97,-263.213 1746.19,-247.771 1654,-232 1650.99,-231.486 1647.92,-230.947 1644.82,-230.392"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1921.55,-276.302 1931.94,-274.212 1922.52,-269.369 1921.55,-276.302"/>
 </g>
 <!-- Node24&#45;&gt;Node26 -->
 <g id="edge38" class="edge"><title>Node24&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1944.63,-276.286C2082.49,-264.13 2373.4,-237.874 2382.5,-232 2406.79,-216.319 2419.96,-183.361 2425.77,-164.514"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1944.23,-272.808 1934.57,-277.172 1944.84,-279.781 1944.23,-272.808"/>
+<path fill="none" stroke="midnightblue" d="M2064.27,-277.054C2208.75,-265.847 2523.22,-240.542 2531,-232 2552.62,-208.256 2514.12,-180.808 2484.73,-164.593"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2063.87,-273.575 2054.17,-277.836 2064.41,-280.554 2063.87,-273.575"/>
 </g>
 <!-- Node24&#45;&gt;Node27 -->
 <g id="edge41" class="edge"><title>Node24&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1944.96,-276.616C2070.66,-266.134 2326.48,-244.192 2415.5,-232 2420.11,-231.368 2424.87,-230.658 2429.65,-229.901"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1944.35,-273.154 1934.67,-277.472 1944.93,-280.13 1944.35,-273.154"/>
+<path fill="none" stroke="midnightblue" d="M2064.37,-274.632C2142.54,-265.688 2271.51,-249.977 2382,-232 2384.71,-231.558 2387.48,-231.092 2390.27,-230.607"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2063.69,-271.186 2054.15,-275.795 2064.48,-278.141 2063.69,-271.186"/>
 </g>
 <!-- Node24&#45;&gt;Node28 -->
 <g id="edge47" class="edge"><title>Node24&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M1837.98,-263.575C1818.79,-253.35 1795.5,-240.94 1777.92,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1836.56,-266.783 1847.03,-268.396 1839.85,-260.605 1836.56,-266.783"/>
+<path fill="none" stroke="midnightblue" d="M1952.59,-264.131C1929.87,-253.802 1901.94,-241.11 1880.97,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1951.42,-267.444 1961.97,-268.396 1954.32,-261.072 1951.42,-267.444"/>
 </g>
 <!-- Node24&#45;&gt;Node29 -->
 <g id="edge48" class="edge"><title>Node24&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M1809.22,-265.984C1767.89,-255.367 1714.77,-241.72 1675.42,-231.611"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1808.36,-269.377 1818.91,-268.476 1810.1,-262.598 1808.36,-269.377"/>
+<path fill="none" stroke="midnightblue" d="M1924.03,-266.137C1878.19,-255.264 1818.74,-241.161 1775.67,-230.943"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1923.35,-269.573 1933.88,-268.476 1924.96,-262.762 1923.35,-269.573"/>
 </g>
 <!-- Node24&#45;&gt;Node30 -->
 <g id="edge49" class="edge"><title>Node24&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M1944.71,-277.938C2109.91,-267.269 2509.8,-240.919 2570.5,-232 2573.25,-231.597 2576.05,-231.141 2578.87,-230.648"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1944.4,-274.451 1934.65,-278.587 1944.85,-281.436 1944.4,-274.451"/>
+<path fill="none" stroke="midnightblue" d="M2064.51,-276.633C2206.76,-264.894 2515.75,-239.037 2564,-232 2568.61,-231.328 2573.36,-230.548 2578.13,-229.704"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2063.83,-273.177 2054.15,-277.487 2064.4,-280.153 2063.83,-273.177"/>
 </g>
 <!-- Node26&#45;&gt;Node9 -->
 <g id="edge39" class="edge"><title>Node26&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2402.36,-128.451C2388.82,-118.452 2372.77,-106.6 2360.56,-97.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2400.28,-131.27 2410.41,-134.396 2404.44,-125.639 2400.28,-131.27"/>
+<path fill="none" stroke="midnightblue" d="M2428.86,-128.451C2415.32,-118.452 2399.27,-106.6 2387.06,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2426.78,-131.27 2436.91,-134.396 2430.94,-125.639 2426.78,-131.27"/>
 </g>
 <!-- Node26&#45;&gt;Node10 -->
 <g id="edge40" class="edge"><title>Node26&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M2425.41,-124.478C2422.25,-108.021 2417.26,-85.8469 2410.5,-67 2405.94,-54.2922 2399.03,-40.6103 2393.63,-30.6972"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2421.98,-125.171 2427.23,-134.374 2428.87,-123.907 2421.98,-125.171"/>
+<path fill="none" stroke="midnightblue" d="M2451.91,-124.478C2448.75,-108.021 2443.76,-85.8469 2437,-67 2432.44,-54.2922 2425.53,-40.6103 2420.13,-30.6972"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2448.48,-125.171 2453.73,-134.374 2455.37,-123.907 2448.48,-125.171"/>
 </g>
 <!-- Node27&#45;&gt;Node26 -->
 <g id="edge42" class="edge"><title>Node27&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M2473.99,-194.311C2464.09,-184.561 2452.61,-173.259 2443.79,-164.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2471.6,-196.873 2481.18,-201.396 2476.51,-191.885 2471.6,-196.873"/>
+<path fill="none" stroke="midnightblue" d="M2456,-191.108C2456,-182.154 2456,-172.323 2456,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2452.5,-191.396 2456,-201.396 2459.5,-191.396 2452.5,-191.396"/>
 </g>
 <!-- Node31&#45;&gt;Node32 -->
 <g id="edge51" class="edge"><title>Node31&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M3274.97,-258.317C3276.78,-228.376 3279.78,-178.911 3280.98,-159.097"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3271.47,-258.18 3274.36,-268.374 3278.45,-258.604 3271.47,-258.18"/>
+<path fill="none" stroke="midnightblue" d="M3379.37,-259.722C3367.52,-241.627 3348.85,-216.817 3327,-201 3298.19,-180.147 3259.71,-166.775 3231.55,-159.066"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3376.61,-261.914 3384.92,-268.488 3382.53,-258.168 3376.61,-261.914"/>
 </g>
 <!-- Node31&#45;&gt;Node35 -->
 <g id="edge54" class="edge"><title>Node31&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M3244.17,-262.641C3226.05,-250.374 3203.73,-235.261 3190.06,-226.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3242.43,-265.688 3252.67,-268.396 3246.35,-259.891 3242.43,-265.688"/>
+<path fill="none" stroke="midnightblue" d="M3350.71,-264.295C3321.59,-251.76 3284.24,-235.682 3261.76,-226.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3349.67,-267.657 3360.24,-268.396 3352.43,-261.227 3349.67,-267.657"/>
 </g>
 <!-- Node32&#45;&gt;Node33 -->
 <g id="edge52" class="edge"><title>Node32&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M3228.31,-137.991C3167.16,-125.909 3067.34,-106.19 3006.04,-94.0782"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3227.66,-141.431 3238.15,-139.936 3229.02,-134.564 3227.66,-141.431"/>
+<path fill="none" stroke="midnightblue" d="M3145.1,-137.763C3091.79,-126.056 3006.74,-107.379 2951.63,-95.2775"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3144.48,-141.209 3155,-139.936 3145.98,-134.372 3144.48,-141.209"/>
 </g>
 <!-- Node32&#45;&gt;Node34 -->
 <g id="edge53" class="edge"><title>Node32&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M3281.5,-129.411C3281.5,-119.222 3281.5,-106.901 3281.5,-97.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3278,-129.734 3281.5,-139.734 3285,-129.734 3278,-129.734"/>
+<path fill="none" stroke="midnightblue" d="M3216.51,-134.153C3233.58,-123.275 3256.92,-108.403 3273.89,-97.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3214.31,-131.408 3207.76,-139.734 3218.07,-137.311 3214.31,-131.408"/>
 </g>
 <!-- Node35&#45;&gt;Node32 -->
 <g id="edge56" class="edge"><title>Node35&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M3200.27,-201.269C3220.86,-188.403 3250.49,-169.879 3267.7,-159.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3198.15,-198.466 3191.53,-206.734 3201.86,-204.402 3198.15,-198.466"/>
+<path fill="none" stroke="midnightblue" d="M3229.38,-198.404C3220.05,-185.773 3207.74,-169.104 3200.37,-159.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3226.77,-200.769 3235.53,-206.734 3232.4,-196.61 3226.77,-200.769"/>
 </g>
 <!-- Node35&#45;&gt;Node34 -->
 <g id="edge57" class="edge"><title>Node35&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M3178.35,-196.797C3180,-179.072 3184.79,-152.484 3198.5,-134 3210.46,-117.879 3229.23,-105.833 3245.9,-97.5575"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3174.84,-196.775 3177.65,-206.99 3181.82,-197.253 3174.84,-196.775"/>
+<path fill="none" stroke="midnightblue" d="M3256.24,-199.15C3263.74,-189.738 3272.51,-177.354 3278,-165 3287.95,-142.623 3292.61,-114.273 3294.62,-97.5874"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3253.52,-196.943 3249.83,-206.873 3258.91,-201.413 3253.52,-196.943"/>
 </g>
 <!-- Node35&#45;&gt;Node36 -->
 <g id="edge55" class="edge"><title>Node35&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M3148.07,-202.913C3122.33,-191.906 3084.99,-175.942 3058.3,-164.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3146.74,-206.155 3157.32,-206.869 3149.5,-199.718 3146.74,-206.155"/>
+<path fill="none" stroke="midnightblue" d="M3204.04,-203.917C3167.93,-192.895 3113.52,-176.294 3074.97,-164.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3203.13,-207.297 3213.72,-206.869 3205.17,-200.602 3203.13,-207.297"/>
 </g>
 <!-- Node37&#45;&gt;Node35 -->
 <g id="edge59" class="edge"><title>Node37&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M3121.35,-262.008C3136.57,-249.941 3155.04,-235.305 3166.53,-226.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3118.96,-259.441 3113.29,-268.396 3123.3,-264.927 3118.96,-259.441"/>
+<path fill="none" stroke="midnightblue" d="M3248.9,-258.25C3247,-247.017 3244.86,-234.377 3243.47,-226.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3245.49,-259.12 3250.61,-268.396 3252.4,-257.952 3245.49,-259.12"/>
 </g>
 <!-- Node40&#45;&gt;Node9 -->
 <g id="edge67" class="edge"><title>Node40&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2726.89,-134.776C2725.42,-134.51 2723.95,-134.25 2722.5,-134 2609.41,-114.478 2476.29,-98.3922 2401.11,-89.9377"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2726.28,-138.222 2736.75,-136.633 2727.57,-131.343 2726.28,-138.222"/>
+<path fill="none" stroke="midnightblue" d="M2688.38,-134.829C2686.91,-134.546 2685.45,-134.27 2684,-134 2594.97,-117.406 2491.21,-101.47 2427.56,-92.0819"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2687.74,-138.27 2698.23,-136.766 2689.09,-131.402 2687.74,-138.27"/>
 </g>
 <!-- Node40&#45;&gt;Node10 -->
 <g id="edge68" class="edge"><title>Node40&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M2737.55,-131.243C2656.53,-104.834 2503.32,-54.9017 2428.63,-30.5565"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2736.95,-134.727 2747.54,-134.499 2739.12,-128.072 2736.95,-134.727"/>
+<path fill="none" stroke="midnightblue" d="M2706.3,-130.756C2637.96,-104.225 2510.53,-54.7529 2448.21,-30.5565"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2705.35,-134.142 2715.94,-134.499 2707.88,-127.617 2705.35,-134.142"/>
 </g>
 <!-- Node47&#45;&gt;Node3 -->
 <g id="edge88" class="edge"><title>Node47&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M355.638,-398.847C330.296,-389.182 294.81,-375.647 268.266,-365.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="354.558,-402.182 365.149,-402.475 357.053,-395.641 354.558,-402.182"/>
+<path fill="none" stroke="midnightblue" d="M469.292,-399.734C434.202,-390.023 383.387,-375.961 345.671,-365.523"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="468.624,-403.181 479.196,-402.475 470.492,-396.435 468.624,-403.181"/>
 </g>
 <!-- Node47&#45;&gt;Node4 -->
 <g id="edge89" class="edge"><title>Node47&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M372.772,-394.617C356.046,-377.073 327.083,-349.77 296.5,-335 225.388,-300.656 199.734,-315.473 122.5,-299 119.402,-298.339 116.224,-297.657 113.016,-296.964"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="370.584,-397.403 379.954,-402.348 375.712,-392.639 370.584,-397.403"/>
+<path fill="none" stroke="midnightblue" d="M484.865,-397.383C455.341,-381.596 404.71,-355.166 360,-335 330.476,-321.683 296.33,-308.21 270.884,-298.534"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="483.563,-400.657 494.029,-402.305 486.875,-394.49 483.563,-400.657"/>
 </g>
 <!-- Node47&#45;&gt;Node7 -->
 <g id="edge90" class="edge"><title>Node47&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M467.586,-408.046C745.321,-397.801 1664.52,-363.894 1928.83,-354.144"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="467.45,-404.548 457.586,-408.415 467.708,-411.544 467.45,-404.548"/>
+<path fill="none" stroke="midnightblue" d="M590.296,-407.961C862.946,-397.641 1750.71,-364.039 2010.17,-354.219"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="589.947,-404.471 580.087,-408.347 590.212,-411.466 589.947,-404.471"/>
 </g>
 <!-- Node48 -->
 <g id="node48" class="node"><title>Node48</title>
 <g id="a_node48"><a xlink:href="schedule__pass_8h.html" target="_top" xlink:title="Collection of Schedule pass functions. ">
-<polygon fill="white" stroke="red" points="1543,-268.5 1543,-298.5 1674,-298.5 1674,-268.5 1543,-268.5"/>
-<text text-anchor="start" x="1551" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule</text>
-<text text-anchor="middle" x="1608.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pass.h</text>
+<polygon fill="white" stroke="red" points="1513.5,-268.5 1513.5,-298.5 1644.5,-298.5 1644.5,-268.5 1513.5,-268.5"/>
+<text text-anchor="start" x="1521.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule</text>
+<text text-anchor="middle" x="1579" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pass.h</text>
 </a>
 </g>
 </g>
 <!-- Node47&#45;&gt;Node48 -->
 <g id="edge91" class="edge"><title>Node47&#45;&gt;Node48</title>
-<path fill="none" stroke="midnightblue" d="M467.625,-403.646C650.17,-386.727 1110.92,-343.103 1495.5,-299 1510.83,-297.242 1527.3,-295.21 1542.81,-293.233"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="467.207,-400.169 457.573,-404.576 467.853,-407.139 467.207,-400.169"/>
+<path fill="none" stroke="midnightblue" d="M590.157,-401.515C793.567,-377.444 1326.85,-314.338 1513.41,-292.261"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="589.659,-398.049 580.14,-402.7 590.482,-405 589.659,-398.049"/>
 </g>
 <!-- Node49 -->
 <g id="node49" class="node"><title>Node49</title>
 <g id="a_node49"><a xlink:href="ir__pass_8h.html" target="_top" xlink:title="Collection of IR pass functions. ">
-<polygon fill="white" stroke="red" points="406.5,-335.5 406.5,-365.5 500.5,-365.5 500.5,-335.5 406.5,-335.5"/>
-<text text-anchor="start" x="414.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/ir</text>
-<text text-anchor="middle" x="453.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pass.h</text>
+<polygon fill="white" stroke="red" points="451,-335.5 451,-365.5 545,-365.5 545,-335.5 451,-335.5"/>
+<text text-anchor="start" x="459" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/ir</text>
+<text text-anchor="middle" x="498" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pass.h</text>
 </a>
 </g>
 </g>
 <!-- Node47&#45;&gt;Node49 -->
 <g id="edge102" class="edge"><title>Node47&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M404.531,-395.646C414.848,-386.346 427.908,-374.572 437.945,-365.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="402.04,-393.18 396.956,-402.475 406.727,-398.379 402.04,-393.18"/>
+<path fill="none" stroke="midnightblue" d="M506.274,-392.526C504.517,-383.813 502.454,-373.586 500.828,-365.523"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="502.873,-393.364 508.281,-402.475 509.735,-391.98 502.873,-393.364"/>
 </g>
 <!-- Node48&#45;&gt;Node9 -->
 <g id="edge92" class="edge"><title>Node48&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1532.68,-272.709C1422.43,-258.43 1230.75,-233.423 1229.5,-232 1200.81,-199.231 1199.41,-165.489 1229.5,-134 1266.11,-95.687 2056.56,-85.9535 2281.98,-83.9526"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1532.39,-276.201 1542.76,-274.014 1533.29,-269.259 1532.39,-276.201"/>
+<path fill="none" stroke="midnightblue" d="M1503.14,-274.146C1449.78,-266.537 1384.98,-253.196 1368,-232 1340.77,-198.005 1336.99,-165.566 1367,-134 1399.56,-99.7554 2097.76,-87.264 2308.38,-84.267"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1502.92,-277.648 1513.3,-275.547 1503.87,-270.714 1502.92,-277.648"/>
 </g>
 <!-- Node48&#45;&gt;Node12 -->
 <g id="edge93" class="edge"><title>Node48&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1684.15,-275.913C1791.78,-266.488 1995.28,-248.471 2168.5,-232 2196.58,-229.33 2227.71,-226.235 2253.9,-223.592"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1683.7,-272.439 1674.04,-276.798 1684.31,-279.413 1683.7,-272.439"/>
+<path fill="none" stroke="midnightblue" d="M1654.56,-277.745C1772.49,-270.023 2007.39,-253.439 2206,-232 2221.38,-230.34 2237.95,-228.244 2253.36,-226.166"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1654.3,-274.254 1644.55,-278.397 1654.76,-281.239 1654.3,-274.254"/>
 </g>
 <!-- Node48&#45;&gt;Node14 -->
 <g id="edge94" class="edge"><title>Node48&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1684.41,-275.545C1769.3,-267.278 1910.73,-252.042 2031.5,-232 2034.24,-231.545 2037.03,-231.056 2039.85,-230.54"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1683.96,-272.072 1674.34,-276.518 1684.63,-279.04 1683.96,-272.072"/>
+<path fill="none" stroke="midnightblue" d="M1503.45,-269.376C1446.41,-259.38 1366.23,-245.145 1296,-232 1291.37,-231.133 1286.57,-230.223 1281.76,-229.299"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1503.01,-272.853 1513.47,-271.129 1504.22,-265.957 1503.01,-272.853"/>
 </g>
 <!-- Node48&#45;&gt;Node15 -->
 <g id="edge95" class="edge"><title>Node48&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1532.88,-272.571C1520.4,-270.997 1507.59,-269.421 1495.5,-268 1345.9,-250.413 1308.09,-249.671 1158.5,-232 1141.46,-229.987 1122.99,-227.657 1106.05,-225.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1532.44,-276.044 1542.8,-273.83 1533.32,-269.099 1532.44,-276.044"/>
+<path fill="none" stroke="midnightblue" d="M1503.07,-273.619C1399.59,-261.49 1219.63,-240.305 1154,-232 1138.33,-230.017 1121.39,-227.785 1105.68,-225.677"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1502.81,-277.112 1513.15,-274.799 1503.62,-270.159 1502.81,-277.112"/>
 </g>
 <!-- Node48&#45;&gt;Node17 -->
 <g id="edge96" class="edge"><title>Node48&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M1532.88,-266.666C1485.39,-256.72 1422.87,-243.618 1367.5,-232 1364.51,-231.372 1361.44,-230.728 1358.34,-230.077"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1532.27,-270.115 1542.78,-268.739 1533.71,-263.263 1532.27,-270.115"/>
+<path fill="none" stroke="midnightblue" d="M1654.87,-273.662C1767.06,-260.593 1974.92,-236.38 2077.11,-224.476"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1654.18,-270.219 1644.65,-274.853 1654.99,-277.172 1654.18,-270.219"/>
 </g>
 <!-- Node48&#45;&gt;Node19 -->
 <g id="edge97" class="edge"><title>Node48&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1684.1,-268.619C1749.5,-256.61 1842.78,-239.483 1902.99,-228.428"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1683.46,-265.178 1674.26,-270.426 1684.72,-272.063 1683.46,-265.178"/>
+<path fill="none" stroke="midnightblue" d="M1538.59,-264.131C1515.87,-253.802 1487.94,-241.11 1466.97,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1537.42,-267.444 1547.97,-268.396 1540.32,-261.072 1537.42,-267.444"/>
 </g>
 <!-- Node48&#45;&gt;Node25 -->
 <g id="edge98" class="edge"><title>Node48&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1562.72,-264.682C1535.94,-254.257 1502.6,-241.281 1477.67,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1561.67,-268.03 1572.26,-268.396 1564.21,-261.507 1561.67,-268.03"/>
+<path fill="none" stroke="midnightblue" d="M1579,-258.108C1579,-249.154 1579,-239.323 1579,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1575.5,-258.396 1579,-268.396 1582.5,-258.396 1575.5,-258.396"/>
 </g>
 <!-- Node48&#45;&gt;Node26 -->
 <g id="edge99" class="edge"><title>Node48&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1580.44,-262.13C1559.67,-244.676 1537.82,-219.499 1555.5,-201 1586.2,-168.881 2310.38,-170.231 2354.5,-165 2357.53,-164.641 2360.62,-164.229 2363.74,-163.777"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1578.27,-264.877 1588.26,-268.412 1582.65,-259.42 1578.27,-264.877"/>
+<path fill="none" stroke="midnightblue" d="M1654.97,-272.248C1723.39,-262.745 1826.64,-247.738 1916,-232 1984.33,-219.966 2000.48,-211.875 2069,-201 2206.86,-179.121 2243.04,-186.263 2381,-165 2384.01,-164.535 2387.09,-164.037 2390.2,-163.515"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1654.14,-268.829 1644.71,-273.667 1655.1,-275.763 1654.14,-268.829"/>
 </g>
 <!-- Node48&#45;&gt;Node27 -->
 <g id="edge100" class="edge"><title>Node48&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1684.8,-276.611C1720.8,-273.888 1764.35,-270.673 1803.5,-268 2060.73,-250.44 2125.83,-256.421 2382.5,-232 2397.86,-230.539 2414.35,-228.622 2429.85,-226.663"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1684.08,-273.155 1674.38,-277.402 1684.61,-280.135 1684.08,-273.155"/>
+<path fill="none" stroke="midnightblue" d="M1654.94,-278.995C1827.07,-270.845 2242.75,-249.943 2382,-232 2384.73,-231.649 2387.5,-231.257 2390.31,-230.835"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1654.52,-275.511 1644.7,-279.479 1654.85,-282.503 1654.52,-275.511"/>
 </g>
 <!-- Node48&#45;&gt;Node29 -->
 <g id="edge101" class="edge"><title>Node48&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M1612.95,-258.403C1614.62,-249.37 1616.46,-239.408 1617.9,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1609.48,-257.927 1611.1,-268.396 1616.36,-259.198 1609.48,-257.927"/>
+<path fill="none" stroke="midnightblue" d="M1618.57,-264.131C1640.81,-253.802 1668.15,-241.11 1688.68,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1616.97,-261.01 1609.38,-268.396 1619.92,-267.359 1616.97,-261.01"/>
 </g>
 <!-- Node49&#45;&gt;Node39 -->
 <g id="edge103" class="edge"><title>Node49&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M468.124,-326.867C474.203,-317.459 481.069,-306.833 486.404,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="465.101,-325.097 462.613,-335.396 470.98,-328.896 465.101,-325.097"/>
+<path fill="none" stroke="midnightblue" d="M458.991,-330.992C437.276,-320.689 410.673,-308.068 390.669,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="457.738,-334.272 468.273,-335.396 460.739,-327.947 457.738,-334.272"/>
 </g>
 <!-- Node49&#45;&gt;Node41 -->
 <g id="edge104" class="edge"><title>Node49&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M499.28,-331.682C526.063,-321.257 559.402,-308.281 584.334,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="497.786,-328.507 489.737,-335.396 500.325,-335.03 497.786,-328.507"/>
+<path fill="none" stroke="midnightblue" d="M493.551,-325.403C491.884,-316.37 490.045,-306.408 488.599,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="490.139,-326.198 495.396,-335.396 497.022,-324.927 490.139,-326.198"/>
 </g>
 <!-- Node49&#45;&gt;Node45 -->
 <g id="edge105" class="edge"><title>Node49&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M426.16,-329.306C409.635,-317.1 389.432,-302.177 377.017,-293.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="424.282,-332.27 434.405,-335.396 428.441,-326.639 424.282,-332.27"/>
+<path fill="none" stroke="midnightblue" d="M532.542,-330.473C555.068,-318.064 583.375,-302.472 600.557,-293.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="530.675,-327.505 523.604,-335.396 534.052,-333.637 530.675,-327.505"/>
 </g>
 <!-- Node50&#45;&gt;Node47 -->
 <g id="edge107" class="edge"><title>Node50&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M387.5,-448.289C387.5,-438.857 387.5,-428.655 387.5,-421.658"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="384,-448.399 387.5,-458.399 391,-448.399 384,-448.399"/>
+<path fill="none" stroke="midnightblue" d="M510,-448.289C510,-438.857 510,-428.655 510,-421.658"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="506.5,-448.399 510,-458.399 513.5,-448.399 506.5,-448.399"/>
 </g>
 </g>
 </svg>
diff --git a/docs/doxygen/c__runtime__api_8h.html b/docs/doxygen/c__runtime__api_8h.html
index 88c3b28..54f9452 100644
--- a/docs/doxygen/c__runtime__api_8h.html
+++ b/docs/doxygen/c__runtime__api_8h.html
@@ -107,7 +107,7 @@ Include dependency graph for c_runtime_api.h:</div>
 </div><div class="textblock"><div class="dynheader">
 This graph shows which files directly or indirectly include this file:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="c__runtime__api_8h__dep__incl.svg" width="3063" height="1394"><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="c__runtime__api_8h__dep__incl.svg" width="2726" height="1394"><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/doxygen/c__runtime__api_8h__dep__incl.svg b/docs/doxygen/c__runtime__api_8h__dep__incl.svg
index e8bccce..57070c9 100644
--- a/docs/doxygen/c__runtime__api_8h__dep__incl.svg
+++ b/docs/doxygen/c__runtime__api_8h__dep__incl.svg
@@ -4,1182 +4,1187 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/runtime/c_runtime_api.h Pages: 1 -->
-<svg width="2297pt" height="1045pt"
- viewBox="0.00 0.00 2296.50 1045.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="2044pt" height="1045pt"
+ viewBox="0.00 0.00 2044.28 1045.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 1041)">
 <title>include/tvm/runtime/c_runtime_api.h</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-1041 2292.5,-1041 2292.5,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-1041 2040.28,-1041 2040.28,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="964.5,-1006.5 964.5,-1036.5 1077.5,-1036.5 1077.5,-1006.5 964.5,-1006.5"/>
-<text text-anchor="start" x="972.5" y="-1024.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1021" y="-1013.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_runtime_api.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="1188.5,-1006.5 1188.5,-1036.5 1301.5,-1036.5 1301.5,-1006.5 1188.5,-1006.5"/>
+<text text-anchor="start" x="1196.5" y="-1024.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1245" y="-1013.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_runtime_api.h</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
 <g id="a_node2"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="white" stroke="black" points="968.5,-559.5 968.5,-578.5 1103.5,-578.5 1103.5,-559.5 968.5,-559.5"/>
-<text text-anchor="middle" x="1036" y="-566.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/node.h</text>
+<polygon fill="white" stroke="black" points="1079.5,-559.5 1079.5,-578.5 1214.5,-578.5 1214.5,-559.5 1079.5,-559.5"/>
+<text text-anchor="middle" x="1147" y="-566.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/node.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M984.211,-1001.18C947.971,-979.194 898,-939.611 898,-888.5 898,-888.5 898,-888.5 898,-819.5 898,-725.37 957.069,-717.714 1002,-635 1012.82,-615.08 1025.03,-591.437 1031.47,-578.878"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="982.693,-1004.35 993.089,-1006.39 986.234,-998.309 982.693,-1004.35"/>
+<path fill="none" stroke="midnightblue" d="M1177.77,-1018.37C1101.66,-1014.37 984.635,-1002.9 957,-970 909.273,-913.176 1024.02,-921.658 1040,-903 1089.3,-845.443 1050.71,-806.558 1083,-738 1091.41,-720.145 1099.8,-719.463 1109,-702 1123.74,-674.013 1124.32,-665.416 1133,-635 1138.7,-615.02 1143.31,-591.002 1145.54,-578.502"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1178.06,-1021.89 1188.22,-1018.88 1178.41,-1014.9 1178.06,-1021.89"/>
 </g>
-<!-- Node14 -->
-<g id="node14" class="node"><title>Node14</title>
-<g id="a_node14"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
-<polygon fill="white" stroke="red" points="1258.5,-324.5 1258.5,-343.5 1375.5,-343.5 1375.5,-324.5 1258.5,-324.5"/>
-<text text-anchor="middle" x="1317" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr.h</text>
+<!-- Node15 -->
+<g id="node15" class="node"><title>Node15</title>
+<g id="a_node15"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
+<polygon fill="white" stroke="red" points="717.5,-324.5 717.5,-343.5 834.5,-343.5 834.5,-324.5 717.5,-324.5"/>
+<text text-anchor="middle" x="776" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node14 -->
-<g id="edge150" class="edge"><title>Node1&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1087.72,-1018.45C1248.27,-1013.15 1652.61,-997.412 1785,-970 1889.15,-948.435 2010,-994.858 2010,-888.5 2010,-888.5 2010,-888.5 2010,-685.5 2010,-402.198 1543.12,-347.828 1375.79,-337.44"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1087.38,-1014.96 1077.5,-1018.79 1087.61,-1021.96 1087.38,-1014.96"/>
+<!-- Node1&#45;&gt;Node15 -->
+<g id="edge151" class="edge"><title>Node1&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M1178.24,-1020.27C925.013,-1018.52 38,-1004.15 38,-888.5 38,-888.5 38,-888.5 38,-685.5 38,-653.049 38.0936,-641.375 57,-615 106.553,-545.872 216,-593.554 216,-508.5 216,-508.5 216,-508.5 216,-445 216,-343.629 573.788,-334.033 717.392,-334.264"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1178.38,-1023.77 1188.4,-1020.33 1178.43,-1016.77 1178.38,-1023.77"/>
 </g>
 <!-- Node29 -->
 <g id="node29" class="node"><title>Node29</title>
 <g id="a_node29"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="white" stroke="black" points="256.5,-615.5 256.5,-634.5 411.5,-634.5 411.5,-615.5 256.5,-615.5"/>
-<text text-anchor="middle" x="334" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/reflection.h</text>
+<polygon fill="white" stroke="black" points="1548.5,-615.5 1548.5,-634.5 1703.5,-634.5 1703.5,-615.5 1548.5,-615.5"/>
+<text text-anchor="middle" x="1626" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/reflection.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node29 -->
 <g id="edge66" class="edge"><title>Node1&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M954.181,-1018.91C727.23,-1012.65 0,-985.04 0,-888.5 0,-888.5 0,-888.5 0,-752.5 0,-710.004 14.661,-694.601 50,-671 82.9514,-648.993 184.246,-636.975 256.451,-631.021"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.195,-1022.41 964.286,-1019.19 954.385,-1015.42 954.195,-1022.41"/>
+<path fill="none" stroke="midnightblue" d="M1311.7,-1015.81C1495.88,-1001.96 1998,-957.863 1998,-888.5 1998,-888.5 1998,-888.5 1998,-819.5 1998,-687.918 1812.55,-645.682 1703.53,-632.221"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1311.31,-1012.33 1301.6,-1016.56 1311.83,-1019.31 1311.31,-1012.33"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node"><title>Node31</title>
 <g id="a_node31"><a xlink:href="serialization_8h.html" target="_top" xlink:title="include/tvm/node/serialization.h">
-<polygon fill="white" stroke="black" points="1776,-878 1776,-897 1944,-897 1944,-878 1776,-878"/>
-<text text-anchor="middle" x="1860" y="-885" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/serialization.h</text>
+<polygon fill="white" stroke="black" points="66,-878 66,-897 234,-897 234,-878 66,-878"/>
+<text text-anchor="middle" x="150" y="-885" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/serialization.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node31 -->
 <g id="edge70" class="edge"><title>Node1&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M1087.64,-1013.57C1168.57,-1004.85 1309.13,-988.732 1429,-970 1573.46,-947.425 1743.67,-912.869 1819.74,-897.002"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1087.16,-1010.1 1077.59,-1014.65 1087.9,-1017.06 1087.16,-1010.1"/>
+<path fill="none" stroke="midnightblue" d="M1178.22,-1013.47C1017.71,-996.384 597.589,-950.584 248,-903 234.366,-901.144 219.684,-899.032 205.939,-897.006"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1178.1,-1016.98 1188.42,-1014.55 1178.84,-1010.01 1178.1,-1016.98"/>
 </g>
 <!-- Node32 -->
 <g id="node32" class="node"><title>Node32</title>
 <g id="a_node32"><a xlink:href="include_2tvm_2relay_2qnn_2transform_8h.html" target="_top" xlink:title="include/tvm/relay/qnn\l/transform.h">
-<polygon fill="white" stroke="black" points="2038.5,-939.5 2038.5,-969.5 2157.5,-969.5 2157.5,-939.5 2038.5,-939.5"/>
-<text text-anchor="start" x="2046.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
-<text text-anchor="middle" x="2098" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
+<polygon fill="white" stroke="black" points="966.5,-939.5 966.5,-969.5 1085.5,-969.5 1085.5,-939.5 966.5,-939.5"/>
+<text text-anchor="start" x="974.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
+<text text-anchor="middle" x="1026" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node32 -->
 <g id="edge71" class="edge"><title>Node1&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M1087.77,-1020.43C1249.21,-1019.55 1673.25,-1012.97 2024,-970 2028.68,-969.427 2033.5,-968.728 2038.34,-967.951"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1087.5,-1016.93 1077.52,-1020.48 1087.54,-1023.93 1087.5,-1016.93"/>
+<path fill="none" stroke="midnightblue" d="M1187.99,-1003.58C1152.42,-993.022 1107.17,-979.592 1073.54,-969.611"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1187.17,-1006.99 1197.75,-1006.48 1189.16,-1000.28 1187.17,-1006.99"/>
 </g>
 <!-- Node33 -->
 <g id="node33" class="node"><title>Node33</title>
 <g id="a_node33"><a xlink:href="c__backend__api_8h.html" target="_top" xlink:title="TVM runtime backend API. ">
-<polygon fill="white" stroke="black" points="2175.5,-939.5 2175.5,-969.5 2288.5,-969.5 2288.5,-939.5 2175.5,-939.5"/>
-<text text-anchor="start" x="2183.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="2232" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_backend_api.h</text>
+<polygon fill="white" stroke="black" points="1103.5,-939.5 1103.5,-969.5 1216.5,-969.5 1216.5,-939.5 1103.5,-939.5"/>
+<text text-anchor="start" x="1111.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1160" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_backend_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node33 -->
 <g id="edge72" class="edge"><title>Node1&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M1087.77,-1019.07C1299.67,-1014.28 1955.38,-997.571 2166,-970 2169.02,-969.604 2172.12,-969.139 2175.23,-968.623"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1087.64,-1015.57 1077.72,-1019.29 1087.8,-1022.57 1087.64,-1015.57"/>
+<path fill="none" stroke="midnightblue" d="M1218.41,-1000.17C1205.41,-990.228 1190.1,-978.514 1178.41,-969.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1216.49,-1003.1 1226.56,-1006.4 1220.74,-997.541 1216.49,-1003.1"/>
 </g>
 <!-- Node34 -->
 <g id="node34" class="node"><title>Node34</title>
 <g id="a_node34"><a xlink:href="data__type_8h.html" target="_top" xlink:title="include/tvm/runtime\l/data_type.h">
-<polygon fill="white" stroke="black" points="247.5,-872.5 247.5,-902.5 360.5,-902.5 360.5,-872.5 247.5,-872.5"/>
-<text text-anchor="start" x="255.5" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="304" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00">/data_type.h</text>
+<polygon fill="white" stroke="black" points="1616.5,-872.5 1616.5,-902.5 1729.5,-902.5 1729.5,-872.5 1616.5,-872.5"/>
+<text text-anchor="start" x="1624.5" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1673" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00">/data_type.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node34 -->
 <g id="edge73" class="edge"><title>Node1&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M954.17,-1014.17C876.382,-1006.27 744.243,-991.159 632,-970 531.959,-951.142 416.862,-920.41 353.069,-902.562"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.012,-1017.68 964.312,-1015.2 954.713,-1010.71 954.012,-1017.68"/>
+<path fill="none" stroke="midnightblue" d="M1311.84,-1016.61C1400.99,-1010.48 1553.27,-996.455 1602,-970 1631.03,-954.243 1653.7,-921.631 1665.04,-902.786"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1311.57,-1013.12 1301.82,-1017.28 1312.04,-1020.1 1311.57,-1013.12"/>
 </g>
 <!-- Node37 -->
 <g id="node37" class="node"><title>Node37</title>
 <g id="a_node37"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
-<polygon fill="white" stroke="black" points="587.5,-805.5 587.5,-835.5 700.5,-835.5 700.5,-805.5 587.5,-805.5"/>
-<text text-anchor="start" x="595.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="644" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/packed_func.h</text>
+<polygon fill="white" stroke="black" points="1479.5,-805.5 1479.5,-835.5 1592.5,-835.5 1592.5,-805.5 1479.5,-805.5"/>
+<text text-anchor="start" x="1487.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1536" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/packed_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node37 -->
-<g id="edge148" class="edge"><title>Node1&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M953.82,-1017.22C874.412,-1009.58 743.993,-984.517 672,-903 654.867,-883.6 648.103,-853.201 645.518,-835.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="953.925,-1020.75 964.197,-1018.15 954.548,-1013.77 953.925,-1020.75"/>
+<g id="edge149" class="edge"><title>Node1&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M1311.7,-1015.83C1379.48,-1009.69 1478.22,-996.411 1505,-970 1541.94,-933.569 1540.39,-865.269 1537.71,-835.722"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1311.17,-1012.37 1301.51,-1016.73 1311.78,-1019.34 1311.17,-1012.37"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node"><title>Node39</title>
 <g id="a_node39"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API. ">
-<polygon fill="white" stroke="black" points="1095.5,-738.5 1095.5,-768.5 1208.5,-768.5 1208.5,-738.5 1095.5,-738.5"/>
-<text text-anchor="start" x="1103.5" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1152" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/device_api.h</text>
+<polygon fill="white" stroke="black" points="1223.5,-738.5 1223.5,-768.5 1336.5,-768.5 1336.5,-738.5 1223.5,-738.5"/>
+<text text-anchor="start" x="1231.5" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1280" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/device_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node39 -->
 <g id="edge112" class="edge"><title>Node1&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M1087.91,-1017.17C1292.1,-1006.34 1896.79,-968.891 1953,-903 2052.65,-786.19 1407.07,-760.7 1208.7,-755.652"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1087.43,-1013.69 1077.63,-1017.72 1087.8,-1020.68 1087.43,-1013.69"/>
+<path fill="none" stroke="midnightblue" d="M1300.61,-1002.72C1345.28,-985.155 1405.01,-953.495 1433,-903 1441.05,-888.478 1445.33,-824.283 1431,-805 1424.74,-796.568 1372.68,-780.346 1331.41,-768.557"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1299.15,-999.532 1291.04,-1006.36 1301.63,-1006.07 1299.15,-999.532"/>
 </g>
 <!-- Node40 -->
 <g id="node40" class="node"><title>Node40</title>
 <g id="a_node40"><a xlink:href="runtime_2module_8h.html" target="_top" xlink:title="Runtime container of the functions generated by TVM, This is used to support dynamically link...">
-<polygon fill="white" stroke="black" points="964.5,-738.5 964.5,-768.5 1077.5,-768.5 1077.5,-738.5 964.5,-738.5"/>
-<text text-anchor="start" x="972.5" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1021" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/module.h</text>
+<polygon fill="white" stroke="black" points="1092.5,-738.5 1092.5,-768.5 1205.5,-768.5 1205.5,-738.5 1092.5,-738.5"/>
+<text text-anchor="start" x="1100.5" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1149" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/module.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node40 -->
 <g id="edge113" class="edge"><title>Node1&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M1021,-996.065C1021,-941.572 1021,-811.521 1021,-768.549"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1017.5,-996.199 1021,-1006.2 1024.5,-996.199 1017.5,-996.199"/>
+<path fill="none" stroke="midnightblue" d="M1240.13,-996.63C1236.55,-980.241 1231.23,-958.086 1225,-939 1203.7,-873.798 1169.89,-799.086 1155.66,-768.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1236.72,-997.425 1242.23,-1006.48 1243.57,-995.968 1236.72,-997.425"/>
 </g>
 <!-- Node45 -->
 <g id="node45" class="node"><title>Node45</title>
 <g id="a_node45"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device&#45;independent managed NDArray abstraction. ">
-<polygon fill="white" stroke="black" points="718.5,-872.5 718.5,-902.5 831.5,-902.5 831.5,-872.5 718.5,-872.5"/>
-<text text-anchor="start" x="726.5" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="775" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00">/ndarray.h</text>
+<polygon fill="white" stroke="black" points="1311.5,-872.5 1311.5,-902.5 1424.5,-902.5 1424.5,-872.5 1311.5,-872.5"/>
+<text text-anchor="start" x="1319.5" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1368" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00">/ndarray.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node45 -->
 <g id="edge114" class="edge"><title>Node1&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M954.441,-1010.6C920.081,-1003.26 878.641,-990.809 846,-970 818.309,-952.347 795.298,-920.744 783.509,-902.512"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="953.897,-1014.06 964.394,-1012.62 955.293,-1007.2 953.897,-1014.06"/>
+<path fill="none" stroke="midnightblue" d="M1267.72,-999.227C1276.97,-990.36 1287.67,-979.85 1297,-970 1318.68,-947.113 1342.48,-919.166 1356.28,-902.657"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1265.18,-996.812 1260.35,-1006.24 1270.01,-1001.88 1265.18,-996.812"/>
 </g>
 <!-- Node46 -->
 <g id="node46" class="node"><title>Node46</title>
 <g id="a_node46"><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="718.5,-805.5 718.5,-835.5 831.5,-835.5 831.5,-805.5 718.5,-805.5"/>
-<text text-anchor="start" x="726.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="775" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/serializer.h</text>
+<polygon fill="white" stroke="black" points="1309.5,-805.5 1309.5,-835.5 1422.5,-835.5 1422.5,-805.5 1309.5,-805.5"/>
+<text text-anchor="start" x="1317.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1366" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/serializer.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node46 -->
-<g id="edge149" class="edge"><title>Node1&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M954.583,-1007.49C930.029,-999.933 903.468,-988.171 884,-970 849.098,-937.422 869.504,-909.537 840,-872 828.52,-857.394 811.938,-844.6 798.395,-835.544"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="953.655,-1010.86 964.234,-1010.28 955.599,-1004.14 953.655,-1010.86"/>
+<g id="edge150" class="edge"><title>Node1&#45;&gt;Node46</title>
+<path fill="none" stroke="midnightblue" d="M1252.44,-996.634C1264.12,-960.114 1286.95,-892.443 1302,-872 1312.82,-857.297 1328.99,-844.589 1342.37,-835.598"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1249.01,-995.873 1249.33,-1006.46 1255.69,-997.987 1249.01,-995.873"/>
 </g>
 <!-- Node47 -->
 <g id="node47" class="node"><title>Node47</title>
 <g id="a_node47"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
-<polygon fill="white" stroke="black" points="1307.5,-939.5 1307.5,-969.5 1420.5,-969.5 1420.5,-939.5 1307.5,-939.5"/>
-<text text-anchor="start" x="1315.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1364" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">/object.h</text>
+<polygon fill="white" stroke="black" points="796.5,-939.5 796.5,-969.5 909.5,-969.5 909.5,-939.5 796.5,-939.5"/>
+<text text-anchor="start" x="804.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="853" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">/object.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node47 -->
 <g id="edge119" class="edge"><title>Node1&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M1087.61,-1007.88C1151.5,-995.769 1246.92,-977.687 1307.28,-966.249"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1086.81,-1004.47 1077.64,-1009.77 1088.12,-1011.34 1086.81,-1004.47"/>
+<path fill="none" stroke="midnightblue" d="M1178.22,-1010.9C1113.18,-1001.33 1011.61,-985.829 924,-970 919.295,-969.15 914.423,-968.233 909.537,-967.287"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1177.93,-1014.39 1188.33,-1012.38 1178.95,-1007.47 1177.93,-1014.39"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
 <g id="a_node3"><a xlink:href="ir_2adt_8h.html" target="_top" xlink:title="Algebraic data type definitions. ">
-<polygon fill="white" stroke="red" points="1585.5,-324.5 1585.5,-343.5 1694.5,-343.5 1694.5,-324.5 1585.5,-324.5"/>
-<text text-anchor="middle" x="1640" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/adt.h</text>
+<polygon fill="white" stroke="red" points="1260.5,-324.5 1260.5,-343.5 1369.5,-343.5 1369.5,-324.5 1260.5,-324.5"/>
+<text text-anchor="middle" x="1315" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node3 -->
 <g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1083.87,-557.153C1175.93,-535.219 1382.61,-480.715 1542,-400 1575.51,-383.028 1611.48,-356.874 1629.06,-343.505"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1082.94,-553.777 1074.01,-559.482 1084.55,-560.59 1082.94,-553.777"/>
+<path fill="none" stroke="midnightblue" d="M1183.18,-555.888C1223.33,-540.152 1285.56,-508.321 1309,-456 1326.37,-417.227 1320.06,-364.306 1316.63,-343.705"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1181.85,-552.648 1173.73,-559.454 1184.32,-559.197 1181.85,-552.648"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
 <g id="a_node4"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
-<polygon fill="white" stroke="red" points="930.5,-380.5 930.5,-399.5 1043.5,-399.5 1043.5,-380.5 930.5,-380.5"/>
-<text text-anchor="middle" x="987" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/expr.h</text>
+<polygon fill="white" stroke="red" points="976.5,-380.5 976.5,-399.5 1089.5,-399.5 1089.5,-380.5 976.5,-380.5"/>
+<text text-anchor="middle" x="1033" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node4 -->
 <g id="edge3" class="edge"><title>Node2&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1020.36,-551.763C1013.56,-543.738 1006.21,-533.528 1002,-523 984.544,-479.307 985.383,-421.429 986.445,-399.718"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1017.8,-554.152 1027.08,-559.258 1023.01,-549.478 1017.8,-554.152"/>
+<path fill="none" stroke="midnightblue" d="M1099.78,-556.011C1082.15,-549.183 1063.61,-538.736 1052,-523 1023.68,-484.622 1028.64,-422.536 1031.65,-399.747"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1098.83,-559.39 1109.43,-559.443 1101.18,-552.795 1098.83,-559.39"/>
 </g>
-<!-- Node2&#45;&gt;Node14 -->
-<g id="edge65" class="edge"><title>Node2&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1031.31,-549.293C1028.3,-533.272 1026.38,-510.007 1035,-492 1069.24,-420.433 1104.06,-417.447 1174,-380 1206.47,-362.617 1246.73,-350.702 1276.25,-343.522"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1027.99,-550.486 1033.56,-559.499 1034.82,-548.98 1027.99,-550.486"/>
+<!-- Node2&#45;&gt;Node15 -->
+<g id="edge65" class="edge"><title>Node2&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M1110.53,-556.109C1087.86,-548.084 1058.48,-536.511 1034,-523 930.164,-465.687 819.641,-372.821 786.17,-343.892"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1109.52,-559.463 1120.12,-559.433 1111.82,-552.85 1109.52,-559.463"/>
 </g>
-<!-- Node15 -->
-<g id="node15" class="node"><title>Node15</title>
-<g id="a_node15"><a xlink:href="base_8h.html" target="_top" xlink:title="Base classes for the Relay IR. ">
-<polygon fill="white" stroke="red" points="759,-263 759,-282 893,-282 893,-263 759,-263"/>
-<text text-anchor="middle" x="826" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/base.h</text>
+<!-- Node16 -->
+<g id="node16" class="node"><title>Node16</title>
+<g id="a_node16"><a xlink:href="base_8h.html" target="_top" xlink:title="Base classes for the Relay IR. ">
+<polygon fill="white" stroke="red" points="1346,-263 1346,-282 1480,-282 1480,-263 1346,-263"/>
+<text text-anchor="middle" x="1413" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/base.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node15 -->
-<g id="edge64" class="edge"><title>Node2&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M966.084,-557.35C904.993,-543.608 826,-513.065 826,-447 826,-447 826,-447 826,-389 826,-349.096 826,-301.438 826,-282.193"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="965.593,-560.824 976.103,-559.492 967.056,-553.979 965.593,-560.824"/>
+<!-- Node2&#45;&gt;Node16 -->
+<g id="edge64" class="edge"><title>Node2&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M1205.89,-556.962C1230.84,-550.18 1259.13,-539.511 1281,-523 1367.83,-457.46 1403.33,-317.963 1411.23,-282.066"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1204.97,-553.584 1196.16,-559.462 1206.71,-560.364 1204.97,-553.584"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node"><title>Node27</title>
 <g id="a_node27"><a xlink:href="span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
-<polygon fill="white" stroke="red" points="1044,-498 1044,-517 1160,-517 1160,-498 1044,-498"/>
-<text text-anchor="middle" x="1102" y="-505" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/span.h</text>
+<polygon fill="white" stroke="red" points="1061,-498 1061,-517 1177,-517 1177,-498 1061,-498"/>
+<text text-anchor="middle" x="1119" y="-505" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/span.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node27 -->
 <g id="edge55" class="edge"><title>Node2&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1053.03,-552.65C1065.61,-541.306 1082.28,-526.281 1092.56,-517.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1050.54,-550.18 1045.46,-559.475 1055.23,-555.379 1050.54,-550.18"/>
+<path fill="none" stroke="midnightblue" d="M1138.69,-550.335C1133.51,-539.328 1127.08,-525.663 1123,-517.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1135.56,-551.917 1142.99,-559.475 1141.9,-548.937 1135.56,-551.917"/>
 </g>
 <!-- Node28 -->
 <g id="node28" class="node"><title>Node28</title>
 <g id="a_node28"><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="red" points="1216,-436.5 1216,-455.5 1330,-455.5 1330,-436.5 1216,-436.5"/>
-<text text-anchor="middle" x="1273" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type.h</text>
+<polygon fill="white" stroke="red" points="1186,-436.5 1186,-455.5 1300,-455.5 1300,-436.5 1186,-436.5"/>
+<text text-anchor="middle" x="1243" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node28 -->
 <g id="edge63" class="edge"><title>Node2&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M1080.29,-556.696C1106.83,-549.033 1140.8,-537.635 1169,-523 1206.71,-503.43 1245.73,-471.045 1263.35,-455.647"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1079.18,-553.371 1070.5,-559.449 1081.08,-560.11 1079.18,-553.371"/>
+<path fill="none" stroke="midnightblue" d="M1177.58,-555.035C1191.96,-547.557 1208.26,-536.861 1219,-523 1234.93,-502.435 1240.41,-471.087 1242.19,-455.885"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1175.93,-551.946 1168.49,-559.487 1179.01,-558.234 1175.93,-551.946"/>
 </g>
 <!-- Node4&#45;&gt;Node3 -->
-<g id="edge13" class="edge"><title>Node4&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1053.69,-383.485C1183.04,-372.788 1465.77,-349.408 1585.11,-339.539"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1053.2,-380.013 1043.52,-384.326 1053.78,-386.99 1053.2,-380.013"/>
+<g id="edge14" class="edge"><title>Node4&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M1087.64,-378.537C1140.94,-368.332 1221,-352.999 1270.53,-343.516"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1086.85,-375.125 1077.68,-380.444 1088.16,-382 1086.85,-375.125"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
 <g id="a_node5"><a xlink:href="bound_8h.html" target="_top" xlink:title="Bound deducers. ">
-<polygon fill="white" stroke="black" points="1099.5,-196 1099.5,-215 1238.5,-215 1238.5,-196 1099.5,-196"/>
-<text text-anchor="middle" x="1169" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/bound.h</text>
+<polygon fill="white" stroke="black" points="335.5,-196 335.5,-215 474.5,-215 474.5,-196 335.5,-196"/>
+<text text-anchor="middle" x="405" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/bound.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node5 -->
 <g id="edge4" class="edge"><title>Node4&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M991.936,-370.685C1000.33,-342.73 1019.88,-289.267 1054,-257 1076.42,-235.801 1109.19,-222.608 1134.02,-215.048"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="988.554,-369.784 989.176,-380.361 995.285,-371.705 988.554,-369.784"/>
-</g>
-<!-- Node10 -->
-<g id="node10" class="node"><title>Node10</title>
-<g id="a_node10"><a xlink:href="int__set_8h.html" target="_top" xlink:title="Integer set. ">
-<polygon fill="white" stroke="red" points="1063,-257.5 1063,-287.5 1175,-287.5 1175,-257.5 1063,-257.5"/>
-<text text-anchor="start" x="1071" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
-<text text-anchor="middle" x="1119" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">_set.h</text>
-</a>
-</g>
-</g>
-<!-- Node4&#45;&gt;Node10 -->
-<g id="edge10" class="edge"><title>Node4&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M1004.45,-373.731C1030.2,-351.197 1078.02,-309.356 1102.95,-287.545"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1002.14,-371.1 996.921,-380.319 1006.75,-376.368 1002.14,-371.1"/>
+<path fill="none" stroke="midnightblue" d="M966.345,-384.38C799.916,-372.152 376.61,-336.524 337,-288 315.093,-261.162 362.035,-229.789 388.518,-215.015"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="966.227,-387.88 976.455,-385.117 966.736,-380.899 966.227,-387.88"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node"><title>Node11</title>
-<g id="a_node11"><a xlink:href="pattern_8h.html" target="_top" xlink:title="Expression pattern detectors. ">
-<polygon fill="white" stroke="black" points="597,-263 597,-282 741,-282 741,-263 597,-263"/>
-<text text-anchor="middle" x="669" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/pattern.h</text>
+<g id="a_node11"><a xlink:href="int__set_8h.html" target="_top" xlink:title="Integer set. ">
+<polygon fill="white" stroke="red" points="346,-257.5 346,-287.5 458,-287.5 458,-257.5 346,-257.5"/>
+<text text-anchor="start" x="354" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
+<text text-anchor="middle" x="402" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">_set.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node11 -->
-<g id="edge12" class="edge"><title>Node4&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M953.688,-376.901C889.224,-353.487 748.836,-302.497 692.798,-282.143"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="952.764,-380.289 963.358,-380.413 955.154,-373.709 952.764,-380.289"/>
+<g id="edge11" class="edge"><title>Node4&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M966.146,-381.504C900.245,-373.702 796.804,-360.344 708,-344 619.131,-327.644 517.064,-302.913 456.143,-287.51"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="966.052,-385.017 976.392,-382.708 966.869,-378.065 966.052,-385.017"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node"><title>Node12</title>
-<g id="a_node12"><a xlink:href="ir_2attrs_8h.html" target="_top" xlink:title="Helpers for attribute objects. ">
-<polygon fill="white" stroke="red" points="445,-324.5 445,-343.5 561,-343.5 561,-324.5 445,-324.5"/>
-<text text-anchor="middle" x="503" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/attrs.h</text>
+<g id="a_node12"><a xlink:href="pattern_8h.html" target="_top" xlink:title="Expression pattern detectors. ">
+<polygon fill="white" stroke="black" points="1184,-263 1184,-282 1328,-282 1328,-263 1184,-263"/>
+<text text-anchor="middle" x="1256" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/pattern.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node12 -->
-<g id="edge14" class="edge"><title>Node4&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M919.953,-381.52C824.62,-370.883 651.477,-351.566 561.232,-341.497"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="919.729,-385.016 930.056,-382.647 920.506,-378.059 919.729,-385.016"/>
+<g id="edge13" class="edge"><title>Node4&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1047.82,-372.463C1061.63,-357.929 1083.43,-337.108 1106,-324 1141.05,-303.647 1185.51,-289.983 1216.89,-282.056"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1044.89,-370.472 1040.67,-380.188 1050.03,-375.228 1044.89,-370.472"/>
+</g>
+<!-- Node13 -->
+<g id="node13" class="node"><title>Node13</title>
+<g id="a_node13"><a xlink:href="ir_2attrs_8h.html" target="_top" xlink:title="Helpers for attribute objects. ">
+<polygon fill="white" stroke="red" points="1509,-324.5 1509,-343.5 1625,-343.5 1625,-324.5 1509,-324.5"/>
+<text text-anchor="middle" x="1567" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/attrs.h</text>
+</a>
+</g>
 </g>
-<!-- Node4&#45;&gt;Node14 -->
-<g id="edge16" class="edge"><title>Node4&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1049.39,-378.791C1111.75,-368.587 1206.52,-353.078 1264.96,-343.516"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1048.59,-375.375 1039.29,-380.444 1049.72,-382.283 1048.59,-375.375"/>
+<!-- Node4&#45;&gt;Node13 -->
+<g id="edge15" class="edge"><title>Node4&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1099.86,-382.239C1205.45,-371.561 1409.07,-350.97 1508.92,-340.873"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1099.24,-378.784 1089.64,-383.272 1099.94,-385.748 1099.24,-378.784"/>
+</g>
+<!-- Node4&#45;&gt;Node15 -->
+<g id="edge17" class="edge"><title>Node4&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M982.293,-378.346C933.724,-368.141 861.381,-352.94 816.532,-343.516"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="981.772,-381.812 992.278,-380.444 983.211,-374.962 981.772,-381.812"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node"><title>Node6</title>
 <g id="a_node6"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
-<polygon fill="white" stroke="red" points="1105.5,-129 1105.5,-148 1232.5,-148 1232.5,-129 1105.5,-129"/>
-<text text-anchor="middle" x="1169" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
+<polygon fill="white" stroke="red" points="493.5,-129 493.5,-148 620.5,-148 620.5,-129 493.5,-129"/>
+<text text-anchor="middle" x="557" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node6 -->
 <g id="edge5" class="edge"><title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M1169,-185.537C1169,-173.17 1169,-157.62 1169,-148.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1165.5,-185.734 1169,-195.734 1172.5,-185.734 1165.5,-185.734"/>
+<path fill="none" stroke="midnightblue" d="M434.743,-191.781C464.845,-178.909 510.571,-159.355 536.732,-148.167"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="433.003,-188.718 425.184,-195.869 435.755,-195.155 433.003,-188.718"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node"><title>Node7</title>
-<g id="a_node7"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
-<polygon fill="white" stroke="red" points="1233.5,-6 1233.5,-25 1376.5,-25 1376.5,-6 1233.5,-6"/>
-<text text-anchor="middle" x="1305" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
+<g id="a_node7"><a xlink:href="autodiff_8h.html" target="_top" xlink:title="Automatic differentiation of tensor expressions. ">
+<polygon fill="white" stroke="black" points="417.5,-67.5 417.5,-86.5 550.5,-86.5 550.5,-67.5 417.5,-67.5"/>
+<text text-anchor="middle" x="484" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node7 -->
 <g id="edge6" class="edge"><title>Node6&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1171.25,-118.528C1173.98,-102.995 1179.98,-81.3211 1193,-67 1212.65,-45.3747 1243.35,-32.4324 1267.64,-25.073"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1167.76,-118.159 1169.77,-128.561 1174.69,-119.175 1167.76,-118.159"/>
+<path fill="none" stroke="midnightblue" d="M538.563,-122.473C524.601,-111.093 505.924,-95.8694 494.44,-86.5091"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="536.578,-125.37 546.541,-128.975 541.001,-119.944 536.578,-125.37"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node"><title>Node8</title>
-<g id="a_node8"><a xlink:href="schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
-<polygon fill="white" stroke="red" points="1235,-67.5 1235,-86.5 1375,-86.5 1375,-67.5 1235,-67.5"/>
-<text text-anchor="middle" x="1305" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
+<g id="a_node8"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
+<polygon fill="white" stroke="red" points="577.5,-6 577.5,-25 720.5,-25 720.5,-6 577.5,-6"/>
+<text text-anchor="middle" x="649" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node8 -->
 <g id="edge7" class="edge"><title>Node6&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1197.97,-124.827C1224.37,-113.276 1262.64,-96.5316 1285.55,-86.5091"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1196.24,-121.76 1188.49,-128.975 1199.05,-128.173 1196.24,-121.76"/>
-</g>
-<!-- Node8&#45;&gt;Node7 -->
-<g id="edge8" class="edge"><title>Node8&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1305,-57.3165C1305,-46.4962 1305,-33.398 1305,-25.0091"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1301.5,-57.4751 1305,-67.4751 1308.5,-57.4751 1301.5,-57.4751"/>
+<path fill="none" stroke="midnightblue" d="M569.855,-120.593C589.76,-94.414 627.318,-45.0162 642.444,-25.1232"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="566.883,-118.719 563.616,-128.798 572.455,-122.956 566.883,-118.719"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node"><title>Node9</title>
-<g id="a_node9"><a xlink:href="ir__pass_8h.html" target="_top" xlink:title="Collection of IR pass functions. ">
-<polygon fill="white" stroke="red" points="1482,-0.5 1482,-30.5 1576,-30.5 1576,-0.5 1482,-0.5"/>
-<text text-anchor="start" x="1490" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/ir</text>
-<text text-anchor="middle" x="1529" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pass.h</text>
+<g id="a_node9"><a xlink:href="schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
+<polygon fill="white" stroke="red" points="677,-67.5 677,-86.5 817,-86.5 817,-67.5 677,-67.5"/>
+<text text-anchor="middle" x="747" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
 </a>
 </g>
 </g>
-<!-- Node8&#45;&gt;Node9 -->
-<g id="edge9" class="edge"><title>Node8&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1346.9,-64.8703C1385.21,-54.6947 1441.81,-39.6589 1481.72,-29.0576"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1345.86,-61.5251 1337.09,-67.4751 1347.66,-68.2905 1345.86,-61.5251"/>
+<!-- Node6&#45;&gt;Node9 -->
+<g id="edge8" class="edge"><title>Node6&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M594.104,-125.881C631.035,-114.315 686.836,-96.8407 719.828,-86.5091"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="592.719,-122.647 584.222,-128.975 594.811,-129.327 592.719,-122.647"/>
 </g>
-<!-- Node10&#45;&gt;Node5 -->
-<g id="edge11" class="edge"><title>Node10&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1136.06,-249.316C1145.08,-237.598 1155.63,-223.883 1162.31,-215.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1133.17,-247.336 1129.85,-257.396 1138.72,-251.604 1133.17,-247.336"/>
+<!-- Node9&#45;&gt;Node8 -->
+<g id="edge9" class="edge"><title>Node9&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M724.343,-62.2441C705.411,-50.7498 679.014,-34.7226 663.015,-25.0091"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="722.595,-65.277 732.959,-67.4751 726.228,-59.2935 722.595,-65.277"/>
 </g>
-<!-- Node13 -->
-<g id="node13" class="node"><title>Node13</title>
-<g id="a_node13"><a xlink:href="relay_2type_8h.html" target="_top" xlink:title="Relay typed AST nodes. ">
-<polygon fill="white" stroke="red" points="559.5,-196 559.5,-215 690.5,-215 690.5,-196 559.5,-196"/>
-<text text-anchor="middle" x="625" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/type.h</text>
+<!-- Node10 -->
+<g id="node10" class="node"><title>Node10</title>
+<g id="a_node10"><a xlink:href="ir__pass_8h.html" target="_top" xlink:title="Collection of IR pass functions. ">
+<polygon fill="white" stroke="red" points="932,-0.5 932,-30.5 1026,-30.5 1026,-0.5 932,-0.5"/>
+<text text-anchor="start" x="940" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/ir</text>
+<text text-anchor="middle" x="979" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pass.h</text>
 </a>
 </g>
 </g>
-<!-- Node12&#45;&gt;Node13 -->
-<g id="edge15" class="edge"><title>Node12&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M489.698,-316.137C478.528,-299.78 466.267,-274.877 479,-257 497.36,-231.222 529.814,-218.478 559.469,-212.23"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.899,-318.239 495.625,-324.247 492.55,-314.108 486.899,-318.239"/>
-</g>
-<!-- Node14&#45;&gt;Node5 -->
-<g id="edge17" class="edge"><title>Node14&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1298.89,-317.519C1267.51,-290.701 1204.03,-236.443 1179.24,-215.256"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1296.95,-320.468 1306.83,-324.305 1301.5,-315.147 1296.95,-320.468"/>
-</g>
-<!-- Node14&#45;&gt;Node6 -->
-<g id="edge26" class="edge"><title>Node14&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M1311.58,-314.664C1302.25,-285.546 1280.83,-228.135 1247,-190 1230.4,-171.296 1205.31,-156.728 1188.09,-148.145"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1308.27,-315.815 1314.56,-324.339 1314.96,-313.752 1308.27,-315.815"/>
-</g>
-<!-- Node14&#45;&gt;Node7 -->
-<g id="edge24" class="edge"><title>Node14&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1314.85,-314.482C1312.74,-298.906 1308.96,-276.174 1303,-257 1293.31,-225.846 1286.44,-219.73 1273,-190 1267.82,-178.537 1228.67,-99.2926 1226,-87 1224.11,-78.314 1221.73,-74.7964 1226,-67 1237.34,-46.2977 1261.18,-32.846 1279.72,-25.073"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1311.38,-314.92 1316.09,-324.405 1318.32,-314.047 1311.38,-314.92"/>
-</g>
-<!-- Node14&#45;&gt;Node8 -->
-<g id="edge25" class="edge"><title>Node14&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1324.05,-314.74C1326.81,-306.675 1329.63,-296.999 1331,-288 1337.54,-244.939 1335.96,-233.273 1331,-190 1326.5,-150.733 1313.41,-105.208 1307.71,-86.5953"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1320.73,-313.628 1320.6,-324.222 1327.31,-316.024 1320.73,-313.628"/>
-</g>
-<!-- Node14&#45;&gt;Node9 -->
-<g id="edge37" class="edge"><title>Node14&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1385.95,-330.217C1463.47,-325.816 1583.21,-314.795 1619,-288 1702.86,-225.21 1763.78,-150.868 1701,-67 1685.99,-46.9443 1621.83,-32.141 1576.28,-23.916"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1385.57,-326.733 1375.78,-330.771 1385.95,-333.722 1385.57,-326.733"/>
-</g>
-<!-- Node14&#45;&gt;Node10 -->
-<g id="edge18" class="edge"><title>Node14&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M1278.68,-321.483C1246.39,-311.782 1200.1,-297.871 1165.66,-287.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1278.05,-324.949 1288.63,-324.475 1280.06,-318.245 1278.05,-324.949"/>
-</g>
-<!-- Node14&#45;&gt;Node11 -->
-<g id="edge19" class="edge"><title>Node14&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1248.44,-329.73C1141.61,-324.147 929.079,-311.079 750,-288 737.673,-286.411 724.37,-284.228 712.177,-282.037"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1248.28,-333.226 1258.44,-330.247 1248.64,-326.236 1248.28,-333.226"/>
-</g>
-<!-- Node14&#45;&gt;Node13 -->
-<g id="edge22" class="edge"><title>Node14&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1248.29,-326.398C1187.81,-319.679 1097.68,-307.451 1021,-288 981.618,-278.01 974.329,-267.199 935,-257 851.999,-235.477 753.999,-221.341 690.744,-213.638"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1248.16,-329.905 1258.48,-327.509 1248.92,-322.946 1248.16,-329.905"/>
-</g>
-<!-- Node14&#45;&gt;Node15 -->
-<g id="edge20" class="edge"><title>Node14&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1248.16,-324.69C1173.49,-315.673 1050.78,-300.842 945,-288 928.161,-285.956 909.983,-283.743 893.025,-281.677"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1248.02,-328.199 1258.37,-325.923 1248.86,-321.25 1248.02,-328.199"/>
+<!-- Node9&#45;&gt;Node10 -->
+<g id="edge10" class="edge"><title>Node9&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M790.02,-64.9668C830.252,-54.6488 890.206,-39.2725 931.752,-28.6175"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="789.057,-61.6005 780.24,-67.4751 790.796,-68.3811 789.057,-61.6005"/>
 </g>
-<!-- Node16 -->
-<g id="node16" class="node"><title>Node16</title>
-<g id="a_node16"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
-<polygon fill="white" stroke="black" points="807,-123.5 807,-153.5 911,-153.5 911,-123.5 807,-123.5"/>
-<text text-anchor="start" x="815" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="859" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
+<!-- Node11&#45;&gt;Node5 -->
+<g id="edge12" class="edge"><title>Node11&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M403.119,-247.25C403.638,-236.017 404.221,-223.377 404.599,-215.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="399.616,-247.245 402.651,-257.396 406.608,-247.568 399.616,-247.245"/>
+</g>
+<!-- Node14 -->
+<g id="node14" class="node"><title>Node14</title>
+<g id="a_node14"><a xlink:href="relay_2type_8h.html" target="_top" xlink:title="Relay typed AST nodes. ">
+<polygon fill="white" stroke="red" points="1499.5,-196 1499.5,-215 1630.5,-215 1630.5,-196 1499.5,-196"/>
+<text text-anchor="middle" x="1565" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/type.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node16 -->
-<g id="edge23" class="edge"><title>Node14&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1248.23,-326.827C1194.37,-320.668 1118.1,-308.998 1054,-288 1024.72,-278.41 1019.95,-269.962 992,-257 955.153,-239.91 938.612,-247.696 908,-221 886.474,-202.227 871.664,-171.608 864.324,-153.726"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1248.03,-330.327 1258.35,-327.951 1248.8,-323.369 1248.03,-330.327"/>
+<!-- Node13&#45;&gt;Node14 -->
+<g id="edge16" class="edge"><title>Node13&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1566.7,-314.306C1566.27,-286.576 1565.46,-235.628 1565.14,-215.256"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1563.2,-314.362 1566.86,-324.305 1570.2,-314.251 1563.2,-314.362"/>
+</g>
+<!-- Node15&#45;&gt;Node5 -->
+<g id="edge18" class="edge"><title>Node15&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M707.317,-330.577C651.992,-326.496 573.281,-315.792 510,-288 499.33,-283.314 440.124,-235.28 415.621,-215.224"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="707.151,-334.074 717.367,-331.265 707.629,-327.09 707.151,-334.074"/>
+</g>
+<!-- Node15&#45;&gt;Node6 -->
+<g id="edge26" class="edge"><title>Node15&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M707.396,-326.743C677.248,-320.871 643.264,-309.593 619,-288 596.564,-268.034 568.083,-176.862 559.535,-148.171"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="706.995,-330.227 717.454,-328.534 708.222,-323.335 706.995,-330.227"/>
+</g>
+<!-- Node15&#45;&gt;Node7 -->
+<g id="edge25" class="edge"><title>Node15&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M706.949,-327.492C671.253,-321.883 628.485,-310.61 596,-288 552.695,-257.859 564.882,-228.682 529,-190 511.581,-171.222 495.095,-177.085 484,-154 473.255,-131.643 478.291,-101.135 481.726,-86.5058"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="706.898,-331.021 717.296,-328.993 707.903,-324.094 706.898,-331.021"/>
+</g>
+<!-- Node15&#45;&gt;Node8 -->
+<g id="edge27" class="edge"><title>Node15&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M707.449,-323.66C654.941,-315.553 587.622,-302.809 564,-288 552.024,-280.492 412.58,-100.373 408,-87 405.12,-78.5907 402.396,-73.8999 408,-67 429.055,-41.0755 514.188,-27.9844 577.335,-21.7186"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="706.989,-327.13 717.401,-325.169 708.038,-320.209 706.989,-327.13"/>
+</g>
+<!-- Node15&#45;&gt;Node9 -->
+<g id="edge28" class="edge"><title>Node15&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M787.422,-315.442C791.983,-307.419 796.693,-297.582 799,-288 808.21,-249.745 831.511,-201.431 796,-123 788.854,-107.217 773.259,-94.4804 761.57,-86.6386"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="784.308,-313.827 782.105,-324.191 790.289,-317.463 784.308,-313.827"/>
+</g>
+<!-- Node15&#45;&gt;Node10 -->
+<g id="edge38" class="edge"><title>Node15&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M844.755,-329.333C894.764,-324.534 963.048,-313.474 1018,-288 1037.77,-278.833 1036.98,-267.645 1056,-257 1098.32,-233.315 1122.89,-253.365 1159,-221 1193.12,-190.42 1215.05,-161.998 1191,-123 1155.22,-64.9796 1077.1,-37.4669 1026.33,-25.2656"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="844.336,-325.856 834.69,-330.238 844.963,-332.828 844.336,-325.856"/>
+</g>
+<!-- Node15&#45;&gt;Node11 -->
+<g id="edge19" class="edge"><title>Node15&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M707.265,-323.97C645.53,-315.588 552.49,-302.282 472,-288 467.479,-287.198 462.802,-286.325 458.109,-285.418"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="706.897,-327.452 717.276,-325.323 707.835,-320.515 706.897,-327.452"/>
+</g>
+<!-- Node15&#45;&gt;Node12 -->
+<g id="edge20" class="edge"><title>Node15&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M844.807,-326.264C923.553,-318.295 1056.32,-304.064 1170,-288 1182.44,-286.242 1195.86,-284.099 1208.31,-282.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="844.133,-322.814 834.534,-327.299 844.835,-329.779 844.133,-322.814"/>
+</g>
+<!-- Node15&#45;&gt;Node14 -->
+<g id="edge23" class="edge"><title>Node15&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M844.713,-323.825C901.602,-315.781 984.41,-303.042 1056,-288 1109.49,-276.762 1121.35,-267.419 1175,-257 1288.1,-235.037 1421.55,-220.086 1499.39,-212.446"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="844.171,-320.366 834.754,-325.222 845.143,-327.299 844.171,-320.366"/>
+</g>
+<!-- Node15&#45;&gt;Node16 -->
+<g id="edge21" class="edge"><title>Node15&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M845.03,-329.878C951.149,-324.534 1160.59,-311.832 1337,-288 1348.58,-286.435 1361.07,-284.26 1372.51,-282.069"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="844.592,-326.395 834.778,-330.387 844.94,-333.386 844.592,-326.395"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node"><title>Node17</title>
-<g id="a_node17"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n&#45;dimensional array, to represent a memory buffer. ">
-<polygon fill="white" stroke="red" points="1493,-129 1493,-148 1617,-148 1617,-129 1493,-129"/>
-<text text-anchor="middle" x="1555" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/buffer.h</text>
+<g id="a_node17"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
+<polygon fill="white" stroke="black" points="1061,-123.5 1061,-153.5 1165,-153.5 1165,-123.5 1061,-123.5"/>
+<text text-anchor="start" x="1069" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="1113" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node17 -->
-<g id="edge27" class="edge"><title>Node14&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M1385.59,-330.358C1452.02,-326.187 1546,-315.469 1569,-288 1603.91,-246.304 1572.12,-173.088 1559.58,-148.122"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1385.36,-326.865 1375.59,-330.95 1385.78,-333.853 1385.36,-326.865"/>
+<!-- Node15&#45;&gt;Node17 -->
+<g id="edge24" class="edge"><title>Node15&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M832.288,-322.283C865.141,-314.923 906.9,-303.636 942,-288 965.198,-277.666 966.955,-267.67 990,-257 1040.14,-233.784 1074.99,-264.549 1109,-221 1124.08,-201.685 1120.61,-171.256 1116.77,-153.555"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="831.42,-318.89 822.395,-324.441 832.912,-325.729 831.42,-318.89"/>
 </g>
 <!-- Node18 -->
 <g id="node18" class="node"><title>Node18</title>
-<g id="a_node18"><a xlink:href="tir_2function_8h.html" target="_top" xlink:title="TIR Function. ">
-<polygon fill="white" stroke="black" points="1557.5,-67.5 1557.5,-86.5 1692.5,-86.5 1692.5,-67.5 1557.5,-67.5"/>
-<text text-anchor="middle" x="1625" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/function.h</text>
+<g id="a_node18"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n&#45;dimensional array, to represent a memory buffer. ">
+<polygon fill="white" stroke="red" points="843,-129 843,-148 967,-148 967,-129 843,-129"/>
+<text text-anchor="middle" x="905" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/buffer.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node18 -->
-<g id="edge36" class="edge"><title>Node14&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M1385.91,-329.257C1456.25,-324.129 1559.32,-312.586 1590,-288 1640.11,-247.848 1631.78,-217.035 1644,-154 1646.62,-140.474 1646.73,-136.504 1644,-123 1641.31,-109.701 1634.56,-95.4478 1629.88,-86.6279"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1385.51,-325.776 1375.78,-329.968 1386,-332.759 1385.51,-325.776"/>
+<!-- Node15&#45;&gt;Node18 -->
+<g id="edge29" class="edge"><title>Node15&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M817.197,-320.92C834.542,-313.9 853.55,-303.333 866,-288 901.116,-244.751 904.888,-173.141 905.09,-148.305"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="815.911,-317.664 807.785,-324.463 818.377,-324.216 815.911,-317.664"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node"><title>Node19</title>
-<g id="a_node19"><a xlink:href="include_2tvm_2tir_2transform_8h.html" target="_top" xlink:title="TIR specific transformation passes. ">
-<polygon fill="white" stroke="black" points="1640,-6 1640,-25 1784,-25 1784,-6 1640,-6"/>
-<text text-anchor="middle" x="1712" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/transform.h</text>
+<g id="a_node19"><a xlink:href="tir_2function_8h.html" target="_top" xlink:title="TIR Function. ">
+<polygon fill="white" stroke="red" points="911.5,-67.5 911.5,-86.5 1046.5,-86.5 1046.5,-67.5 911.5,-67.5"/>
+<text text-anchor="middle" x="979" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/function.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node19 -->
-<g id="edge54" class="edge"><title>Node14&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1386.02,-327.913C1469.68,-321.023 1605.28,-307.326 1652,-288 1707.24,-265.149 1759,-266.279 1759,-206.5 1759,-206.5 1759,-206.5 1759,-137.5 1759,-92.6533 1730.6,-44.4133 1717.95,-25.1548"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1385.51,-324.442 1375.83,-328.74 1386.08,-331.419 1385.51,-324.442"/>
+<!-- Node15&#45;&gt;Node19 -->
+<g id="edge37" class="edge"><title>Node15&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M844.866,-324.075C885.309,-317.312 936.801,-306.024 980,-288 1003.44,-278.221 1005.22,-268.227 1028,-257 1070.75,-235.933 1091.38,-250.251 1129,-221 1157.32,-198.982 1163.55,-188.314 1174,-154 1178.02,-140.82 1182.58,-133.782 1174,-123 1158.13,-103.049 1096.38,-91.1846 1046.56,-84.6912"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="844.147,-320.646 834.834,-325.698 845.265,-327.556 844.147,-320.646"/>
 </g>
 <!-- Node20 -->
 <g id="node20" class="node"><title>Node20</title>
 <g id="a_node20"><a xlink:href="data__layout_8h.html" target="_top" xlink:title="Layout expression to describe the data organization of a tensor. And BijectiveLayout to mapping two d...">
-<polygon fill="white" stroke="red" points="1365,-123.5 1365,-153.5 1475,-153.5 1475,-123.5 1365,-123.5"/>
-<text text-anchor="start" x="1373" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/data</text>
-<text text-anchor="middle" x="1420" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">_layout.h</text>
+<polygon fill="white" stroke="red" points="677,-123.5 677,-153.5 787,-153.5 787,-123.5 677,-123.5"/>
+<text text-anchor="start" x="685" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/data</text>
+<text text-anchor="middle" x="732" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">_layout.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node20 -->
-<g id="edge33" class="edge"><title>Node14&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1385.98,-329.088C1446.72,-324.03 1528.61,-312.723 1549,-288 1590.5,-237.677 1498.27,-179.782 1448.75,-153.626"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1385.35,-325.626 1375.66,-329.904 1385.91,-332.604 1385.35,-325.626"/>
+<!-- Node15&#45;&gt;Node20 -->
+<g id="edge34" class="edge"><title>Node15&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M779.866,-314.224C784.775,-286.158 790.841,-232.067 775,-190 769.643,-175.775 758.378,-162.793 748.722,-153.555"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="776.391,-313.766 777.963,-324.243 783.268,-315.072 776.391,-313.766"/>
 </g>
 <!-- Node21 -->
 <g id="node21" class="node"><title>Node21</title>
 <g id="a_node21"><a xlink:href="tir_2expr__functor_8h.html" target="_top" xlink:title="Functors for tir expressions. ">
-<polygon fill="white" stroke="black" points="1825.5,-257.5 1825.5,-287.5 1934.5,-287.5 1934.5,-257.5 1825.5,-257.5"/>
-<text text-anchor="start" x="1833.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr</text>
-<text text-anchor="middle" x="1880" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="104.5,-257.5 104.5,-287.5 213.5,-287.5 213.5,-257.5 104.5,-257.5"/>
+<text text-anchor="start" x="112.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr</text>
+<text text-anchor="middle" x="159" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node21 -->
-<g id="edge34" class="edge"><title>Node14&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1385.95,-329.258C1481.71,-323.484 1660.22,-310.632 1811,-288 1815.72,-287.291 1820.61,-286.462 1825.49,-285.565"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1385.59,-325.773 1375.82,-329.861 1386.01,-332.76 1385.59,-325.773"/>
+<!-- Node15&#45;&gt;Node21 -->
+<g id="edge35" class="edge"><title>Node15&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M707.269,-330.122C603.152,-325.138 399.412,-312.948 228,-288 223.276,-287.312 218.39,-286.498 213.501,-285.611"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="707.181,-333.621 717.334,-330.596 707.51,-326.629 707.181,-333.621"/>
 </g>
 <!-- Node22 -->
 <g id="node22" class="node"><title>Node22</title>
 <g id="a_node22"><a xlink:href="stmt__functor_8h.html" target="_top" xlink:title="Functors for tir stmts. ">
-<polygon fill="white" stroke="black" points="1806,-190.5 1806,-220.5 1916,-220.5 1916,-190.5 1806,-190.5"/>
-<text text-anchor="start" x="1814" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/stmt</text>
-<text text-anchor="middle" x="1861" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="146,-190.5 146,-220.5 256,-220.5 256,-190.5 146,-190.5"/>
+<text text-anchor="start" x="154" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/stmt</text>
+<text text-anchor="middle" x="201" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node22 -->
-<g id="edge53" class="edge"><title>Node14&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1385.93,-331.542C1495.93,-328.327 1705.62,-318.311 1773,-288 1790.38,-280.184 1827.88,-241.896 1847.85,-220.695"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1385.51,-328.052 1375.61,-331.832 1385.7,-335.049 1385.51,-328.052"/>
+<!-- Node15&#45;&gt;Node22 -->
+<g id="edge54" class="edge"><title>Node15&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M707.016,-329.59C601.147,-323.739 403.84,-310.225 337,-288 290.768,-272.627 243.452,-239.552 218.652,-220.602"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="707.104,-333.099 717.28,-330.149 707.485,-326.11 707.104,-333.099"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node"><title>Node23</title>
 <g id="a_node23"><a xlink:href="lowered__func_8h.html" target="_top" xlink:title="Information about a lowered TVM function. This data structure is final step toward codegen...">
-<polygon fill="white" stroke="black" points="917.5,-190.5 917.5,-220.5 1042.5,-220.5 1042.5,-190.5 917.5,-190.5"/>
-<text text-anchor="start" x="925.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/lowered</text>
-<text text-anchor="middle" x="980" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
+<polygon fill="white" stroke="black" points="975.5,-190.5 975.5,-220.5 1100.5,-220.5 1100.5,-190.5 975.5,-190.5"/>
+<text text-anchor="start" x="983.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/lowered</text>
+<text text-anchor="middle" x="1038" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node23 -->
-<g id="edge38" class="edge"><title>Node14&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M1288.06,-320.284C1269.82,-311.887 1246.03,-300.211 1226,-288 1206.19,-275.922 1205,-266.866 1184,-257 1139.09,-235.898 1084.32,-222.965 1042.85,-215.476"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1286.75,-323.532 1297.3,-324.479 1289.64,-317.158 1286.75,-323.532"/>
+<!-- Node15&#45;&gt;Node23 -->
+<g id="edge39" class="edge"><title>Node15&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M816.339,-321.501C842.043,-313.527 875.711,-301.866 904,-288 926.803,-276.822 930.379,-270.322 952,-257 972.49,-244.375 996.083,-230.572 1013.37,-220.592"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="815.102,-318.219 806.555,-324.478 817.14,-324.916 815.102,-318.219"/>
 </g>
 <!-- Node25 -->
 <g id="node25" class="node"><title>Node25</title>
 <g id="a_node25"><a xlink:href="tir_2op_8h.html" target="_top" xlink:title="Common operators defined for Expr. ">
-<polygon fill="white" stroke="red" points="1383.5,-196 1383.5,-215 1492.5,-215 1492.5,-196 1383.5,-196"/>
-<text text-anchor="middle" x="1438" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/op.h</text>
+<polygon fill="white" stroke="red" points="657.5,-196 657.5,-215 766.5,-215 766.5,-196 657.5,-196"/>
+<text text-anchor="middle" x="712" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/op.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node25 -->
-<g id="edge42" class="edge"><title>Node14&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1335.67,-318.044C1345.86,-309.587 1358.5,-298.61 1369,-288 1393.51,-263.222 1419.23,-230.883 1431.17,-215.451"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1333.31,-315.451 1327.79,-324.491 1337.74,-320.869 1333.31,-315.451"/>
+<!-- Node15&#45;&gt;Node25 -->
+<g id="edge43" class="edge"><title>Node15&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M773.461,-313.898C770.775,-297.969 765.557,-275.046 756,-257 747.184,-240.352 731.906,-224.552 721.875,-215.192"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="770.046,-314.723 774.996,-324.091 776.968,-313.681 770.046,-314.723"/>
 </g>
 <!-- Node26 -->
 <g id="node26" class="node"><title>Node26</title>
 <g id="a_node26"><a xlink:href="stmt_8h.html" target="_top" xlink:title="TIR statements. ">
-<polygon fill="white" stroke="black" points="1421.5,-263 1421.5,-282 1540.5,-282 1540.5,-263 1421.5,-263"/>
-<text text-anchor="middle" x="1481" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/stmt.h</text>
+<polygon fill="white" stroke="black" points="628.5,-263 628.5,-282 747.5,-282 747.5,-263 628.5,-263"/>
+<text text-anchor="middle" x="688" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/stmt.h</text>
 </a>
 </g>
 </g>
-<!-- Node14&#45;&gt;Node26 -->
-<g id="edge47" class="edge"><title>Node14&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1350.26,-320.933C1382.14,-309.368 1429.43,-292.208 1457.55,-282.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1348.7,-317.774 1340.5,-324.475 1351.09,-324.355 1348.7,-317.774"/>
+<!-- Node15&#45;&gt;Node26 -->
+<g id="edge48" class="edge"><title>Node15&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M754.721,-318.613C737.796,-307.169 714.69,-291.546 700.585,-282.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="753.147,-321.773 763.392,-324.475 757.068,-315.974 753.147,-321.773"/>
 </g>
-<!-- Node15&#45;&gt;Node13 -->
-<g id="edge21" class="edge"><title>Node15&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M789.713,-259.765C749.887,-246.886 686.912,-226.521 651.482,-215.064"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="788.717,-263.122 799.309,-262.869 790.871,-256.461 788.717,-263.122"/>
+<!-- Node16&#45;&gt;Node14 -->
+<g id="edge22" class="edge"><title>Node16&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1442.74,-258.781C1472.84,-245.909 1518.57,-226.355 1544.73,-215.167"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1441,-255.718 1433.18,-262.869 1443.76,-262.155 1441,-255.718"/>
 </g>
-<!-- Node17&#45;&gt;Node7 -->
-<g id="edge28" class="edge"><title>Node17&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1530.05,-124.29C1502.55,-109.839 1456.91,-86.1793 1417,-67 1385.09,-51.6645 1347.47,-34.9834 1324.96,-25.15"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1528.5,-127.431 1538.98,-128.995 1531.76,-121.238 1528.5,-127.431"/>
+<!-- Node18&#45;&gt;Node8 -->
+<g id="edge30" class="edge"><title>Node18&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M890.899,-121.206C876.212,-105.206 851.78,-81.1934 826,-67 787.089,-45.5777 738.251,-32.5305 701.737,-25.0792"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="888.371,-123.629 897.647,-128.748 893.588,-118.962 888.371,-123.629"/>
 </g>
-<!-- Node17&#45;&gt;Node9 -->
-<g id="edge32" class="edge"><title>Node17&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1551.03,-119.015C1545.8,-94.6777 1536.72,-52.4234 1532.02,-30.5392"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1547.61,-119.756 1553.13,-128.798 1554.45,-118.286 1547.61,-119.756"/>
-</g>
-<!-- Node17&#45;&gt;Node18 -->
-<g id="edge29" class="edge"><title>Node17&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M1572.68,-122.473C1586.07,-111.093 1603.98,-95.8694 1614.99,-86.5091"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1570.38,-119.832 1565.03,-128.975 1574.92,-125.165 1570.38,-119.832"/>
-</g>
-<!-- Node18&#45;&gt;Node9 -->
-<g id="edge30" class="edge"><title>Node18&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1602.43,-62.0084C1587.11,-52.518 1566.95,-40.02 1551.63,-30.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1600.9,-65.1819 1611.25,-67.4751 1604.59,-59.232 1600.9,-65.1819"/>
+<!-- Node18&#45;&gt;Node10 -->
+<g id="edge33" class="edge"><title>Node18&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M899.151,-118.545C895.691,-103.633 893.465,-82.8051 902,-67 910.812,-50.6829 927.448,-38.7844 943.008,-30.6504"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="895.886,-119.877 901.88,-128.614 902.642,-118.046 895.886,-119.877"/>
 </g>
 <!-- Node18&#45;&gt;Node19 -->
 <g id="edge31" class="edge"><title>Node18&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1646.04,-61.6127C1662.77,-50.1691 1685.61,-34.546 1699.56,-25.0091"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1643.74,-58.9409 1637.46,-67.4751 1647.7,-64.7189 1643.74,-58.9409"/>
+<path fill="none" stroke="midnightblue" d="M923.689,-122.473C937.843,-111.093 956.776,-95.8694 968.417,-86.5091"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="921.202,-119.981 915.602,-128.975 925.589,-125.437 921.202,-119.981"/>
+</g>
+<!-- Node19&#45;&gt;Node10 -->
+<g id="edge32" class="edge"><title>Node19&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M979,-57.2349C979,-48.5864 979,-38.4969 979,-30.523"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="975.5,-57.4751 979,-67.4751 982.5,-57.4751 975.5,-57.4751"/>
 </g>
 <!-- Node21&#45;&gt;Node22 -->
-<g id="edge35" class="edge"><title>Node21&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1873.04,-247.697C1870.38,-238.587 1867.43,-228.493 1865.11,-220.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1869.71,-248.78 1875.88,-257.396 1876.43,-246.816 1869.71,-248.78"/>
+<g id="edge36" class="edge"><title>Node21&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M173.624,-248.867C179.703,-239.459 186.569,-228.833 191.904,-220.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="170.601,-247.097 168.113,-257.396 176.48,-250.896 170.601,-247.097"/>
 </g>
-<!-- Node23&#45;&gt;Node9 -->
-<g id="edge41" class="edge"><title>Node23&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1005.88,-183.984C1028.74,-166.437 1063.42,-141.206 1096,-123 1150.92,-92.3103 1165.64,-84.745 1226,-67 1314.39,-41.014 1421.46,-27.1032 1481.75,-20.8038"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1003.48,-181.411 997.722,-190.302 1007.77,-186.944 1003.48,-181.411"/>
+<!-- Node23&#45;&gt;Node10 -->
+<g id="edge42" class="edge"><title>Node23&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1042.53,-180.214C1049.18,-143.41 1060.22,-76.7435 1055,-67 1046.24,-50.665 1029.61,-38.7129 1014.14,-30.5494"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1039.07,-179.689 1040.72,-190.156 1045.96,-180.949 1039.07,-179.689"/>
 </g>
-<!-- Node23&#45;&gt;Node16 -->
-<g id="edge40" class="edge"><title>Node23&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M944.77,-185.575C925.737,-175.35 902.635,-162.94 885.204,-153.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="943.279,-188.747 953.745,-190.396 946.592,-182.58 943.279,-188.747"/>
+<!-- Node23&#45;&gt;Node17 -->
+<g id="edge41" class="edge"><title>Node23&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1062.12,-183.598C1073.44,-173.783 1086.64,-162.344 1096.76,-153.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1059.54,-181.202 1054.27,-190.396 1064.12,-186.492 1059.54,-181.202"/>
 </g>
 <!-- Node24 -->
 <g id="node24" class="node"><title>Node24</title>
 <g id="a_node24"><a xlink:href="driver__api_8h.html" target="_top" xlink:title="Compiler driver APIs to drive the compilation. ">
-<polygon fill="white" stroke="black" points="929,-123.5 929,-153.5 1031,-153.5 1031,-123.5 929,-123.5"/>
-<text text-anchor="start" x="937" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
-<text text-anchor="middle" x="980" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
+<polygon fill="white" stroke="black" points="1622,-123.5 1622,-153.5 1724,-153.5 1724,-123.5 1622,-123.5"/>
+<text text-anchor="start" x="1630" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
+<text text-anchor="middle" x="1673" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node24 -->
-<g id="edge39" class="edge"><title>Node23&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M980,-180.108C980,-171.154 980,-161.323 980,-153.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="976.5,-180.396 980,-190.396 983.5,-180.396 976.5,-180.396"/>
+<g id="edge40" class="edge"><title>Node23&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M1110.87,-197.041C1240.75,-183.746 1509.17,-156.27 1621.65,-144.756"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1110.22,-193.589 1100.62,-198.09 1110.93,-200.553 1110.22,-193.589"/>
 </g>
 <!-- Node25&#45;&gt;Node6 -->
 <g id="edge44" class="edge"><title>Node25&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M1392.74,-193.564C1339.71,-180.75 1252.95,-159.785 1204.52,-148.083"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1392.01,-196.989 1402.56,-195.936 1393.66,-190.185 1392.01,-196.989"/>
+<path fill="none" stroke="midnightblue" d="M682.069,-191.948C651.38,-179.079 604.461,-159.403 577.668,-148.167"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="680.842,-195.229 691.417,-195.869 683.549,-188.773 680.842,-195.229"/>
 </g>
-<!-- Node25&#45;&gt;Node7 -->
-<g id="edge43" class="edge"><title>Node25&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1401.72,-191.847C1384.62,-183.84 1365.84,-171.612 1356,-154 1349.28,-141.971 1351.53,-136.032 1356,-123 1365.03,-96.6795 1397.37,-91.4067 1384,-67 1372.66,-46.2977 1348.82,-32.846 1330.28,-25.073"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1400.42,-195.098 1410.99,-195.869 1403.21,-188.676 1400.42,-195.098"/>
+<!-- Node25&#45;&gt;Node8 -->
+<g id="edge45" class="edge"><title>Node25&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M693.956,-188.756C684.651,-179.58 674.02,-167.23 668,-154 647.44,-108.815 647.666,-47.3154 648.538,-25.0157"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="691.639,-191.381 701.329,-195.666 696.426,-186.274 691.639,-191.381"/>
 </g>
-<!-- Node25&#45;&gt;Node17 -->
-<g id="edge45" class="edge"><title>Node25&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M1462.68,-190.787C1485.87,-177.905 1519.86,-159.024 1539.47,-148.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1460.82,-187.818 1453.78,-195.734 1464.22,-193.937 1460.82,-187.818"/>
+<!-- Node25&#45;&gt;Node18 -->
+<g id="edge46" class="edge"><title>Node25&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M747.33,-192.601C785.596,-179.714 845.696,-159.473 879.572,-148.064"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="745.989,-189.36 737.629,-195.869 748.223,-195.994 745.989,-189.36"/>
 </g>
 <!-- Node25&#45;&gt;Node20 -->
-<g id="edge46" class="edge"><title>Node25&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1432.89,-186.065C1430.04,-175.753 1426.54,-163.101 1423.9,-153.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1429.53,-187.031 1435.57,-195.734 1436.28,-185.162 1429.53,-187.031"/>
+<g id="edge47" class="edge"><title>Node25&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M717.672,-186.065C720.845,-175.753 724.738,-163.101 727.665,-153.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="714.293,-185.147 714.697,-195.734 720.983,-187.205 714.293,-185.147"/>
 </g>
 <!-- Node26&#45;&gt;Node5 -->
-<g id="edge48" class="edge"><title>Node26&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1430.03,-260.882C1368.68,-248.099 1266.83,-226.882 1210.2,-215.083"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1429.39,-264.322 1439.89,-262.936 1430.81,-257.469 1429.39,-264.322"/>
+<g id="edge49" class="edge"><title>Node26&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M640.735,-260.644C584.975,-247.837 493.423,-226.809 442.371,-215.083"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="640.182,-264.108 650.712,-262.936 641.749,-257.286 640.182,-264.108"/>
 </g>
-<!-- Node26&#45;&gt;Node18 -->
-<g id="edge49" class="edge"><title>Node26&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M1509.38,-258.336C1544.3,-240.369 1601.91,-204.527 1626,-154 1636.56,-131.845 1631.25,-101.764 1627.55,-86.9702"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1507.57,-255.33 1500.18,-262.927 1510.69,-261.593 1507.57,-255.33"/>
+<!-- Node26&#45;&gt;Node19 -->
+<g id="edge50" class="edge"><title>Node26&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M757.853,-264.226C825.96,-253.055 926.317,-224.868 976,-154 990.251,-133.673 985.189,-102.214 981.494,-86.9355"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="756.974,-260.821 747.63,-265.815 758.049,-267.738 756.974,-260.821"/>
 </g>
 <!-- Node26&#45;&gt;Node22 -->
-<g id="edge52" class="edge"><title>Node26&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1541,-261.237C1613.77,-248.79 1735.4,-227.984 1805.89,-215.927"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1540.34,-257.8 1531.07,-262.936 1541.52,-264.699 1540.34,-257.8"/>
+<g id="edge53" class="edge"><title>Node26&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M618.225,-262.187C520.655,-249.164 345.438,-225.778 256.317,-213.883"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="617.909,-265.676 628.284,-263.53 618.835,-258.737 617.909,-265.676"/>
 </g>
 <!-- Node26&#45;&gt;Node23 -->
-<g id="edge50" class="edge"><title>Node26&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M1411.16,-262.536C1332.94,-252.483 1202.37,-235.663 1090,-221 1074.62,-218.994 1058.04,-216.815 1042.53,-214.772"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1411.01,-266.045 1421.38,-263.848 1411.9,-259.102 1411.01,-266.045"/>
+<g id="edge51" class="edge"><title>Node26&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M744.284,-261.047C807.413,-249.323 909.538,-230.357 975.208,-218.161"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="743.309,-257.668 734.116,-262.936 744.587,-264.551 743.309,-257.668"/>
 </g>
 <!-- Node26&#45;&gt;Node25 -->
-<g id="edge51" class="edge"><title>Node26&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1469.45,-254.035C1461.12,-241.45 1450.24,-225.007 1443.71,-215.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1466.76,-256.325 1475.2,-262.734 1472.6,-252.463 1466.76,-256.325"/>
+<g id="edge52" class="edge"><title>Node26&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M694.724,-253.29C699.333,-240.808 705.238,-224.814 708.815,-215.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="691.417,-252.141 691.237,-262.734 697.984,-254.565 691.417,-252.141"/>
 </g>
 <!-- Node27&#45;&gt;Node4 -->
 <g id="edge56" class="edge"><title>Node27&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1086.21,-490.646C1061.64,-465.969 1015.07,-419.192 995.744,-399.782"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1083.82,-493.202 1093.36,-497.819 1088.78,-488.263 1083.82,-493.202"/>
+<path fill="none" stroke="midnightblue" d="M1106.47,-489.673C1087.92,-464.758 1053.8,-418.939 1039.54,-399.782"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1103.76,-491.888 1112.54,-497.819 1109.37,-487.708 1103.76,-491.888"/>
 </g>
-<!-- Node27&#45;&gt;Node15 -->
-<g id="edge62" class="edge"><title>Node27&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1072.72,-493.717C1034.89,-476.263 968.293,-442.26 921,-400 879.016,-362.484 843.353,-303.934 830.81,-282.094"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1071.58,-497.045 1082.13,-497.994 1074.48,-490.672 1071.58,-497.045"/>
+<!-- Node27&#45;&gt;Node16 -->
+<g id="edge62" class="edge"><title>Node27&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M1123.78,-487.637C1134.22,-450.388 1162.67,-367.259 1218,-324 1230.26,-314.415 1319.75,-293.744 1373.14,-282.038"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1120.31,-487.065 1121.11,-497.629 1127.07,-488.872 1120.31,-487.065"/>
 </g>
 <!-- Node27&#45;&gt;Node28 -->
 <g id="edge57" class="edge"><title>Node27&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M1136.25,-494.583C1169.49,-483.017 1219.11,-465.752 1248.55,-455.509"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1134.79,-491.383 1126.5,-497.975 1137.09,-497.994 1134.79,-491.383"/>
+<path fill="none" stroke="midnightblue" d="M1146.05,-493.521C1170.1,-481.982 1204.56,-465.443 1225.27,-455.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1144.27,-490.493 1136.77,-497.975 1147.3,-496.804 1144.27,-490.493"/>
 </g>
 <!-- Node28&#45;&gt;Node3 -->
 <g id="edge58" class="edge"><title>Node28&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1340.37,-436.226C1386.59,-429.13 1448.92,-417.421 1502,-400 1548.55,-384.723 1599.89,-357.581 1624.79,-343.701"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1339.83,-432.767 1330.46,-437.714 1340.87,-439.69 1339.83,-432.767"/>
+<path fill="none" stroke="midnightblue" d="M1259.48,-429.25C1267.51,-421.023 1276.94,-410.501 1284,-400 1296.56,-381.325 1306.78,-356.777 1311.75,-343.847"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1256.95,-426.826 1252.33,-436.358 1261.89,-431.791 1256.95,-426.826"/>
 </g>
 <!-- Node28&#45;&gt;Node4 -->
 <g id="edge59" class="edge"><title>Node28&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1217.59,-434.537C1163.53,-424.332 1082.33,-408.999 1032.11,-399.516"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1217.21,-438.027 1227.68,-436.444 1218.51,-431.149 1217.21,-438.027"/>
+<path fill="none" stroke="midnightblue" d="M1199.81,-433.894C1160.15,-423.697 1102.23,-408.802 1066.12,-399.516"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1199.17,-437.343 1209.72,-436.444 1200.91,-430.563 1199.17,-437.343"/>
 </g>
-<!-- Node28&#45;&gt;Node13 -->
-<g id="edge60" class="edge"><title>Node28&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1238.29,-433.089C1174.84,-410.429 1037.27,-357.142 935,-288 918.329,-276.729 919.966,-266.064 902,-257 835.117,-223.257 749.044,-211.816 690.726,-208.068"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1237.22,-436.424 1247.82,-436.46 1239.56,-429.825 1237.22,-436.424"/>
+<!-- Node28&#45;&gt;Node14 -->
+<g id="edge60" class="edge"><title>Node28&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1277.71,-432.929C1334.9,-411.559 1449.77,-362.207 1522,-288 1543.42,-265.989 1556.9,-231.151 1562.3,-215.107"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1276.24,-429.742 1268.06,-436.475 1278.65,-436.313 1276.24,-429.742"/>
 </g>
 <!-- Node28&#45;&gt;Node25 -->
 <g id="edge61" class="edge"><title>Node28&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1320.54,-433.773C1385.53,-415.581 1499.67,-372.811 1549,-288 1555.93,-276.09 1556.46,-268.585 1549,-257 1534.62,-234.658 1507.66,-222.085 1483.91,-215.072"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1319.28,-430.488 1310.55,-436.484 1321.11,-437.243 1319.28,-430.488"/>
+<path fill="none" stroke="midnightblue" d="M1237.85,-426.44C1231.77,-400.049 1225.44,-351.802 1251,-324 1325.37,-243.099 1564.14,-337.184 1489,-257 1485.9,-253.696 943.128,-220.513 766.701,-209.809"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1234.5,-427.456 1240.35,-436.29 1241.28,-425.736 1234.5,-427.456"/>
 </g>
 <!-- Node29&#45;&gt;Node2 -->
 <g id="edge69" class="edge"><title>Node29&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M421.788,-617.247C563.686,-606.332 840.427,-585.044 968.271,-575.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="421.511,-613.758 411.808,-618.015 422.047,-620.737 421.511,-613.758"/>
+<path fill="none" stroke="midnightblue" d="M1540.39,-614.349C1447.15,-603.838 1299.93,-587.24 1214.5,-577.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1540.04,-617.831 1550.37,-615.473 1540.82,-610.875 1540.04,-617.831"/>
 </g>
 <!-- Node30 -->
 <g id="node30" class="node"><title>Node30</title>
 <g id="a_node30"><a xlink:href="env__func_8h.html" target="_top" xlink:title="Serializable global function used in IR. ">
-<polygon fill="white" stroke="red" points="256.5,-492.5 256.5,-522.5 357.5,-522.5 357.5,-492.5 256.5,-492.5"/>
-<text text-anchor="start" x="264.5" y="-510.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/env</text>
-<text text-anchor="middle" x="307" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
+<polygon fill="white" stroke="red" points="1595.5,-492.5 1595.5,-522.5 1696.5,-522.5 1696.5,-492.5 1595.5,-492.5"/>
+<text text-anchor="start" x="1603.5" y="-510.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/env</text>
+<text text-anchor="middle" x="1646" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node29&#45;&gt;Node30 -->
 <g id="edge67" class="edge"><title>Node29&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M329.648,-605.385C324.242,-582.257 315.139,-543.317 310.283,-522.545"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="326.286,-606.378 331.971,-615.319 333.102,-604.785 326.286,-606.378"/>
+<path fill="none" stroke="midnightblue" d="M1629.22,-605.385C1633.23,-582.257 1639.97,-543.317 1643.57,-522.545"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1625.76,-604.868 1627.5,-615.319 1632.66,-606.063 1625.76,-604.868"/>
 </g>
-<!-- Node30&#45;&gt;Node13 -->
-<g id="edge68" class="edge"><title>Node30&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M313.647,-482.427C319.466,-459.207 327,-422.974 327,-391 327,-391 327,-391 327,-333 327,-232.815 471.476,-210.816 559.234,-206.694"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="310.18,-481.852 311.047,-492.411 316.954,-483.616 310.18,-481.852"/>
+<!-- Node30&#45;&gt;Node14 -->
+<g id="edge68" class="edge"><title>Node30&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1671.81,-485.606C1694.86,-464.44 1725,-429.415 1725,-391 1725,-391 1725,-391 1725,-333 1725,-267.313 1640.99,-230.401 1594.72,-215.052"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1669.49,-482.989 1664.32,-492.238 1674.13,-488.23 1669.49,-482.989"/>
 </g>
-<!-- Node34&#45;&gt;Node14 -->
-<g id="edge111" class="edge"><title>Node34&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M288.577,-863.816C256.796,-813.983 191.464,-693.178 247,-615 338.861,-485.686 766.353,-415.284 921,-380 1038.88,-353.104 1180.35,-341.959 1258.28,-337.594"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="285.693,-865.801 294.084,-872.269 291.558,-861.98 285.693,-865.801"/>
+<!-- Node34&#45;&gt;Node15 -->
+<g id="edge111" class="edge"><title>Node34&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M1606.28,-882.385C1558.13,-879.436 1491.55,-875.4 1433,-872 1145.93,-855.329 1068.98,-892.38 787,-836 699.197,-818.444 679.629,-803.498 597,-769 503.355,-729.903 419,-727.478 419,-626 419,-626 419,-626 419,-445 419,-383.307 616.169,-352.558 717.448,-340.832"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1606.07,-885.879 1616.27,-882.998 1606.5,-878.892 1606.07,-885.879"/>
 </g>
 <!-- Node34&#45;&gt;Node28 -->
 <g id="edge74" class="edge"><title>Node34&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M370.791,-883.835C596.978,-874.735 1321.31,-844.963 1344,-836 1396.05,-815.438 1440,-810.469 1440,-754.5 1440,-754.5 1440,-754.5 1440,-568 1440,-503.375 1356.98,-469.728 1308.01,-455.502"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="370.57,-880.34 360.719,-884.239 370.852,-887.335 370.57,-880.34"/>
+<path fill="none" stroke="midnightblue" d="M1729.21,-868.119C1743.72,-860.54 1757.6,-850.122 1766,-836 1817.7,-749.103 1796.13,-671.089 1712,-615 1572.75,-522.163 1376.06,-473.687 1288.31,-455.551"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1727.63,-864.992 1720.14,-872.479 1730.67,-871.302 1727.63,-864.992"/>
 </g>
 <!-- Node34&#45;&gt;Node29 -->
 <g id="edge75" class="edge"><title>Node34&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M236.968,-884.311C201.494,-879.308 160.69,-866.619 138,-836 112.068,-801.006 120.076,-777.696 138,-738 165.66,-676.742 244.224,-647.295 293.075,-634.53"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="236.943,-887.834 247.295,-885.578 237.795,-880.886 236.943,-887.834"/>
+<path fill="none" stroke="midnightblue" d="M1715.26,-867.076C1727.41,-859.254 1739.21,-848.96 1746,-836 1766.22,-797.423 1757.11,-780.114 1746,-738 1737.27,-704.899 1732.38,-695.037 1708,-671 1691.12,-654.353 1666.82,-642.058 1649.06,-634.565"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1713.21,-864.218 1706.41,-872.338 1716.79,-870.234 1713.21,-864.218"/>
 </g>
 <!-- Node35 -->
 <g id="node35" class="node"><title>Node35</title>
 <g id="a_node35"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
-<polygon fill="white" stroke="black" points="574,-671.5 574,-701.5 722,-701.5 722,-671.5 574,-671.5"/>
-<text text-anchor="start" x="582" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
-<text text-anchor="middle" x="648" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
+<polygon fill="white" stroke="black" points="1379,-671.5 1379,-701.5 1527,-701.5 1527,-671.5 1379,-671.5"/>
+<text text-anchor="start" x="1387" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
+<text text-anchor="middle" x="1453" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node35 -->
 <g id="edge76" class="edge"><title>Node34&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M312.254,-862.929C325.232,-829.53 353.702,-769.049 399,-738 406.333,-732.973 503.22,-714.243 573.934,-701.067"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="308.951,-861.77 308.722,-872.362 315.507,-864.224 308.951,-861.77"/>
+<path fill="none" stroke="midnightblue" d="M1673.23,-862.389C1672.2,-829.702 1665.38,-771.567 1632,-738 1604.56,-710.411 1563.3,-697.605 1527.3,-691.779"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1669.73,-862.482 1673.39,-872.426 1676.73,-862.372 1669.73,-862.482"/>
 </g>
 <!-- Node36 -->
 <g id="node36" class="node"><title>Node36</title>
 <g id="a_node36"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="include/tvm/node/structural\l_hash.h">
-<polygon fill="white" stroke="black" points="408,-671.5 408,-701.5 556,-701.5 556,-671.5 408,-671.5"/>
-<text text-anchor="start" x="416" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
-<text text-anchor="middle" x="482" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
+<polygon fill="white" stroke="black" points="1175,-671.5 1175,-701.5 1323,-701.5 1323,-671.5 1175,-671.5"/>
+<text text-anchor="start" x="1183" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
+<text text-anchor="middle" x="1249" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node36 -->
 <g id="edge80" class="edge"><title>Node34&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M292.796,-863.098C279.392,-831.302 262.036,-774.27 290,-738 304.653,-718.995 360.173,-705.724 407.766,-697.571"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="289.699,-864.748 296.946,-872.476 296.1,-861.915 289.699,-864.748"/>
+<path fill="none" stroke="midnightblue" d="M1668.24,-862.286C1660.24,-828.546 1640.71,-768.149 1599,-738 1587.91,-729.986 1422.58,-708.649 1323.17,-696.427"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1664.86,-863.226 1670.44,-872.231 1671.7,-861.711 1664.86,-863.226"/>
 </g>
 <!-- Node34&#45;&gt;Node37 -->
 <g id="edge84" class="edge"><title>Node34&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M370.39,-873.808C433.565,-861.73 527.6,-843.753 587.339,-832.332"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="369.691,-870.378 360.526,-875.694 371.005,-877.254 369.691,-870.378"/>
+<path fill="none" stroke="midnightblue" d="M1633.99,-867.992C1612.28,-857.689 1585.67,-845.068 1565.67,-835.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1632.74,-871.272 1643.27,-872.396 1635.74,-864.947 1632.74,-871.272"/>
 </g>
 <!-- Node35&#45;&gt;Node2 -->
 <g id="edge78" class="edge"><title>Node35&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M732.289,-676.434C785.972,-669.009 856.378,-656.18 916,-635 957.527,-620.248 1002.06,-592.619 1023.3,-578.613"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="731.568,-672.999 722.125,-677.803 732.503,-679.937 731.568,-672.999"/>
+<path fill="none" stroke="midnightblue" d="M1406.34,-667.888C1339.61,-642.701 1219.48,-597.357 1169.63,-578.542"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1405.19,-671.196 1415.78,-671.453 1407.66,-664.647 1405.19,-671.196"/>
 </g>
-<!-- Node35&#45;&gt;Node12 -->
-<g id="edge77" class="edge"><title>Node35&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M624.281,-663.947C603.302,-642.42 576,-607.249 576,-570 576,-570 576,-570 576,-506.5 576,-439.192 527.809,-368.043 509.737,-343.728"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="622.089,-666.701 631.662,-671.24 627.008,-661.722 622.089,-666.701"/>
+<!-- Node35&#45;&gt;Node13 -->
+<g id="edge77" class="edge"><title>Node35&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1460.77,-661.622C1483.56,-591.535 1549.6,-388.506 1564.14,-343.783"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1457.37,-660.734 1457.61,-671.326 1464.03,-662.899 1457.37,-660.734"/>
 </g>
 <!-- Node35&#45;&gt;Node29 -->
 <g id="edge79" class="edge"><title>Node35&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M563.85,-669.554C504.372,-658.284 426.97,-643.617 378.891,-634.506"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="563.507,-673.052 573.984,-671.475 564.81,-666.174 563.507,-673.052"/>
+<path fill="none" stroke="midnightblue" d="M1503.66,-668.076C1535.71,-657.054 1575.72,-643.291 1601.08,-634.571"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1502.32,-664.837 1494,-671.399 1504.59,-671.457 1502.32,-664.837"/>
 </g>
 <!-- Node36&#45;&gt;Node2 -->
 <g id="edge82" class="edge"><title>Node36&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M559.171,-669.411C678.321,-644.57 902.929,-597.743 995.027,-578.542"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="558.453,-665.986 549.377,-671.453 559.881,-672.838 558.453,-665.986"/>
+<path fill="none" stroke="midnightblue" d="M1229.65,-663.593C1206.96,-637.893 1170.43,-596.528 1154.66,-578.669"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1227.25,-666.159 1236.49,-671.337 1232.5,-661.525 1227.25,-666.159"/>
 </g>
-<!-- Node36&#45;&gt;Node12 -->
-<g id="edge81" class="edge"><title>Node36&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M487.982,-661.387C493.22,-638.138 500,-601.886 500,-570 500,-570 500,-570 500,-445 500,-407.173 501.795,-362.057 502.608,-343.556"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="484.513,-660.851 485.643,-671.385 491.329,-662.446 484.513,-660.851"/>
+<!-- Node36&#45;&gt;Node13 -->
+<g id="edge81" class="edge"><title>Node36&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1268.74,-663.739C1330.45,-595.721 1518.04,-388.965 1559.03,-343.783"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1265.99,-661.568 1261.86,-671.326 1271.17,-666.272 1265.99,-661.568"/>
 </g>
 <!-- Node36&#45;&gt;Node29 -->
 <g id="edge83" class="edge"><title>Node36&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M437.621,-667.658C410.476,-656.746 376.963,-643.272 355.535,-634.658"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="436.342,-670.917 446.926,-671.399 438.953,-664.422 436.342,-670.917"/>
+<path fill="none" stroke="midnightblue" d="M1333.12,-672.224C1406.09,-660.708 1509.53,-644.383 1571.95,-634.531"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1332.37,-668.799 1323.03,-673.816 1333.46,-675.714 1332.37,-668.799"/>
 </g>
-<!-- Node37&#45;&gt;Node12 -->
-<g id="edge86" class="edge"><title>Node37&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M577.253,-815.393C496.86,-809.335 367.659,-795.714 328,-769 270.282,-730.122 265.686,-702.035 247,-635 227.498,-565.038 315.377,-575.081 366,-523 426.239,-461.027 481.5,-371.292 498.012,-343.516"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="577.06,-818.888 587.289,-816.129 577.572,-811.907 577.06,-818.888"/>
+<!-- Node37&#45;&gt;Node13 -->
+<g id="edge86" class="edge"><title>Node37&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1575.19,-800.538C1590.21,-792.146 1606.87,-781.363 1620,-769 1672.6,-719.483 1690.59,-703.997 1712,-635 1722.11,-602.413 1757.44,-619.946 1705,-492 1677.06,-423.835 1606.66,-365.054 1578.7,-343.637"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1573.24,-797.615 1566.11,-805.447 1576.57,-803.774 1573.24,-797.615"/>
 </g>
-<!-- Node37&#45;&gt;Node16 -->
-<g id="edge109" class="edge"><title>Node37&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M577.448,-817.958C427.456,-812.679 76,-789.434 76,-687.5 76,-687.5 76,-687.5 76,-271.5 76,-200.269 146.074,-211.444 214,-190 324.19,-155.213 673.897,-143.723 806.938,-140.552"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="577.35,-821.457 587.461,-818.294 577.585,-814.461 577.35,-821.457"/>
+<!-- Node37&#45;&gt;Node17 -->
+<g id="edge109" class="edge"><title>Node37&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1602.73,-806.102C1730.69,-778.487 1998,-710.666 1998,-626 1998,-626 1998,-626 1998,-271.5 1998,-186.74 1354.76,-150.562 1165.06,-141.735"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1601.7,-802.744 1592.65,-808.257 1603.16,-809.589 1601.7,-802.744"/>
 </g>
 <!-- Node37&#45;&gt;Node24 -->
 <g id="edge85" class="edge"><title>Node37&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M577.213,-813.232C504.162,-805.433 392.586,-790.473 356,-769 339.448,-759.285 255.925,-651.991 247,-635 233.005,-608.354 228,-600.098 228,-570 228,-570 228,-570 228,-271.5 228,-180.894 900.49,-157.29 920,-154 922.853,-153.519 925.772,-152.978 928.711,-152.395"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="576.943,-816.723 587.253,-814.285 577.673,-809.761 576.943,-816.723"/>
+<path fill="none" stroke="midnightblue" d="M1603.19,-815.806C1739.57,-806.465 2036,-775.984 2036,-687.5 2036,-687.5 2036,-687.5 2036,-271.5 2036,-233.74 2040.48,-214.789 2012,-190 1969.98,-153.427 1808.06,-143.338 1724.12,-140.557"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1602.61,-812.337 1592.87,-816.493 1603.08,-819.321 1602.61,-812.337"/>
 </g>
 <!-- Node37&#45;&gt;Node29 -->
 <g id="edge100" class="edge"><title>Node37&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M577.349,-815.655C526.118,-810.424 454.89,-798.086 399,-769 379.756,-758.985 336.591,-721.92 328,-702 318.251,-679.395 325.836,-649.518 330.713,-634.869"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="577.03,-819.141 587.319,-816.61 577.698,-812.173 577.03,-819.141"/>
+<path fill="none" stroke="midnightblue" d="M1569.5,-799.583C1580.5,-791.435 1591.75,-781.066 1599,-769 1625.93,-724.166 1626.96,-658.34 1626.37,-634.784"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1567.4,-796.779 1561.2,-805.372 1571.41,-802.519 1567.4,-796.779"/>
 </g>
 <!-- Node38 -->
 <g id="node38" class="node"><title>Node38</title>
 <g id="a_node38"><a xlink:href="node_2container_8h.html" target="_top" xlink:title="Array/Map container in the DSL graph. ">
-<polygon fill="white" stroke="red" points="714.5,-744 714.5,-763 869.5,-763 869.5,-744 714.5,-744"/>
-<text text-anchor="middle" x="792" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/container.h</text>
+<polygon fill="white" stroke="red" points="690.5,-744 690.5,-763 845.5,-763 845.5,-744 690.5,-744"/>
+<text text-anchor="middle" x="768" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/container.h</text>
 </a>
 </g>
 </g>
 <!-- Node37&#45;&gt;Node38 -->
 <g id="edge87" class="edge"><title>Node37&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M685.451,-801.295C713.992,-788.76 750.601,-772.682 772.63,-763.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="683.862,-798.17 676.114,-805.396 686.677,-804.579 683.862,-798.17"/>
+<path fill="none" stroke="midnightblue" d="M1469.34,-809.67C1456.63,-807.972 1443.42,-806.329 1431,-805 1219.8,-782.395 969.694,-766.196 845.715,-758.873"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1469.02,-813.159 1479.41,-811.038 1469.97,-806.223 1469.02,-813.159"/>
 </g>
 <!-- Node37&#45;&gt;Node39 -->
 <g id="edge101" class="edge"><title>Node37&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M710.724,-804.851C877.023,-779.253 922.967,-794.597 1086,-769 1089.01,-768.527 1092.1,-768 1095.2,-767.436"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="709.979,-801.425 700.641,-806.43 711.062,-808.34 709.979,-801.425"/>
+<path fill="none" stroke="midnightblue" d="M1470.95,-802.984C1429.14,-792.367 1375.39,-778.72 1335.58,-768.611"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1470.21,-806.407 1480.77,-805.476 1471.94,-799.623 1470.21,-806.407"/>
 </g>
 <!-- Node37&#45;&gt;Node40 -->
 <g id="edge102" class="edge"><title>Node37&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M707.573,-803.619C808.293,-785.342 837.685,-787.253 941,-769 948.557,-767.665 956.544,-766.143 964.449,-764.598"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="706.801,-800.202 697.599,-805.452 708.067,-807.087 706.801,-800.202"/>
+<path fill="none" stroke="midnightblue" d="M1469.33,-811.258C1402.16,-802.083 1295.95,-786.259 1205,-769 1204.2,-768.849 1203.4,-768.696 1202.6,-768.54"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1468.98,-814.742 1479.36,-812.617 1469.92,-807.806 1468.98,-814.742"/>
 </g>
 <!-- Node41 -->
 <g id="node41" class="node"><title>Node41</title>
 <g id="a_node41"><a xlink:href="registry_8h.html" target="_top" xlink:title="This file defines the TVM global function registry. ">
-<polygon fill="white" stroke="red" points="583.5,-738.5 583.5,-768.5 696.5,-768.5 696.5,-738.5 583.5,-738.5"/>
-<text text-anchor="start" x="591.5" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="640" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/registry.h</text>
+<polygon fill="white" stroke="red" points="1354.5,-738.5 1354.5,-768.5 1467.5,-768.5 1467.5,-738.5 1354.5,-738.5"/>
+<text text-anchor="start" x="1362.5" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1411" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/registry.h</text>
 </a>
 </g>
 </g>
 <!-- Node37&#45;&gt;Node41 -->
 <g id="edge104" class="edge"><title>Node37&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M642.517,-795.403C641.961,-786.37 641.348,-776.408 640.866,-768.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="639.024,-795.63 643.132,-805.396 646.011,-795.2 639.024,-795.63"/>
+<path fill="none" stroke="midnightblue" d="M1499.87,-800.714C1480.16,-790.463 1456.16,-777.983 1438.07,-768.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1498.39,-803.888 1508.88,-805.396 1501.62,-797.677 1498.39,-803.888"/>
 </g>
 <!-- Node42 -->
 <g id="node42" class="node"><title>Node42</title>
 <g id="a_node42"><a xlink:href="vm_8h.html" target="_top" xlink:title="A virtual machine for executing Relay programs. ">
-<polygon fill="white" stroke="black" points="1234,-677 1234,-696 1374,-696 1374,-677 1234,-677"/>
-<text text-anchor="middle" x="1304" y="-684" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime/vm.h</text>
+<polygon fill="white" stroke="black" points="485,-677 485,-696 625,-696 625,-677 485,-677"/>
+<text text-anchor="middle" x="555" y="-684" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime/vm.h</text>
 </a>
 </g>
 </g>
 <!-- Node37&#45;&gt;Node42 -->
 <g id="edge108" class="edge"><title>Node37&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M710.657,-804.681C785.806,-788.826 807.563,-790.504 878,-769 913.284,-758.228 919.379,-747.599 955,-738 1049.73,-712.473 1162.62,-699.116 1233.81,-692.696"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="709.756,-801.295 700.713,-806.815 711.225,-808.139 709.756,-801.295"/>
+<path fill="none" stroke="midnightblue" d="M1469.37,-809.387C1456.65,-807.716 1443.43,-806.155 1431,-805 1264.86,-789.572 839.092,-822.374 681,-769 657.99,-761.231 656.31,-751.317 636,-738 612.857,-722.825 585.438,-705.958 569.171,-696.065"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1469.06,-812.877 1479.43,-810.746 1469.99,-805.94 1469.06,-812.877"/>
 </g>
 <!-- Node44 -->
 <g id="node44" class="node"><title>Node44</title>
 <g id="a_node44"><a xlink:href="generic__func_8h.html" target="_top" xlink:title="Generic function that can be specialzied on a per target basis. ">
-<polygon fill="white" stroke="red" points="408,-738.5 408,-768.5 512,-768.5 512,-738.5 408,-738.5"/>
-<text text-anchor="start" x="416" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="460" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
+<polygon fill="white" stroke="red" points="1486,-738.5 1486,-768.5 1590,-768.5 1590,-738.5 1486,-738.5"/>
+<text text-anchor="start" x="1494" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="1538" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node37&#45;&gt;Node44 -->
 <g id="edge110" class="edge"><title>Node37&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M594.335,-801.955C564.695,-791.485 527.558,-778.366 499.847,-768.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="593.48,-805.365 604.075,-805.396 595.812,-798.765 593.48,-805.365"/>
+<path fill="none" stroke="midnightblue" d="M1536.75,-795.108C1537.03,-786.154 1537.33,-776.323 1537.57,-768.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1533.24,-795.293 1536.43,-805.396 1540.24,-795.508 1533.24,-795.293"/>
 </g>
 <!-- Node38&#45;&gt;Node2 -->
 <g id="edge93" class="edge"><title>Node38&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M833.149,-740.883C858.461,-732.533 890.768,-719.63 916,-702 942.911,-683.197 1007.55,-605.012 1028.97,-578.691"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="831.937,-737.595 823.472,-743.967 834.063,-744.265 831.937,-737.595"/>
+<path fill="none" stroke="midnightblue" d="M824.45,-742.018C875.458,-731.908 946.219,-716.106 971,-702 1018.25,-675.103 1012.99,-646.918 1057,-615 1078.5,-599.412 1106.19,-586.47 1125.15,-578.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="823.671,-738.604 814.531,-743.962 825.017,-745.473 823.671,-738.604"/>
 </g>
 <!-- Node38&#45;&gt;Node3 -->
 <g id="edge90" class="edge"><title>Node38&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M847.158,-742.064C913.857,-729.298 1019.42,-708.573 1037,-702 1165.24,-654.054 1464.6,-482.314 1574,-400 1597.39,-382.402 1620.88,-356.973 1632.51,-343.742"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="846.376,-738.65 837.21,-743.964 847.689,-745.525 846.376,-738.65"/>
+<path fill="none" stroke="midnightblue" d="M805.94,-740.6C829.091,-732.164 858.465,-719.269 881,-702 976.538,-628.791 960.941,-570.711 1052,-492 1133.26,-421.755 1250.03,-364.614 1295.68,-343.633"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="804.709,-737.323 796.437,-743.943 807.032,-743.926 804.709,-737.323"/>
 </g>
 <!-- Node38&#45;&gt;Node4 -->
 <g id="edge91" class="edge"><title>Node38&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M830.747,-739.948C848.471,-732.044 867.766,-719.877 878,-702 884.845,-690.043 878.948,-684.745 878,-671 874.881,-625.789 864,-615.318 864,-570 864,-570 864,-570 864,-506.5 864,-451.575 929.982,-415.148 965.293,-399.586"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="829.042,-736.865 821.129,-743.91 831.708,-743.338 829.042,-736.865"/>
+<path fill="none" stroke="midnightblue" d="M802.516,-740.028C820.971,-731.784 842.761,-719.279 857,-702 899.636,-650.264 873.599,-618.232 905,-559 940.551,-491.939 1002.3,-423.486 1024.63,-399.738"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="801.076,-736.837 793.227,-743.954 803.801,-743.285 801.076,-736.837"/>
 </g>
 <!-- Node38&#45;&gt;Node5 -->
 <g id="edge88" class="edge"><title>Node38&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M793.334,-733.565C796.908,-667.284 799.574,-443.294 684,-324 652.293,-291.272 613.955,-325.454 588,-288 580.152,-276.676 578.616,-267.088 588,-257 625.71,-216.46 1030.04,-227.717 1085,-221 1097.78,-219.438 1111.58,-217.263 1124.22,-215.072"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="789.829,-733.544 792.706,-743.741 796.816,-733.976 789.829,-733.544"/>
+<path fill="none" stroke="midnightblue" d="M750.142,-736.988C673.449,-669.91 373.824,-403.009 328,-288 322.9,-275.201 321.453,-269.123 328,-257 339.091,-236.463 362.576,-222.926 380.711,-215.084"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="748.153,-739.897 757.989,-743.833 752.754,-734.622 748.153,-739.897"/>
 </g>
 <!-- Node38&#45;&gt;Node6 -->
 <g id="edge96" class="edge"><title>Node38&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M786.448,-734.356C771.078,-685.073 725.481,-545.114 671,-436 666.662,-427.312 580.688,-297.331 578,-288 574.186,-274.761 568.635,-267.105 578,-257 649.656,-179.684 952.864,-259.491 1051,-221 1071.61,-212.915 1071.98,-202.869 1090,-190 1111.99,-174.295 1138.68,-157.724 1154.73,-148.013"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="783.11,-735.409 789.408,-743.929 789.798,-733.341 783.11,-735.409"/>
+<path fill="none" stroke="midnightblue" d="M740.757,-739.379C721.615,-729.798 695.662,-716.073 674,-702 655.139,-689.747 652.79,-683.362 634,-671 388.497,-509.474 217.03,-555.341 95,-288 75.3228,-244.892 96.9613,-215.346 137,-190 194.478,-153.613 373.471,-162.219 441,-154 458.024,-151.928 476.448,-149.644 493.493,-147.514"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="739.307,-742.566 749.822,-743.862 742.41,-736.292 739.307,-742.566"/>
 </g>
-<!-- Node38&#45;&gt;Node11 -->
-<g id="edge89" class="edge"><title>Node38&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M812.52,-737.322C822.877,-728.346 834.406,-716.004 840,-702 845.111,-689.205 842.125,-684.613 840,-671 828.305,-596.077 788,-584.33 788,-508.5 788,-508.5 788,-508.5 788,-389 788,-334.729 723.481,-297.759 689.457,-282.036"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="810.147,-734.74 804.6,-743.767 814.566,-740.169 810.147,-734.74"/>
+<!-- Node38&#45;&gt;Node12 -->
+<g id="edge89" class="edge"><title>Node38&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M786.684,-737.013C797.14,-727.659 809.868,-715.05 819,-702 909.303,-572.954 858.091,-493.782 967,-380 1024.59,-319.836 1119.08,-293.458 1184.25,-282.026"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="784.161,-734.568 778.898,-743.763 788.746,-739.857 784.161,-734.568"/>
 </g>
-<!-- Node38&#45;&gt;Node14 -->
-<g id="edge98" class="edge"><title>Node38&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M838.589,-741.416C869.968,-732.955 911.721,-719.728 946,-702 966.391,-691.455 1094.55,-593.913 1112,-579 1139,-555.929 1148.86,-552.25 1169,-523 1192.93,-488.248 1182.49,-470.343 1207,-436 1235.62,-395.906 1282.35,-359.691 1304.54,-343.683"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="837.569,-738.066 828.789,-743.996 839.35,-744.835 837.569,-738.066"/>
+<!-- Node38&#45;&gt;Node15 -->
+<g id="edge98" class="edge"><title>Node38&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M758.775,-734.637C747.243,-710.61 729,-666.239 729,-626 729,-626 729,-626 729,-445 729,-404.296 756.551,-361.44 769.465,-343.587"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="755.788,-736.491 763.373,-743.889 762.057,-733.376 755.788,-736.491"/>
 </g>
-<!-- Node38&#45;&gt;Node17 -->
-<g id="edge97" class="edge"><title>Node38&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M850.163,-742.164C858.17,-740.756 866.288,-739.337 874,-738 968.167,-721.679 994.959,-731.074 1086,-702 1287.48,-637.658 1830.58,-467.153 1943,-288 1958.02,-264.069 1931.03,-195.31 1925,-190 1880.48,-150.796 1710.54,-141.836 1617.24,-139.914"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="849.36,-738.752 840.12,-743.935 850.575,-745.646 849.36,-738.752"/>
+<!-- Node38&#45;&gt;Node18 -->
+<g id="edge97" class="edge"><title>Node38&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M767.76,-733.803C767.464,-709.118 767,-664.299 767,-626 767,-626 767,-626 767,-506.5 767,-363.779 889.575,-361.615 914,-221 918.58,-194.632 911.579,-163.039 907.537,-148.115"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="764.261,-733.955 767.885,-743.911 771.261,-733.868 764.261,-733.955"/>
 </g>
 <!-- Node38&#45;&gt;Node23 -->
 <g id="edge99" class="edge"><title>Node38&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M786.243,-734.322C765.614,-671.403 690.171,-459.347 570,-324 551.094,-302.706 530.328,-313.164 517,-288 510.551,-275.824 507.801,-267.257 517,-257 543.251,-227.73 796.877,-213.786 917.221,-208.775"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="782.962,-735.552 789.364,-743.994 789.623,-733.402 782.962,-735.552"/>
+<path fill="none" stroke="midnightblue" d="M772.96,-734.115C789.289,-676.313 846.111,-495.275 946,-380 970.533,-351.688 977.332,-344.015 1009,-324 1043.68,-302.081 1071.34,-322.202 1094,-288 1109.83,-264.099 1081.18,-236.699 1059.34,-220.536"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="769.525,-733.405 770.233,-743.976 776.272,-735.271 769.525,-733.405"/>
 </g>
 <!-- Node38&#45;&gt;Node28 -->
 <g id="edge92" class="edge"><title>Node38&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M842.99,-741.812C893.08,-730.921 965.701,-713.976 992,-702 1079.18,-662.299 1099.26,-644.676 1169,-579 1212.54,-537.997 1253.04,-478.018 1267.45,-455.747"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="842.017,-738.441 832.981,-743.973 843.494,-745.283 842.017,-738.441"/>
+<path fill="none" stroke="midnightblue" d="M828.657,-741.715C861.277,-734.056 901.213,-721.573 933,-702 970.474,-678.926 1032.57,-582.147 1070,-559 1115.91,-530.607 1141.88,-554.106 1186,-523 1211.75,-504.848 1230.8,-471.476 1238.82,-455.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="827.772,-738.326 818.786,-743.939 829.31,-745.155 827.772,-738.326"/>
 </g>
 <!-- Node38&#45;&gt;Node35 -->
 <g id="edge94" class="edge"><title>Node38&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M763.467,-739.621C739.108,-728.625 704.141,-712.841 679.078,-701.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="762.323,-742.944 772.878,-743.869 765.203,-736.564 762.323,-742.944"/>
+<path fill="none" stroke="midnightblue" d="M851.285,-742.856C866.804,-741.16 882.889,-739.469 898,-738 1090.64,-719.27 1139.44,-721.518 1332,-702 1347.16,-700.464 1363.36,-698.645 1378.82,-696.824"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="850.741,-739.395 841.184,-743.97 851.508,-746.353 850.741,-739.395"/>
 </g>
 <!-- Node38&#45;&gt;Node36 -->
 <g id="edge95" class="edge"><title>Node38&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M741.08,-741.823C688.66,-730.832 606.718,-713.651 549.051,-701.559"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="740.649,-745.309 751.154,-743.936 742.085,-738.458 740.649,-745.309"/>
+<path fill="none" stroke="midnightblue" d="M841.537,-742.563C931.86,-730.357 1084.21,-709.769 1174.82,-697.524"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="840.818,-739.128 831.377,-743.936 841.756,-746.065 840.818,-739.128"/>
 </g>
 <!-- Node40&#45;&gt;Node37 -->
 <g id="edge103" class="edge"><title>Node40&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M954.325,-769.79C850.592,-787.702 821.25,-785.797 718,-805 712.43,-806.036 706.611,-807.206 700.779,-808.422"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="955.014,-773.223 964.262,-768.053 953.809,-766.327 955.014,-773.223"/>
+<path fill="none" stroke="midnightblue" d="M1215.84,-767.602C1218.26,-768.086 1220.65,-768.554 1223,-769 1312.37,-785.958 1416.47,-801.531 1479.33,-810.772"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1216.29,-764.121 1205.79,-765.538 1214.88,-770.978 1216.29,-764.121"/>
 </g>
-<!-- Node41&#45;&gt;Node13 -->
-<g id="edge105" class="edge"><title>Node41&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M573.329,-739.579C502.977,-725.791 401.806,-705.454 399,-702 379.326,-677.777 411.084,-664.905 420,-635 468.416,-472.6 341.273,-367.215 470,-257 496.228,-234.544 532.66,-222.022 563.613,-215.066"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="572.984,-743.078 583.47,-741.563 574.328,-736.208 572.984,-743.078"/>
+<!-- Node41&#45;&gt;Node14 -->
+<g id="edge105" class="edge"><title>Node41&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1471.61,-735.623C1549.42,-712.849 1678.41,-670.982 1712,-635 1753.37,-590.688 1763,-569.119 1763,-508.5 1763,-508.5 1763,-508.5 1763,-333 1763,-261.615 1670.47,-228.713 1611.92,-215.039"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1470.55,-732.288 1461.92,-738.439 1472.5,-739.01 1470.55,-732.288"/>
 </g>
 <!-- Node41&#45;&gt;Node42 -->
 <g id="edge106" class="edge"><title>Node41&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M706.528,-737.891C902.304,-708.521 1123.08,-695.491 1233.55,-690.346"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="705.996,-734.431 696.635,-739.392 707.047,-741.352 705.996,-734.431"/>
+<path fill="none" stroke="midnightblue" d="M1344.19,-738.046C1073.26,-700.544 761.751,-690.94 625.111,-688.402"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1343.83,-741.529 1354.22,-739.449 1344.8,-734.597 1343.83,-741.529"/>
 </g>
 <!-- Node43 -->
 <g id="node43" class="node"><title>Node43</title>
 <g id="a_node43"><a xlink:href="interpreter_8h.html" target="_top" xlink:title="An interpreter for Relay. ">
-<polygon fill="white" stroke="black" points="1820.5,-615.5 1820.5,-634.5 1981.5,-634.5 1981.5,-615.5 1820.5,-615.5"/>
-<text text-anchor="middle" x="1901" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/interpreter.h</text>
+<polygon fill="white" stroke="black" points="66.5,-615.5 66.5,-634.5 227.5,-634.5 227.5,-615.5 66.5,-615.5"/>
+<text text-anchor="middle" x="147" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/interpreter.h</text>
 </a>
 </g>
 </g>
 <!-- Node42&#45;&gt;Node43 -->
 <g id="edge107" class="edge"><title>Node42&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1384.3,-677.497C1498.27,-666.138 1705.79,-645.455 1820.1,-634.063"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1383.84,-674.025 1374.24,-678.5 1384.54,-680.991 1383.84,-674.025"/>
+<path fill="none" stroke="midnightblue" d="M486.23,-675.471C407.392,-663.974 279.524,-645.326 205.348,-634.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.143,-678.995 496.544,-676.975 487.153,-672.069 486.143,-678.995"/>
 </g>
 <!-- Node45&#45;&gt;Node29 -->
 <g id="edge115" class="edge"><title>Node45&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M708.371,-884.168C618.536,-877.714 457.986,-854.107 355,-769 319.349,-739.538 313.051,-716.725 320,-671 321.967,-658.058 326.944,-643.715 330.4,-634.778"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="708.224,-887.666 718.435,-884.84 708.691,-880.681 708.224,-887.666"/>
+<path fill="none" stroke="midnightblue" d="M1434.78,-879.685C1494.88,-872.224 1577.29,-858.264 1601,-836 1655.79,-784.555 1647.77,-745.517 1638,-671 1636.32,-658.173 1632.05,-643.802 1629.09,-634.827"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1434.09,-876.242 1424.59,-880.915 1434.93,-883.192 1434.09,-876.242"/>
 </g>
 <!-- Node45&#45;&gt;Node37 -->
 <g id="edge116" class="edge"><title>Node45&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M737.42,-867.853C716.707,-857.576 691.412,-845.025 672.37,-835.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="736.061,-871.086 746.575,-872.396 739.173,-864.816 736.061,-871.086"/>
+<path fill="none" stroke="midnightblue" d="M1414.05,-868.682C1441,-858.257 1474.54,-845.281 1499.62,-835.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1412.52,-865.523 1404.45,-872.396 1415.04,-872.052 1412.52,-865.523"/>
 </g>
 <!-- Node45&#45;&gt;Node46 -->
 <g id="edge117" class="edge"><title>Node45&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M768.455,-862.403C768.005,-853.37 768.296,-843.408 769.325,-835.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="764.97,-862.736 769.322,-872.396 771.944,-862.131 764.97,-862.736"/>
+<path fill="none" stroke="midnightblue" d="M1360.71,-862.403C1359.99,-853.37 1359.97,-843.408 1360.76,-835.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1357.24,-862.873 1361.89,-872.396 1364.2,-862.056 1357.24,-862.873"/>
 </g>
 <!-- Node46&#45;&gt;Node45 -->
 <g id="edge118" class="edge"><title>Node46&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M781.544,-845.565C781.995,-854.596 781.706,-864.56 780.678,-872.396"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="785.028,-845.236 780.675,-835.577 778.055,-845.842 785.028,-845.236"/>
+<path fill="none" stroke="midnightblue" d="M1373.28,-845.565C1374.01,-854.596 1374.03,-864.56 1373.24,-872.396"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1376.75,-845.099 1372.11,-835.577 1369.8,-845.917 1376.75,-845.099"/>
 </g>
 <!-- Node47&#45;&gt;Node2 -->
 <g id="edge131" class="edge"><title>Node47&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M1375.15,-929.859C1386.37,-903.89 1402,-860.658 1402,-821.5 1402,-821.5 1402,-821.5 1402,-752.5 1402,-715.306 1408.58,-698.003 1383,-671 1310.08,-594.017 1182.21,-574.659 1103.72,-570.393"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1371.85,-928.68 1370.97,-939.238 1378.24,-931.532 1371.85,-928.68"/>
+<path fill="none" stroke="midnightblue" d="M916.596,-935.58C934,-927.991 951.491,-917.452 964,-903 1013.98,-845.254 962.923,-796.518 1012,-738 1035.25,-710.282 1059.66,-727.822 1085,-702 1103.8,-682.843 1133.98,-604.89 1143.8,-578.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="914.911,-932.487 906.969,-939.499 917.55,-938.971 914.911,-932.487"/>
 </g>
 <!-- Node47&#45;&gt;Node3 -->
 <g id="edge120" class="edge"><title>Node47&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1430.49,-937.139C1484.67,-923.67 1553.17,-906.277 1559,-903 1662.3,-844.939 1716,-806 1716,-687.5 1716,-687.5 1716,-687.5 1716,-445 1716,-400.201 1672.8,-360.429 1651.54,-343.567"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1429.42,-933.798 1420.56,-939.604 1431.11,-940.592 1429.42,-933.798"/>
+<path fill="none" stroke="midnightblue" d="M919.825,-943.492C932.168,-941.84 944.96,-940.259 957,-939 1185.2,-915.144 1249.01,-957.034 1472,-903 1545.34,-885.23 1574.24,-888.946 1628,-836 1702.87,-762.27 1756.15,-710.354 1712,-615 1695.84,-580.09 1677.26,-581.415 1646,-559 1620.73,-540.88 1612.12,-539.872 1586,-523 1483.54,-456.828 1363.97,-370.622 1326.7,-343.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="919.022,-940.069 909.588,-944.891 919.97,-947.005 919.022,-940.069"/>
 </g>
 <!-- Node47&#45;&gt;Node4 -->
 <g id="edge121" class="edge"><title>Node47&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1323.16,-934.955C1286.72,-915.914 1235.73,-882.491 1213,-836 1193.85,-796.839 1238.25,-776.061 1217,-738 1151.33,-620.398 1024.67,-696.602 959,-579 924.573,-517.343 967.27,-427.396 982.206,-399.542"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1321.58,-938.079 1332.08,-939.486 1324.75,-931.838 1321.58,-938.079"/>
+<path fill="none" stroke="midnightblue" d="M786.992,-936.784C657.934,-900.692 391.809,-807.552 476,-671 588.468,-488.585 860.162,-420.846 977.501,-399.515"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="786.221,-940.202 796.791,-939.488 788.083,-933.454 786.221,-940.202"/>
+</g>
+<!-- Node47&#45;&gt;Node7 -->
+<g id="edge148" class="edge"><title>Node47&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M786.122,-947.866C640.443,-935.539 306.495,-906.954 295,-903 288.501,-900.765 195.981,-840.736 191,-836 85.5241,-735.713 0,-715.542 0,-570 0,-570 0,-570 0,-271.5 0,-178.178 314.162,-109.628 436.268,-86.5097"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="786.019,-951.37 796.279,-948.725 786.609,-944.395 786.019,-951.37"/>
 </g>
 <!-- Node47&#45;&gt;Node27 -->
 <g id="edge122" class="edge"><title>Node47&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1397.67,-933.791C1431.3,-911.296 1478,-871.116 1478,-821.5 1478,-821.5 1478,-821.5 1478,-752.5 1478,-599.393 1255.91,-537.503 1153.1,-517.056"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1395.51,-931.022 1389.02,-939.393 1399.31,-936.899 1395.51,-931.022"/>
+<path fill="none" stroke="midnightblue" d="M865.767,-930.477C878.89,-906.797 899.906,-868.841 918,-836 985.766,-713.005 986.577,-671.963 1070,-559 1081.9,-542.884 1098.66,-526.691 1109.17,-517.134"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="862.607,-928.958 860.82,-939.401 868.729,-932.352 862.607,-928.958"/>
 </g>
 <!-- Node47&#45;&gt;Node28 -->
 <g id="edge123" class="edge"><title>Node47&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M1412,-935.368C1456.54,-915.056 1516,-877.46 1516,-821.5 1516,-821.5 1516,-821.5 1516,-568 1516,-485.408 1402.12,-459.191 1330.28,-450.869"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1410.49,-932.209 1402.75,-939.441 1413.31,-938.615 1410.49,-932.209"/>
+<path fill="none" stroke="midnightblue" d="M919.375,-938.67C942.949,-930.962 968.455,-919.569 988,-903 1052.55,-848.281 1012.97,-785.499 1083,-738 1175.54,-675.234 1258.81,-786.535 1332,-702 1399.83,-623.658 1284.22,-490.538 1251.34,-455.603"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="918.278,-935.345 909.763,-941.649 920.351,-942.032 918.278,-935.345"/>
 </g>
 <!-- Node47&#45;&gt;Node29 -->
 <g id="edge132" class="edge"><title>Node47&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M1297.44,-953.937C1028.71,-954.838 38,-949.481 38,-821.5 38,-821.5 38,-821.5 38,-752.5 38,-657.495 168.53,-632.885 256.229,-627.071"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1297.46,-957.437 1307.45,-953.899 1297.43,-950.437 1297.46,-957.437"/>
+<path fill="none" stroke="midnightblue" d="M919.801,-943.257C932.147,-941.628 944.946,-940.116 957,-939 1043.5,-930.994 1666.82,-952.801 1738,-903 1822.49,-843.883 1808.98,-742.835 1735,-671 1715.98,-652.531 1688.31,-641.232 1665.61,-634.576"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="919.003,-939.833 909.564,-944.646 919.944,-946.769 919.003,-939.833"/>
 </g>
 <!-- Node47&#45;&gt;Node31 -->
 <g id="edge133" class="edge"><title>Node47&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M1431.04,-945.423C1510.19,-935.787 1645.77,-918.97 1762,-903 1775.55,-901.139 1790.13,-899.035 1803.8,-897.019"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1430.23,-941.995 1420.73,-946.676 1431.08,-948.944 1430.23,-941.995"/>
+<path fill="none" stroke="midnightblue" d="M786.054,-949.309C674.344,-942.003 442.943,-925.535 248,-903 233.477,-901.321 217.795,-899.159 203.323,-897.019"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="785.956,-952.81 796.162,-949.967 786.41,-945.825 785.956,-952.81"/>
 </g>
 <!-- Node47&#45;&gt;Node37 -->
 <g id="edge146" class="edge"><title>Node47&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M1297.04,-951.355C1140.52,-945.912 760.044,-930.046 709,-903 680.694,-888.002 660.457,-854.783 650.663,-835.709"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1297.35,-954.868 1307.47,-951.714 1297.6,-947.872 1297.35,-954.868"/>
+<path fill="none" stroke="midnightblue" d="M919.831,-943.548C932.173,-941.891 944.963,-940.293 957,-939 1062.47,-927.67 1334.19,-941.601 1433,-903 1470.59,-888.313 1505.44,-854.975 1523.37,-835.798"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="919.027,-940.126 909.594,-944.949 919.977,-947.061 919.027,-940.126"/>
 </g>
 <!-- Node47&#45;&gt;Node38 -->
 <g id="edge124" class="edge"><title>Node47&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M1297.06,-942.655C1249.98,-934.143 1185.85,-920.759 1131,-903 1002.63,-861.433 856.75,-788.134 808.469,-763.135"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1296.68,-946.142 1307.14,-944.449 1297.91,-939.25 1296.68,-946.142"/>
+<path fill="none" stroke="midnightblue" d="M837.775,-930.953C822.886,-907.973 800.534,-870.85 787,-836 777.112,-810.538 771.5,-778.52 769.217,-763.307"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="834.856,-932.884 843.272,-939.319 840.706,-929.04 834.856,-932.884"/>
 </g>
 <!-- Node47&#45;&gt;Node40 -->
 <g id="edge144" class="edge"><title>Node47&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M1297.36,-943.27C1261.03,-935.757 1216.21,-923.235 1180,-903 1115.04,-866.703 1055.9,-798.331 1032.09,-768.744"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1296.88,-946.743 1307.37,-945.259 1298.24,-939.877 1296.88,-946.743"/>
+<path fill="none" stroke="midnightblue" d="M919.818,-946.505C957.699,-939.965 1004.48,-927.34 1040,-903 1091.97,-867.391 1128.5,-798.648 1142.58,-768.853"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="919.2,-943.06 909.89,-948.117 920.321,-949.969 919.2,-943.06"/>
 </g>
 <!-- Node47&#45;&gt;Node42 -->
 <g id="edge147" class="edge"><title>Node47&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M1362.18,-929.189C1359.64,-899.56 1354.14,-848.112 1344,-805 1334.18,-763.257 1315.46,-715.41 1307.61,-696.173"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1358.72,-929.731 1363.02,-939.413 1365.69,-929.162 1358.72,-929.731"/>
+<path fill="none" stroke="midnightblue" d="M816.645,-934.63C762.923,-905.27 661.726,-844.14 597,-769 577.158,-745.965 563.544,-711.935 557.91,-696.139"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="815.014,-937.727 825.476,-939.403 818.343,-931.569 815.014,-937.727"/>
 </g>
 <!-- Node47&#45;&gt;Node43 -->
 <g id="edge134" class="edge"><title>Node47&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1430.8,-938.078C1556.89,-917.822 1602.41,-956.543 1719,-903 1759.17,-884.553 1843.43,-807.007 1866,-769 1893.01,-723.508 1899.22,-658.088 1900.61,-634.711"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1430.05,-934.656 1420.78,-939.784 1431.22,-941.556 1430.05,-934.656"/>
+<path fill="none" stroke="midnightblue" d="M786.453,-947.693C668.605,-937.18 432.171,-914.977 396,-903 284.055,-865.934 232.623,-866.975 167,-769 137.983,-725.678 142.916,-658.352 145.785,-634.628"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="786.176,-951.182 796.447,-948.582 786.797,-944.209 786.176,-951.182"/>
 </g>
 <!-- Node47&#45;&gt;Node45 -->
 <g id="edge145" class="edge"><title>Node47&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M1297.01,-946.108C1180.11,-933.207 940.908,-906.809 831.673,-894.754"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1296.93,-949.62 1307.26,-947.238 1297.7,-942.662 1296.93,-949.62"/>
+<path fill="none" stroke="midnightblue" d="M919.886,-944.011C932.223,-942.307 944.997,-940.574 957,-939 1083.52,-922.408 1232.18,-904.547 1311.45,-895.153"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="919.076,-940.59 909.652,-945.431 920.038,-947.523 919.076,-940.59"/>
 </g>
 <!-- Node48 -->
 <g id="node48" class="node"><title>Node48</title>
 <g id="a_node48"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures. ">
-<polygon fill="white" stroke="red" points="1544,-744 1544,-763 1688,-763 1688,-744 1544,-744"/>
-<text text-anchor="middle" x="1616" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/functor.h</text>
+<polygon fill="white" stroke="red" points="308,-744 308,-763 452,-763 452,-744 308,-744"/>
+<text text-anchor="middle" x="380" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node47&#45;&gt;Node48 -->
 <g id="edge125" class="edge"><title>Node47&#45;&gt;Node48</title>
-<path fill="none" stroke="midnightblue" d="M1426.97,-936.739C1470.3,-924.799 1521.53,-909.722 1530,-903 1579.25,-863.934 1605.74,-788.384 1613.53,-763.031"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1426.01,-933.372 1417.29,-939.389 1427.86,-940.123 1426.01,-933.372"/>
+<path fill="none" stroke="midnightblue" d="M786.394,-946.458C692.029,-936.088 528.141,-916.484 504,-903 441.834,-868.277 397.592,-789.224 384.221,-763.075"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="786.1,-949.946 796.422,-947.554 786.861,-942.988 786.1,-949.946"/>
 </g>
 <!-- Node49 -->
 <g id="node49" class="node"><title>Node49</title>
 <g id="a_node49"><a xlink:href="runtime_2container_8h.html" target="_top" xlink:title="Common POD(plain old data) container types. ">
-<polygon fill="white" stroke="black" points="1744.5,-738.5 1744.5,-768.5 1857.5,-768.5 1857.5,-738.5 1744.5,-738.5"/>
-<text text-anchor="start" x="1752.5" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1801" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/container.h</text>
+<polygon fill="white" stroke="black" points="176.5,-738.5 176.5,-768.5 289.5,-768.5 289.5,-738.5 176.5,-738.5"/>
+<text text-anchor="start" x="184.5" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="233" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">/container.h</text>
 </a>
 </g>
 </g>
 <!-- Node47&#45;&gt;Node49 -->
 <g id="edge135" class="edge"><title>Node47&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M1430.74,-938.068C1542.66,-919.856 1587.51,-959.976 1686,-903 1741.89,-870.67 1780.12,-799.517 1794.57,-768.935"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1430.03,-934.64 1420.78,-939.813 1431.24,-941.535 1430.03,-934.64"/>
+<path fill="none" stroke="midnightblue" d="M786.047,-948.459C690.443,-940.65 519.964,-924.281 462,-903 373.705,-870.582 284.654,-799.155 249.106,-768.703"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="785.941,-951.962 796.19,-949.279 786.504,-944.985 785.941,-951.962"/>
 </g>
 <!-- Node50 -->
 <g id="node50" class="node"><title>Node50</title>
 <g id="a_node50"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
-<polygon fill="white" stroke="black" points="1222.5,-805.5 1222.5,-835.5 1335.5,-835.5 1335.5,-805.5 1222.5,-805.5"/>
-<text text-anchor="start" x="1230.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1279" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/memory.h</text>
+<polygon fill="white" stroke="black" points="796.5,-805.5 796.5,-835.5 909.5,-835.5 909.5,-805.5 796.5,-805.5"/>
+<text text-anchor="start" x="804.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="853" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/memory.h</text>
 </a>
 </g>
 </g>
 <!-- Node47&#45;&gt;Node50 -->
 <g id="edge137" class="edge"><title>Node47&#45;&gt;Node50</title>
-<path fill="none" stroke="midnightblue" d="M1349.4,-930.834C1331.78,-903.466 1302.69,-858.284 1288.03,-835.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1346.55,-932.861 1354.9,-939.374 1352.43,-929.071 1346.55,-932.861"/>
+<path fill="none" stroke="midnightblue" d="M853,-929.024C853,-901.512 853,-857.789 853,-835.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="849.5,-929.374 853,-939.374 856.5,-929.374 849.5,-929.374"/>
 </g>
-<!-- Node48&#45;&gt;Node14 -->
-<g id="edge128" class="edge"><title>Node48&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1613.75,-733.566C1607.53,-687.997 1586.69,-570.206 1530,-492 1476.08,-417.611 1376.4,-363.63 1335.38,-343.572"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1610.28,-734.054 1615.02,-743.527 1617.22,-733.163 1610.28,-734.054"/>
+<!-- Node48&#45;&gt;Node15 -->
+<g id="edge128" class="edge"><title>Node48&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M380,-733.803C380,-709.117 380,-664.298 380,-626 380,-626 380,-626 380,-445 380,-414.048 380.589,-399.03 405,-380 452.332,-343.101 625.003,-336.032 717.14,-334.949"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="376.5,-733.911 380,-743.911 383.5,-733.911 376.5,-733.911"/>
 </g>
 <!-- Node48&#45;&gt;Node21 -->
 <g id="edge129" class="edge"><title>Node48&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1630.6,-736.373C1662.58,-700.389 1739.71,-609.86 1787,-523 1832.98,-438.552 1865.64,-326.623 1876.27,-287.619"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1627.89,-734.161 1623.82,-743.945 1633.1,-738.831 1627.89,-734.161"/>
+<path fill="none" stroke="midnightblue" d="M366.82,-735.608C346.378,-709.505 305.665,-657.897 270,-615 230.011,-566.904 178,-571.049 178,-508.5 178,-508.5 178,-508.5 178,-389 178,-352.015 168.397,-309.24 162.845,-287.602"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="364.246,-737.999 373.163,-743.721 369.761,-733.687 364.246,-737.999"/>
 </g>
 <!-- Node48&#45;&gt;Node22 -->
 <g id="edge130" class="edge"><title>Node48&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1639.86,-738.369C1654.4,-729.094 1672.85,-716.102 1687,-702 1712.95,-676.142 1713.87,-664.919 1735,-635 1838.74,-488.138 1896.93,-461.804 1943,-288 1946.53,-274.682 1949.72,-269.029 1943,-257 1933.71,-240.36 1916.43,-228.526 1900.12,-220.517"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1637.6,-735.652 1630.95,-743.9 1641.29,-741.599 1637.6,-735.652"/>
+<path fill="none" stroke="midnightblue" d="M358.415,-738.247C344.569,-728.685 326.532,-715.424 312,-702 274.286,-667.162 272.259,-651.351 236,-615 218.875,-597.831 208.782,-598.952 195,-579 109.83,-455.703 15.007,-383.717 95,-257 106.425,-238.901 126.311,-227.153 145.794,-219.591"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="356.59,-741.239 366.829,-743.962 360.523,-735.448 356.59,-741.239"/>
 </g>
 <!-- Node48&#45;&gt;Node35 -->
 <g id="edge126" class="edge"><title>Node48&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M1533.39,-746.953C1347.62,-734.479 899.362,-704.379 722.015,-692.47"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1533.43,-750.463 1543.64,-747.641 1533.9,-743.479 1533.43,-750.463"/>
+<path fill="none" stroke="midnightblue" d="M462.333,-748.446C677.651,-737.801 1246.72,-709.363 1332,-702 1347.18,-700.69 1363.39,-698.969 1378.85,-697.173"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="461.857,-744.966 452.042,-748.955 462.203,-751.957 461.857,-744.966"/>
 </g>
 <!-- Node48&#45;&gt;Node36 -->
 <g id="edge127" class="edge"><title>Node48&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M1533.61,-749.136C1302.72,-739.624 660.042,-712.543 565,-702 562.092,-701.677 559.132,-701.317 556.146,-700.926"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1533.49,-752.634 1543.63,-749.548 1533.78,-745.64 1533.49,-752.634"/>
+<path fill="none" stroke="midnightblue" d="M462.29,-746.345C630.965,-733.728 1013.6,-705.107 1175,-693.035"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="461.935,-742.861 452.224,-747.098 462.457,-749.842 461.935,-742.861"/>
 </g>
 <!-- Node49&#45;&gt;Node43 -->
 <g id="edge136" class="edge"><title>Node49&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1818.49,-730.37C1840.87,-702.064 1878.58,-654.366 1894.05,-634.789"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1815.54,-728.464 1812.08,-738.479 1821.03,-732.805 1815.54,-728.464"/>
+<path fill="none" stroke="midnightblue" d="M217.705,-730.002C198.432,-701.653 166.227,-654.282 152.975,-634.789"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="214.951,-732.177 223.468,-738.479 220.74,-728.241 214.951,-732.177"/>
 </g>
 <!-- Node50&#45;&gt;Node2 -->
 <g id="edge139" class="edge"><title>Node50&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M1273.7,-795.237C1269.3,-778.339 1261.98,-755.742 1251,-738 1230.83,-705.394 1161.21,-637.279 1130,-615 1107.91,-599.23 1079.44,-586.491 1059.64,-578.645"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1270.41,-796.52 1276.17,-805.41 1277.21,-794.866 1270.41,-796.52"/>
+<path fill="none" stroke="midnightblue" d="M880.699,-799.274C911.501,-776.48 962.399,-737.91 1004,-702 1046.36,-665.438 1053.61,-652.652 1095,-615 1109.13,-602.146 1125.91,-587.781 1136.51,-578.815"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="878.539,-796.518 872.568,-805.27 882.694,-802.152 878.539,-796.518"/>
 </g>
 <!-- Node50&#45;&gt;Node29 -->
 <g id="edge140" class="edge"><title>Node50&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M1212.24,-818.572C1060.15,-815.836 691.948,-805.534 574,-769 547.933,-760.926 546.355,-748.09 521,-738 455.289,-711.851 420.081,-747.574 366,-702 344.981,-684.287 337.49,-650.394 335.059,-634.554"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1212.32,-822.073 1222.38,-818.748 1212.44,-815.075 1212.32,-822.073"/>
+<path fill="none" stroke="midnightblue" d="M893.692,-801.414C938.942,-782.176 1014.68,-752.557 1083,-738 1280.53,-695.913 1349.22,-778.839 1536,-702 1572.69,-686.906 1605.46,-651.044 1619.18,-634.558"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="892.048,-798.31 884.239,-805.47 894.809,-804.743 892.048,-798.31"/>
 </g>
 <!-- Node50&#45;&gt;Node38 -->
 <g id="edge138" class="edge"><title>Node50&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M1212.22,-810.587C1118.22,-798.041 948.098,-775.334 855.765,-763.011"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1211.81,-814.063 1222.18,-811.916 1212.73,-807.124 1211.81,-814.063"/>
+<path fill="none" stroke="midnightblue" d="M826.203,-799.008C810.423,-786.941 791.283,-772.305 779.37,-763.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="824.487,-802.102 834.556,-805.396 828.739,-796.541 824.487,-802.102"/>
 </g>
 <!-- Node50&#45;&gt;Node40 -->
 <g id="edge142" class="edge"><title>Node50&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M1213.45,-802.984C1171.3,-792.367 1117.14,-778.72 1077.01,-768.611"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1212.78,-806.427 1223.34,-805.476 1214.49,-799.639 1212.78,-806.427"/>
+<path fill="none" stroke="midnightblue" d="M919.531,-804.89C971.584,-793.46 1043.17,-777.74 1092.47,-766.914"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="918.738,-801.481 909.722,-807.044 920.24,-808.318 918.738,-801.481"/>
 </g>
 <!-- Node50&#45;&gt;Node42 -->
 <g id="edge143" class="edge"><title>Node50&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M1283.83,-795.479C1285.49,-787.104 1287.35,-777.642 1289,-769 1294.07,-742.433 1299.79,-710.933 1302.46,-696.073"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1280.38,-794.869 1281.85,-805.361 1287.24,-796.239 1280.38,-794.869"/>
+<path fill="none" stroke="midnightblue" d="M786.23,-812.288C743.34,-805.573 687.53,-792.839 643,-769 607.385,-749.933 575.212,-712.961 561.718,-696.171"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="785.877,-815.774 796.284,-813.789 786.911,-808.85 785.877,-815.774"/>
 </g>
 <!-- Node50&#45;&gt;Node49 -->
 <g id="edge141" class="edge"><title>Node50&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M1345.83,-811.807C1428.4,-802.216 1573.14,-785.115 1697,-769 1712.37,-767.001 1728.99,-764.731 1744.35,-762.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1345.36,-808.338 1335.83,-812.968 1346.17,-815.292 1345.36,-808.338"/>
+<path fill="none" stroke="midnightblue" d="M786.413,-816.133C682.049,-810.249 473.804,-796.06 299,-769 295.986,-768.533 292.903,-768.012 289.797,-767.452"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="786.309,-819.633 796.488,-816.693 786.698,-812.643 786.309,-819.633"/>
 </g>
 </g>
 </svg>
diff --git a/docs/doxygen/classtvm_1_1IRModule-members.html b/docs/doxygen/classtvm_1_1IRModule-members.html
index 2f51b6a..8f085b9 100644
--- a/docs/doxygen/classtvm_1_1IRModule-members.html
+++ b/docs/doxygen/classtvm_1_1IRModule-members.html
@@ -94,12 +94,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 <p>This is the complete list of members for <a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#a59099426f65dbeac227e51f8864e322a">FromExpr</a>(const RelayExpr &amp;expr, const Map&lt; GlobalVar, BaseFunc &gt; &amp;global_funcs={}, const Map&lt; GlobalTypeVar, TypeData &gt; &amp;type_definitions={})</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#a499a18238ecdccf2738d7edb05408eee">FromText</a>(const std::string &amp;text, const std::string &amp;source_path)</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#a53828dbf85c0755eb80ad794f5aa07c5">IRModule</a>(Map&lt; GlobalVar, BaseFunc &gt; functions, Map&lt; GlobalTypeVar, TypeData &gt; type_definitions={}, std::unordered_set&lt; std::string &gt; import_set={})</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#ad48ab78dc0e686cd722e2b677ccaa396">IRModule</a>()</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#a69a94bf1f2e54191598b2271443d2696">IRModule</a>(ObjectPtr&lt; Object &gt; n)</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#aff20748321d5b23f6e2ed5c558b026e2">operator-&gt;</a>() const </td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#a270cda2dde4e757b2457632f9a0db537">ContainerType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#a59099426f65dbeac227e51f8864e322a">FromExpr</a>(const RelayExpr &amp;expr, const Map&lt; GlobalVar, BaseFunc &gt; &amp;global_funcs={}, const Map&lt; GlobalTypeVar, TypeData &gt; &amp;type_definitions={})</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#a499a18238ecdccf2738d7edb05408eee">FromText</a>(const std::string &amp;text, const std::string &amp;source_path)</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#a53828dbf85c0755eb80ad794f5aa07c5">IRModule</a>(Map&lt; GlobalVar, BaseFunc &gt; functions, Map&lt; GlobalTypeVar, TypeData &gt; type_definitions={}, std::unordered_set&lt; std::string &gt; import_set={})</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#ad48ab78dc0e686cd722e2b677ccaa396">IRModule</a>()</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#a69a94bf1f2e54191598b2271443d2696">IRModule</a>(ObjectPtr&lt; Object &gt; n)</td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IRModule.html#aff20748321d5b23f6e2ed5c558b026e2">operator-&gt;</a>() const </td><td class="entry"><a class="el" href="classtvm_1_1IRModule.html">tvm::IRModule</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/doxygen/classtvm_1_1IRModule.html b/docs/doxygen/classtvm_1_1IRModule.html
index b8b7135..7f2d819 100644
--- a/docs/doxygen/classtvm_1_1IRModule.html
+++ b/docs/doxygen/classtvm_1_1IRModule.html
@@ -88,6 +88,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><!-- top -->
 <div class="header">
   <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
 <a href="#pub-methods">Public Member Functions</a> &#124;
 <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
 <a href="classtvm_1_1IRModule-members.html">List of all members</a>  </div>
@@ -113,6 +114,12 @@ Collaboration diagram for tvm::IRModule:</div>
 </div>
 </div>
 <table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a270cda2dde4e757b2457632f9a0db537"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1IRModule.html#a270cda2dde4e757b2457632f9a0db537">ContainerType</a> = <a class="el" href="classtvm_1_1IRModuleNode.html">IRModuleNode</a></td></tr>
+<tr class="memdesc:a270cda2dde4e757b2457632f9a0db537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declare the container type.  <a href="#a270cda2dde4e757b2457632f9a0db537">More...</a><br /></td></tr>
+<tr class="separator:a270cda2dde4e757b2457632f9a0db537"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
 <tr class="memitem:a53828dbf85c0755eb80ad794f5aa07c5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1IRModule.html#a53828dbf85c0755eb80ad794f5aa07c5">IRModule</a> (<a class="el" href="classtvm_1_1Map.html">Map</a>&lt; <a class="el" href="classtvm_1_1GlobalVar.html">GlobalVar</a>, <a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a> &gt; functions, <a class="el" href="classtvm_1_1Map.html">Map</ [...]
@@ -139,7 +146,22 @@ Static Public Member Functions</h2></td></tr>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Managed reference class to <a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions. ">IRModuleNode</a>. </p>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions. ">IRModuleNode</a> </dd></dl>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+</div><h2 class="groupheader">Member Typedef Documentation</h2>
+<a class="anchor" id="a270cda2dde4e757b2457632f9a0db537"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">using <a class="el" href="classtvm_1_1IRModule.html#a270cda2dde4e757b2457632f9a0db537">tvm::IRModule::ContainerType</a> =  <a class="el" href="classtvm_1_1IRModuleNode.html">IRModuleNode</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Declare the container type. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="a53828dbf85c0755eb80ad794f5aa07c5"></a>
 <div class="memitem">
 <div class="memproto">
diff --git a/docs/doxygen/data__type_8h.html b/docs/doxygen/data__type_8h.html
index e8bb2d3..34b1953 100644
--- a/docs/doxygen/data__type_8h.html
+++ b/docs/doxygen/data__type_8h.html
@@ -106,7 +106,7 @@ Include dependency graph for data_type.h:</div>
 </div><div class="textblock"><div class="dynheader">
 This graph shows which files directly or indirectly include this file:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="data__type_8h__dep__incl.svg" width="3654" height="1304"><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="data__type_8h__dep__incl.svg" width="3371" height="1304"><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/doxygen/data__type_8h__dep__incl.svg b/docs/doxygen/data__type_8h__dep__incl.svg
index cf8febb..97dee97 100644
--- a/docs/doxygen/data__type_8h__dep__incl.svg
+++ b/docs/doxygen/data__type_8h__dep__incl.svg
@@ -4,991 +4,966 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/runtime/data_type.h Pages: 1 -->
-<svg width="2740pt" height="978pt"
- viewBox="0.00 0.00 2740.00 978.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="2528pt" height="978pt"
+ viewBox="0.00 0.00 2528.35 978.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 974)">
 <title>include/tvm/runtime/data_type.h</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-974 2736,-974 2736,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-974 2524.35,-974 2524.35,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="2275.5,-939.5 2275.5,-969.5 2388.5,-969.5 2388.5,-939.5 2275.5,-939.5"/>
-<text text-anchor="start" x="2283.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="2332" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">/data_type.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="2154.5,-939.5 2154.5,-969.5 2267.5,-969.5 2267.5,-939.5 2154.5,-939.5"/>
+<text text-anchor="start" x="2162.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="2211" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">/data_type.h</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
 <g id="a_node2"><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="2261,-570.5 2261,-589.5 2375,-589.5 2375,-570.5 2261,-570.5"/>
-<text text-anchor="middle" x="2318" y="-577.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type.h</text>
+<polygon fill="white" stroke="black" points="1906,-570.5 1906,-589.5 2020,-589.5 2020,-570.5 1906,-570.5"/>
+<text text-anchor="middle" x="1963" y="-577.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M2398.53,-947.577C2474.08,-936.773 2587,-906.421 2587,-821.5 2587,-821.5 2587,-821.5 2587,-691 2587,-643.005 2438.43,-605.594 2362.12,-589.543"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2398.04,-944.112 2388.59,-948.918 2398.97,-951.05 2398.04,-944.112"/>
+<path fill="none" stroke="midnightblue" d="M2144.33,-945.987C2030.8,-931.67 1807.65,-896.401 1761,-836 1685.56,-738.337 1886.05,-621.623 1946.41,-589.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2143.95,-949.466 2154.3,-947.226 2144.81,-942.519 2143.95,-949.466"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node"><title>Node27</title>
 <g id="a_node27"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
-<polygon fill="white" stroke="black" points="755.5,-453 755.5,-472 872.5,-472 872.5,-453 755.5,-453"/>
-<text text-anchor="middle" x="814" y="-460" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr.h</text>
+<polygon fill="white" stroke="black" points="890.5,-453 890.5,-472 1007.5,-472 1007.5,-453 890.5,-453"/>
+<text text-anchor="middle" x="949" y="-460" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node27 -->
-<g id="edge145" class="edge"><title>Node1&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M2265.13,-954.181C2103.48,-954.948 1678.99,-951.716 1329,-903 1197.55,-884.703 1165.37,-873.278 1038,-836 785.703,-762.161 481,-899.881 481,-637 481,-637 481,-637 481,-579 481,-521.633 659.635,-486.341 755.233,-471.561"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2265.41,-957.679 2275.39,-954.125 2265.38,-950.679 2265.41,-957.679"/>
+<g id="edge140" class="edge"><title>Node1&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M2144.18,-950.86C1862.46,-939.299 786,-890.602 786,-821.5 786,-821.5 786,-821.5 786,-579 786,-517.438 864.362,-485.719 912.42,-472.055"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2144.12,-954.361 2154.26,-951.272 2144.41,-947.367 2144.12,-954.361"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node"><title>Node39</title>
 <g id="a_node39"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="white" stroke="black" points="2159.5,-682.5 2159.5,-701.5 2314.5,-701.5 2314.5,-682.5 2159.5,-682.5"/>
-<text text-anchor="middle" x="2237" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/reflection.h</text>
+<polygon fill="white" stroke="black" points="2264.5,-682.5 2264.5,-701.5 2419.5,-701.5 2419.5,-682.5 2264.5,-682.5"/>
+<text text-anchor="middle" x="2342" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/reflection.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node39 -->
-<g id="edge100" class="edge"><title>Node1&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M2389.65,-936.057C2452.36,-913.513 2540.51,-869.358 2515,-805 2484.71,-728.57 2385.91,-703.82 2314.71,-696.072"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2388.11,-932.887 2379.82,-939.489 2390.42,-939.495 2388.11,-932.887"/>
+<g id="edge95" class="edge"><title>Node1&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2277.94,-947.191C2310.06,-940.832 2346.73,-928.164 2371,-903 2423.17,-848.901 2443.12,-804.446 2408,-738 2398.86,-720.712 2379.77,-708.816 2364.46,-701.618"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2276.91,-943.82 2267.69,-949.042 2278.15,-950.709 2276.91,-943.82"/>
 </g>
 <!-- Node42 -->
 <g id="node42" class="node"><title>Node42</title>
 <g id="a_node42"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
-<polygon fill="white" stroke="black" points="1895,-738.5 1895,-768.5 2043,-768.5 2043,-738.5 1895,-738.5"/>
-<text text-anchor="start" x="1903" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
-<text text-anchor="middle" x="1969" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
+<polygon fill="white" stroke="black" points="1872,-738.5 1872,-768.5 2020,-768.5 2020,-738.5 1872,-738.5"/>
+<text text-anchor="start" x="1880" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
+<text text-anchor="middle" x="1946" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node42 -->
-<g id="edge110" class="edge"><title>Node1&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M2296.99,-934.305C2224.39,-894.506 2058.91,-803.789 1994.93,-768.713"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2295.73,-937.61 2306.18,-939.348 2299.1,-931.472 2295.73,-937.61"/>
+<g id="edge105" class="edge"><title>Node1&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M2233.9,-932.04C2264.22,-901.067 2310.19,-843.352 2277,-805 2240.56,-762.889 2083.99,-777.793 2029,-769 2026.11,-768.538 2023.17,-768.06 2020.19,-767.571"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2231.21,-929.778 2226.59,-939.31 2236.15,-934.742 2231.21,-929.778"/>
 </g>
 <!-- Node43 -->
 <g id="node43" class="node"><title>Node43</title>
 <g id="a_node43"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="include/tvm/node/structural\l_hash.h">
-<polygon fill="white" stroke="black" points="2061,-738.5 2061,-768.5 2209,-768.5 2209,-738.5 2061,-738.5"/>
-<text text-anchor="start" x="2069" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
-<text text-anchor="middle" x="2135" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
+<polygon fill="white" stroke="black" points="2038,-738.5 2038,-768.5 2186,-768.5 2186,-738.5 2038,-738.5"/>
+<text text-anchor="start" x="2046" y="-756.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
+<text text-anchor="middle" x="2112" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node43 -->
-<g id="edge114" class="edge"><title>Node1&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M2339.13,-929.505C2347.06,-897.427 2355.34,-840.502 2327,-805 2312.03,-786.244 2256.54,-772.951 2209.04,-764.727"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2335.69,-928.8 2336.5,-939.364 2342.46,-930.6 2335.69,-928.8"/>
+<g id="edge109" class="edge"><title>Node1&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M2277.69,-945.435C2304.09,-938.605 2331.93,-926.049 2348,-903 2372.91,-867.27 2375.39,-838.868 2348,-805 2337.68,-792.233 2251.51,-776.167 2186.26,-765.629"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2276.61,-942.094 2267.67,-947.782 2278.21,-948.909 2276.61,-942.094"/>
 </g>
 <!-- Node44 -->
 <g id="node44" class="node"><title>Node44</title>
 <g id="a_node44"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
-<polygon fill="white" stroke="black" points="1338.5,-872.5 1338.5,-902.5 1451.5,-902.5 1451.5,-872.5 1338.5,-872.5"/>
-<text text-anchor="start" x="1346.5" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1395" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00">/packed_func.h</text>
+<polygon fill="white" stroke="black" points="2032.5,-872.5 2032.5,-902.5 2145.5,-902.5 2145.5,-872.5 2032.5,-872.5"/>
+<text text-anchor="start" x="2040.5" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="2089" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00">/packed_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node44 -->
-<g id="edge118" class="edge"><title>Node1&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M2265.35,-948.876C2089.51,-936.679 1615.38,-903.788 1451.58,-892.425"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2265.28,-952.38 2275.5,-949.58 2265.76,-945.397 2265.28,-952.38"/>
+<g id="edge113" class="edge"><title>Node1&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M2175.48,-934.575C2156.29,-924.35 2133,-911.94 2115.42,-902.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2174.06,-937.783 2184.53,-939.396 2177.35,-931.605 2174.06,-937.783"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
 <g id="a_node3"><a xlink:href="ir_2adt_8h.html" target="_top" xlink:title="Algebraic data type definitions. ">
-<polygon fill="white" stroke="black" points="2556.5,-453 2556.5,-472 2665.5,-472 2665.5,-453 2556.5,-453"/>
-<text text-anchor="middle" x="2611" y="-460" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/adt.h</text>
+<polygon fill="white" stroke="black" points="1908.5,-453 1908.5,-472 2017.5,-472 2017.5,-453 1908.5,-453"/>
+<text text-anchor="middle" x="1963" y="-460" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node3 -->
 <g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M2385.35,-572.505C2427.16,-566.533 2481.11,-555.223 2525,-534 2557.68,-518.201 2588.74,-487.585 2602.94,-472.436"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2384.7,-569.061 2375.27,-573.876 2385.65,-575.997 2384.7,-569.061"/>
+<path fill="none" stroke="midnightblue" d="M1963,-560.164C1963,-534.865 1963,-490.935 1963,-472.282"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1959.5,-560.319 1963,-570.319 1966.5,-560.319 1959.5,-560.319"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
 <g id="a_node4"><a xlink:href="ir_2module_8h.html" target="_top" xlink:title="IRModule that holds the functions and type definitions. ">
-<polygon fill="white" stroke="red" points="2298.5,-319 2298.5,-338 2427.5,-338 2427.5,-319 2298.5,-319"/>
-<text text-anchor="middle" x="2363" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/module.h</text>
+<polygon fill="white" stroke="red" points="1956.5,-319 1956.5,-338 2085.5,-338 2085.5,-319 1956.5,-319"/>
+<text text-anchor="middle" x="2021" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/module.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node4 -->
-<g id="edge94" class="edge"><title>Node2&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M2321.37,-560.341C2330.42,-510.139 2355.05,-373.598 2361.46,-338.052"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2317.88,-559.949 2319.55,-570.412 2324.77,-561.192 2317.88,-559.949"/>
+<g id="edge89" class="edge"><title>Node2&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1977.81,-562.737C2002.48,-534.427 2051.03,-473.15 2069,-411 2072.83,-397.764 2074.11,-392.795 2069,-380 2061.91,-362.252 2045.29,-347.175 2033.6,-338.233"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1975.01,-560.627 1970.98,-570.429 1980.24,-565.274 1975.01,-560.627"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
 <g id="a_node5"><a xlink:href="type__relation_8h.html" target="_top" xlink:title="Type relation and function for type inference(checking). ">
-<polygon fill="white" stroke="black" points="2343.5,-246.5 2343.5,-276.5 2448.5,-276.5 2448.5,-246.5 2343.5,-246.5"/>
-<text text-anchor="start" x="2351.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type</text>
-<text text-anchor="middle" x="2396" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_relation.h</text>
+<polygon fill="white" stroke="black" points="2136.5,-246.5 2136.5,-276.5 2241.5,-276.5 2241.5,-246.5 2136.5,-246.5"/>
+<text text-anchor="start" x="2144.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type</text>
+<text text-anchor="middle" x="2189" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_relation.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node5 -->
-<g id="edge97" class="edge"><title>Node2&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M2328.14,-561.253C2332.63,-553.076 2337.84,-543.17 2342,-534 2359.1,-496.346 2357.06,-484.263 2375,-447 2398.08,-399.061 2421.95,-395.314 2436,-344 2439.64,-330.712 2440.53,-326.012 2436,-313 2431.15,-299.057 2420.66,-286.066 2411.65,-276.753"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2324.96,-559.769 2323.12,-570.204 2331.06,-563.191 2324.96,-559.769"/>
+<g id="edge92" class="edge"><title>Node2&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M2029.28,-567.958C2053.08,-561.322 2078.76,-550.761 2098,-534 2130.52,-505.665 2119.08,-484.148 2141,-447 2150.9,-430.223 2158.77,-429.088 2166,-411 2184.69,-364.247 2188.27,-303.585 2188.9,-276.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2028.37,-564.578 2019.57,-570.483 2030.13,-571.353 2028.37,-564.578"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node"><title>Node6</title>
 <g id="a_node6"><a xlink:href="ir_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics) and registry for them. ">
-<polygon fill="white" stroke="red" points="2087.5,-190.5 2087.5,-209.5 2192.5,-209.5 2192.5,-190.5 2087.5,-190.5"/>
-<text text-anchor="middle" x="2140" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/op.h</text>
+<polygon fill="white" stroke="red" points="1941.5,-190.5 1941.5,-209.5 2046.5,-209.5 2046.5,-190.5 1941.5,-190.5"/>
+<text text-anchor="middle" x="1994" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node6 -->
-<g id="edge95" class="edge"><title>Node2&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M2311.27,-560.525C2295.12,-516.767 2252.25,-403.67 2208,-313 2192.99,-282.234 2187.95,-275.15 2170,-246 2162.02,-233.048 2152.13,-218.468 2145.94,-209.507"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2308.05,-561.918 2314.78,-570.1 2314.62,-559.507 2308.05,-561.918"/>
+<g id="edge90" class="edge"><title>Node2&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M1985.37,-564.772C1997.29,-556.592 2011.76,-545.645 2023,-534 2085.61,-469.145 2087.99,-433.947 2094,-344 2094.92,-330.253 2099.76,-325.517 2094,-313 2083.73,-290.664 2068.88,-294.871 2052,-277 2030.8,-254.56 2009.79,-224.608 1999.88,-209.906"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1983.23,-561.993 1976.86,-570.455 1987.12,-567.816 1983.23,-561.993"/>
 </g>
-<!-- Node9 -->
-<g id="node9" class="node"><title>Node9</title>
-<g id="a_node9"><a xlink:href="relay_2type_8h.html" target="_top" xlink:title="Relay typed AST nodes. ">
-<polygon fill="white" stroke="red" points="2336.5,-190.5 2336.5,-209.5 2467.5,-209.5 2467.5,-190.5 2336.5,-190.5"/>
-<text text-anchor="middle" x="2402" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/type.h</text>
+<!-- Node7 -->
+<g id="node7" class="node"><title>Node7</title>
+<g id="a_node7"><a xlink:href="relay_2type_8h.html" target="_top" xlink:title="Relay typed AST nodes. ">
+<polygon fill="white" stroke="red" points="2204.5,-190.5 2204.5,-209.5 2335.5,-209.5 2335.5,-190.5 2204.5,-190.5"/>
+<text text-anchor="middle" x="2270" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/type.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node9 -->
-<g id="edge98" class="edge"><title>Node2&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2368.13,-567.802C2413.57,-554.705 2477.88,-528.117 2508,-478 2523.65,-451.961 2557.94,-366.445 2477,-246 2465.23,-228.481 2444.13,-216.72 2427.3,-209.629"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2367.17,-564.438 2358.46,-570.471 2369.03,-571.186 2367.17,-564.438"/>
+<!-- Node2&#45;&gt;Node7 -->
+<g id="edge93" class="edge"><title>Node2&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M2030.6,-577.495C2167.79,-572.601 2466,-551.806 2466,-463.5 2466,-463.5 2466,-463.5 2466,-327.5 2466,-256.423 2373.88,-223.348 2315.95,-209.574"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2030.09,-574.01 2020.21,-577.846 2030.32,-581.006 2030.09,-574.01"/>
 </g>
-<!-- Node10 -->
-<g id="node10" class="node"><title>Node10</title>
-<g id="a_node10"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
-<polygon fill="white" stroke="red" points="1742.5,-514.5 1742.5,-533.5 1855.5,-533.5 1855.5,-514.5 1742.5,-514.5"/>
-<text text-anchor="middle" x="1799" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/expr.h</text>
+<!-- Node9 -->
+<g id="node9" class="node"><title>Node9</title>
+<g id="a_node9"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
+<polygon fill="white" stroke="red" points="1621.5,-514.5 1621.5,-533.5 1734.5,-533.5 1734.5,-514.5 1621.5,-514.5"/>
+<text text-anchor="middle" x="1678" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/expr.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node10 -->
-<g id="edge13" class="edge"><title>Node2&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M2250.99,-572.028C2147.9,-561.302 1952.23,-540.943 1855.73,-530.902"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2250.66,-575.513 2260.97,-573.067 2251.39,-568.55 2250.66,-575.513"/>
+<!-- Node2&#45;&gt;Node9 -->
+<g id="edge9" class="edge"><title>Node2&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1907.78,-568.537C1853.92,-558.332 1773,-542.999 1722.95,-533.516"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1907.36,-572.021 1917.84,-570.444 1908.67,-565.143 1907.36,-572.021"/>
 </g>
 <!-- Node26 -->
 <g id="node26" class="node"><title>Node26</title>
 <g id="a_node26"><a xlink:href="tensor__type_8h.html" target="_top" xlink:title="Polymorphic tensor types. ">
-<polygon fill="white" stroke="black" points="2384.5,-447.5 2384.5,-477.5 2499.5,-477.5 2499.5,-447.5 2384.5,-447.5"/>
-<text text-anchor="start" x="2392.5" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/tensor</text>
-<text text-anchor="middle" x="2442" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type.h</text>
+<polygon fill="white" stroke="black" points="2150.5,-447.5 2150.5,-477.5 2265.5,-477.5 2265.5,-447.5 2150.5,-447.5"/>
+<text text-anchor="start" x="2158.5" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/tensor</text>
+<text text-anchor="middle" x="2208" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node26 -->
-<g id="edge96" class="edge"><title>Node2&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M2336.29,-563.65C2346.37,-555.074 2359.02,-544.108 2370,-534 2390.72,-514.922 2413.86,-491.957 2428.17,-477.539"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2333.9,-561.089 2328.52,-570.22 2338.42,-566.432 2333.9,-561.089"/>
+<g id="edge91" class="edge"><title>Node2&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M2030.47,-569.853C2063.79,-563.296 2103.68,-552.275 2136,-534 2161.58,-519.532 2184.6,-493.692 2197.39,-477.636"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2029.53,-566.467 2020.35,-571.748 2030.82,-573.347 2029.53,-566.467"/>
 </g>
 <!-- Node36 -->
 <g id="node36" class="node"><title>Node36</title>
 <g id="a_node36"><a xlink:href="tir_2op_8h.html" target="_top" xlink:title="Common operators defined for Expr. ">
-<polygon fill="white" stroke="black" points="764.5,-319 764.5,-338 873.5,-338 873.5,-319 764.5,-319"/>
-<text text-anchor="middle" x="819" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/op.h</text>
+<polygon fill="white" stroke="black" points="1160.5,-319 1160.5,-338 1269.5,-338 1269.5,-319 1160.5,-319"/>
+<text text-anchor="middle" x="1215" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node36 -->
-<g id="edge99" class="edge"><title>Node2&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M2250.75,-575.883C2141.73,-570.368 1919.79,-557.225 1733,-534 1587.55,-515.915 1549.96,-514.469 1408,-478 1278.67,-444.777 1253.43,-412.799 1124,-380 1037.63,-358.114 935.03,-343.378 873.561,-335.721"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2250.78,-579.388 2260.94,-576.392 2251.13,-572.397 2250.78,-579.388"/>
+<g id="edge94" class="edge"><title>Node2&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M1895.8,-576.346C1807.81,-571.864 1659.2,-560.536 1612,-534 1535.64,-491.071 1564.15,-425.003 1489,-380 1452.79,-358.318 1338.64,-342.731 1269.62,-335.003"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1895.8,-579.85 1905.96,-576.847 1896.14,-572.859 1895.8,-579.85"/>
 </g>
 <!-- Node3&#45;&gt;Node4 -->
 <g id="edge3" class="edge"><title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M2585.69,-448.03C2534.73,-420.905 2421.03,-360.387 2379.01,-338.021"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2584.26,-451.23 2594.73,-452.839 2587.55,-445.051 2584.26,-451.23"/>
+<path fill="none" stroke="midnightblue" d="M2003.34,-449.162C2021.59,-441.336 2041.42,-429.172 2052,-411 2066.47,-386.145 2042.39,-353.29 2029.01,-338.002"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2002,-445.929 1993.99,-452.869 2004.58,-452.436 2002,-445.929"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node"><title>Node8</title>
 <g id="a_node8"><a xlink:href="relay_2adt_8h.html" target="_top" xlink:title="Algebraic data types for Relay. ">
-<polygon fill="white" stroke="red" points="1983,-62 1983,-81 2109,-81 2109,-62 1983,-62"/>
-<text text-anchor="middle" x="2046" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/adt.h</text>
+<polygon fill="white" stroke="red" points="1997,-129 1997,-148 2123,-148 2123,-129 1997,-129"/>
+<text text-anchor="middle" x="2060" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node8 -->
-<g id="edge12" class="edge"><title>Node3&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M2629.1,-445.929C2653.52,-423.079 2694,-377.899 2694,-329.5 2694,-329.5 2694,-329.5 2694,-199 2694,-80.5795 2271.86,-70.9109 2109.02,-71.5865"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2626.58,-443.488 2621.51,-452.794 2631.27,-448.678 2626.58,-443.488"/>
+<g id="edge8" class="edge"><title>Node3&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1924.15,-449.291C1904.85,-441.323 1882.78,-428.994 1869,-411 1846.39,-381.468 1850,-366.694 1850,-329.5 1850,-329.5 1850,-329.5 1850,-260.5 1850,-190.757 1938.03,-160.602 2000.1,-148.008"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1923.05,-452.618 1933.64,-452.963 1925.57,-446.09 1923.05,-452.618"/>
 </g>
 <!-- Node4&#45;&gt;Node5 -->
 <g id="edge4" class="edge"><title>Node4&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M2372.03,-309.713C2377.32,-299.287 2383.92,-286.301 2388.85,-276.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2368.86,-308.233 2367.45,-318.734 2375.1,-311.402 2368.86,-308.233"/>
-</g>
-<!-- Node7 -->
-<g id="node7" class="node"><title>Node7</title>
-<g id="a_node7"><a xlink:href="relay_2expr_8h.html" target="_top" xlink:title="Relay expression language. ">
-<polygon fill="white" stroke="red" points="1980.5,-129 1980.5,-148 2111.5,-148 2111.5,-129 1980.5,-129"/>
-<text text-anchor="middle" x="2046" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/expr.h</text>
-</a>
-</g>
-</g>
-<!-- Node4&#45;&gt;Node7 -->
-<g id="edge11" class="edge"><title>Node4&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M2348.71,-310.831C2333.54,-293.622 2308.44,-266.473 2284,-246 2249.89,-217.426 2240.99,-209.526 2201,-190 2161.83,-170.875 2113.7,-156.485 2081.56,-148.054"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2346.47,-313.591 2355.68,-318.836 2351.75,-308.995 2346.47,-313.591"/>
+<path fill="none" stroke="midnightblue" d="M2052.78,-315.202C2081.25,-304.188 2122.98,-288.042 2152.74,-276.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2051.37,-311.996 2043.31,-318.869 2053.9,-318.524 2051.37,-311.996"/>
 </g>
 <!-- Node5&#45;&gt;Node6 -->
 <g id="edge5" class="edge"><title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M2333.4,-245.949C2284.36,-234.552 2217.81,-219.085 2176.94,-209.586"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2332.73,-249.389 2343.27,-248.244 2334.32,-242.571 2332.73,-249.389"/>
+<path fill="none" stroke="midnightblue" d="M2132.83,-243.36C2096.55,-232.292 2050.92,-218.367 2022.09,-209.571"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2132.2,-246.828 2142.79,-246.399 2134.24,-240.133 2132.2,-246.828"/>
 </g>
-<!-- Node5&#45;&gt;Node9 -->
-<g id="edge8" class="edge"><title>Node5&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2398.44,-236.289C2399.39,-226.857 2400.42,-216.655 2401.13,-209.658"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2394.94,-236.099 2397.42,-246.399 2401.91,-236.801 2394.94,-236.099"/>
-</g>
-<!-- Node6&#45;&gt;Node7 -->
-<g id="edge6" class="edge"><title>Node6&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M2117.77,-184.93C2099.65,-173.459 2074.65,-157.634 2059.44,-148.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2116.21,-188.084 2126.53,-190.475 2119.95,-182.169 2116.21,-188.084"/>
+<!-- Node5&#45;&gt;Node7 -->
+<g id="edge6" class="edge"><title>Node5&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M2216.65,-240.189C2230.83,-229.772 2247.36,-217.633 2258.21,-209.658"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2214.18,-237.658 2208.2,-246.399 2218.33,-243.3 2214.18,-237.658"/>
 </g>
 <!-- Node7&#45;&gt;Node8 -->
 <g id="edge7" class="edge"><title>Node7&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M2046,-118.537C2046,-106.17 2046,-90.6198 2046,-81.1273"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2042.5,-118.734 2046,-128.734 2049.5,-118.734 2042.5,-118.734"/>
-</g>
-<!-- Node9&#45;&gt;Node7 -->
-<g id="edge10" class="edge"><title>Node9&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M2340.73,-188.759C2271.84,-177.246 2161.24,-158.76 2096.91,-148.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2340.55,-192.279 2350.99,-190.475 2341.71,-185.374 2340.55,-192.279"/>
-</g>
-<!-- Node9&#45;&gt;Node8 -->
-<g id="edge9" class="edge"><title>Node9&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M2367.96,-186.904C2296.46,-161.497 2132.16,-103.116 2070.22,-81.1072"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2367.22,-190.354 2377.81,-190.405 2369.56,-183.758 2367.22,-190.354"/>
-</g>
-<!-- Node10&#45;&gt;Node3 -->
-<g id="edge31" class="edge"><title>Node10&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1865.89,-520.462C1991.81,-515.304 2272.59,-502.005 2508,-478 2523.72,-476.397 2540.73,-474.196 2556.3,-471.993"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1865.49,-516.975 1855.64,-520.877 1865.78,-523.969 1865.49,-516.975"/>
-</g>
-<!-- Node10&#45;&gt;Node4 -->
-<g id="edge44" class="edge"><title>Node10&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1865.64,-515.884C1956.02,-504.153 2120.55,-475.312 2246,-411 2288.3,-389.317 2332.96,-354.315 2352.65,-338.169"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1865.01,-512.436 1855.53,-517.165 1865.89,-519.381 1865.01,-512.436"/>
-</g>
-<!-- Node10&#45;&gt;Node6 -->
-<g id="edge45" class="edge"><title>Node10&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M1865.89,-516.032C1921.43,-509.043 1994.94,-496.623 2018,-478 2109.37,-404.216 2134.19,-248.133 2139.02,-209.692"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1865.24,-512.585 1855.74,-517.274 1866.09,-519.533 1865.24,-512.585"/>
-</g>
-<!-- Node10&#45;&gt;Node7 -->
-<g id="edge48" class="edge"><title>Node10&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1865.63,-517.581C1895.97,-511.921 1930.31,-500.578 1954,-478 2053.85,-382.839 2049.03,-191.087 2046.59,-148.158"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1864.8,-514.173 1855.52,-519.291 1865.96,-521.075 1864.8,-514.173"/>
+<path fill="none" stroke="midnightblue" d="M2230.03,-187.676C2189.23,-176.114 2126.81,-158.429 2090.03,-148.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2229.34,-191.116 2239.91,-190.475 2231.24,-184.382 2229.34,-191.116"/>
 </g>
-<!-- Node11 -->
-<g id="node11" class="node"><title>Node11</title>
-<g id="a_node11"><a xlink:href="analyzer_8h.html" target="_top" xlink:title="Algebra expression simplifications. ">
-<polygon fill="white" stroke="black" points="1392.5,-319 1392.5,-338 1541.5,-338 1541.5,-319 1392.5,-319"/>
-<text text-anchor="middle" x="1467" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/analyzer.h</text>
+<!-- Node9&#45;&gt;Node3 -->
+<g id="edge28" class="edge"><title>Node9&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M1728.84,-512.434C1772.62,-503.33 1837.48,-489.827 1894,-478 1903.23,-476.07 1913.14,-473.989 1922.5,-472.022"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1728.09,-509.015 1719.01,-514.478 1729.51,-515.869 1728.09,-509.015"/>
+</g>
+<!-- Node9&#45;&gt;Node4 -->
+<g id="edge40" class="edge"><title>Node9&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1742.34,-512.52C1776.79,-505.471 1819.35,-494.41 1855,-478 1876.73,-467.998 1877.5,-457.486 1899,-447 1948.66,-422.778 1984.26,-454.756 2018,-411 2034.6,-389.473 2027.99,-354.393 2023.64,-338.198"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1741.52,-509.114 1732.39,-514.491 1742.88,-515.981 1741.52,-509.114"/>
+</g>
+<!-- Node9&#45;&gt;Node6 -->
+<g id="edge41" class="edge"><title>Node9&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M1693.79,-506.905C1750.44,-449.183 1942.31,-253.67 1985.37,-209.79"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1690.96,-504.798 1686.45,-514.387 1695.95,-509.701 1690.96,-504.798"/>
+</g>
+<!-- Node10 -->
+<g id="node10" class="node"><title>Node10</title>
+<g id="a_node10"><a xlink:href="analyzer_8h.html" target="_top" xlink:title="Algebra expression simplifications. ">
+<polygon fill="white" stroke="black" points="1401.5,-319 1401.5,-338 1550.5,-338 1550.5,-319 1401.5,-319"/>
+<text text-anchor="middle" x="1476" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/analyzer.h</text>
 </a>
 </g>
 </g>
-<!-- Node10&#45;&gt;Node11 -->
-<g id="edge14" class="edge"><title>Node10&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1787.1,-505.651C1763.23,-471.319 1709.5,-396.594 1683,-380 1640.57,-353.429 1585.53,-340.821 1541.63,-334.848"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1784.43,-507.945 1793,-514.182 1790.19,-503.965 1784.43,-507.945"/>
+<!-- Node9&#45;&gt;Node10 -->
+<g id="edge10" class="edge"><title>Node9&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1661.63,-507.318C1621.08,-468.479 1516.99,-368.769 1485.3,-338.407"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1659.42,-510.046 1669.06,-514.436 1664.26,-504.991 1659.42,-510.046"/>
 </g>
-<!-- Node14 -->
-<g id="node14" class="node"><title>Node14</title>
-<g id="a_node14"><a xlink:href="bound_8h.html" target="_top" xlink:title="Bound deducers. ">
-<polygon fill="white" stroke="black" points="1235.5,-319 1235.5,-338 1374.5,-338 1374.5,-319 1235.5,-319"/>
-<text text-anchor="middle" x="1305" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/bound.h</text>
+<!-- Node13 -->
+<g id="node13" class="node"><title>Node13</title>
+<g id="a_node13"><a xlink:href="bound_8h.html" target="_top" xlink:title="Bound deducers. ">
+<polygon fill="white" stroke="black" points="964.5,-319 964.5,-338 1103.5,-338 1103.5,-319 964.5,-319"/>
+<text text-anchor="middle" x="1034" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/bound.h</text>
 </a>
 </g>
 </g>
-<!-- Node10&#45;&gt;Node14 -->
-<g id="edge17" class="edge"><title>Node10&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1732.35,-523.089C1637.85,-519.817 1464.09,-500.862 1353,-411 1328.23,-390.965 1313.44,-354.492 1307.72,-338"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1732.25,-526.587 1742.35,-523.387 1732.46,-519.591 1732.25,-526.587"/>
+<!-- Node9&#45;&gt;Node13 -->
+<g id="edge13" class="edge"><title>Node9&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1638.7,-511.53C1607.78,-502.485 1563.62,-489.519 1525,-478 1348.56,-425.371 1136.86,-360.892 1061.93,-338.03"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1638.07,-514.993 1648.65,-514.44 1640.03,-508.274 1638.07,-514.993"/>
 </g>
 <!-- Node20 -->
 <g id="node20" class="node"><title>Node20</title>
 <g id="a_node20"><a xlink:href="int__set_8h.html" target="_top" xlink:title="Integer set. ">
-<polygon fill="white" stroke="black" points="1362,-380.5 1362,-410.5 1474,-410.5 1474,-380.5 1362,-380.5"/>
-<text text-anchor="start" x="1370" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
-<text text-anchor="middle" x="1418" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">_set.h</text>
+<polygon fill="white" stroke="black" points="1368,-380.5 1368,-410.5 1480,-410.5 1480,-380.5 1368,-380.5"/>
+<text text-anchor="start" x="1376" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
+<text text-anchor="middle" x="1424" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">_set.h</text>
 </a>
 </g>
 </g>
-<!-- Node10&#45;&gt;Node20 -->
-<g id="edge27" class="edge"><title>Node10&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1758.09,-511.655C1727.16,-502.913 1683.73,-490.28 1646,-478 1578.25,-455.947 1500.26,-427.368 1455.3,-410.573"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1757.5,-515.125 1768.07,-514.465 1759.39,-508.386 1757.5,-515.125"/>
+<!-- Node9&#45;&gt;Node20 -->
+<g id="edge24" class="edge"><title>Node9&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1651.37,-509.739C1603.2,-485.746 1501.98,-435.334 1452.48,-410.682"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1650.03,-512.98 1660.54,-514.305 1653.15,-506.714 1650.03,-512.98"/>
 </g>
 <!-- Node21 -->
 <g id="node21" class="node"><title>Node21</title>
 <g id="a_node21"><a xlink:href="pattern_8h.html" target="_top" xlink:title="Expression pattern detectors. ">
-<polygon fill="white" stroke="black" points="1530,-386 1530,-405 1674,-405 1674,-386 1530,-386"/>
-<text text-anchor="middle" x="1602" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/pattern.h</text>
+<polygon fill="white" stroke="black" points="142,-386 142,-405 286,-405 286,-386 142,-386"/>
+<text text-anchor="middle" x="214" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/pattern.h</text>
 </a>
 </g>
 </g>
-<!-- Node10&#45;&gt;Node21 -->
-<g id="edge30" class="edge"><title>Node10&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1760.01,-511.209C1737.91,-503.563 1710.29,-492.346 1688,-478 1654.79,-456.626 1623.02,-421.469 1609.21,-405.227"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1759.15,-514.612 1769.75,-514.47 1761.38,-507.974 1759.15,-514.612"/>
+<!-- Node9&#45;&gt;Node21 -->
+<g id="edge27" class="edge"><title>Node9&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1611.2,-521.375C1431.87,-516.71 948.876,-502.05 881,-478 858.793,-470.132 860.166,-454.984 838,-447 725.267,-406.395 419.005,-424.978 300,-411 286.767,-409.446 272.469,-407.246 259.403,-405.03"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1611.21,-524.876 1621.3,-521.635 1611.39,-517.878 1611.21,-524.876"/>
 </g>
 <!-- Node22 -->
 <g id="node22" class="node"><title>Node22</title>
 <g id="a_node22"><a xlink:href="ir_2attrs_8h.html" target="_top" xlink:title="Helpers for attribute objects. ">
-<polygon fill="white" stroke="red" points="1829,-453 1829,-472 1945,-472 1945,-453 1829,-453"/>
-<text text-anchor="middle" x="1887" y="-460" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/attrs.h</text>
+<polygon fill="white" stroke="red" points="2284,-453 2284,-472 2400,-472 2400,-453 2284,-453"/>
+<text text-anchor="middle" x="2342" y="-460" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/attrs.h</text>
 </a>
 </g>
 </g>
-<!-- Node10&#45;&gt;Node22 -->
-<g id="edge32" class="edge"><title>Node10&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1820.28,-508.613C1837.2,-497.169 1860.31,-481.546 1874.42,-472.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1817.93,-505.974 1811.61,-514.475 1821.85,-511.773 1817.93,-505.974"/>
+<!-- Node9&#45;&gt;Node22 -->
+<g id="edge29" class="edge"><title>Node9&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1744.56,-520.901C1855.03,-516.762 2083.01,-505.445 2274,-478 2284.63,-476.472 2296.09,-474.254 2306.52,-472.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1744.43,-517.403 1734.56,-521.267 1744.69,-524.398 1744.43,-517.403"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node"><title>Node23</title>
 <g id="a_node23"><a xlink:href="ir_2function_8h.html" target="_top" xlink:title="Function nodes. ">
-<polygon fill="white" stroke="red" points="1730.5,-386 1730.5,-405 1861.5,-405 1861.5,-386 1730.5,-386"/>
-<text text-anchor="middle" x="1796" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/function.h</text>
+<polygon fill="white" stroke="red" points="1878.5,-386 1878.5,-405 2009.5,-405 2009.5,-386 1878.5,-386"/>
+<text text-anchor="middle" x="1944" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/function.h</text>
 </a>
 </g>
 </g>
-<!-- Node10&#45;&gt;Node23 -->
-<g id="edge43" class="edge"><title>Node10&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M1798.56,-504.306C1797.9,-476.576 1796.69,-425.628 1796.21,-405.256"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1795.06,-504.391 1798.79,-514.305 1802.06,-504.225 1795.06,-504.391"/>
+<!-- Node9&#45;&gt;Node23 -->
+<g id="edge39" class="edge"><title>Node9&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1723.12,-511.758C1751.14,-503.99 1787.49,-492.461 1818,-478 1818.38,-477.822 1898.16,-426.174 1930.56,-405.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1721.94,-508.452 1713.2,-514.448 1723.77,-515.208 1721.94,-508.452"/>
+</g>
+<!-- Node9&#45;&gt;Node26 -->
+<g id="edge42" class="edge"><title>Node9&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M1744.88,-515.492C1849.88,-503.704 2051.6,-481.059 2150.49,-469.957"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1744.27,-512.039 1734.72,-516.632 1745.05,-518.995 1744.27,-512.039"/>
+</g>
+<!-- Node9&#45;&gt;Node27 -->
+<g id="edge44" class="edge"><title>Node9&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M1611.13,-517.542C1469.55,-505.986 1141.54,-479.215 1007.58,-468.281"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1611.15,-521.055 1621.4,-518.381 1611.72,-514.079 1611.15,-521.055"/>
 </g>
-<!-- Node10&#45;&gt;Node26 -->
-<g id="edge46" class="edge"><title>Node10&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1865.86,-517.071C1960.99,-508.602 2140.86,-492.462 2294,-478 2323.82,-475.184 2357,-471.943 2384.38,-469.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1865.45,-513.594 1855.8,-517.966 1866.07,-520.566 1865.45,-513.594"/>
+<!-- Node11 -->
+<g id="node11" class="node"><title>Node11</title>
+<g id="a_node11"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
+<polygon fill="white" stroke="red" points="1074.5,-129 1074.5,-148 1217.5,-148 1217.5,-129 1074.5,-129"/>
+<text text-anchor="middle" x="1146" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
+</a>
 </g>
-<!-- Node10&#45;&gt;Node27 -->
-<g id="edge49" class="edge"><title>Node10&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1732.14,-518.962C1549.65,-507.938 1045.12,-477.461 872.676,-467.044"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1731.95,-522.456 1742.15,-519.566 1732.37,-515.469 1731.95,-522.456"/>
+</g>
+<!-- Node10&#45;&gt;Node11 -->
+<g id="edge11" class="edge"><title>Node10&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1476.99,-308.521C1477.44,-278.618 1473.55,-220.781 1440,-190 1408.33,-160.939 1294.11,-148.333 1217.72,-143.061"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1473.49,-308.712 1476.65,-318.824 1480.48,-308.947 1473.49,-308.712"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node"><title>Node12</title>
-<g id="a_node12"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
-<polygon fill="white" stroke="red" points="832.5,-129 832.5,-148 975.5,-148 975.5,-129 832.5,-129"/>
-<text text-anchor="middle" x="904" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
+<g id="a_node12"><a xlink:href="topi_2include_2topi_2nn_8h.html" target="_top" xlink:title="NN op constructions. ">
+<polygon fill="white" stroke="red" points="389,-0.5 389,-19.5 505,-19.5 505,-0.5 389,-0.5"/>
+<text text-anchor="middle" x="447" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
 </a>
 </g>
 </g>
 <!-- Node11&#45;&gt;Node12 -->
-<g id="edge15" class="edge"><title>Node11&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1447.03,-312.394C1407.77,-283.525 1316.78,-220.668 1230,-190 1145.76,-160.23 1043.13,-147.99 975.807,-142.969"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1445.33,-315.493 1455.45,-318.648 1449.51,-309.874 1445.33,-315.493"/>
+<g id="edge12" class="edge"><title>Node11&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1134.03,-120.596C1119.16,-101.139 1091.84,-70.062 1060,-56 961.655,-12.5636 638.348,-9.62623 505.147,-10.3442"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1131.36,-122.885 1140.12,-128.852 1137,-118.728 1131.36,-122.885"/>
 </g>
-<!-- Node13 -->
-<g id="node13" class="node"><title>Node13</title>
-<g id="a_node13"><a xlink:href="topi_2include_2topi_2nn_8h.html" target="_top" xlink:title="NN op constructions. ">
-<polygon fill="white" stroke="red" points="341,-0.5 341,-19.5 457,-19.5 457,-0.5 341,-0.5"/>
-<text text-anchor="middle" x="399" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
+<!-- Node14 -->
+<g id="node14" class="node"><title>Node14</title>
+<g id="a_node14"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
+<polygon fill="white" stroke="red" points="926.5,-252 926.5,-271 1053.5,-271 1053.5,-252 926.5,-252"/>
+<text text-anchor="middle" x="990" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
 </a>
 </g>
 </g>
-<!-- Node12&#45;&gt;Node13 -->
-<g id="edge16" class="edge"><title>Node12&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M879.805,-123.99C845.704,-105.579 781.057,-72.9645 722,-56 631.667,-30.0512 522.673,-18.8335 457.201,-14.1533"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="878.522,-127.277 888.976,-128.998 881.877,-121.133 878.522,-127.277"/>
+<!-- Node13&#45;&gt;Node14 -->
+<g id="edge14" class="edge"><title>Node13&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1022.43,-310.404C1013.88,-297.773 1002.59,-281.104 995.84,-271.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1019.56,-312.415 1028.07,-318.734 1025.36,-308.491 1019.56,-312.415"/>
+</g>
+<!-- Node14&#45;&gt;Node11 -->
+<g id="edge16" class="edge"><title>Node14&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1009.21,-245.602C1042.19,-220.023 1108.56,-168.537 1134.88,-148.123"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1006.98,-242.903 1001.22,-251.798 1011.27,-248.435 1006.98,-242.903"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node"><title>Node15</title>
-<g id="a_node15"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
-<polygon fill="white" stroke="red" points="1060.5,-252 1060.5,-271 1187.5,-271 1187.5,-252 1060.5,-252"/>
-<text text-anchor="middle" x="1124" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
+<g id="a_node15"><a xlink:href="autodiff_8h.html" target="_top" xlink:title="Automatic differentiation of tensor expressions. ">
+<polygon fill="white" stroke="black" points="850.5,-190.5 850.5,-209.5 983.5,-209.5 983.5,-190.5 850.5,-190.5"/>
+<text text-anchor="middle" x="917" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
 </a>
 </g>
 </g>
 <!-- Node14&#45;&gt;Node15 -->
-<g id="edge18" class="edge"><title>Node14&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1271.41,-315.436C1235.5,-302.542 1179.48,-282.424 1147.85,-271.064"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1270.37,-318.783 1280.96,-318.869 1272.74,-312.195 1270.37,-318.783"/>
-</g>
-<!-- Node15&#45;&gt;Node12 -->
-<g id="edge19" class="edge"><title>Node15&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1099.65,-247.106C1054.2,-222.111 957.655,-169.01 919.747,-148.161"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1098.08,-250.239 1108.53,-251.992 1101.45,-244.106 1098.08,-250.239"/>
+<g id="edge15" class="edge"><title>Node14&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M971.563,-245.473C957.601,-234.093 938.924,-218.869 927.44,-209.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="969.578,-248.37 979.541,-251.975 974.001,-242.944 969.578,-248.37"/>
 </g>
 <!-- Node16 -->
 <g id="node16" class="node"><title>Node16</title>
 <g id="a_node16"><a xlink:href="schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
-<polygon fill="white" stroke="red" points="736,-190.5 736,-209.5 876,-209.5 876,-190.5 736,-190.5"/>
-<text text-anchor="middle" x="806" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
+<polygon fill="white" stroke="red" points="687,-190.5 687,-209.5 827,-209.5 827,-190.5 687,-190.5"/>
+<text text-anchor="middle" x="757" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
 </a>
 </g>
 </g>
-<!-- Node15&#45;&gt;Node16 -->
-<g id="edge20" class="edge"><title>Node15&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1071.55,-249.986C1064.64,-248.63 1057.65,-247.271 1051,-246 982.399,-232.888 902.847,-218.41 853.464,-209.508"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1071.07,-253.46 1081.56,-251.962 1072.43,-246.593 1071.07,-253.46"/>
+<!-- Node14&#45;&gt;Node16 -->
+<g id="edge17" class="edge"><title>Node14&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M946.801,-249.468C901.557,-237.915 831.471,-220.017 790.321,-209.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="946.062,-252.892 956.617,-251.975 947.794,-246.11 946.062,-252.892"/>
 </g>
-<!-- Node16&#45;&gt;Node12 -->
-<g id="edge21" class="edge"><title>Node16&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M828.657,-185.244C847.589,-173.75 873.986,-157.723 889.985,-148.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="826.772,-182.294 820.041,-190.475 830.405,-188.277 826.772,-182.294"/>
+<!-- Node16&#45;&gt;Node11 -->
+<g id="edge18" class="edge"><title>Node16&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M823.028,-188.901C898.231,-177.398 1019.79,-158.804 1090.37,-148.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="822.09,-185.503 812.734,-190.475 823.148,-192.423 822.09,-185.503"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node"><title>Node17</title>
 <g id="a_node17"><a xlink:href="ir__pass_8h.html" target="_top" xlink:title="Collection of IR pass functions. ">
-<polygon fill="white" stroke="red" points="312,-123.5 312,-153.5 406,-153.5 406,-123.5 312,-123.5"/>
-<text text-anchor="start" x="320" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/ir</text>
-<text text-anchor="middle" x="359" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pass.h</text>
+<polygon fill="white" stroke="red" points="356,-123.5 356,-153.5 450,-153.5 450,-123.5 356,-123.5"/>
+<text text-anchor="start" x="364" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/ir</text>
+<text text-anchor="middle" x="403" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pass.h</text>
 </a>
 </g>
 </g>
 <!-- Node16&#45;&gt;Node17 -->
-<g id="edge22" class="edge"><title>Node16&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M725.587,-192.049C647.842,-184.74 526.884,-171.819 423,-154 417.498,-153.056 411.757,-151.942 406.071,-150.758"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="725.511,-195.557 735.792,-192.999 726.16,-188.587 725.511,-195.557"/>
+<g id="edge19" class="edge"><title>Node16&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M684.056,-189.1C625.267,-180.78 540.569,-168.025 467,-154 461.516,-152.955 455.787,-151.778 450.107,-150.559"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="683.602,-192.571 693.992,-190.499 684.578,-185.639 683.602,-192.571"/>
 </g>
-<!-- Node17&#45;&gt;Node13 -->
-<g id="edge26" class="edge"><title>Node17&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M369.655,-113.933C373.223,-105.535 377.042,-95.9413 380,-87 387.946,-62.9835 394.376,-33.7461 397.298,-19.5526"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="366.433,-112.566 365.648,-123.132 372.851,-115.362 366.433,-112.566"/>
+<!-- Node17&#45;&gt;Node12 -->
+<g id="edge23" class="edge"><title>Node17&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M415.741,-114.393C420.047,-105.948 424.615,-96.2063 428,-87 436.73,-63.257 442.804,-33.8957 445.473,-19.6139"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="412.625,-112.799 411.069,-123.279 418.82,-116.057 412.625,-112.799"/>
 </g>
 <!-- Node18 -->
 <g id="node18" class="node"><title>Node18</title>
 <g id="a_node18"><a xlink:href="constant__utils_8h.html" target="_top" xlink:title="Utility functions for handling constants in TVM expressions. ">
-<polygon fill="white" stroke="red" points="249,-56.5 249,-86.5 371,-86.5 371,-56.5 249,-56.5"/>
-<text text-anchor="start" x="257" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="310" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">/constant_utils.h</text>
+<polygon fill="white" stroke="red" points="297,-56.5 297,-86.5 419,-86.5 419,-56.5 297,-56.5"/>
+<text text-anchor="start" x="305" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="358" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">/constant_utils.h</text>
 </a>
 </g>
 </g>
 <!-- Node17&#45;&gt;Node18 -->
-<g id="edge23" class="edge"><title>Node17&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M342.157,-115.157C335.012,-105.679 326.9,-94.9186 320.612,-86.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="339.553,-117.518 348.368,-123.396 345.143,-113.304 339.553,-117.518"/>
+<g id="edge20" class="edge"><title>Node17&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M387.532,-115.157C380.97,-105.679 373.521,-94.9186 367.745,-86.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="384.666,-117.166 393.236,-123.396 390.421,-113.182 384.666,-117.166"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node"><title>Node19</title>
 <g id="a_node19"><a xlink:href="elemwise_8h.html" target="_top" xlink:title="Elementwise op constructions. ">
-<polygon fill="white" stroke="red" points="451.5,-62 451.5,-81 600.5,-81 600.5,-62 451.5,-62"/>
-<text text-anchor="middle" x="526" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/elemwise.h</text>
+<polygon fill="white" stroke="red" points="528.5,-62 528.5,-81 677.5,-81 677.5,-62 528.5,-62"/>
+<text text-anchor="middle" x="603" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/elemwise.h</text>
 </a>
 </g>
 </g>
 <!-- Node17&#45;&gt;Node19 -->
-<g id="edge25" class="edge"><title>Node17&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M404.934,-119.621C437.258,-107.04 479.07,-90.7661 504.144,-81.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="403.286,-116.507 395.237,-123.396 405.825,-123.03 403.286,-116.507"/>
+<g id="edge22" class="edge"><title>Node17&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M456.019,-120.269C494.99,-107.603 546.279,-90.9344 576.825,-81.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="454.826,-116.976 446.397,-123.396 456.989,-123.634 454.826,-116.976"/>
 </g>
-<!-- Node18&#45;&gt;Node13 -->
-<g id="edge24" class="edge"><title>Node18&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M339.503,-50.7764C355.276,-40.2315 373.895,-27.7834 386.05,-19.6578"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="337.46,-47.9318 331.092,-56.3993 341.35,-53.7512 337.46,-47.9318"/>
+<!-- Node18&#45;&gt;Node12 -->
+<g id="edge21" class="edge"><title>Node18&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M387.503,-50.7764C403.276,-40.2315 421.895,-27.7834 434.05,-19.6578"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="385.46,-47.9318 379.092,-56.3993 389.35,-53.7512 385.46,-47.9318"/>
 </g>
-<!-- Node20&#45;&gt;Node11 -->
-<g id="edge28" class="edge"><title>Node20&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1434.72,-372.316C1443.56,-360.598 1453.9,-346.883 1460.45,-338.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1431.86,-370.304 1428.63,-380.396 1437.45,-374.518 1431.86,-370.304"/>
+<!-- Node20&#45;&gt;Node10 -->
+<g id="edge25" class="edge"><title>Node20&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1441.75,-372.316C1451.12,-360.598 1462.09,-346.883 1469.04,-338.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1438.8,-370.401 1435.28,-380.396 1444.26,-374.774 1438.8,-370.401"/>
 </g>
-<!-- Node20&#45;&gt;Node14 -->
-<g id="edge29" class="edge"><title>Node20&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1384.63,-375.307C1363.11,-362.926 1336.17,-347.43 1319.79,-338.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1383.07,-378.444 1393.48,-380.396 1386.56,-372.376 1383.07,-378.444"/>
+<!-- Node20&#45;&gt;Node13 -->
+<g id="edge26" class="edge"><title>Node20&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1357.82,-383.723C1295.83,-373.594 1200.61,-357.946 1118,-344 1106.76,-342.103 1094.69,-340.035 1083.29,-338.071"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1357.43,-387.205 1367.86,-385.363 1358.56,-380.296 1357.43,-387.205"/>
 </g>
 <!-- Node22&#45;&gt;Node5 -->
-<g id="edge39" class="edge"><title>Node22&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1945.26,-450.964C1987.32,-442.476 2045.09,-428.992 2094,-411 2185.03,-377.513 2201.8,-355.481 2289,-313 2314.67,-300.495 2344.01,-286.682 2365.46,-276.667"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1944.31,-447.582 1935.19,-452.961 1945.68,-454.449 1944.31,-447.582"/>
+<g id="edge36" class="edge"><title>Node22&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M2329.37,-444.805C2316.87,-428.309 2297.17,-402.37 2280,-380 2251.25,-342.545 2217.1,-298.596 2199.97,-276.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2326.68,-447.057 2335.51,-452.916 2332.26,-442.831 2326.68,-447.057"/>
 </g>
 <!-- Node22&#45;&gt;Node6 -->
-<g id="edge38" class="edge"><title>Node22&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M1904.72,-446.107C1915.73,-436.335 1930.01,-423.261 1942,-411 1982.51,-369.566 1988.38,-355.288 2028,-313 2065.23,-273.267 2111.87,-227.997 2131.09,-209.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1902.23,-443.636 1897.04,-452.869 1906.86,-448.891 1902.23,-443.636"/>
+<g id="edge35" class="edge"><title>Node22&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M2322.31,-446.762C2258.14,-398.729 2056.28,-247.623 2005.62,-209.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2320.32,-449.642 2330.42,-452.833 2324.51,-444.038 2320.32,-449.642"/>
 </g>
 <!-- Node22&#45;&gt;Node7 -->
-<g id="edge41" class="edge"><title>Node22&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1894.72,-443.305C1898.32,-433.856 1902.2,-422.011 1904,-411 1906.23,-397.403 1906.13,-393.613 1904,-380 1894.53,-319.401 1840.95,-299.468 1871,-246 1901.76,-191.278 1973.29,-161.388 2014.75,-148.101"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1891.39,-442.199 1890.91,-452.783 1897.89,-444.814 1891.39,-442.199"/>
+<g id="edge38" class="edge"><title>Node22&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M2336.9,-443.042C2322.62,-391.381 2282.63,-246.692 2272.4,-209.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2333.57,-444.127 2339.6,-452.833 2340.31,-442.262 2333.57,-444.127"/>
 </g>
 <!-- Node22&#45;&gt;Node8 -->
-<g id="edge40" class="edge"><title>Node22&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1884.38,-442.631C1881.74,-425.892 1877.05,-400.921 1870,-380 1851.52,-325.182 1814,-320.35 1814,-262.5 1814,-262.5 1814,-262.5 1814,-199 1814,-121.813 1914.21,-91.4437 1982.91,-79.6928"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1880.95,-443.375 1885.88,-452.754 1887.87,-442.349 1880.95,-443.375"/>
-</g>
-<!-- Node22&#45;&gt;Node9 -->
-<g id="edge42" class="edge"><title>Node22&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1955.05,-451.328C1996.45,-443.59 2049.71,-430.822 2094,-411 2212.15,-358.125 2226.69,-318.387 2334,-246 2353.01,-233.175 2375.19,-218.561 2388.92,-209.559"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1954.28,-447.911 1945.06,-453.141 1955.53,-454.799 1954.28,-447.911"/>
+<g id="edge37" class="edge"><title>Node22&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M2379.67,-449.556C2427.53,-431.747 2504,-393.309 2504,-329.5 2504,-329.5 2504,-329.5 2504,-260.5 2504,-182.503 2245.72,-153.096 2123.14,-143.531"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2378.45,-446.274 2370.22,-452.944 2380.81,-452.864 2378.45,-446.274"/>
 </g>
 <!-- Node22&#45;&gt;Node23 -->
-<g id="edge33" class="edge"><title>Node22&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M1866.59,-446.92C1848.6,-434.069 1822.99,-415.782 1808.08,-405.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1864.56,-449.769 1874.73,-452.734 1868.62,-444.073 1864.56,-449.769"/>
+<g id="edge30" class="edge"><title>Node22&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M2293.71,-450.841C2287.1,-449.487 2280.39,-448.169 2274,-447 2181.36,-430.049 2073.36,-414.27 2006.83,-405.005"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2293.45,-454.362 2303.96,-452.979 2294.88,-447.51 2293.45,-454.362"/>
 </g>
 <!-- Node23&#45;&gt;Node4 -->
-<g id="edge34" class="edge"><title>Node23&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1871.83,-385.807C1984.19,-372.926 2192.95,-348.995 2298.43,-336.902"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1871.13,-382.364 1861.6,-386.98 1871.93,-389.318 1871.13,-382.364"/>
+<g id="edge31" class="edge"><title>Node23&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1962.11,-379.213C1977.28,-366.407 1998.39,-348.588 2010.78,-338.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1959.77,-376.609 1954.38,-385.734 1964.28,-381.958 1959.77,-376.609"/>
 </g>
 <!-- Node24 -->
 <g id="node24" class="node"><title>Node24</title>
 <g id="a_node24"><a xlink:href="tir_2function_8h.html" target="_top" xlink:title="TIR Function. ">
-<polygon fill="white" stroke="black" points="410.5,-190.5 410.5,-209.5 545.5,-209.5 545.5,-190.5 410.5,-190.5"/>
-<text text-anchor="middle" x="478" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/function.h</text>
+<polygon fill="white" stroke="black" points="454.5,-190.5 454.5,-209.5 589.5,-209.5 589.5,-190.5 454.5,-190.5"/>
+<text text-anchor="middle" x="522" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/function.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node24 -->
-<g id="edge35" class="edge"><title>Node23&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M1764.05,-382.396C1717.51,-365.116 1628.11,-333.235 1550,-313 1394.99,-272.843 1354.88,-265.936 1196,-246 1071.38,-230.363 699.396,-211.521 545.65,-204.161"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1762.98,-385.735 1773.58,-385.953 1765.43,-379.177 1762.98,-385.735"/>
+<g id="edge32" class="edge"><title>Node23&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M1868.36,-389.663C1824.22,-386.842 1767.46,-383.216 1717,-380 1591.22,-371.983 1268.61,-389.289 1151,-344 1130.34,-336.043 1132.15,-322.172 1112,-313 1031.78,-276.495 1003.61,-293.326 917,-277 789.357,-252.938 638.677,-223.721 565.818,-209.542"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1868.24,-393.162 1878.44,-390.307 1868.68,-386.177 1868.24,-393.162"/>
 </g>
 <!-- Node24&#45;&gt;Node17 -->
-<g id="edge36" class="edge"><title>Node24&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M451.877,-185.938C432.693,-176.347 406.667,-163.334 387.046,-153.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="450.441,-189.133 460.95,-190.475 453.571,-182.872 450.441,-189.133"/>
+<g id="edge33" class="edge"><title>Node24&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M495.877,-185.938C476.693,-176.347 450.667,-163.334 431.046,-153.523"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="494.441,-189.133 504.95,-190.475 497.571,-182.872 494.441,-189.133"/>
 </g>
 <!-- Node25 -->
 <g id="node25" class="node"><title>Node25</title>
 <g id="a_node25"><a xlink:href="include_2tvm_2tir_2transform_8h.html" target="_top" xlink:title="TIR specific transformation passes. ">
-<polygon fill="white" stroke="black" points="432,-129 432,-148 576,-148 576,-129 432,-129"/>
-<text text-anchor="middle" x="504" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/transform.h</text>
+<polygon fill="white" stroke="black" points="476,-129 476,-148 620,-148 620,-129 476,-129"/>
+<text text-anchor="middle" x="548" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node25 -->
-<g id="edge37" class="edge"><title>Node24&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M485.867,-180.997C490.651,-170.05 496.539,-156.575 500.282,-148.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="482.522,-179.91 481.725,-190.475 488.937,-182.713 482.522,-179.91"/>
+<g id="edge34" class="edge"><title>Node24&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M529.867,-180.997C534.651,-170.05 540.539,-156.575 544.282,-148.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="526.522,-179.91 525.725,-190.475 532.937,-182.713 526.522,-179.91"/>
 </g>
-<!-- Node26&#45;&gt;Node9 -->
-<g id="edge47" class="edge"><title>Node26&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2450.78,-437.57C2460.5,-408.379 2474.27,-357.424 2470,-313 2467.1,-282.806 2472.55,-272.043 2457,-246 2447.51,-230.112 2430.26,-217.393 2417.6,-209.584"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2447.38,-436.693 2447.43,-447.288 2454,-438.979 2447.38,-436.693"/>
+<!-- Node26&#45;&gt;Node7 -->
+<g id="edge43" class="edge"><title>Node26&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M2213.72,-437.456C2227.01,-381.623 2259.47,-245.245 2267.95,-209.626"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2210.24,-436.956 2211.33,-447.494 2217.05,-438.577 2210.24,-436.956"/>
 </g>
-<!-- Node27&#45;&gt;Node9 -->
-<g id="edge57" class="edge"><title>Node27&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M882.993,-461.141C1086.31,-459.619 1680.73,-451.712 1870,-411 1876.82,-409.533 2281.71,-248.782 2380.46,-209.558"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="882.721,-457.643 872.746,-461.215 882.771,-464.643 882.721,-457.643"/>
+<!-- Node27&#45;&gt;Node7 -->
+<g id="edge51" class="edge"><title>Node27&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1017.94,-459.93C1180.76,-455.745 1585.29,-442.427 1717,-411 1825.08,-385.211 1843.04,-352.236 1947,-313 1994.73,-294.985 2008.35,-295.227 2056,-277 2088.16,-264.699 2094.75,-258.074 2127,-246 2165.27,-231.672 2210.38,-217.993 2239.55,-209.556"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.48,-456.441 1007.57,-460.193 1017.66,-463.438 1017.48,-456.441"/>
+</g>
+<!-- Node27&#45;&gt;Node11 -->
+<g id="edge55" class="edge"><title>Node27&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1017.72,-455.688C1098.73,-447.979 1227.81,-432.764 1271,-411 1346.78,-372.814 1374.24,-355.275 1407,-277 1441.65,-194.204 1306.55,-160.33 1217.87,-147.198"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.23,-452.218 1007.6,-456.635 1017.88,-459.187 1017.23,-452.218"/>
 </g>
 <!-- Node27&#45;&gt;Node12 -->
-<g id="edge59" class="edge"><title>Node27&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M883.187,-457.306C962.48,-451.296 1086.35,-437.858 1124,-411 1179.04,-371.738 1179.5,-342.564 1196,-277 1220.34,-180.276 1069.66,-151.583 975.583,-143.078"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="882.504,-453.846 872.788,-458.071 883.018,-460.828 882.504,-453.846"/>
+<g id="edge88" class="edge"><title>Node27&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M899.911,-451.097C891.305,-449.535 882.414,-448.086 874,-447 753.404,-431.429 439.519,-459.469 328,-411 309.545,-402.979 313.072,-388.85 295,-380 170.475,-319.019 6,-401.155 6,-262.5 6,-262.5 6,-262.5 6,-137.5 6,-58.746 269.143,-26.1787 388.893,-15.4355"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="899.361,-454.555 909.836,-452.969 900.658,-447.676 899.361,-454.555"/>
 </g>
 <!-- Node27&#45;&gt;Node13 -->
-<g id="edge93" class="edge"><title>Node27&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M745.342,-460.445C612.491,-457.601 325.303,-447.322 234,-411 104.158,-359.347 0,-340.739 0,-201 0,-201 0,-201 0,-137.5 0,-66.8295 230.32,-30.5237 340.982,-17.1585"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="745.335,-463.945 755.405,-460.652 745.479,-456.947 745.335,-463.945"/>
+<g id="edge45" class="edge"><title>Node27&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M997.203,-449.56C1017.15,-441.985 1038.31,-429.917 1050,-411 1064.48,-387.572 1048.45,-353.736 1039.37,-338.063"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="995.845,-446.327 987.558,-452.927 998.153,-452.935 995.845,-446.327"/>
 </g>
 <!-- Node27&#45;&gt;Node14 -->
-<g id="edge50" class="edge"><title>Node27&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M882.634,-456.608C976.807,-449.186 1140.71,-433.518 1196,-411 1238.67,-393.622 1279.58,-355.431 1296.65,-338.217"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="882.325,-453.122 872.627,-457.387 882.868,-460.101 882.325,-453.122"/>
+<g id="edge54" class="edge"><title>Node27&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M975.874,-447.63C989.386,-439.07 1004.46,-426.71 1012,-411 1017.96,-398.579 1019.72,-391.409 1012,-380 987.847,-344.326 946.153,-379.674 922,-344 914.276,-332.591 915.809,-325.309 922,-313 931.977,-293.163 953.843,-279.158 970.101,-271.006"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="973.711,-444.843 966.881,-452.943 977.271,-450.87 973.711,-444.843"/>
 </g>
 <!-- Node27&#45;&gt;Node15 -->
-<g id="edge61" class="edge"><title>Node27&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M846.626,-448.819C865.409,-440.286 888.488,-427.562 905,-411 940.112,-375.783 920.397,-344.351 959,-313 978.301,-297.325 1041.95,-280.745 1084.32,-271.024"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="845.026,-445.699 837.252,-452.898 847.819,-452.117 845.026,-445.699"/>
+<g id="edge53" class="edge"><title>Node27&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M962.902,-445.019C975.495,-427.962 990.337,-400.935 978,-380 961.234,-351.549 929.766,-372.451 913,-344 886.773,-299.494 905.806,-232.908 913.865,-209.503"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="960.102,-442.918 956.677,-452.944 965.607,-447.241 960.102,-442.918"/>
 </g>
 <!-- Node27&#45;&gt;Node16 -->
-<g id="edge60" class="edge"><title>Node27&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M776.243,-449.194C757.837,-441.225 737.11,-428.927 725,-411 691.363,-361.206 711.009,-336.957 707,-277 706.081,-263.253 699.541,-257.584 707,-246 719.214,-227.031 741.598,-215.966 761.994,-209.559"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="775.016,-452.473 785.599,-452.973 777.638,-445.982 775.016,-452.473"/>
+<g id="edge56" class="edge"><title>Node27&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M895.105,-451C888.009,-449.641 880.832,-448.278 874,-447 829.827,-438.735 703.81,-445.49 675,-411 620.551,-345.817 717.329,-240.25 748.079,-209.598"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="894.911,-454.526 905.392,-452.977 896.233,-447.652 894.911,-454.526"/>
 </g>
 <!-- Node27&#45;&gt;Node17 -->
-<g id="edge70" class="edge"><title>Node27&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M745.052,-457.808C633.92,-451.221 420.423,-435.768 349,-411 295.988,-392.616 288.56,-375.312 242,-344 222.45,-330.852 219.909,-323.857 199,-313 155.59,-290.459 123.371,-316.844 95,-277 36.3992,-194.703 221.265,-157.912 311.916,-145.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="744.966,-461.308 755.154,-458.398 745.375,-454.32 744.966,-461.308"/>
+<g id="edge65" class="edge"><title>Node27&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M899.333,-451.069C890.906,-449.538 882.223,-448.106 874,-447 770.185,-433.035 501.264,-449.89 404,-411 383.762,-402.908 385.67,-389.388 366,-380 295.516,-346.359 243.245,-404.619 194,-344 170.747,-315.376 233.744,-229.834 284,-190 305.106,-173.271 332.573,-161.129 355.799,-152.95"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="898.963,-454.561 909.438,-452.972 900.258,-447.682 898.963,-454.561"/>
 </g>
 <!-- Node27&#45;&gt;Node18 -->
-<g id="edge90" class="edge"><title>Node27&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M745.235,-459.637C621.793,-455.518 367.858,-443.298 286,-411 240.602,-393.088 237.245,-374.317 199,-344 181.92,-330.46 179.567,-324.416 161,-313 127.44,-292.366 101.467,-310.033 80,-277 23.0061,-189.3 187.651,-116.151 268.307,-86.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="745.221,-463.138 755.33,-459.965 745.449,-456.142 745.221,-463.138"/>
+<g id="edge85" class="edge"><title>Node27&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M899.339,-451.029C890.911,-449.502 882.226,-448.083 874,-447 761.796,-432.232 471.203,-452.717 366,-411 345.739,-402.966 347.469,-389.799 328,-380 269.843,-350.729 246.618,-367.758 186,-344 118.251,-317.447 44,-335.267 44,-262.5 44,-262.5 44,-262.5 44,-199 44,-145.077 205.332,-103.462 296.712,-84.2163"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="898.969,-454.521 909.443,-452.93 900.263,-447.642 898.969,-454.521"/>
 </g>
 <!-- Node27&#45;&gt;Node19 -->
-<g id="edge92" class="edge"><title>Node27&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M759.457,-450.55C699.63,-434.988 612,-400.137 612,-329.5 612,-329.5 612,-329.5 612,-199 612,-163.154 605.303,-152.542 585,-123 572.858,-105.332 553.039,-90.1304 539.763,-81.1468"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="758.62,-453.949 769.17,-452.973 760.314,-447.157 758.62,-453.949"/>
+<g id="edge87" class="edge"><title>Node27&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M895.896,-451.052C888.547,-449.659 881.089,-448.273 874,-447 825.888,-438.36 690.379,-446.711 657,-411 569.183,-317.048 665.304,-246.373 629,-123 624.379,-107.296 614.819,-90.7246 608.668,-81.0134"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="895.328,-454.506 905.807,-452.946 896.642,-447.631 895.328,-454.506"/>
 </g>
 <!-- Node27&#45;&gt;Node20 -->
-<g id="edge51" class="edge"><title>Node27&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M882.959,-454.079C1003.61,-441.094 1250.73,-414.501 1361.77,-402.551"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="882.306,-450.629 872.738,-455.179 883.055,-457.589 882.306,-450.629"/>
+<g id="edge46" class="edge"><title>Node27&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1017.6,-454.642C1098.35,-446.179 1236.35,-430.488 1354,-411 1358.53,-410.25 1363.21,-409.413 1367.91,-408.531"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.15,-451.171 1007.56,-455.688 1017.87,-458.133 1017.15,-451.171"/>
 </g>
 <!-- Node27&#45;&gt;Node21 -->
-<g id="edge52" class="edge"><title>Node27&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M883.166,-458.711C1009.3,-453.14 1285.01,-438.718 1516,-411 1529.08,-409.431 1543.2,-407.253 1556.15,-405.062"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="882.724,-455.227 872.886,-459.16 883.03,-462.221 882.724,-455.227"/>
+<g id="edge47" class="edge"><title>Node27&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M900.959,-451.011C892.667,-449.472 884.107,-448.054 876,-447 621.64,-413.94 554.813,-440.363 300,-411 286.763,-409.475 272.465,-407.285 259.398,-405.067"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="900.411,-454.47 910.894,-452.931 901.739,-447.597 900.411,-454.47"/>
 </g>
 <!-- Node27&#45;&gt;Node24 -->
-<g id="edge69" class="edge"><title>Node27&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M744.896,-455.955C679.055,-449.264 586.198,-435.704 560,-411 504.865,-359.009 552.298,-313.06 517,-246 509.488,-231.729 496.649,-218.14 487.765,-209.702"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="744.922,-459.474 755.216,-456.97 745.607,-452.508 744.922,-459.474"/>
+<g id="edge64" class="edge"><title>Node27&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M897.877,-451.088C889.902,-449.616 881.741,-448.199 874,-447 805.902,-436.452 616.874,-457.481 566,-411 535.475,-383.11 524.803,-245.669 522.507,-209.653"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="897.358,-454.552 907.834,-452.968 898.657,-447.673 897.358,-454.552"/>
 </g>
 <!-- Node27&#45;&gt;Node25 -->
-<g id="edge89" class="edge"><title>Node27&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M745.31,-453.038C690.355,-444.924 619.115,-430.95 598,-411 570.553,-385.067 574,-367.26 574,-329.5 574,-329.5 574,-329.5 574,-260.5 574,-227.93 570.421,-218.127 554,-190 544.047,-172.952 527.004,-157.488 515.622,-148.286"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="744.969,-456.525 755.366,-454.485 745.966,-449.596 744.969,-456.525"/>
+<g id="edge84" class="edge"><title>Node27&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M897.03,-451.045C889.321,-449.612 881.463,-448.218 874,-447 814.259,-437.251 644.488,-455.997 604,-411 538.277,-337.957 636.606,-280.357 598,-190 590.341,-172.074 573.09,-157.039 561.005,-148.155"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="896.554,-454.517 907.03,-452.937 897.856,-447.639 896.554,-454.517"/>
 </g>
 <!-- Node28 -->
 <g id="node28" class="node"><title>Node28</title>
 <g id="a_node28"><a xlink:href="base_8h.html" target="_top" xlink:title="Base classes for the Relay IR. ">
-<polygon fill="white" stroke="red" points="1880,-252 1880,-271 2014,-271 2014,-252 1880,-252"/>
-<text text-anchor="middle" x="1947" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/base.h</text>
+<polygon fill="white" stroke="red" points="1574,-386 1574,-405 1708,-405 1708,-386 1574,-386"/>
+<text text-anchor="middle" x="1641" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/base.h</text>
 </a>
 </g>
 </g>
 <!-- Node27&#45;&gt;Node28 -->
-<g id="edge53" class="edge"><title>Node27&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M883.051,-461.493C1031.33,-460.64 1375.45,-453.936 1483,-411 1503.24,-402.919 1501.63,-390.001 1521,-380 1642.68,-317.161 1801.78,-284.827 1886.97,-271.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="882.701,-457.994 872.719,-461.545 882.737,-464.994 882.701,-457.994"/>
+<g id="edge48" class="edge"><title>Node27&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M1017.97,-455.092C1120.63,-445.543 1319.75,-426.987 1489,-411 1516.71,-408.383 1547.26,-405.473 1573.66,-402.951"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.37,-451.632 1007.73,-456.043 1018.02,-458.602 1017.37,-451.632"/>
 </g>
 <!-- Node29 -->
 <g id="node29" class="node"><title>Node29</title>
 <g id="a_node29"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
-<polygon fill="white" stroke="black" points="262,-246.5 262,-276.5 366,-276.5 366,-246.5 262,-246.5"/>
-<text text-anchor="start" x="270" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="314" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
+<polygon fill="white" stroke="black" points="268,-246.5 268,-276.5 372,-276.5 372,-246.5 268,-246.5"/>
+<text text-anchor="start" x="276" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="320" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
 </a>
 </g>
 </g>
 <!-- Node27&#45;&gt;Node29 -->
-<g id="edge58" class="edge"><title>Node27&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M745.293,-455.562C663.9,-447.704 533.816,-432.315 490,-411 432.598,-383.075 434.451,-353.366 385,-313 368.946,-299.896 349.741,-286.354 335.355,-276.597"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="745.172,-459.066 755.459,-456.529 745.835,-452.098 745.172,-459.066"/>
+<g id="edge52" class="edge"><title>Node27&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M898.74,-451.098C890.495,-449.589 882.025,-448.157 874,-447 707.843,-423.04 652.924,-475.657 498,-411 460.21,-395.228 370.022,-310.694 334.62,-276.685"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="898.164,-454.551 908.639,-452.963 899.46,-447.672 898.164,-454.551"/>
 </g>
 <!-- Node30 -->
 <g id="node30" class="node"><title>Node30</title>
 <g id="a_node30"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n&#45;dimensional array, to represent a memory buffer. ">
-<polygon fill="white" stroke="red" points="384,-252 384,-271 508,-271 508,-252 384,-252"/>
-<text text-anchor="middle" x="446" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/buffer.h</text>
+<polygon fill="white" stroke="red" points="390,-252 390,-271 514,-271 514,-252 390,-252"/>
+<text text-anchor="middle" x="452" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/buffer.h</text>
 </a>
 </g>
 </g>
 <!-- Node27&#45;&gt;Node30 -->
-<g id="edge62" class="edge"><title>Node27&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M745.072,-456.655C670.181,-450.18 556.576,-436.45 522,-411 472.785,-374.776 453.068,-297.383 447.657,-271.295"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="745.112,-460.17 755.37,-457.521 745.698,-453.195 745.112,-460.17"/>
+<g id="edge57" class="edge"><title>Node27&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M898.175,-451.053C890.107,-449.574 881.84,-448.163 874,-447 797.533,-435.652 591.384,-455.254 528,-411 488.234,-383.236 502.433,-356 480,-313 472.21,-298.068 462.586,-280.986 456.89,-271.006"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="897.765,-454.537 908.24,-452.949 899.061,-447.658 897.765,-454.537"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node"><title>Node31</title>
 <g id="a_node31"><a xlink:href="data__layout_8h.html" target="_top" xlink:title="Layout expression to describe the data organization of a tensor. And BijectiveLayout to mapping two d...">
-<polygon fill="white" stroke="red" points="932,-246.5 932,-276.5 1042,-276.5 1042,-246.5 932,-246.5"/>
-<text text-anchor="start" x="940" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/data</text>
-<text text-anchor="middle" x="987" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_layout.h</text>
+<polygon fill="white" stroke="red" points="1148,-246.5 1148,-276.5 1258,-276.5 1258,-246.5 1148,-246.5"/>
+<text text-anchor="start" x="1156" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/data</text>
+<text text-anchor="middle" x="1203" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">_layout.h</text>
 </a>
 </g>
 </g>
 <!-- Node27&#45;&gt;Node31 -->
-<g id="edge66" class="edge"><title>Node27&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M838.628,-447.589C852.78,-438.613 870.06,-425.856 882,-411 911.91,-373.786 897.081,-350.99 926,-313 936.909,-298.669 952.627,-285.781 965.375,-276.612"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="836.586,-444.735 829.867,-452.926 840.228,-450.713 836.586,-444.735"/>
+<g id="edge61" class="edge"><title>Node27&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M1018.02,-459.345C1096.36,-452.717 1220.68,-428.566 1278,-344 1285.73,-332.595 1284.47,-325.162 1278,-313 1269.37,-296.787 1252.96,-284.846 1237.69,-276.658"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.46,-455.877 1007.76,-460.135 1018,-462.857 1017.46,-455.877"/>
 </g>
 <!-- Node32 -->
 <g id="node32" class="node"><title>Node32</title>
 <g id="a_node32"><a xlink:href="tir_2expr__functor_8h.html" target="_top" xlink:title="Functors for tir expressions. ">
-<polygon fill="white" stroke="black" points="1006.5,-380.5 1006.5,-410.5 1115.5,-410.5 1115.5,-380.5 1006.5,-380.5"/>
-<text text-anchor="start" x="1014.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr</text>
-<text text-anchor="middle" x="1061" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="684.5,-380.5 684.5,-410.5 793.5,-410.5 793.5,-380.5 684.5,-380.5"/>
+<text text-anchor="start" x="692.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr</text>
+<text text-anchor="middle" x="739" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node27&#45;&gt;Node32 -->
-<g id="edge67" class="edge"><title>Node27&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M856.414,-450.338C898.239,-439.332 962.298,-422.474 1007.58,-410.559"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="855.325,-447.006 846.545,-452.936 857.106,-453.775 855.325,-447.006"/>
+<g id="edge62" class="edge"><title>Node27&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M911.119,-449.775C875.511,-438.753 822.171,-422.244 784.321,-410.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="910.526,-453.255 921.114,-452.869 912.596,-446.568 910.526,-453.255"/>
 </g>
 <!-- Node33 -->
 <g id="node33" class="node"><title>Node33</title>
 <g id="a_node33"><a xlink:href="stmt__functor_8h.html" target="_top" xlink:title="Functors for tir stmts. ">
-<polygon fill="white" stroke="black" points="968,-313.5 968,-343.5 1078,-343.5 1078,-313.5 968,-313.5"/>
-<text text-anchor="start" x="976" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/stmt</text>
-<text text-anchor="middle" x="1023" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="684,-313.5 684,-343.5 794,-343.5 794,-313.5 684,-313.5"/>
+<text text-anchor="start" x="692" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/stmt</text>
+<text text-anchor="middle" x="739" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node27&#45;&gt;Node33 -->
-<g id="edge88" class="edge"><title>Node27&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M863.684,-450.388C891.884,-442.48 926.857,-429.859 954,-411 980.492,-392.594 1002.85,-361.557 1014.45,-343.563"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="862.761,-447.012 854.015,-452.991 864.581,-453.771 862.761,-447.012"/>
+<g id="edge83" class="edge"><title>Node27&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M917.438,-449.083C895.341,-439.836 865.507,-426.22 841,-411 839.869,-410.297 785.39,-366.673 756.528,-343.548"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="916.117,-452.325 926.697,-452.893 918.781,-445.851 916.117,-452.325"/>
 </g>
 <!-- Node34 -->
 <g id="node34" class="node"><title>Node34</title>
 <g id="a_node34"><a xlink:href="lowered__func_8h.html" target="_top" xlink:title="Information about a lowered TVM function. This data structure is final step toward codegen...">
-<polygon fill="white" stroke="black" points="251.5,-313.5 251.5,-343.5 376.5,-343.5 376.5,-313.5 251.5,-313.5"/>
-<text text-anchor="start" x="259.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/lowered</text>
-<text text-anchor="middle" x="314" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
+<polygon fill="white" stroke="black" points="203.5,-313.5 203.5,-343.5 328.5,-343.5 328.5,-313.5 203.5,-313.5"/>
+<text text-anchor="start" x="211.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/lowered</text>
+<text text-anchor="middle" x="266" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node27&#45;&gt;Node34 -->
-<g id="edge71" class="edge"><title>Node27&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M745.431,-458.957C641.942,-454.178 451.497,-441.45 391,-411 360.224,-395.51 335.196,-362.479 322.68,-343.568"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="745.325,-462.455 755.472,-459.408 745.639,-455.462 745.325,-462.455"/>
+<g id="edge66" class="edge"><title>Node27&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M900.111,-451.01C892.081,-449.511 883.826,-448.106 876,-447 688.738,-420.536 630.975,-472.118 452,-411 427.967,-402.793 426.732,-391.323 404,-380 374.427,-365.27 339.46,-352.52 312.124,-343.516"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="899.633,-454.482 910.115,-452.942 900.961,-447.609 899.633,-454.482"/>
 </g>
 <!-- Node27&#45;&gt;Node36 -->
-<g id="edge75" class="edge"><title>Node27&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M784.604,-448.204C769.835,-439.821 753.343,-427.445 745,-411 738.766,-398.713 738.565,-392.183 745,-380 755.752,-359.646 778.805,-345.948 796.342,-338.012"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="783.013,-451.323 793.489,-452.909 786.289,-445.136 783.013,-451.323"/>
+<g id="edge70" class="edge"><title>Node27&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M980.365,-449.067C1004.36,-439.317 1038.13,-425.083 1067,-411 1117.09,-386.564 1174.35,-353.507 1200.55,-338.086"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="979.004,-445.842 971.04,-452.83 981.623,-452.333 979.004,-445.842"/>
 </g>
 <!-- Node37 -->
 <g id="node37" class="node"><title>Node37</title>
 <g id="a_node37"><a xlink:href="pad__utils_8h.html" target="_top" xlink:title="Padding helpers. ">
-<polygon fill="white" stroke="red" points="716,-246.5 716,-276.5 838,-276.5 838,-246.5 716,-246.5"/>
-<text text-anchor="start" x="724" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="777" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pad_utils.h</text>
+<polygon fill="white" stroke="red" points="1276,-246.5 1276,-276.5 1398,-276.5 1398,-246.5 1276,-246.5"/>
+<text text-anchor="start" x="1284" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="1337" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pad_utils.h</text>
 </a>
 </g>
 </g>
 <!-- Node27&#45;&gt;Node37 -->
-<g id="edge91" class="edge"><title>Node27&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M780.431,-448.591C764.203,-440.444 746.271,-428.168 737,-411 712.514,-365.658 747.683,-304.28 766.476,-276.816"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="779.168,-451.864 789.711,-452.916 782.126,-445.519 779.168,-451.864"/>
+<g id="edge86" class="edge"><title>Node27&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M1017.82,-454.902C1091.07,-446.936 1201.37,-431.948 1238,-411 1291.53,-380.393 1321.66,-307.637 1332.42,-276.755"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.32,-451.437 1007.75,-455.98 1018.06,-458.397 1017.32,-451.437"/>
 </g>
 <!-- Node38 -->
 <g id="node38" class="node"><title>Node38</title>
 <g id="a_node38"><a xlink:href="stmt_8h.html" target="_top" xlink:title="TIR statements. ">
-<polygon fill="white" stroke="black" points="754.5,-386 754.5,-405 873.5,-405 873.5,-386 754.5,-386"/>
-<text text-anchor="middle" x="814" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/stmt.h</text>
+<polygon fill="white" stroke="black" points="850.5,-386 850.5,-405 969.5,-405 969.5,-386 850.5,-386"/>
+<text text-anchor="middle" x="910" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/stmt.h</text>
 </a>
 </g>
 </g>
 <!-- Node27&#45;&gt;Node38 -->
-<g id="edge82" class="edge"><title>Node27&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M814,-442.537C814,-430.17 814,-414.62 814,-405.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="810.5,-442.734 814,-452.734 817.5,-442.734 810.5,-442.734"/>
+<g id="edge77" class="edge"><title>Node27&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M938.521,-444.035C930.97,-431.45 921.104,-415.007 915.176,-405.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="935.594,-445.96 943.74,-452.734 941.597,-442.358 935.594,-445.96"/>
 </g>
 <!-- Node28&#45;&gt;Node7 -->
-<g id="edge55" class="edge"><title>Node28&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1960.55,-243.935C1981.9,-217.846 2022.6,-168.103 2038.94,-148.123"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1957.74,-241.842 1954.12,-251.798 1963.16,-246.275 1957.74,-241.842"/>
+<g id="edge50" class="edge"><title>Node28&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1673.9,-382.514C1718.9,-366.233 1802.24,-336.467 1874,-313 1971.15,-281.231 1995.57,-273.556 2094,-246 2142.44,-232.438 2198.84,-218.307 2234.48,-209.581"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1672.58,-379.27 1664.37,-385.968 1674.97,-385.851 1672.58,-379.27"/>
 </g>
 <!-- Node28&#45;&gt;Node8 -->
-<g id="edge54" class="edge"><title>Node28&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1945.84,-241.919C1944.99,-213.848 1947.01,-159.985 1971,-123 1983.82,-103.247 2007.36,-89.304 2024.66,-81.1443"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1942.34,-242.113 1946.3,-251.941 1949.34,-241.791 1942.34,-242.113"/>
-</g>
-<!-- Node28&#45;&gt;Node9 -->
-<g id="edge56" class="edge"><title>Node28&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2022.35,-250.647C2110.15,-239.164 2253.79,-220.382 2336.93,-209.509"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2021.65,-247.208 2012.19,-251.975 2022.56,-254.149 2021.65,-247.208"/>
+<g id="edge49" class="edge"><title>Node28&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1652.27,-376.95C1678.95,-336.923 1750.22,-238.598 1836,-190 1885.6,-161.9 1949.68,-149.435 1996.59,-143.907"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1649.02,-375.522 1646.46,-385.805 1654.87,-379.36 1649.02,-375.522"/>
 </g>
-<!-- Node30&#45;&gt;Node12 -->
-<g id="edge63" class="edge"><title>Node30&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M425.334,-245.583C407.004,-230.586 385.372,-207.275 401,-190 429.372,-158.637 700.172,-145.874 832.253,-141.481"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="423.334,-248.461 433.377,-251.836 427.631,-242.935 423.334,-248.461"/>
+<!-- Node30&#45;&gt;Node11 -->
+<g id="edge58" class="edge"><title>Node30&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M443.433,-242.514C437.265,-226.627 432.078,-203.886 445,-190 466.222,-167.194 899.814,-148.633 1074.25,-142.061"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="440.267,-244.012 447.446,-251.803 446.693,-241.235 440.267,-244.012"/>
 </g>
 <!-- Node30&#45;&gt;Node17 -->
-<g id="edge65" class="edge"><title>Node30&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M413.558,-247.515C397.202,-239.252 378.629,-226.893 368,-210 357.224,-192.872 356.561,-168.756 357.476,-153.635"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="412.318,-250.8 422.855,-251.91 415.31,-244.472 412.318,-250.8"/>
+<g id="edge60" class="edge"><title>Node30&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M435.618,-244.551C427.134,-235.286 417.437,-222.916 412,-210 404.245,-191.577 402.701,-168.239 402.612,-153.584"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="433.168,-247.052 442.625,-251.829 438.211,-242.197 433.168,-247.052"/>
 </g>
 <!-- Node30&#45;&gt;Node24 -->
-<g id="edge64" class="edge"><title>Node30&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M455.501,-242.835C461.42,-231.828 468.77,-218.163 473.424,-209.509"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="452.239,-241.51 450.585,-251.975 458.404,-244.826 452.239,-241.51"/>
+<g id="edge59" class="edge"><title>Node30&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M469.679,-245.473C483.068,-234.093 500.977,-218.869 511.989,-209.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="467.382,-242.832 462.029,-251.975 471.915,-248.165 467.382,-242.832"/>
 </g>
 <!-- Node32&#45;&gt;Node33 -->
-<g id="edge68" class="edge"><title>Node32&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M1047.6,-371.576C1042.14,-362.241 1036.01,-351.748 1031.23,-343.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1044.69,-373.529 1052.75,-380.396 1050.73,-369.997 1044.69,-373.529"/>
+<g id="edge63" class="edge"><title>Node32&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M739,-370.108C739,-361.154 739,-351.323 739,-343.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="735.5,-370.396 739,-380.396 742.5,-370.396 735.5,-370.396"/>
 </g>
 <!-- Node34&#45;&gt;Node17 -->
-<g id="edge74" class="edge"><title>Node34&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M279.477,-307.43C268.985,-299.418 258.725,-289.173 253,-277 247.136,-264.532 247.742,-258.735 253,-246 269.923,-205.008 311.114,-171.494 336.879,-153.603"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="277.676,-310.444 287.858,-313.371 281.724,-304.733 277.676,-310.444"/>
+<g id="edge69" class="edge"><title>Node34&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M257.553,-303.682C253.015,-286.717 249.999,-263.852 259,-246 281.818,-200.743 333.958,-169.942 368.829,-153.535"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="254.241,-304.823 260.481,-313.385 260.942,-302.801 254.241,-304.823"/>
 </g>
 <!-- Node34&#45;&gt;Node29 -->
-<g id="edge73" class="edge"><title>Node34&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M314,-303.108C314,-294.154 314,-284.323 314,-276.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="310.5,-303.396 314,-313.396 317.5,-303.396 310.5,-303.396"/>
+<g id="edge68" class="edge"><title>Node34&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M284.321,-305.447C292.253,-295.899 301.305,-285.004 308.306,-276.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="281.415,-303.467 277.717,-313.396 286.8,-307.941 281.415,-303.467"/>
 </g>
 <!-- Node35 -->
 <g id="node35" class="node"><title>Node35</title>
 <g id="a_node35"><a xlink:href="driver__api_8h.html" target="_top" xlink:title="Compiler driver APIs to drive the compilation. ">
-<polygon fill="white" stroke="black" points="104,-246.5 104,-276.5 206,-276.5 206,-246.5 104,-246.5"/>
-<text text-anchor="start" x="112" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
-<text text-anchor="middle" x="155" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
+<polygon fill="white" stroke="black" points="72,-246.5 72,-276.5 174,-276.5 174,-246.5 72,-246.5"/>
+<text text-anchor="start" x="80" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
+<text text-anchor="middle" x="123" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node35 -->
-<g id="edge72" class="edge"><title>Node34&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M270.077,-309.544C244.634,-299.143 213.067,-286.238 189.433,-276.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="268.919,-312.852 279.499,-313.396 271.567,-306.372 268.919,-312.852"/>
+<g id="edge67" class="edge"><title>Node34&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M225.587,-309.131C202.865,-298.802 174.943,-286.11 153.968,-276.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="224.419,-312.444 234.971,-313.396 227.316,-306.072 224.419,-312.444"/>
+</g>
+<!-- Node36&#45;&gt;Node11 -->
+<g id="edge72" class="edge"><title>Node36&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1182.18,-314.653C1166.08,-306.478 1148.2,-294.156 1139,-277 1115.73,-233.605 1134.44,-171.015 1142.64,-148.221"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1180.85,-317.892 1191.38,-318.993 1183.83,-311.561 1180.85,-317.892"/>
 </g>
 <!-- Node36&#45;&gt;Node12 -->
 <g id="edge76" class="edge"><title>Node36&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M843.255,-313.405C856.211,-304.597 871.25,-292.07 880,-277 905.065,-233.83 905.332,-171.103 904.48,-148.246"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="841.239,-310.54 834.722,-318.894 845.026,-316.427 841.239,-310.54"/>
+<path fill="none" stroke="midnightblue" d="M1189.86,-313.759C1171.9,-303.82 1147.27,-289.921 1126,-277 1065.32,-240.129 1054.51,-223.687 992,-190 861.303,-119.564 827.862,-99.7945 686,-56 625.687,-37.3806 554.309,-25.1613 505.36,-18.217"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1188.63,-317.08 1199.08,-318.842 1192.01,-310.95 1188.63,-317.08"/>
 </g>
-<!-- Node36&#45;&gt;Node13 -->
-<g id="edge81" class="edge"><title>Node36&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M833.249,-310.68C846.291,-293.137 861.526,-265.523 847,-246 813.762,-201.327 772.823,-241.634 727,-210 656.04,-161.013 681.87,-102.097 609,-56 563.31,-27.0968 502.007,-16.4988 457.435,-12.7422"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="830.254,-308.824 826.798,-318.84 835.745,-313.166 830.254,-308.824"/>
-</g>
-<!-- Node36&#45;&gt;Node15 -->
-<g id="edge77" class="edge"><title>Node36&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M869.194,-316.803C929.214,-304.012 1028.48,-282.858 1083.72,-271.083"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="868.238,-313.428 859.187,-318.936 869.697,-320.274 868.238,-313.428"/>
+<!-- Node36&#45;&gt;Node14 -->
+<g id="edge71" class="edge"><title>Node36&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1175.51,-316.091C1131,-303.232 1059.64,-282.618 1019.64,-271.064"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1174.54,-319.456 1185.12,-318.869 1176.49,-312.731 1174.54,-319.456"/>
 </g>
 <!-- Node36&#45;&gt;Node30 -->
-<g id="edge78" class="edge"><title>Node36&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M759.861,-317.194C686.605,-304.429 563.158,-282.916 494.959,-271.032"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="759.401,-320.667 769.853,-318.936 760.603,-313.771 759.401,-320.667"/>
+<g id="edge73" class="edge"><title>Node36&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M1150.27,-317.748C1137.6,-316.02 1124.4,-314.345 1112,-313 892.931,-289.223 631.754,-272.733 514.454,-265.953"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1149.9,-321.231 1160.29,-319.14 1150.87,-314.297 1149.9,-321.231"/>
 </g>
 <!-- Node36&#45;&gt;Node31 -->
-<g id="edge79" class="edge"><title>Node36&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M850.784,-315.202C879.253,-304.188 920.983,-288.042 950.743,-276.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="849.372,-311.996 841.309,-318.869 851.898,-318.524 849.372,-311.996"/>
+<g id="edge74" class="edge"><title>Node36&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M1211.54,-308.739C1209.64,-298.487 1207.34,-286.001 1205.6,-276.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1208.12,-309.535 1213.38,-318.734 1215.01,-308.265 1208.12,-309.535"/>
 </g>
 <!-- Node36&#45;&gt;Node37 -->
-<g id="edge80" class="edge"><title>Node36&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M807.715,-310.035C800.944,-299.556 792.444,-286.402 786.104,-276.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="804.969,-312.234 813.336,-318.734 810.848,-308.435 804.969,-312.234"/>
+<g id="edge75" class="edge"><title>Node36&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M1240.25,-314.046C1260.76,-303.122 1289.59,-287.76 1310.44,-276.652"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1238.38,-311.077 1231.2,-318.869 1241.67,-317.255 1238.38,-311.077"/>
 </g>
-<!-- Node38&#45;&gt;Node14 -->
-<g id="edge83" class="edge"><title>Node38&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M883.823,-385.257C979.055,-372.65 1148.35,-350.237 1240.65,-338.019"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="883.17,-381.813 873.715,-386.595 884.088,-388.752 883.17,-381.813"/>
+<!-- Node38&#45;&gt;Node13 -->
+<g id="edge78" class="edge"><title>Node38&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M935.557,-381.103C960.113,-368.231 996.495,-349.16 1017.47,-338.167"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="933.698,-378.126 926.466,-385.869 936.948,-384.326 933.698,-378.126"/>
 </g>
 <!-- Node38&#45;&gt;Node24 -->
-<g id="edge84" class="edge"><title>Node38&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M790.435,-380.929C725.68,-343.637 546.312,-240.34 493.081,-209.685"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="788.717,-383.978 799.129,-385.936 792.21,-377.912 788.717,-383.978"/>
+<g id="edge79" class="edge"><title>Node38&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M891.157,-379.705C863.014,-357.675 812.3,-318.265 803,-313 715.937,-263.715 602.846,-225.761 550.674,-209.565"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="889.066,-382.513 899.096,-385.926 893.384,-377.003 889.066,-382.513"/>
 </g>
 <!-- Node38&#45;&gt;Node33 -->
-<g id="edge87" class="edge"><title>Node38&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M851.701,-382.775C887.139,-371.753 940.225,-355.244 977.894,-343.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="850.263,-379.557 841.754,-385.869 852.342,-386.241 850.263,-379.557"/>
+<g id="edge82" class="edge"><title>Node38&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M877.648,-382.202C848.671,-371.188 806.196,-355.042 775.905,-343.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="876.701,-385.587 887.293,-385.869 879.189,-379.044 876.701,-385.587"/>
 </g>
 <!-- Node38&#45;&gt;Node34 -->
-<g id="edge85" class="edge"><title>Node38&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M744.109,-385.414C646.362,-372.707 470.317,-349.821 376.631,-337.642"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="743.817,-388.906 754.185,-386.724 744.72,-381.964 743.817,-388.906"/>
+<g id="edge80" class="edge"><title>Node38&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M840.269,-384.727C827.547,-383.061 814.384,-381.414 802,-380 631.13,-360.488 428.987,-342.936 328.798,-334.607"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="839.98,-388.219 850.353,-386.063 840.899,-381.28 839.98,-388.219"/>
 </g>
 <!-- Node38&#45;&gt;Node36 -->
-<g id="edge86" class="edge"><title>Node38&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M815.459,-375.537C816.41,-363.17 817.606,-347.62 818.336,-338.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="811.952,-375.495 814.674,-385.734 818.931,-376.032 811.952,-375.495"/>
+<g id="edge81" class="edge"><title>Node38&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M960.194,-383.803C1020.21,-371.012 1119.48,-349.858 1174.72,-338.083"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="959.238,-380.428 950.187,-385.936 960.697,-387.274 959.238,-380.428"/>
 </g>
 <!-- Node40 -->
 <g id="node40" class="node"><title>Node40</title>
 <g id="a_node40"><a xlink:href="env__func_8h.html" target="_top" xlink:title="Serializable global function used in IR. ">
-<polygon fill="white" stroke="black" points="2560.5,-313.5 2560.5,-343.5 2661.5,-343.5 2661.5,-313.5 2560.5,-313.5"/>
-<text text-anchor="start" x="2568.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/env</text>
-<text text-anchor="middle" x="2611" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
+<polygon fill="white" stroke="black" points="2336.5,-313.5 2336.5,-343.5 2437.5,-343.5 2437.5,-313.5 2336.5,-313.5"/>
+<text text-anchor="start" x="2344.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/env</text>
+<text text-anchor="middle" x="2387" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node40 -->
-<g id="edge101" class="edge"><title>Node39&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M2310.24,-680.677C2413.87,-661.593 2599.04,-609.911 2674,-478 2700.7,-431.007 2651.34,-370.467 2625.42,-343.516"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2309.39,-677.272 2300.16,-682.476 2310.62,-684.163 2309.39,-677.272"/>
+<g id="edge96" class="edge"><title>Node39&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M2364.21,-676.334C2389.69,-657.547 2428,-622.417 2428,-581 2428,-581 2428,-581 2428,-461.5 2428,-416.866 2406.36,-367.409 2394.52,-343.699"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2361.95,-673.644 2355.82,-682.281 2366,-679.356 2361.95,-673.644"/>
 </g>
 <!-- Node41 -->
 <g id="node41" class="node"><title>Node41</title>
 <g id="a_node41"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="white" stroke="red" points="2063.5,-626.5 2063.5,-645.5 2198.5,-645.5 2198.5,-626.5 2063.5,-626.5"/>
-<text text-anchor="middle" x="2131" y="-633.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/node.h</text>
+<polygon fill="white" stroke="red" points="1655.5,-626.5 1655.5,-645.5 1790.5,-645.5 1790.5,-626.5 1655.5,-626.5"/>
+<text text-anchor="middle" x="1723" y="-633.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/node.h</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node41 -->
-<g id="edge104" class="edge"><title>Node39&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M2210.94,-677.726C2191.32,-667.727 2164.97,-654.307 2147.99,-645.655"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2209.47,-680.903 2219.97,-682.324 2212.65,-674.666 2209.47,-680.903"/>
+<g id="edge99" class="edge"><title>Node39&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M2253.94,-683.318C2129.02,-672.42 1903.07,-652.709 1790.51,-642.889"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2253.96,-686.833 2264.23,-684.216 2254.57,-679.86 2253.96,-686.833"/>
 </g>
 <!-- Node40&#45;&gt;Node5 -->
-<g id="edge102" class="edge"><title>Node40&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M2555.03,-310.58C2520.11,-300.022 2475.69,-286.592 2442.67,-276.611"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2554.03,-313.932 2564.61,-313.476 2556.05,-307.232 2554.03,-313.932"/>
+<g id="edge97" class="edge"><title>Node40&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M2334.39,-310.228C2302.36,-299.713 2261.96,-286.451 2231.88,-276.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2333.44,-313.602 2344.04,-313.396 2335.63,-306.951 2333.44,-313.602"/>
 </g>
-<!-- Node40&#45;&gt;Node9 -->
-<g id="edge103" class="edge"><title>Node40&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2598.05,-304.616C2586.58,-286.291 2568.23,-261.216 2546,-246 2518.66,-227.286 2483.18,-216.078 2454.28,-209.529"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2595.1,-306.494 2603.26,-313.246 2601.09,-302.876 2595.1,-306.494"/>
+<!-- Node40&#45;&gt;Node7 -->
+<g id="edge98" class="edge"><title>Node40&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M2370.91,-305.113C2358.34,-288.204 2340.04,-264.783 2322,-246 2308.93,-232.397 2292.19,-218.444 2281.28,-209.754"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2368.18,-307.315 2376.92,-313.302 2373.82,-303.171 2368.18,-307.315"/>
 </g>
 <!-- Node41&#45;&gt;Node2 -->
-<g id="edge107" class="edge"><title>Node41&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M2170.59,-623.568C2205.87,-613.381 2256.69,-598.703 2288.51,-589.516"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2169.27,-620.307 2160.63,-626.444 2171.21,-627.032 2169.27,-620.307"/>
+<g id="edge102" class="edge"><title>Node41&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1770.92,-624.217C1816.27,-614.013 1883.44,-598.901 1925.15,-589.516"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1770.02,-620.834 1761.03,-626.444 1771.55,-627.663 1770.02,-620.834"/>
 </g>
 <!-- Node41&#45;&gt;Node3 -->
-<g id="edge105" class="edge"><title>Node41&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M2209.05,-633.195C2299.76,-627.547 2450.34,-606.837 2555,-534 2579.12,-517.214 2598.01,-487.061 2606.35,-472.227"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2208.62,-629.714 2198.84,-633.783 2209.02,-636.703 2208.62,-629.714"/>
+<g id="edge100" class="edge"><title>Node41&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M1753.65,-622.35C1772.06,-614.189 1795.6,-602.741 1815,-590 1872.92,-551.964 1932.98,-493.727 1954.62,-472.033"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1752.06,-619.227 1744.28,-626.42 1754.84,-625.648 1752.06,-619.227"/>
 </g>
-<!-- Node41&#45;&gt;Node10 -->
-<g id="edge106" class="edge"><title>Node41&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M2095.51,-623.241C2028.33,-600.983 1884.03,-553.172 1824.99,-533.61"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2094.63,-626.637 2105.22,-626.46 2096.83,-619.992 2094.63,-626.637"/>
+<!-- Node41&#45;&gt;Node9 -->
+<g id="edge101" class="edge"><title>Node41&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1715.64,-616.998C1705.82,-592.997 1688.83,-551.468 1681.51,-533.591"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1712.44,-618.438 1719.47,-626.368 1718.92,-615.788 1712.44,-618.438"/>
 </g>
 <!-- Node41&#45;&gt;Node27 -->
-<g id="edge109" class="edge"><title>Node41&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M2053.22,-626.566C1903.66,-610.167 1565.65,-572.227 1282,-534 1131.15,-513.67 953.554,-485.846 866.913,-472.019"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2052.91,-630.053 2063.23,-627.662 2053.67,-623.094 2052.91,-630.053"/>
+<g id="edge104" class="edge"><title>Node41&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M1674.44,-624.239C1531.87,-592.651 1116.52,-500.617 987.614,-472.056"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1674.1,-627.749 1684.62,-626.495 1675.61,-620.915 1674.1,-627.749"/>
 </g>
 <!-- Node41&#45;&gt;Node28 -->
-<g id="edge108" class="edge"><title>Node41&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M2137.76,-616.808C2145.17,-595.226 2156,-558.005 2156,-525 2156,-525 2156,-525 2156,-461.5 2156,-359.292 2023.28,-293.611 1969.37,-271.145"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2134.43,-615.718 2134.37,-626.313 2141.03,-618.07 2134.43,-615.718"/>
+<g id="edge103" class="edge"><title>Node41&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M1731.49,-617.205C1741.75,-593.113 1756.11,-549.097 1743,-514 1724.66,-464.907 1675.54,-422.743 1652.82,-405.199"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1728.22,-615.943 1727.3,-626.498 1734.6,-618.816 1728.22,-615.943"/>
 </g>
 <!-- Node42&#45;&gt;Node22 -->
-<g id="edge111" class="edge"><title>Node42&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1885.01,-749.107C1847.42,-743.334 1805.29,-730.316 1777,-702 1722.45,-647.393 1742.86,-610.553 1733,-534 1731.86,-525.184 1727.79,-521.198 1733,-514 1754.79,-483.923 1795.05,-471.436 1828.95,-466.397"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1884.58,-752.581 1894.97,-750.486 1885.54,-745.647 1884.58,-752.581"/>
+<g id="edge106" class="edge"><title>Node42&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M2013.01,-735.783C2087.66,-715.151 2198,-677.762 2198,-637 2198,-637 2198,-637 2198,-579 2198,-520.352 2271.58,-486.532 2313.55,-472.012"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2011.91,-732.454 2003.18,-738.459 2013.75,-739.208 2011.91,-732.454"/>
 </g>
 <!-- Node42&#45;&gt;Node39 -->
-<g id="edge113" class="edge"><title>Node42&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M2042.08,-736.274C2092.68,-725.042 2157.99,-710.542 2198.69,-701.506"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2041.18,-732.89 2032.17,-738.475 2042.69,-739.724 2041.18,-732.89"/>
+<g id="edge108" class="edge"><title>Node42&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2030.24,-737.829C2122.33,-723.273 2217.61,-709.892 2278.67,-701.534"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2029.52,-734.4 2020.19,-739.424 2030.62,-741.313 2029.52,-734.4"/>
 </g>
 <!-- Node42&#45;&gt;Node41 -->
-<g id="edge112" class="edge"><title>Node42&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M1997.42,-732.24C2033.25,-706.695 2093.25,-663.915 2118.84,-645.669"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1994.97,-729.682 1988.86,-738.337 1999.04,-735.382 1994.97,-729.682"/>
+<g id="edge107" class="edge"><title>Node42&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M1884.78,-735.401C1859.29,-727.067 1829.89,-715.828 1805,-702 1775.78,-685.767 1746.2,-659.29 1731.88,-645.681"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1883.75,-738.746 1894.34,-738.452 1885.88,-732.078 1883.75,-738.746"/>
 </g>
 <!-- Node43&#45;&gt;Node22 -->
-<g id="edge115" class="edge"><title>Node43&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M2116.14,-730.527C2065.44,-671.439 1927.74,-510.98 1894.36,-472.08"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2113.53,-732.859 2122.7,-738.168 2118.85,-728.3 2113.53,-732.859"/>
+<g id="edge110" class="edge"><title>Node43&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M2165.7,-734.352C2182.33,-726.559 2199.55,-715.96 2212,-702 2232.5,-679.02 2236,-667.795 2236,-637 2236,-637 2236,-637 2236,-579 2236,-527.016 2295.01,-488.308 2324.97,-472.003"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2164.28,-731.152 2156.55,-738.396 2167.11,-737.554 2164.28,-731.152"/>
 </g>
 <!-- Node43&#45;&gt;Node39 -->
-<g id="edge117" class="edge"><title>Node43&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M2167.81,-733.36C2186.1,-722.694 2207.97,-709.934 2222.16,-701.658"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2166.05,-730.337 2159.17,-738.399 2169.57,-736.384 2166.05,-730.337"/>
+<g id="edge112" class="edge"><title>Node43&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2176.08,-735.922C2219.31,-724.74 2274.56,-710.447 2309.12,-701.506"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2175.02,-732.582 2166.22,-738.475 2176.77,-739.359 2175.02,-732.582"/>
 </g>
 <!-- Node43&#45;&gt;Node41 -->
-<g id="edge116" class="edge"><title>Node43&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M2134.16,-728.215C2133.27,-702.408 2131.9,-662.987 2131.3,-645.669"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2130.67,-728.465 2134.51,-738.337 2137.66,-728.222 2130.67,-728.465"/>
+<g id="edge111" class="edge"><title>Node43&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M2055.01,-735.58C1970.68,-710.539 1815.72,-664.531 1751.77,-645.542"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2054.11,-738.962 2064.69,-738.453 2056.1,-732.251 2054.11,-738.962"/>
 </g>
 <!-- Node44&#45;&gt;Node22 -->
-<g id="edge120" class="edge"><title>Node44&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1374.78,-864.338C1345.82,-830.21 1296,-761.531 1296,-693 1296,-693 1296,-693 1296,-635 1296,-524.758 1680.08,-480.805 1828.99,-467.907"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1372.45,-866.993 1381.65,-872.249 1377.73,-862.404 1372.45,-866.993"/>
+<g id="edge115" class="edge"><title>Node44&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M2155.48,-879.966C2224.74,-872.149 2327.74,-857.381 2361,-836 2391.6,-816.331 2392.15,-801.738 2408,-769 2425.29,-733.29 2435.4,-720.98 2428,-682 2411.74,-596.288 2362.57,-501.19 2346.87,-472.293"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2155.07,-876.49 2145.51,-881.069 2155.84,-883.447 2155.07,-876.49"/>
 </g>
 <!-- Node44&#45;&gt;Node29 -->
-<g id="edge143" class="edge"><title>Node44&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M1328.3,-886.726C1064.6,-886.756 109,-878.32 109,-754.5 109,-754.5 109,-754.5 109,-394.5 109,-321.904 201.003,-287.334 261.739,-272.422"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1328.5,-890.226 1338.5,-886.721 1328.5,-883.226 1328.5,-890.226"/>
+<g id="edge138" class="edge"><title>Node44&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M2022.13,-885.517C1681.13,-880.076 152,-850.334 152,-754.5 152,-754.5 152,-754.5 152,-523 152,-458.886 91.7917,-429.117 133,-380 192.175,-309.468 277.825,-414.532 337,-344 353.072,-324.844 339.658,-294.359 329.271,-276.605"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2022.29,-889.02 2032.34,-885.678 2022.4,-882.021 2022.29,-889.02"/>
 </g>
 <!-- Node44&#45;&gt;Node35 -->
-<g id="edge119" class="edge"><title>Node44&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M1327.85,-886.141C1088.01,-884.527 282.163,-876.141 174,-836 119.272,-815.689 71,-812.875 71,-754.5 71,-754.5 71,-754.5 71,-394.5 71,-345.063 113.456,-299.202 138.001,-276.82"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1328.15,-889.643 1338.17,-886.208 1328.19,-882.643 1328.15,-889.643"/>
+<g id="edge114" class="edge"><title>Node44&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M2021.88,-886.261C1743.95,-885.009 682.331,-877.55 350,-836 191.517,-816.186 0,-914.217 0,-754.5 0,-754.5 0,-754.5 0,-461.5 0,-381.488 72.8379,-306.776 106.412,-276.588"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2022.19,-889.763 2032.21,-886.307 2022.22,-882.763 2022.19,-889.763"/>
 </g>
 <!-- Node44&#45;&gt;Node39 -->
-<g id="edge134" class="edge"><title>Node44&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M1461.72,-886.229C1637.43,-884.122 2107.06,-869.043 2218,-769 2237.39,-751.512 2238.38,-717.506 2237.67,-701.596"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1461.53,-882.731 1451.57,-886.34 1461.61,-889.731 1461.53,-882.731"/>
+<g id="edge129" class="edge"><title>Node44&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2156.12,-884.413C2231.47,-877.844 2348.72,-853.742 2391,-769 2397.15,-756.671 2396.54,-750.614 2391,-738 2384.03,-722.138 2368.41,-709.415 2356.66,-701.598"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2155.47,-880.953 2145.78,-885.228 2156.02,-887.931 2155.47,-880.953"/>
 </g>
 <!-- Node45 -->
 <g id="node45" class="node"><title>Node45</title>
@@ -999,158 +974,158 @@
 </g>
 </g>
 <!-- Node44&#45;&gt;Node45 -->
-<g id="edge121" class="edge"><title>Node44&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M1421.48,-866.008C1437.08,-853.941 1455.99,-839.305 1467.76,-830.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1418.99,-863.508 1413.23,-872.396 1423.28,-869.044 1418.99,-863.508"/>
+<g id="edge116" class="edge"><title>Node44&#45;&gt;Node45</title>
+<path fill="none" stroke="midnightblue" d="M2022.46,-879.41C1908.73,-867.291 1677.52,-842.654 1556.62,-829.771"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2022.12,-882.893 2032.43,-880.472 2022.86,-875.932 2022.12,-882.893"/>
 </g>
 <!-- Node46 -->
 <g id="node46" class="node"><title>Node46</title>
 <g id="a_node46"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API. ">
-<polygon fill="white" stroke="black" points="1574.5,-805.5 1574.5,-835.5 1687.5,-835.5 1687.5,-805.5 1574.5,-805.5"/>
-<text text-anchor="start" x="1582.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1631" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/device_api.h</text>
+<polygon fill="white" stroke="black" points="1901.5,-805.5 1901.5,-835.5 2014.5,-835.5 2014.5,-805.5 1901.5,-805.5"/>
+<text text-anchor="start" x="1909.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1958" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/device_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node44&#45;&gt;Node46 -->
-<g id="edge135" class="edge"><title>Node44&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M1455.94,-869.715C1494.35,-859.137 1543.37,-845.635 1579.77,-835.611"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1454.63,-866.446 1445.92,-872.476 1456.49,-873.195 1454.63,-866.446"/>
+<g id="edge130" class="edge"><title>Node44&#45;&gt;Node46</title>
+<path fill="none" stroke="midnightblue" d="M2051.42,-867.853C2030.71,-857.576 2005.41,-845.025 1986.37,-835.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2050.06,-871.086 2060.57,-872.396 2053.17,-864.816 2050.06,-871.086"/>
 </g>
 <!-- Node47 -->
 <g id="node47" class="node"><title>Node47</title>
 <g id="a_node47"><a xlink:href="runtime_2module_8h.html" target="_top" xlink:title="Runtime container of the functions generated by TVM, This is used to support dynamically link...">
-<polygon fill="white" stroke="black" points="1047.5,-805.5 1047.5,-835.5 1160.5,-835.5 1160.5,-805.5 1047.5,-805.5"/>
-<text text-anchor="start" x="1055.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1104" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/module.h</text>
+<polygon fill="white" stroke="black" points="2032.5,-805.5 2032.5,-835.5 2145.5,-835.5 2145.5,-805.5 2032.5,-805.5"/>
+<text text-anchor="start" x="2040.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="2089" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/module.h</text>
 </a>
 </g>
 </g>
 <!-- Node44&#45;&gt;Node47 -->
-<g id="edge136" class="edge"><title>Node44&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M1328.46,-872.891C1277.72,-861.892 1208.67,-846.473 1160.57,-835.398"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1327.84,-876.337 1338.35,-875.029 1329.32,-869.495 1327.84,-876.337"/>
+<g id="edge131" class="edge"><title>Node44&#45;&gt;Node47</title>
+<path fill="none" stroke="midnightblue" d="M2082.45,-862.403C2082.01,-853.37 2082.3,-843.408 2083.33,-835.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2078.97,-862.736 2083.32,-872.396 2085.94,-862.131 2078.97,-862.736"/>
 </g>
 <!-- Node48 -->
 <g id="node48" class="node"><title>Node48</title>
 <g id="a_node48"><a xlink:href="registry_8h.html" target="_top" xlink:title="This file defines the TVM global function registry. ">
-<polygon fill="white" stroke="black" points="2393.5,-805.5 2393.5,-835.5 2506.5,-835.5 2506.5,-805.5 2393.5,-805.5"/>
-<text text-anchor="start" x="2401.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="2450" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/registry.h</text>
+<polygon fill="white" stroke="black" points="1770.5,-805.5 1770.5,-835.5 1883.5,-835.5 1883.5,-805.5 1770.5,-805.5"/>
+<text text-anchor="start" x="1778.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1827" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/registry.h</text>
 </a>
 </g>
 </g>
 <!-- Node44&#45;&gt;Node48 -->
-<g id="edge138" class="edge"><title>Node44&#45;&gt;Node48</title>
-<path fill="none" stroke="midnightblue" d="M1461.85,-883.488C1610.58,-876.619 1980.13,-858.626 2289,-836 2323.71,-833.458 2362.57,-829.976 2393.41,-827.062"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1461.35,-880.007 1451.52,-883.963 1461.67,-887 1461.35,-880.007"/>
+<g id="edge133" class="edge"><title>Node44&#45;&gt;Node48</title>
+<path fill="none" stroke="midnightblue" d="M2022.7,-870.052C1979.87,-859.425 1924.71,-845.741 1883.88,-835.611"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2021.92,-873.465 2032.47,-872.476 2023.61,-866.671 2021.92,-873.465"/>
 </g>
 <!-- Node49 -->
 <g id="node49" class="node"><title>Node49</title>
 <g id="a_node49"><a xlink:href="vm_8h.html" target="_top" xlink:title="A virtual machine for executing Relay programs. ">
-<polygon fill="white" stroke="red" points="2303,-744 2303,-763 2443,-763 2443,-744 2303,-744"/>
-<text text-anchor="middle" x="2373" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime/vm.h</text>
+<polygon fill="white" stroke="red" points="2242,-744 2242,-763 2382,-763 2382,-744 2242,-744"/>
+<text text-anchor="middle" x="2312" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime/vm.h</text>
 </a>
 </g>
 </g>
 <!-- Node44&#45;&gt;Node49 -->
-<g id="edge142" class="edge"><title>Node44&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M1461.64,-887.051C1636.52,-887.786 2105.11,-884.986 2251,-836 2298.33,-820.109 2344.7,-780.777 2363.84,-763.213"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1461.56,-883.551 1451.54,-887.003 1461.53,-890.55 1461.56,-883.551"/>
+<g id="edge137" class="edge"><title>Node44&#45;&gt;Node49</title>
+<path fill="none" stroke="midnightblue" d="M2155.68,-882.88C2195.02,-877.547 2243.51,-865.005 2277,-836 2299.58,-816.441 2308.04,-779.723 2310.81,-763.084"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2155.13,-879.422 2145.63,-884.116 2155.98,-886.37 2155.13,-879.422"/>
 </g>
 <!-- Node50 -->
 <g id="node50" class="node"><title>Node50</title>
 <g id="a_node50"><a xlink:href="generic__func_8h.html" target="_top" xlink:title="Generic function that can be specialzied on a per target basis. ">
-<polygon fill="white" stroke="red" points="1179,-805.5 1179,-835.5 1283,-835.5 1283,-805.5 1179,-805.5"/>
-<text text-anchor="start" x="1187" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="1231" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
+<polygon fill="white" stroke="red" points="2164,-805.5 2164,-835.5 2268,-835.5 2268,-805.5 2164,-805.5"/>
+<text text-anchor="start" x="2172" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="2216" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node44&#45;&gt;Node50 -->
-<g id="edge144" class="edge"><title>Node44&#45;&gt;Node50</title>
-<path fill="none" stroke="midnightblue" d="M1350.04,-868.682C1323.74,-858.257 1291,-845.281 1266.52,-835.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1348.83,-871.965 1359.41,-872.396 1351.41,-865.458 1348.83,-871.965"/>
+<g id="edge139" class="edge"><title>Node44&#45;&gt;Node50</title>
+<path fill="none" stroke="midnightblue" d="M2125.7,-867.714C2145.73,-857.463 2170.12,-844.983 2188.5,-835.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2123.86,-864.724 2116.56,-872.396 2127.05,-870.956 2123.86,-864.724"/>
 </g>
 <!-- Node45&#45;&gt;Node2 -->
-<g id="edge126" class="edge"><title>Node45&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M1539.91,-809.169C1586.72,-800.501 1652.68,-786.702 1709,-769 1867.35,-719.23 1894.52,-672.011 2054,-626 2123.8,-605.862 2206.74,-593.542 2260.78,-587"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1539.13,-805.752 1529.92,-810.993 1540.39,-812.638 1539.13,-805.752"/>
+<g id="edge121" class="edge"><title>Node45&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1546.39,-809.061C1584.18,-801.427 1631.35,-788.856 1670,-769 1758.73,-723.412 1756.67,-675.978 1843,-626 1871.4,-609.558 1906.91,-597.124 1931.91,-589.538"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1545.64,-805.641 1536.5,-810.99 1546.98,-812.511 1545.64,-805.641"/>
 </g>
 <!-- Node45&#45;&gt;Node3 -->
-<g id="edge124" class="edge"><title>Node45&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1534.04,-809.28C1544.3,-807.642 1554.96,-806.12 1565,-805 1709.44,-788.894 2079.66,-813.545 2218,-769 2282.28,-748.303 2498.76,-629.852 2580,-534 2596.08,-515.028 2605.16,-486.408 2608.92,-472.175"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1533.24,-805.864 1523.95,-810.946 1534.38,-812.771 1533.24,-805.864"/>
+<g id="edge119" class="edge"><title>Node45&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M1490.43,-802.214C1515.2,-765.805 1577.15,-680.127 1646,-626 1743.72,-549.175 1883.41,-492.813 1938.92,-472.141"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1487.38,-800.485 1484.71,-810.737 1493.19,-804.389 1487.38,-800.485"/>
 </g>
-<!-- Node45&#45;&gt;Node10 -->
-<g id="edge125" class="edge"><title>Node45&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M1496.22,-803.651C1554.72,-749.816 1744.64,-575.028 1789.46,-533.779"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1493.57,-801.339 1488.58,-810.686 1498.31,-806.49 1493.57,-801.339"/>
+<!-- Node45&#45;&gt;Node9 -->
+<g id="edge120" class="edge"><title>Node45&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1479,-800.803C1479,-776.117 1479,-731.298 1479,-693 1479,-693 1479,-693 1479,-635 1479,-569.569 1562.42,-542.754 1621.24,-531.979"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1475.5,-800.911 1479,-810.911 1482.5,-800.911 1475.5,-800.911"/>
 </g>
-<!-- Node45&#45;&gt;Node14 -->
-<g id="edge122" class="edge"><title>Node45&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1444.55,-807.042C1401.66,-789.057 1334,-751.422 1334,-693 1334,-693 1334,-693 1334,-579 1334,-483.935 1312.97,-369.851 1306.73,-338.076"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1443.49,-810.39 1454.07,-810.888 1446.11,-803.899 1443.49,-810.39"/>
+<!-- Node45&#45;&gt;Node13 -->
+<g id="edge117" class="edge"><title>Node45&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1418.62,-809.056C1323.63,-790.89 1150,-749.903 1150,-693 1150,-693 1150,-693 1150,-461.5 1150,-402.009 1082.7,-356.56 1050.62,-338.279"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1418.2,-812.539 1428.67,-810.95 1419.49,-805.659 1418.2,-812.539"/>
 </g>
-<!-- Node45&#45;&gt;Node15 -->
-<g id="edge130" class="edge"><title>Node45&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1391.31,-812.408C1316.17,-800.961 1220,-771.063 1220,-693 1220,-693 1220,-693 1220,-461.5 1220,-380.563 1154.78,-297.858 1131.86,-271.282"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1390.9,-815.884 1401.29,-813.84 1391.89,-808.955 1390.9,-815.884"/>
+<!-- Node45&#45;&gt;Node14 -->
+<g id="edge125" class="edge"><title>Node45&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1391.18,-809.953C1272.08,-794.519 1074,-758.94 1074,-693 1074,-693 1074,-693 1074,-461.5 1074,-420.123 1059,-408.492 1029,-380 1002.48,-354.815 974.397,-375.007 955,-344 939.483,-319.196 966.279,-286.317 981.126,-271.012"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1391.03,-813.461 1401.39,-811.251 1391.91,-806.517 1391.03,-813.461"/>
 </g>
 <!-- Node45&#45;&gt;Node21 -->
-<g id="edge123" class="edge"><title>Node45&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1486.33,-801.443C1495.5,-777.2 1510,-732.591 1510,-693 1510,-693 1510,-693 1510,-523 1510,-469.503 1564.48,-423.431 1589.59,-405.036"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1483.06,-800.198 1482.68,-810.786 1489.58,-802.748 1483.06,-800.198"/>
+<g id="edge118" class="edge"><title>Node45&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1391.08,-818.985C1291.96,-816.447 1126.79,-806.288 990,-769 911.714,-747.66 824,-774.142 824,-693 824,-693 824,-693 824,-523 824,-515.767 397.737,-432.23 257.87,-405.014"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1391.27,-822.491 1401.35,-819.227 1391.44,-815.492 1391.27,-822.491"/>
 </g>
 <!-- Node45&#45;&gt;Node27 -->
-<g id="edge132" class="edge"><title>Node45&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1411.2,-809.41C1274.56,-788.146 979,-737.059 979,-693 979,-693 979,-693 979,-579 979,-517.109 900.123,-485.588 851.441,-472.027"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1410.74,-812.879 1421.16,-810.95 1411.81,-805.962 1410.74,-812.879"/>
+<g id="edge127" class="edge"><title>Node45&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M1391.01,-814.985C1286.01,-808.544 1117.41,-794.566 1060,-769 1013.1,-748.112 973,-744.342 973,-693 973,-693 973,-693 973,-579 973,-538.244 958.498,-491.058 952.04,-472.067"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1391.09,-818.496 1401.29,-815.603 1391.51,-811.509 1391.09,-818.496"/>
 </g>
 <!-- Node45&#45;&gt;Node30 -->
-<g id="edge131" class="edge"><title>Node45&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M1390.99,-811.049C1140.72,-786.729 443,-716.792 443,-693 443,-693 443,-693 443,-394.5 443,-347.967 444.886,-292.231 445.667,-271.147"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1390.84,-814.551 1401.13,-812.034 1391.52,-807.584 1390.84,-814.551"/>
+<g id="edge126" class="edge"><title>Node45&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M1391.19,-815.98C1089.52,-803.315 114,-757.383 114,-693 114,-693 114,-693 114,-461.5 114,-424.306 105.995,-405.575 133,-380 199.847,-316.692 252.043,-379.48 337,-344 381.032,-325.611 424.709,-287.949 443.023,-271.045"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1391.07,-819.478 1401.21,-816.399 1391.36,-812.484 1391.07,-819.478"/>
 </g>
 <!-- Node45&#45;&gt;Node34 -->
-<g id="edge133" class="edge"><title>Node45&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M1391.25,-812.046C1359.94,-809.559 1324.41,-806.932 1292,-805 908.791,-782.158 808.436,-827.305 429,-769 300.701,-749.285 147,-822.805 147,-693 147,-693 147,-693 147,-461.5 147,-399.413 218.921,-361.968 268.367,-343.56"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1391.01,-815.538 1401.25,-812.847 1391.56,-808.56 1391.01,-815.538"/>
+<g id="edge128" class="edge"><title>Node45&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1391,-818.27C1096.07,-813.889 157.8,-797.749 100,-769 60.9695,-749.587 38,-736.592 38,-693 38,-693 38,-693 38,-461.5 38,-423.74 34.7224,-406.111 62,-380 82.1631,-360.7 151.092,-346.431 203.295,-338.074"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1391.17,-821.773 1401.22,-818.421 1391.27,-814.774 1391.17,-821.773"/>
 </g>
 <!-- Node45&#45;&gt;Node41 -->
-<g id="edge127" class="edge"><title>Node45&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M1537.48,-809.331C1546.68,-807.821 1556.09,-806.327 1565,-805 1688.23,-786.64 1727.15,-814.831 1843,-769 1864.91,-760.333 1865.41,-749.457 1886,-738 1961.78,-695.828 2058.8,-661.001 2104.69,-645.567"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1536.9,-805.879 1527.61,-810.97 1538.05,-812.784 1536.9,-805.879"/>
+<g id="edge122" class="edge"><title>Node45&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M1550.46,-808.679C1580.72,-801.351 1614.94,-789.166 1641,-769 1685.38,-734.659 1711.78,-668.981 1720.11,-645.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1549.33,-805.345 1540.36,-810.982 1550.89,-812.17 1549.33,-805.345"/>
 </g>
 <!-- Node45&#45;&gt;Node42 -->
-<g id="edge128" class="edge"><title>Node45&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M1536.78,-809.321C1546.2,-807.788 1555.86,-806.29 1565,-805 1704.97,-785.242 1741,-788.497 1881,-769 1885.45,-768.381 1890.02,-767.716 1894.62,-767.023"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1535.99,-805.905 1526.69,-810.991 1537.13,-812.811 1535.99,-805.905"/>
+<g id="edge123" class="edge"><title>Node45&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M1550.57,-809.538C1637.5,-797.439 1783.42,-777.129 1871.6,-764.855"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1549.95,-806.09 1540.53,-810.936 1550.92,-813.023 1549.95,-806.09"/>
 </g>
 <!-- Node45&#45;&gt;Node43 -->
-<g id="edge129" class="edge"><title>Node45&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1534.75,-809.322C1544.8,-807.711 1555.19,-806.187 1565,-805 1780.46,-778.93 1836.61,-795.708 2052,-769 2054.9,-768.64 2057.86,-768.248 2060.84,-767.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1534.15,-805.874 1524.86,-810.955 1535.29,-812.78 1534.15,-805.874"/>
+<g id="edge124" class="edge"><title>Node45&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M1566.91,-813.644C1675.7,-805.888 1866.48,-790.621 2029,-769 2031.9,-768.614 2034.85,-768.2 2037.83,-767.765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1566.37,-810.174 1556.64,-814.371 1566.87,-817.156 1566.37,-810.174"/>
 </g>
 <!-- Node47&#45;&gt;Node44 -->
-<g id="edge137" class="edge"><title>Node47&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M1170.82,-835.17C1221.47,-846.149 1290.23,-861.505 1338.23,-872.556"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1171.46,-831.727 1160.94,-833.035 1169.98,-838.569 1171.46,-831.727"/>
+<g id="edge132" class="edge"><title>Node47&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M2095.54,-845.565C2095.99,-854.596 2095.71,-864.56 2094.68,-872.396"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2099.03,-845.236 2094.67,-835.577 2092.05,-845.842 2099.03,-845.236"/>
 </g>
 <!-- Node48&#45;&gt;Node6 -->
-<g id="edge139" class="edge"><title>Node48&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M2456.39,-795.164C2459.5,-778.233 2460.88,-755.625 2452,-738 2402.23,-639.254 2315.08,-680.824 2252,-590 2160.8,-458.681 2143.24,-253.553 2140.46,-209.508"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2452.88,-794.848 2454.19,-805.361 2459.72,-796.323 2452.88,-794.848"/>
+<g id="edge134" class="edge"><title>Node48&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M1794.44,-799.956C1721.99,-753.791 1557.96,-632.908 1612,-514 1621.37,-493.389 1900.69,-259.321 1919,-246 1938.4,-231.884 1962.42,-218.051 1977.97,-209.529"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1792.88,-803.109 1803.21,-805.464 1796.6,-797.181 1792.88,-803.109"/>
 </g>
-<!-- Node48&#45;&gt;Node9 -->
-<g id="edge140" class="edge"><title>Node48&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2476.96,-799.088C2547.48,-743.137 2732,-579.272 2732,-396.5 2732,-396.5 2732,-396.5 2732,-327.5 2732,-268.367 2544.92,-226.567 2452.48,-209.521"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2474.65,-796.446 2468.94,-805.37 2478.97,-801.956 2474.65,-796.446"/>
+<!-- Node48&#45;&gt;Node7 -->
+<g id="edge135" class="edge"><title>Node48&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1893.88,-804.84C2027.9,-784.094 2073.21,-820.677 2195,-769 2215.06,-760.487 2213.22,-747.154 2233,-738 2312.98,-700.986 2364.41,-763.018 2428,-702 2553.86,-581.235 2528.84,-480.451 2480,-313 2470.54,-280.548 2470.59,-266.87 2444,-246 2413.2,-221.824 2370.78,-210.537 2335.53,-205.312"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1892.96,-801.444 1883.65,-806.508 1894.09,-808.353 1892.96,-801.444"/>
 </g>
 <!-- Node48&#45;&gt;Node49 -->
-<g id="edge141" class="edge"><title>Node48&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M2425.33,-798.672C2411.11,-786.671 2393.99,-772.22 2383.3,-763.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2423.39,-801.62 2433.29,-805.396 2427.91,-796.271 2423.39,-801.62"/>
+<g id="edge136" class="edge"><title>Node48&#45;&gt;Node49</title>
+<path fill="none" stroke="midnightblue" d="M1893.58,-804.85C2041.92,-780.992 2082.45,-789.338 2228,-769 2240.31,-767.28 2253.59,-765.127 2265.87,-763.011"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1892.95,-801.405 1883.65,-806.469 1894.08,-808.314 1892.95,-801.405"/>
 </g>
 </g>
 </svg>
diff --git a/docs/doxygen/dir_000018_000007.html b/docs/doxygen/dir_000018_000007.html
index d8fce53..43c04e0 100644
--- a/docs/doxygen/dir_000018_000007.html
+++ b/docs/doxygen/dir_000018_000007.html
@@ -79,7 +79,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
 </div><!-- top -->
 <div class="contents">
-<h3>te &rarr; tir Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in include/tvm/te</th><th class="dirtab">Includes file in include/tvm/tir</th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="operation_8h.html">operation.h</a></td><td class="dirtab"><a class="el" href="buffer_8h.html">buffer.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="operation_8h.html">operation.h</a></td><td class="dirtab"><a class="el" href="tir [...]
+<h3>te &rarr; tir Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in include/tvm/te</th><th class="dirtab">Includes file in include/tvm/tir</th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="autodiff_8h.html">autodiff.h</a></td><td class="dirtab"><a class="el" href="tir_2expr_8h.html">expr.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="operation_8h.html">operation.h</a></td><td class="dirtab"><a class="el" href="buff [...]
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/docs/doxygen/dir_000018_000007.html b/docs/doxygen/dir_000018_000008.html
similarity index 71%
copy from docs/doxygen/dir_000018_000007.html
copy to docs/doxygen/dir_000018_000008.html
index d8fce53..df247e6 100644
--- a/docs/doxygen/dir_000018_000007.html
+++ b/docs/doxygen/dir_000018_000008.html
@@ -4,7 +4,7 @@
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.11"/>
-<title>tvm: include/tvm/te -&gt; tir Relation</title>
+<title>tvm: include/tvm/te -&gt; runtime Relation</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -79,7 +79,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div>
 </div><!-- top -->
 <div class="contents">
-<h3>te &rarr; tir Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in include/tvm/te</th><th class="dirtab">Includes file in include/tvm/tir</th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="operation_8h.html">operation.h</a></td><td class="dirtab"><a class="el" href="buffer_8h.html">buffer.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="operation_8h.html">operation.h</a></td><td class="dirtab"><a class="el" href="tir [...]
+<h3>te &rarr; runtime Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in include/tvm/te</th><th class="dirtab">Includes file in include/tvm/runtime</th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="autodiff_8h.html">autodiff.h</a></td><td class="dirtab"><a class="el" href="object_8h.html">object.h</a></td></tr></table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/docs/doxygen/dir_02be2c9d68e402f80df60bd528724ee5.html b/docs/doxygen/dir_02be2c9d68e402f80df60bd528724ee5.html
index f720c66..260e6a6 100644
--- a/docs/doxygen/dir_02be2c9d68e402f80df60bd528724ee5.html
+++ b/docs/doxygen/dir_02be2c9d68e402f80df60bd528724ee5.html
@@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="dynheader">
 Directory dependency graph for driver:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="dir_02be2c9d68e402f80df60bd528724ee5_dep.svg" width="271" height="394"><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="dir_02be2c9d68e402f80df60bd528724ee5_dep.svg" width="266" height="394"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
diff --git a/docs/doxygen/dir_02be2c9d68e402f80df60bd528724ee5_dep.svg b/docs/doxygen/dir_02be2c9d68e402f80df60bd528724ee5_dep.svg
index dbfa617..2fbcb09 100644
--- a/docs/doxygen/dir_02be2c9d68e402f80df60bd528724ee5_dep.svg
+++ b/docs/doxygen/dir_02be2c9d68e402f80df60bd528724ee5_dep.svg
@@ -4,171 +4,180 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/driver Pages: 1 -->
-<svg width="203pt" height="295pt"
- viewBox="0.00 0.00 203.46 295.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="199pt" height="295pt"
+ viewBox="0.00 0.00 199.11 295.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 291)">
 <title>include/tvm/driver</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-291 199.46,-291 199.46,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-291 195.11,-291 195.11,4 -4,4"/>
 <g id="clust1" class="cluster"><title>clusterdir_b4c7d8e826c599ba55146c099a14beb5</title>
 <g id="a_clust1"><a xlink:href="dir_b4c7d8e826c599ba55146c099a14beb5.html" target="_top" xlink:title="tvm">
-<polygon fill="#ddddee" stroke="black" points="78.4605,-208 78.4605,-279 148.46,-279 148.46,-208 78.4605,-208"/>
-<text text-anchor="middle" x="113.46" y="-267" font-family="Helvetica,sans-Serif" font-size="10.00">tvm</text>
+<polygon fill="#ddddee" stroke="black" points="60.977,-208 60.977,-279 130.977,-279 130.977,-208 60.977,-208"/>
+<text text-anchor="middle" x="95.977" y="-267" font-family="Helvetica,sans-Serif" font-size="10.00">tvm</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5 -->
 <g id="node1" class="node"><title>dir_02be2c9d68e402f80df60bd528724ee5</title>
 <g id="a_node1"><a xlink:href="dir_02be2c9d68e402f80df60bd528724ee5.html" target="_top" xlink:title="driver">
-<polygon fill="#eeeeff" stroke="black" points="140.46,-252 86.4605,-252 86.4605,-216 140.46,-216 140.46,-252"/>
-<text text-anchor="middle" x="113.46" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">driver</text>
+<polygon fill="#eeeeff" stroke="black" points="122.977,-252 68.977,-252 68.977,-216 122.977,-216 122.977,-252"/>
+<text text-anchor="middle" x="95.977" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">driver</text>
 </a>
 </g>
 </g>
 <!-- dir_f97d855a3173728370e632aa77170e34 -->
 <g id="node2" class="node"><title>dir_f97d855a3173728370e632aa77170e34</title>
 <g id="a_node2"><a xlink:href="dir_f97d855a3173728370e632aa77170e34.html" target="_top" xlink:title="te">
-<polygon fill="none" stroke="black" points="68.4605,-180 14.4605,-180 14.4605,-144 68.4605,-144 68.4605,-180"/>
-<text text-anchor="middle" x="41.4605" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">te</text>
+<polygon fill="none" stroke="black" points="67.977,-180 13.977,-180 13.977,-144 67.977,-144 67.977,-180"/>
+<text text-anchor="middle" x="40.977" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">te</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_f97d855a3173728370e632aa77170e34 -->
-<g id="edge6" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
-<path fill="none" stroke="black" d="M95.6627,-215.697C86.8565,-207.135 76.0783,-196.656 66.4594,-187.304"/>
-<polygon fill="black" stroke="black" points="68.6632,-184.566 59.0535,-180.104 63.7837,-189.585 68.6632,-184.566"/>
-<g id="a_edge6&#45;headlabel"><a xlink:href="dir_000003_000018.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="73.2197" y="-182.536" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge7" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
+<path fill="none" stroke="black" d="M82.3815,-215.697C75.8543,-207.389 67.909,-197.277 60.7304,-188.141"/>
+<polygon fill="black" stroke="black" points="63.3465,-185.805 54.4161,-180.104 57.8422,-190.13 63.3465,-185.805"/>
+<g id="a_edge7&#45;headlabel"><a xlink:href="dir_000003_000018.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="67.7998" y="-184.377" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2 -->
 <g id="node3" class="node"><title>dir_5da96592f3a7c442b838b075c58254c2</title>
 <g id="a_node3"><a xlink:href="dir_5da96592f3a7c442b838b075c58254c2.html" target="_top" xlink:title="target">
-<polygon fill="none" stroke="black" points="140.46,-180 86.4605,-180 86.4605,-144 140.46,-144 140.46,-180"/>
-<text text-anchor="middle" x="113.46" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">target</text>
+<polygon fill="none" stroke="black" points="177.977,-180 123.977,-180 123.977,-144 177.977,-144 177.977,-180"/>
+<text text-anchor="middle" x="150.977" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">target</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_5da96592f3a7c442b838b075c58254c2 -->
-<g id="edge7" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_5da96592f3a7c442b838b075c58254c2</title>
-<path fill="none" stroke="black" d="M113.46,-215.697C113.46,-207.983 113.46,-198.712 113.46,-190.112"/>
-<polygon fill="black" stroke="black" points="116.961,-190.104 113.46,-180.104 109.961,-190.104 116.961,-190.104"/>
-<g id="a_edge7&#45;headlabel"><a xlink:href="dir_000003_000017.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="119.8" y="-191.199" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge8" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_5da96592f3a7c442b838b075c58254c2</title>
+<path fill="none" stroke="black" d="M109.573,-215.697C116.1,-207.389 124.045,-197.277 131.224,-188.141"/>
+<polygon fill="black" stroke="black" points="134.112,-190.13 137.538,-180.104 128.608,-185.805 134.112,-190.13"/>
+<g id="a_edge8&#45;headlabel"><a xlink:href="dir_000003_000017.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="134.124" y="-192.211" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_404558507ed35459f0d7a6d81d8c508d -->
 <g id="node4" class="node"><title>dir_404558507ed35459f0d7a6d81d8c508d</title>
 <g id="a_node4"><a xlink:href="dir_404558507ed35459f0d7a6d81d8c508d.html" target="_top" xlink:title="runtime">
-<polygon fill="white" stroke="red" points="195.46,-36 141.46,-36 141.46,-0 195.46,-0 195.46,-36"/>
-<text text-anchor="middle" x="168.46" y="-15.5" font-family="Helvetica,sans-Serif" font-size="10.00">runtime</text>
+<polygon fill="white" stroke="red" points="130.977,-36 76.977,-36 76.977,-0 130.977,-0 130.977,-36"/>
+<text text-anchor="middle" x="103.977" y="-15.5" font-family="Helvetica,sans-Serif" font-size="10.00">runtime</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge8" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M136.876,-215.767C147.594,-206.472 159.266,-194.033 165.46,-180 184.713,-136.383 179.646,-79.4279 174.117,-46.2633"/>
-<polygon fill="black" stroke="black" points="177.554,-45.5994 172.336,-36.3785 170.665,-46.8407 177.554,-45.5994"/>
-<g id="a_edge8&#45;headlabel"><a xlink:href="dir_000003_000008.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="180.985" y="-46.1336" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge9" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M123.265,-225.341C144.801,-217.697 173.401,-203.618 186.977,-180 202.372,-153.218 167.983,-73.5658 166.977,-72 159.782,-60.8042 149.487,-50.7413 139.299,-42.4683"/>
+<polygon fill="black" stroke="black" points="141.268,-39.5668 131.212,-36.2299 136.992,-45.1092 141.268,-39.5668"/>
+<g id="a_edge9&#45;headlabel"><a xlink:href="dir_000003_000008.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="145.848" y="-37.0143" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5 -->
 <g id="node5" class="node"><title>dir_72c2f11201cd7636dc7624de0754daa5</title>
 <g id="a_node5"><a xlink:href="dir_72c2f11201cd7636dc7624de0754daa5.html" target="_top" xlink:title="tir">
-<polygon fill="none" stroke="black" points="68.4605,-108 14.4605,-108 14.4605,-72 68.4605,-72 68.4605,-108"/>
-<text text-anchor="middle" x="41.4605" y="-87.5" font-family="Helvetica,sans-Serif" font-size="10.00">tir</text>
+<polygon fill="none" stroke="black" points="67.977,-108 13.977,-108 13.977,-72 67.977,-72 67.977,-108"/>
+<text text-anchor="middle" x="40.977" y="-87.5" font-family="Helvetica,sans-Serif" font-size="10.00">tir</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5 -->
-<g id="edge9" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
-<path fill="none" stroke="black" d="M86.259,-228.078C60.4323,-221.803 23.0243,-208.184 5.46046,-180 -7.07656,-159.882 5.42667,-134.649 19.0176,-116.193"/>
-<polygon fill="black" stroke="black" points="21.8416,-118.264 25.2526,-108.233 16.3308,-113.947 21.8416,-118.264"/>
-<g id="a_edge9&#45;headlabel"><a xlink:href="dir_000003_000007.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="21.8603" y="-120.345" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge10" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
+<path fill="none" stroke="black" d="M68.6889,-225.341C47.1528,-217.697 18.5529,-203.618 4.97699,-180 -6.72984,-159.634 5.3647,-134.717 18.6018,-116.433"/>
+<polygon fill="black" stroke="black" points="21.7441,-118.091 25.0925,-108.04 16.2065,-113.809 21.7441,-118.091"/>
+<g id="a_edge10&#45;headlabel"><a xlink:href="dir_000003_000007.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="21.7914" y="-120.172" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_fb1b1bc11a768ab8cf63a96a73170118 -->
 <g id="node6" class="node"><title>dir_fb1b1bc11a768ab8cf63a96a73170118</title>
 <g id="a_node6"><a xlink:href="dir_fb1b1bc11a768ab8cf63a96a73170118.html" target="_top" xlink:title="support">
-<polygon fill="none" stroke="black" points="140.46,-108 86.4605,-108 86.4605,-72 140.46,-72 140.46,-108"/>
-<text text-anchor="middle" x="113.46" y="-87.5" font-family="Helvetica,sans-Serif" font-size="10.00">support</text>
+<polygon fill="none" stroke="black" points="139.977,-108 85.977,-108 85.977,-72 139.977,-72 139.977,-108"/>
+<text text-anchor="middle" x="112.977" y="-87.5" font-family="Helvetica,sans-Serif" font-size="10.00">support</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118 -->
-<g id="edge10" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118</title>
-<path fill="none" stroke="black" d="M129.07,-215.774C136.833,-206.03 145.406,-193.184 149.46,-180 154.163,-164.707 154.163,-159.293 149.46,-144 146.452,-134.215 140.953,-124.616 135.145,-116.334"/>
-<polygon fill="black" stroke="black" points="137.868,-114.131 129.07,-108.226 132.266,-118.328 137.868,-114.131"/>
-<g id="a_edge10&#45;headlabel"><a xlink:href="dir_000003_000016.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="142.295" y="-112.805" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge11" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118</title>
+<path fill="none" stroke="black" d="M98.0276,-215.871C100.925,-191.67 106.248,-147.211 109.698,-118.393"/>
+<polygon fill="black" stroke="black" points="113.206,-118.534 110.919,-108.189 106.255,-117.702 113.206,-118.534"/>
+<g id="a_edge11&#45;headlabel"><a xlink:href="dir_000003_000016.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="115.597" y="-119.941" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+</a>
+</g>
+</g>
+<!-- dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
+<g id="edge1" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M24.9287,-143.864C9.6564,-125.381 -9.06823,-95.4505 4.97699,-72 18.415,-49.5635 44.9543,-36.0877 67.1743,-28.3425"/>
+<polygon fill="black" stroke="black" points="68.2561,-31.6712 76.6986,-25.27 66.107,-25.0092 68.2561,-31.6712"/>
+<g id="a_edge1&#45;headlabel"><a xlink:href="dir_000018_000008.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="65.7068" y="-32.9768" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5 -->
-<g id="edge1" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
-<path fill="none" stroke="black" d="M35.5447,-143.697C34.749,-135.983 34.5225,-126.712 34.8652,-118.112"/>
-<polygon fill="black" stroke="black" points="38.3588,-118.324 35.5654,-108.104 31.3759,-117.836 38.3588,-118.324"/>
-<g id="a_edge1&#45;headlabel"><a xlink:href="dir_000018_000007.html" target="_top" xlink:title="7">
-<text text-anchor="middle" x="40.9404" y="-119.608" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
+<g id="edge2" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
+<path fill="none" stroke="black" d="M35.0613,-143.697C34.2656,-135.983 34.0391,-126.712 34.3817,-118.112"/>
+<polygon fill="black" stroke="black" points="37.8754,-118.324 35.082,-108.104 30.8924,-117.836 37.8754,-118.324"/>
+<g id="a_edge2&#45;headlabel"><a xlink:href="dir_000018_000007.html" target="_top" xlink:title="8">
+<text text-anchor="middle" x="40.4569" y="-119.608" font-family="Helvetica,sans-Serif" font-size="10.00">8</text>
 </a>
 </g>
 </g>
 <!-- dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118 -->
-<g id="edge2" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118</title>
-<path fill="none" stroke="black" d="M59.2582,-143.697C68.0644,-135.135 78.8426,-124.656 88.4616,-115.304"/>
-<polygon fill="black" stroke="black" points="91.1372,-117.585 95.8674,-108.104 86.2577,-112.566 91.1372,-117.585"/>
-<g id="a_edge2&#45;headlabel"><a xlink:href="dir_000018_000016.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="90.5391" y="-119.626" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge3" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118</title>
+<path fill="none" stroke="black" d="M58.7748,-143.697C67.581,-135.135 78.3591,-124.656 87.9781,-115.304"/>
+<polygon fill="black" stroke="black" points="90.6538,-117.585 95.384,-108.104 85.7742,-112.566 90.6538,-117.585"/>
+<g id="a_edge3&#45;headlabel"><a xlink:href="dir_000018_000016.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="90.0557" y="-119.626" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge3" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M127.625,-143.851C135.151,-133.93 143.958,-120.89 149.46,-108 157.874,-88.2932 162.705,-64.4881 165.389,-46.4579"/>
-<polygon fill="black" stroke="black" points="168.887,-46.7052 166.763,-36.3255 161.951,-45.7643 168.887,-46.7052"/>
-<g id="a_edge3&#45;headlabel"><a xlink:href="dir_000017_000008.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="171.218" y="-48.1489" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge4" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M153.877,-143.958C156.27,-125.555 157.982,-95.6931 148.977,-72 145.012,-61.5683 138.042,-51.7588 130.754,-43.4826"/>
+<polygon fill="black" stroke="black" points="133.159,-40.9313 123.758,-36.0472 128.062,-45.7284 133.159,-40.9313"/>
+<g id="a_edge4&#45;headlabel"><a xlink:href="dir_000017_000008.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="137.691" y="-39.1033" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5 -->
-<g id="edge4" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
-<path fill="none" stroke="black" d="M95.6627,-143.697C86.8565,-135.135 76.0783,-124.656 66.4594,-115.304"/>
-<polygon fill="black" stroke="black" points="68.6632,-112.566 59.0535,-108.104 63.7837,-117.585 68.6632,-112.566"/>
-<g id="a_edge4&#45;headlabel"><a xlink:href="dir_000017_000007.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="73.2197" y="-110.536" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge5" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
+<path fill="none" stroke="black" d="M124.068,-143.876C109.819,-134.808 92.1306,-123.552 76.7414,-113.759"/>
+<polygon fill="black" stroke="black" points="78.3052,-110.606 67.9895,-108.19 74.547,-116.511 78.3052,-110.606"/>
+<g id="a_edge5&#45;headlabel"><a xlink:href="dir_000017_000007.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="82.8621" y="-107.64" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118 -->
-<g id="edge5" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118</title>
-<path fill="none" stroke="black" d="M113.46,-143.697C113.46,-135.983 113.46,-126.712 113.46,-118.112"/>
-<polygon fill="black" stroke="black" points="116.961,-118.104 113.46,-108.104 109.961,-118.104 116.961,-118.104"/>
-<g id="a_edge5&#45;headlabel"><a xlink:href="dir_000017_000016.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="119.8" y="-119.199" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge6" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118</title>
+<path fill="none" stroke="black" d="M141.584,-143.697C137.212,-135.644 131.92,-125.894 127.082,-116.982"/>
+<polygon fill="black" stroke="black" points="130.109,-115.223 122.262,-108.104 123.957,-118.563 130.109,-115.223"/>
+<g id="a_edge6&#45;headlabel"><a xlink:href="dir_000017_000016.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="134.319" y="-114.528" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_f97d855a3173728370e632aa77170e34 -->
-<g id="edge11" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
-<path fill="none" stroke="black" d="M47.3555,-108.104C48.161,-115.791 48.3973,-125.054 48.0645,-133.665"/>
-<polygon fill="black" stroke="black" points="44.569,-133.48 47.3762,-143.697 51.5526,-133.96 44.569,-133.48"/>
-<g id="a_edge11&#45;headlabel"><a xlink:href="dir_000007_000018.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="41.9824" y="-127.2" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge12" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
+<path fill="none" stroke="black" d="M46.872,-108.104C47.6775,-115.791 47.9139,-125.054 47.581,-133.665"/>
+<polygon fill="black" stroke="black" points="44.0855,-133.48 46.8927,-143.697 51.0691,-133.96 44.0855,-133.48"/>
+<g id="a_edge12&#45;headlabel"><a xlink:href="dir_000007_000018.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="41.4989" y="-127.2" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge12" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M68.7051,-73.9832C87.2872,-63.7411 112.099,-50.0656 132.328,-38.9157"/>
-<polygon fill="black" stroke="black" points="134.193,-41.8843 141.261,-33.9919 130.814,-35.7539 134.193,-41.8843"/>
-<g id="a_edge12&#45;headlabel"><a xlink:href="dir_000007_000008.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="132.415" y="-43.606" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge13" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M56.55,-71.6966C64.1792,-63.2198 73.4998,-52.8636 81.8527,-43.5826"/>
+<polygon fill="black" stroke="black" points="84.495,-45.8787 88.5831,-36.1043 79.2919,-41.1959 84.495,-45.8787"/>
+<g id="a_edge13&#45;headlabel"><a xlink:href="dir_000007_000008.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="84.2007" y="-47.9499" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
diff --git a/docs/doxygen/dir_63946bee875c6d52bce55e72a67a86ad.html b/docs/doxygen/dir_63946bee875c6d52bce55e72a67a86ad.html
index 87ff23c..1f2f04b 100644
--- a/docs/doxygen/dir_63946bee875c6d52bce55e72a67a86ad.html
+++ b/docs/doxygen/dir_63946bee875c6d52bce55e72a67a86ad.html
@@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="dynheader">
 Directory dependency graph for relay:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="dir_63946bee875c6d52bce55e72a67a86ad_dep.svg" width="571" height="596"><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="dir_63946bee875c6d52bce55e72a67a86ad_dep.svg" width="547" height="596"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
diff --git a/docs/doxygen/dir_63946bee875c6d52bce55e72a67a86ad_dep.svg b/docs/doxygen/dir_63946bee875c6d52bce55e72a67a86ad_dep.svg
index db8171d..51615cd 100644
--- a/docs/doxygen/dir_63946bee875c6d52bce55e72a67a86ad_dep.svg
+++ b/docs/doxygen/dir_63946bee875c6d52bce55e72a67a86ad_dep.svg
@@ -4,42 +4,42 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/relay Pages: 1 -->
-<svg width="428pt" height="447pt"
- viewBox="0.00 0.00 428.00 447.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="410pt" height="447pt"
+ viewBox="0.00 0.00 410.00 447.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 443)">
 <title>include/tvm/relay</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-443 424,-443 424,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-443 406,-443 406,4 -4,4"/>
 <g id="clust1" class="cluster"><title>clusterdir_b4c7d8e826c599ba55146c099a14beb5</title>
 <g id="a_clust1"><a xlink:href="dir_b4c7d8e826c599ba55146c099a14beb5.html" target="_top" xlink:title="tvm">
-<polygon fill="#ddddee" stroke="black" points="250,-272 250,-431 408,-431 408,-272 250,-272"/>
-<text text-anchor="middle" x="329" y="-419" font-family="Helvetica,sans-Serif" font-size="10.00">tvm</text>
+<polygon fill="#ddddee" stroke="black" points="211,-272 211,-431 369,-431 369,-272 211,-272"/>
+<text text-anchor="middle" x="290" y="-419" font-family="Helvetica,sans-Serif" font-size="10.00">tvm</text>
 </a>
 </g>
 </g>
 <g id="clust2" class="cluster"><title>clusterdir_63946bee875c6d52bce55e72a67a86ad</title>
 <g id="a_clust2"><a xlink:href="dir_63946bee875c6d52bce55e72a67a86ad.html" target="_top">
-<polygon fill="#eeeeff" stroke="black" points="258,-280 258,-404 400,-404 400,-280 258,-280"/>
+<polygon fill="#eeeeff" stroke="black" points="219,-280 219,-404 361,-404 361,-280 219,-280"/>
 </a>
 </g>
 </g>
 <!-- dir_63946bee875c6d52bce55e72a67a86ad -->
 <g id="node1" class="node"><title>dir_63946bee875c6d52bce55e72a67a86ad</title>
-<text text-anchor="middle" x="293" y="-375.5" font-family="Helvetica,sans-Serif" font-size="10.00">relay</text>
+<text text-anchor="middle" x="254" y="-375.5" font-family="Helvetica,sans-Serif" font-size="10.00">relay</text>
 </g>
 <!-- dir_519be2d4a83a987dbf989f1de527b870 -->
 <g id="node2" class="node"><title>dir_519be2d4a83a987dbf989f1de527b870</title>
 <g id="a_node2"><a xlink:href="dir_519be2d4a83a987dbf989f1de527b870.html" target="_top" xlink:title="attrs">
-<polygon fill="white" stroke="black" points="392,-324 338,-324 338,-288 392,-288 392,-324"/>
-<text text-anchor="middle" x="365" y="-303.5" font-family="Helvetica,sans-Serif" font-size="10.00">attrs</text>
+<polygon fill="white" stroke="black" points="336,-324 282,-324 282,-288 336,-288 336,-324"/>
+<text text-anchor="middle" x="309" y="-303.5" font-family="Helvetica,sans-Serif" font-size="10.00">attrs</text>
 </a>
 </g>
 </g>
 <!-- dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_519be2d4a83a987dbf989f1de527b870 -->
 <g id="edge1" class="edge"><title>dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_519be2d4a83a987dbf989f1de527b870</title>
-<path fill="none" stroke="black" d="M310.798,-359.697C319.604,-351.135 330.382,-340.656 340.001,-331.304"/>
-<polygon fill="black" stroke="black" points="342.677,-333.585 347.407,-324.104 337.797,-328.566 342.677,-333.585"/>
+<path fill="none" stroke="black" d="M267.596,-359.697C274.123,-351.389 282.068,-341.277 289.247,-332.141"/>
+<polygon fill="black" stroke="black" points="292.135,-334.13 295.561,-324.104 286.631,-329.805 292.135,-334.13"/>
 <g id="a_edge1&#45;headlabel"><a xlink:href="dir_000005_000009.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="342.079" y="-335.626" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<text text-anchor="middle" x="292.147" y="-336.211" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
@@ -53,44 +53,44 @@
 </g>
 <!-- dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_f97d855a3173728370e632aa77170e34 -->
 <g id="edge2" class="edge"><title>dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
-<path fill="none" stroke="black" d="M265.946,-372.098C223.299,-364.043 138.082,-346.619 68,-324 66.5792,-323.541 65.1386,-323.055 63.6894,-322.547"/>
-<polygon fill="black" stroke="black" points="64.7097,-319.192 54.1173,-318.963 62.2552,-325.748 64.7097,-319.192"/>
+<path fill="none" stroke="black" d="M226.898,-370.326C190.411,-361.104 123.646,-343.392 68,-324 66.5902,-323.509 65.1589,-322.994 63.7175,-322.463"/>
+<polygon fill="black" stroke="black" points="64.7674,-319.117 54.1778,-318.783 62.2478,-325.648 64.7674,-319.117"/>
 <g id="a_edge2&#45;headlabel"><a xlink:href="dir_000005_000018.html" target="_top" xlink:title="4">
-<text text-anchor="middle" x="69.0716" y="-315.293" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
+<text text-anchor="middle" x="69.143" y="-315.262" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2 -->
 <g id="node5" class="node"><title>dir_5da96592f3a7c442b838b075c58254c2</title>
 <g id="a_node5"><a xlink:href="dir_5da96592f3a7c442b838b075c58254c2.html" target="_top" xlink:title="target">
-<polygon fill="none" stroke="black" points="223,-324 169,-324 169,-288 223,-288 223,-324"/>
-<text text-anchor="middle" x="196" y="-303.5" font-family="Helvetica,sans-Serif" font-size="10.00">target</text>
+<polygon fill="none" stroke="black" points="203,-324 149,-324 149,-288 203,-288 203,-324"/>
+<text text-anchor="middle" x="176" y="-303.5" font-family="Helvetica,sans-Serif" font-size="10.00">target</text>
 </a>
 </g>
 </g>
 <!-- dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_5da96592f3a7c442b838b075c58254c2 -->
 <g id="edge3" class="edge"><title>dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_5da96592f3a7c442b838b075c58254c2</title>
-<path fill="none" stroke="black" d="M269.022,-359.697C256.689,-350.796 241.484,-339.823 228.147,-330.199"/>
-<polygon fill="black" stroke="black" points="229.859,-327.118 219.702,-324.104 225.763,-332.794 229.859,-327.118"/>
+<path fill="none" stroke="black" d="M234.719,-359.697C225.085,-351.05 213.271,-340.449 202.773,-331.027"/>
+<polygon fill="black" stroke="black" points="204.839,-328.179 195.059,-324.104 200.164,-333.388 204.839,-328.179"/>
 <g id="a_edge3&#45;headlabel"><a xlink:href="dir_000005_000017.html" target="_top" xlink:title="4">
-<text text-anchor="middle" x="234.435" y="-324.419" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
+<text text-anchor="middle" x="209.411" y="-325.966" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
 </a>
 </g>
 </g>
 <!-- dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
 <g id="node6" class="node"><title>dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
 <g id="a_node6"><a xlink:href="dir_6cd4295f6ad5aa17e5b568d0e5b190e5.html" target="_top" xlink:title="node">
-<polygon fill="none" stroke="black" points="158,-108 104,-108 104,-72 158,-72 158,-108"/>
-<text text-anchor="middle" x="131" y="-87.5" font-family="Helvetica,sans-Serif" font-size="10.00">node</text>
+<polygon fill="none" stroke="black" points="157,-108 103,-108 103,-72 157,-72 157,-108"/>
+<text text-anchor="middle" x="130" y="-87.5" font-family="Helvetica,sans-Serif" font-size="10.00">node</text>
 </a>
 </g>
 </g>
 <!-- dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
 <g id="edge4" class="edge"><title>dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
-<path fill="none" stroke="black" d="M265.981,-374.274C235.122,-369.619 185.603,-357.146 160,-324 112.955,-263.095 119.527,-165.3 126.22,-118.15"/>
-<polygon fill="black" stroke="black" points="129.705,-118.51 127.761,-108.096 122.786,-117.45 129.705,-118.51"/>
+<path fill="none" stroke="black" d="M226.874,-372.645C199.833,-366.728 159.589,-353.305 140,-324 97.6237,-260.607 112.185,-164.386 122.844,-117.946"/>
+<polygon fill="black" stroke="black" points="126.291,-118.581 125.235,-108.039 119.486,-116.939 126.291,-118.581"/>
 <g id="a_edge4&#45;headlabel"><a xlink:href="dir_000005_000013.html" target="_top" xlink:title="4">
-<text text-anchor="middle" x="131.967" y="-119.994" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
+<text text-anchor="middle" x="128.208" y="-120.241" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
 </a>
 </g>
 </g>
@@ -104,10 +104,10 @@
 </g>
 <!-- dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5 -->
 <g id="edge5" class="edge"><title>dir_63946bee875c6d52bce55e72a67a86ad&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
-<path fill="none" stroke="black" d="M265.876,-376.221C226.265,-373.702 152.284,-363.593 106,-324 87.2855,-307.991 76.6258,-281.627 70.8955,-261.74"/>
-<polygon fill="black" stroke="black" points="74.2664,-260.796 68.3318,-252.019 67.4978,-262.581 74.2664,-260.796"/>
+<path fill="none" stroke="black" d="M226.985,-373.73C194.572,-368.503 140.317,-355.428 106,-324 88.0276,-307.54 77.3309,-281.633 71.3948,-262.005"/>
+<polygon fill="black" stroke="black" points="74.6969,-260.816 68.641,-252.122 67.9537,-262.695 74.6969,-260.816"/>
 <g id="a_edge5&#45;headlabel"><a xlink:href="dir_000005_000007.html" target="_top" xlink:title="3">
-<text text-anchor="middle" x="77.9284" y="-261.047" font-family="Helvetica,sans-Serif" font-size="10.00">3</text>
+<text text-anchor="middle" x="78.3967" y="-261.017" font-family="Helvetica,sans-Serif" font-size="10.00">3</text>
 </a>
 </g>
 </g>
@@ -121,169 +121,178 @@
 </g>
 <!-- dir_519be2d4a83a987dbf989f1de527b870&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1 -->
 <g id="edge6" class="edge"><title>dir_519be2d4a83a987dbf989f1de527b870&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
-<path fill="none" stroke="black" d="M360.004,-287.828C353.837,-268.771 341.916,-237.829 324,-216 313.747,-203.508 299.899,-192.475 287.021,-183.755"/>
-<polygon fill="black" stroke="black" points="288.607,-180.613 278.315,-178.098 284.793,-186.482 288.607,-180.613"/>
+<path fill="none" stroke="black" d="M306.282,-287.708C303.001,-269.352 296.566,-239.771 286,-216 281.812,-206.577 276.013,-196.966 270.339,-188.562"/>
+<polygon fill="black" stroke="black" points="273.152,-186.477 264.544,-180.299 267.421,-190.496 273.152,-186.477"/>
 <g id="a_edge6&#45;headlabel"><a xlink:href="dir_000009_000004.html" target="_top" xlink:title="11">
-<text text-anchor="middle" x="293.169" y="-177.69" font-family="Helvetica,sans-Serif" font-size="10.00">11</text>
+<text text-anchor="middle" x="277.54" y="-185.29" font-family="Helvetica,sans-Serif" font-size="10.00">11</text>
 </a>
 </g>
 </g>
 <!-- dir_d523279167051dc3aad9a40981221f4d -->
 <g id="node3" class="node"><title>dir_d523279167051dc3aad9a40981221f4d</title>
 <g id="a_node3"><a xlink:href="dir_d523279167051dc3aad9a40981221f4d.html" target="_top" xlink:title="qnn">
-<polygon fill="white" stroke="black" points="392,-396 338,-396 338,-360 392,-360 392,-396"/>
-<text text-anchor="middle" x="365" y="-375.5" font-family="Helvetica,sans-Serif" font-size="10.00">qnn</text>
+<polygon fill="white" stroke="black" points="353,-396 299,-396 299,-360 353,-360 353,-396"/>
+<text text-anchor="middle" x="326" y="-375.5" font-family="Helvetica,sans-Serif" font-size="10.00">qnn</text>
 </a>
 </g>
 </g>
 <!-- dir_404558507ed35459f0d7a6d81d8c508d -->
 <g id="node7" class="node"><title>dir_404558507ed35459f0d7a6d81d8c508d</title>
 <g id="a_node7"><a xlink:href="dir_404558507ed35459f0d7a6d81d8c508d.html" target="_top" xlink:title="runtime">
-<polygon fill="white" stroke="red" points="223,-36 169,-36 169,-0 223,-0 223,-36"/>
-<text text-anchor="middle" x="196" y="-15.5" font-family="Helvetica,sans-Serif" font-size="10.00">runtime</text>
+<polygon fill="white" stroke="red" points="190,-36 136,-36 136,-0 190,-0 190,-36"/>
+<text text-anchor="middle" x="163" y="-15.5" font-family="Helvetica,sans-Serif" font-size="10.00">runtime</text>
 </a>
 </g>
 </g>
 <!-- dir_d523279167051dc3aad9a40981221f4d&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge21" class="edge"><title>dir_d523279167051dc3aad9a40981221f4d&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M379.165,-359.851C386.69,-349.93 395.497,-336.89 401,-324 416.881,-286.801 420,-275.447 420,-235 420,-235 420,-235 420,-161 420,-73.549 296.706,-37.6987 233.063,-25.0185"/>
-<polygon fill="black" stroke="black" points="233.497,-21.5385 223.02,-23.1112 232.191,-28.4156 233.497,-21.5385"/>
-<g id="a_edge21&#45;headlabel"><a xlink:href="dir_000006_000008.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="237.558" y="-16.9196" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge22" class="edge"><title>dir_d523279167051dc3aad9a40981221f4d&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M342.491,-359.772C364.843,-334.534 402,-285.051 402,-235 402,-235 402,-235 402,-161 402,-68.4572 267.923,-34.8816 200.615,-23.8567"/>
+<polygon fill="black" stroke="black" points="200.835,-20.3491 190.416,-22.2754 199.762,-27.2664 200.835,-20.3491"/>
+<g id="a_edge22&#45;headlabel"><a xlink:href="dir_000006_000008.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="204.822" y="-15.594" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_d523279167051dc3aad9a40981221f4d&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1 -->
-<g id="edge22" class="edge"><title>dir_d523279167051dc3aad9a40981221f4d&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
-<path fill="none" stroke="black" d="M352.225,-359.813C344.967,-349.667 335.967,-336.417 329,-324 303.209,-278.032 303.556,-263.153 280,-216 275.525,-207.042 270.355,-197.395 265.63,-188.818"/>
-<polygon fill="black" stroke="black" points="268.652,-187.051 260.732,-180.014 262.535,-190.454 268.652,-187.051"/>
-<g id="a_edge22&#45;headlabel"><a xlink:href="dir_000006_000004.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="272.881" y="-186.312" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge23" class="edge"><title>dir_d523279167051dc3aad9a40981221f4d&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
+<path fill="none" stroke="black" d="M333.97,-359.975C342.701,-338.958 354.304,-302.281 345,-272 334.299,-237.171 305.294,-206.657 282.307,-186.841"/>
+<polygon fill="black" stroke="black" points="284.384,-184.016 274.467,-180.288 279.895,-189.387 284.384,-184.016"/>
+<g id="a_edge23&#45;headlabel"><a xlink:href="dir_000006_000004.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="288.963" y="-181.643" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
 <g id="edge7" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
-<path fill="none" stroke="black" d="M24.1772,-287.665C21.9078,-269.274 20.3547,-239.662 29,-216 43.8316,-175.406 77.8399,-138.335 102.52,-115.288"/>
-<polygon fill="black" stroke="black" points="105.139,-117.636 110.169,-108.312 100.422,-112.465 105.139,-117.636"/>
+<path fill="none" stroke="black" d="M24.217,-287.68C21.9808,-269.3 20.4551,-239.699 29,-216 43.6021,-175.502 77.2943,-138.412 101.759,-115.334"/>
+<polygon fill="black" stroke="black" points="104.36,-117.697 109.342,-108.347 99.6162,-112.549 104.36,-117.697"/>
 <g id="a_edge7&#45;headlabel"><a xlink:href="dir_000018_000013.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="104.397" y="-119.657" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<text text-anchor="middle" x="103.64" y="-119.721" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+</a>
+</g>
+</g>
+<!-- dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
+<g id="edge8" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M22.8655,-287.837C19.1339,-269.84 14.82,-240.782 19,-216 30.4212,-148.287 29.8427,-123.733 75,-72 88.9529,-56.0154 108.942,-43.4414 126.344,-34.5601"/>
+<polygon fill="black" stroke="black" points="128.233,-37.5332 135.691,-30.0078 125.168,-31.2399 128.233,-37.5332"/>
+<g id="a_edge8&#45;headlabel"><a xlink:href="dir_000018_000008.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="126.245" y="-39.1597" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5 -->
-<g id="edge8" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
+<g id="edge9" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
 <path fill="none" stroke="black" d="M30.4775,-287.697C34.0558,-279.559 39.2077,-269.689 44.5142,-260.701"/>
 <polygon fill="black" stroke="black" points="47.5464,-262.452 49.8198,-252.104 41.5894,-258.776 47.5464,-262.452"/>
-<g id="a_edge8&#45;headlabel"><a xlink:href="dir_000018_000007.html" target="_top" xlink:title="7">
-<text text-anchor="middle" x="48.0748" y="-264.502" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
+<g id="a_edge9&#45;headlabel"><a xlink:href="dir_000018_000007.html" target="_top" xlink:title="8">
+<text text-anchor="middle" x="48.0748" y="-264.502" font-family="Helvetica,sans-Serif" font-size="10.00">8</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
-<g id="edge9" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
-<path fill="none" stroke="black" d="M190.791,-287.849C179.499,-250.675 152.699,-162.439 139.146,-117.82"/>
-<polygon fill="black" stroke="black" points="142.489,-116.784 136.234,-108.232 135.792,-118.818 142.489,-116.784"/>
-<g id="a_edge9&#45;headlabel"><a xlink:href="dir_000017_000013.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="146.251" y="-116.898" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge10" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
+<path fill="none" stroke="black" d="M172.313,-287.849C164.34,-250.753 145.436,-162.81 135.826,-118.103"/>
+<polygon fill="black" stroke="black" points="139.228,-117.274 133.704,-108.232 132.384,-118.745 139.228,-117.274"/>
+<g id="a_edge10&#45;headlabel"><a xlink:href="dir_000017_000013.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="142.759" y="-117.691" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge10" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M196,-287.966C196,-240.291 196,-105.185 196,-46.63"/>
-<polygon fill="black" stroke="black" points="199.5,-46.3064 196,-36.3065 192.5,-46.3065 199.5,-46.3064"/>
-<g id="a_edge10&#45;headlabel"><a xlink:href="dir_000017_000008.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="202.339" y="-47.4011" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge11" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M176.059,-287.932C176.063,-270.012 175.902,-241.017 175,-216 172.815,-155.382 167.913,-84.398 165.098,-46.3705"/>
+<polygon fill="black" stroke="black" points="168.567,-45.8248 164.329,-36.1142 161.586,-46.3478 168.567,-45.8248"/>
+<g id="a_edge11&#45;headlabel"><a xlink:href="dir_000017_000008.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="171.666" y="-46.6973" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1 -->
-<g id="edge11" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
-<path fill="none" stroke="black" d="M202.634,-287.871C212.091,-263.457 229.532,-218.426 240.684,-189.635"/>
-<polygon fill="black" stroke="black" points="243.994,-190.778 244.342,-180.189 237.467,-188.25 243.994,-190.778"/>
-<g id="a_edge11&#45;headlabel"><a xlink:href="dir_000017_000004.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="245.343" y="-192.656" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge12" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
+<path fill="none" stroke="black" d="M187.959,-287.705C194.779,-277.523 203.279,-264.273 210,-252 221.238,-231.479 232.235,-207.32 240.006,-189.355"/>
+<polygon fill="black" stroke="black" points="243.261,-190.645 243.972,-180.074 236.824,-187.894 243.261,-190.645"/>
+<g id="a_edge12&#45;headlabel"><a xlink:href="dir_000017_000004.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="244.459" y="-192.566" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5 -->
-<g id="edge12" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
-<path fill="none" stroke="black" d="M168.857,-290.496C149.184,-279.984 122.384,-265.663 100.936,-254.203"/>
-<polygon fill="black" stroke="black" points="102.578,-251.111 92.1085,-249.485 99.2788,-257.285 102.578,-251.111"/>
-<g id="a_edge12&#45;headlabel"><a xlink:href="dir_000017_000007.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="107.086" y="-247.801" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge13" class="edge"><title>dir_5da96592f3a7c442b838b075c58254c2&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
+<path fill="none" stroke="black" d="M148.846,-287.876C134.467,-278.808 116.619,-267.552 101.09,-257.759"/>
+<polygon fill="black" stroke="black" points="102.584,-254.564 92.258,-252.19 98.8496,-260.484 102.584,-254.564"/>
+<g id="a_edge13&#45;headlabel"><a xlink:href="dir_000017_000007.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="107.139" y="-251.579" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
 <!-- dir_6cd4295f6ad5aa17e5b568d0e5b190e5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge13" class="edge"><title>dir_6cd4295f6ad5aa17e5b568d0e5b190e5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M147.067,-71.6966C154.939,-63.2198 164.555,-52.8636 173.173,-43.5826"/>
-<polygon fill="black" stroke="black" points="175.878,-45.8139 180.117,-36.1043 170.748,-41.0507 175.878,-45.8139"/>
-<g id="a_edge13&#45;headlabel"><a xlink:href="dir_000013_000008.html" target="_top" xlink:title="17">
-<text text-anchor="middle" x="175.512" y="-47.8799" font-family="Helvetica,sans-Serif" font-size="10.00">17</text>
+<g id="edge14" class="edge"><title>dir_6cd4295f6ad5aa17e5b568d0e5b190e5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M138.157,-71.6966C141.914,-63.7284 146.453,-54.0995 150.618,-45.2641"/>
+<polygon fill="black" stroke="black" points="153.838,-46.6421 154.937,-36.1043 147.506,-43.6571 153.838,-46.6421"/>
+<g id="a_edge14&#45;headlabel"><a xlink:href="dir_000013_000008.html" target="_top" xlink:title="17">
+<text text-anchor="middle" x="154.874" y="-48.6042" font-family="Helvetica,sans-Serif" font-size="10.00">17</text>
 </a>
 </g>
 </g>
 <!-- dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_63946bee875c6d52bce55e72a67a86ad -->
-<g id="edge14" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_63946bee875c6d52bce55e72a67a86ad</title>
-<path fill="none" stroke="black" d="M254.382,-180.232C261.677,-217.403 278.938,-305.352 287.7,-349.996"/>
-<polygon fill="black" stroke="black" points="284.274,-350.711 289.634,-359.849 291.142,-349.362 284.274,-350.711"/>
-<g id="a_edge14&#45;headlabel"><a xlink:href="dir_000004_000005.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="280.795" y="-345.23" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge15" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_63946bee875c6d52bce55e72a67a86ad</title>
+<path fill="none" stroke="black" d="M251.242,-180.232C251.762,-217.324 252.99,-304.981 253.617,-349.712"/>
+<polygon fill="black" stroke="black" points="250.12,-349.899 253.76,-359.849 257.119,-349.801 250.12,-349.899"/>
+<g id="a_edge15&#45;headlabel"><a xlink:href="dir_000004_000005.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="247.23" y="-343.845" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
 <!-- dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
-<g id="edge15" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
-<path fill="none" stroke="black" d="M223.77,-145.116C206.893,-135.271 185.026,-122.515 166.761,-111.861"/>
-<polygon fill="black" stroke="black" points="168.523,-108.837 158.122,-106.821 164.996,-114.883 168.523,-108.837"/>
-<g id="a_edge15&#45;headlabel"><a xlink:href="dir_000004_000013.html" target="_top" xlink:title="12">
-<text text-anchor="middle" x="173.059" y="-105.695" font-family="Helvetica,sans-Serif" font-size="10.00">12</text>
+<g id="edge16" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
+<path fill="none" stroke="black" d="M223.845,-145.291C206.72,-135.383 184.411,-122.477 165.841,-111.734"/>
+<polygon fill="black" stroke="black" points="167.473,-108.635 157.064,-106.657 163.967,-114.694 167.473,-108.635"/>
+<g id="a_edge16&#45;headlabel"><a xlink:href="dir_000004_000013.html" target="_top" xlink:title="12">
+<text text-anchor="middle" x="172.006" y="-105.477" font-family="Helvetica,sans-Serif" font-size="10.00">12</text>
 </a>
 </g>
 </g>
 <!-- dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge16" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M244.366,-143.871C234.909,-119.457 217.468,-74.4258 206.316,-45.6351"/>
-<polygon fill="black" stroke="black" points="209.533,-44.2501 202.658,-36.1893 203.006,-46.7784 209.533,-44.2501"/>
-<g id="a_edge16&#45;headlabel"><a xlink:href="dir_000004_000008.html" target="_top" xlink:title="7">
-<text text-anchor="middle" x="213.479" y="-44.0766" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
+<g id="edge17" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M244.832,-143.829C237.792,-125.315 225.257,-95.3589 210,-72 203.512,-62.067 195.24,-52.0941 187.45,-43.5218"/>
+<polygon fill="black" stroke="black" points="189.882,-40.9983 180.495,-36.0843 184.769,-45.7792 189.882,-40.9983"/>
+<g id="a_edge17&#45;headlabel"><a xlink:href="dir_000004_000008.html" target="_top" xlink:title="7">
+<text text-anchor="middle" x="194.411" y="-39.1848" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
 </a>
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_f97d855a3173728370e632aa77170e34 -->
-<g id="edge17" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
+<g id="edge18" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
 <path fill="none" stroke="black" d="M61.6098,-252.104C58.0574,-260.214 52.9197,-270.076 47.6158,-279.078"/>
 <polygon fill="black" stroke="black" points="44.572,-277.346 42.309,-287.697 50.5326,-281.017 44.572,-277.346"/>
-<g id="a_edge17&#45;headlabel"><a xlink:href="dir_000007_000018.html" target="_top" xlink:title="1">
+<g id="a_edge18&#45;headlabel"><a xlink:href="dir_000007_000018.html" target="_top" xlink:title="1">
 <text text-anchor="middle" x="44.039" y="-270.297" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
-<g id="edge18" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
-<path fill="none" stroke="black" d="M72.8142,-215.917C81.0301,-197.984 94.3555,-168.979 106,-144 110.06,-135.291 114.527,-125.793 118.549,-117.275"/>
-<polygon fill="black" stroke="black" points="121.745,-118.704 122.854,-108.167 115.416,-115.712 121.745,-118.704"/>
-<g id="a_edge18&#45;headlabel"><a xlink:href="dir_000007_000013.html" target="_top" xlink:title="7">
-<text text-anchor="middle" x="122.775" y="-120.667" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
+<g id="edge19" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
+<path fill="none" stroke="black" d="M72.8405,-215.871C84.0162,-191.457 104.629,-146.426 117.808,-117.635"/>
+<polygon fill="black" stroke="black" points="121.152,-118.739 122.132,-108.189 114.787,-115.825 121.152,-118.739"/>
+<g id="a_edge19&#45;headlabel"><a xlink:href="dir_000007_000013.html" target="_top" xlink:title="7">
+<text text-anchor="middle" x="122.238" y="-120.689" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
 </a>
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge19" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M63.5955,-215.832C61.9184,-184.166 62.6638,-115.806 95,-72 110.604,-50.8616 137.163,-37.3979 159.131,-29.3316"/>
-<polygon fill="black" stroke="black" points="160.523,-32.5542 168.845,-25.9971 158.25,-25.9334 160.523,-32.5542"/>
-<g id="a_edge19&#45;headlabel"><a xlink:href="dir_000007_000008.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="158.045" y="-33.9067" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge20" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M64.192,-215.604C63.5532,-184.45 65.9324,-118.088 94,-72 102.107,-58.6877 114.889,-47.4962 127.26,-38.8787"/>
+<polygon fill="black" stroke="black" points="129.265,-41.7491 135.697,-33.3295 125.419,-35.9008 129.265,-41.7491"/>
+<g id="a_edge20&#45;headlabel"><a xlink:href="dir_000007_000008.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="127.822" y="-43.5965" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1 -->
-<g id="edge20" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
+<g id="edge21" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
 <path fill="none" stroke="black" d="M92.046,-222.821C124.28,-210.69 178.292,-190.363 214.282,-176.819"/>
 <polygon fill="black" stroke="black" points="215.795,-179.989 223.921,-173.191 213.329,-173.438 215.795,-179.989"/>
-<g id="a_edge20&#45;headlabel"><a xlink:href="dir_000007_000004.html" target="_top" xlink:title="4">
+<g id="a_edge21&#45;headlabel"><a xlink:href="dir_000007_000004.html" target="_top" xlink:title="4">
 <text text-anchor="middle" x="213.431" y="-181.412" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
 </a>
 </g>
diff --git a/docs/doxygen/dir_72c2f11201cd7636dc7624de0754daa5.html b/docs/doxygen/dir_72c2f11201cd7636dc7624de0754daa5.html
index 859e0bd..82fe6b3 100644
--- a/docs/doxygen/dir_72c2f11201cd7636dc7624de0754daa5.html
+++ b/docs/doxygen/dir_72c2f11201cd7636dc7624de0754daa5.html
@@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="dynheader">
 Directory dependency graph for tir:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="dir_72c2f11201cd7636dc7624de0754daa5_dep.svg" width="254" height="394"><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="dir_72c2f11201cd7636dc7624de0754daa5_dep.svg" width="247" height="394"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
diff --git a/docs/doxygen/dir_72c2f11201cd7636dc7624de0754daa5_dep.svg b/docs/doxygen/dir_72c2f11201cd7636dc7624de0754daa5_dep.svg
index 122c1e9..7d4bb95 100644
--- a/docs/doxygen/dir_72c2f11201cd7636dc7624de0754daa5_dep.svg
+++ b/docs/doxygen/dir_72c2f11201cd7636dc7624de0754daa5_dep.svg
@@ -4,11 +4,11 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/tir Pages: 1 -->
-<svg width="190pt" height="295pt"
- viewBox="0.00 0.00 189.65 295.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="185pt" height="295pt"
+ viewBox="0.00 0.00 185.32 295.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 291)">
 <title>include/tvm/tir</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-291 185.652,-291 185.652,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-291 181.323,-291 181.323,4 -4,4"/>
 <g id="clust1" class="cluster"><title>clusterdir_b4c7d8e826c599ba55146c099a14beb5</title>
 <g id="a_clust1"><a xlink:href="dir_b4c7d8e826c599ba55146c099a14beb5.html" target="_top" xlink:title="tvm">
 <polygon fill="#ddddee" stroke="black" points="74,-208 74,-279 144,-279 144,-208 74,-208"/>
@@ -33,10 +33,10 @@
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_f97d855a3173728370e632aa77170e34 -->
-<g id="edge6" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
+<g id="edge7" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
 <path fill="none" stroke="black" d="M82.8146,-215.697C71.7941,-207.05 59.1982,-196.449 48.6999,-187.027"/>
 <polygon fill="black" stroke="black" points="50.8798,-184.277 41.1415,-180.104 46.1519,-189.44 50.8798,-184.277"/>
-<g id="a_edge6&#45;headlabel"><a xlink:href="dir_000007_000018.html" target="_top" xlink:title="1">
+<g id="a_edge7&#45;headlabel"><a xlink:href="dir_000007_000018.html" target="_top" xlink:title="1">
 <text text-anchor="middle" x="55.4483" y="-182.112" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
@@ -50,10 +50,10 @@
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
-<g id="edge7" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
+<g id="edge8" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
 <path fill="none" stroke="black" d="M105.743,-215.871C101.142,-191.67 92.688,-147.211 87.2086,-118.393"/>
 <polygon fill="black" stroke="black" points="90.5748,-117.359 85.2684,-108.189 83.698,-118.667 90.5748,-117.359"/>
-<g id="a_edge7&#45;headlabel"><a xlink:href="dir_000007_000013.html" target="_top" xlink:title="7">
+<g id="a_edge8&#45;headlabel"><a xlink:href="dir_000007_000013.html" target="_top" xlink:title="7">
 <text text-anchor="middle" x="94.0355" y="-117.86" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
 </a>
 </g>
@@ -61,17 +61,17 @@
 <!-- dir_404558507ed35459f0d7a6d81d8c508d -->
 <g id="node4" class="node"><title>dir_404558507ed35459f0d7a6d81d8c508d</title>
 <g id="a_node4"><a xlink:href="dir_404558507ed35459f0d7a6d81d8c508d.html" target="_top" xlink:title="runtime">
-<polygon fill="white" stroke="red" points="164,-36 110,-36 110,-0 164,-0 164,-36"/>
-<text text-anchor="middle" x="137" y="-15.5" font-family="Helvetica,sans-Serif" font-size="10.00">runtime</text>
+<polygon fill="white" stroke="red" points="136,-36 82,-36 82,-0 136,-0 136,-36"/>
+<text text-anchor="middle" x="109" y="-15.5" font-family="Helvetica,sans-Serif" font-size="10.00">runtime</text>
 </a>
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge8" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M136.096,-218.388C149.887,-209.337 165.326,-196.319 173,-180 193.967,-135.415 170.501,-78.0531 152.85,-45.2165"/>
-<polygon fill="black" stroke="black" points="155.772,-43.2702 147.841,-36.2452 149.66,-46.6827 155.772,-43.2702"/>
-<g id="a_edge8&#45;headlabel"><a xlink:href="dir_000007_000008.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="160.003" y="-42.5246" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<g id="edge9" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M136.096,-218.388C149.887,-209.337 165.326,-196.319 173,-180 179.809,-165.521 176.676,-159.572 173,-144 164.308,-107.179 142.638,-69.0688 126.917,-44.7608"/>
+<polygon fill="black" stroke="black" points="129.659,-42.5615 121.223,-36.1519 123.821,-46.4233 129.659,-42.5615"/>
+<g id="a_edge9&#45;headlabel"><a xlink:href="dir_000007_000008.html" target="_top" xlink:title="2">
+<text text-anchor="middle" x="134.01" y="-41.4932" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
@@ -84,20 +84,20 @@
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1 -->
-<g id="edge9" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
+<g id="edge10" class="edge"><title>dir_72c2f11201cd7636dc7624de0754daa5&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
 <path fill="none" stroke="black" d="M115.921,-215.697C119.075,-207.813 122.878,-198.304 126.381,-189.546"/>
 <polygon fill="black" stroke="black" points="129.694,-190.689 130.158,-180.104 123.195,-188.089 129.694,-190.689"/>
-<g id="a_edge9&#45;headlabel"><a xlink:href="dir_000007_000004.html" target="_top" xlink:title="4">
+<g id="a_edge10&#45;headlabel"><a xlink:href="dir_000007_000004.html" target="_top" xlink:title="4">
 <text text-anchor="middle" x="130.995" y="-192.581" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
 </a>
 </g>
 </g>
 <!-- dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5 -->
-<g id="edge2" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
+<g id="edge3" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
 <path fill="none" stroke="black" d="M52.9315,-180.104C63.9276,-188.72 76.5273,-199.316 87.0576,-208.755"/>
 <polygon fill="black" stroke="black" points="84.905,-211.53 94.6461,-215.697 89.6296,-206.365 84.905,-211.53"/>
-<g id="a_edge2&#45;headlabel"><a xlink:href="dir_000018_000007.html" target="_top" xlink:title="7">
-<text text-anchor="middle" x="80.3363" y="-208.699" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
+<g id="a_edge3&#45;headlabel"><a xlink:href="dir_000018_000007.html" target="_top" xlink:title="8">
+<text text-anchor="middle" x="80.3363" y="-208.699" font-family="Helvetica,sans-Serif" font-size="10.00">8</text>
 </a>
 </g>
 </g>
@@ -110,30 +110,39 @@
 </a>
 </g>
 </g>
+<!-- dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
+<g id="edge2" class="edge"><title>dir_f97d855a3173728370e632aa77170e34&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M27.4075,-143.729C28.5645,-124.861 32.5776,-94.3483 46,-72 52.9101,-60.4946 63.2269,-50.2989 73.5215,-42.0001"/>
+<polygon fill="black" stroke="black" points="75.8747,-44.6074 81.7074,-35.7625 71.632,-39.0396 75.8747,-44.6074"/>
+<g id="a_edge2&#45;headlabel"><a xlink:href="dir_000018_000008.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="74.7364" y="-46.5443" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+</a>
+</g>
+</g>
 <!-- dir_6cd4295f6ad5aa17e5b568d0e5b190e5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge3" class="edge"><title>dir_6cd4295f6ad5aa17e5b568d0e5b190e5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M95.5955,-71.6966C102.123,-63.3893 110.068,-53.2771 117.247,-44.1407"/>
-<polygon fill="black" stroke="black" points="120.135,-46.1299 123.561,-36.1043 114.631,-41.8051 120.135,-46.1299"/>
-<g id="a_edge3&#45;headlabel"><a xlink:href="dir_000013_000008.html" target="_top" xlink:title="17">
-<text text-anchor="middle" x="120.147" y="-48.2106" font-family="Helvetica,sans-Serif" font-size="10.00">17</text>
+<g id="edge4" class="edge"><title>dir_6cd4295f6ad5aa17e5b568d0e5b190e5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M88.6742,-71.6966C91.7149,-63.8132 95.3827,-54.3042 98.7607,-45.5464"/>
+<polygon fill="black" stroke="black" points="102.069,-46.6939 102.403,-36.1043 95.5383,-44.1748 102.069,-46.6939"/>
+<g id="a_edge4&#45;headlabel"><a xlink:href="dir_000013_000008.html" target="_top" xlink:title="17">
+<text text-anchor="middle" x="103.425" y="-48.5695" font-family="Helvetica,sans-Serif" font-size="10.00">17</text>
 </a>
 </g>
 </g>
 <!-- dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
-<g id="edge4" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
+<g id="edge5" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
 <path fill="none" stroke="black" d="M123.404,-143.697C116.877,-135.389 108.932,-125.277 101.753,-116.141"/>
 <polygon fill="black" stroke="black" points="104.369,-113.805 95.4391,-108.104 98.8653,-118.13 104.369,-113.805"/>
-<g id="a_edge4&#45;headlabel"><a xlink:href="dir_000004_000013.html" target="_top" xlink:title="12">
+<g id="a_edge5&#45;headlabel"><a xlink:href="dir_000004_000013.html" target="_top" xlink:title="12">
 <text text-anchor="middle" x="108.823" y="-112.377" font-family="Helvetica,sans-Serif" font-size="10.00">12</text>
 </a>
 </g>
 </g>
 <!-- dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge5" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M137,-143.871C137,-119.67 137,-75.2108 137,-46.3932"/>
-<polygon fill="black" stroke="black" points="140.5,-46.1892 137,-36.1893 133.5,-46.1893 140.5,-46.1892"/>
-<g id="a_edge5&#45;headlabel"><a xlink:href="dir_000004_000008.html" target="_top" xlink:title="7">
-<text text-anchor="middle" x="143.339" y="-47.2839" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
+<g id="edge6" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M133.623,-143.871C128.829,-119.564 120.007,-74.8187 114.327,-46.0132"/>
+<polygon fill="black" stroke="black" points="117.758,-45.3232 112.389,-36.1893 110.89,-46.6775 117.758,-45.3232"/>
+<g id="a_edge6&#45;headlabel"><a xlink:href="dir_000004_000008.html" target="_top" xlink:title="7">
+<text text-anchor="middle" x="121.239" y="-45.8007" font-family="Helvetica,sans-Serif" font-size="10.00">7</text>
 </a>
 </g>
 </g>
diff --git a/docs/doxygen/dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg b/docs/doxygen/dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg
index a6725d5..0734763 100644
--- a/docs/doxygen/dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg
+++ b/docs/doxygen/dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg
@@ -24,382 +24,391 @@
 </g>
 <!-- dir_b4c7d8e826c599ba55146c099a14beb5 -->
 <g id="node1" class="node"><title>dir_b4c7d8e826c599ba55146c099a14beb5</title>
-<text text-anchor="middle" x="340" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm</text>
+<text text-anchor="middle" x="314" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm</text>
 </g>
 <!-- dir_194ecda214f05a38134392ac6a69b970 -->
 <g id="node2" class="node"><title>dir_194ecda214f05a38134392ac6a69b970</title>
 <g id="a_node2"><a xlink:href="dir_194ecda214f05a38134392ac6a69b970.html" target="_top" xlink:title="arith">
-<polygon fill="white" stroke="black" points="264,-564 210,-564 210,-528 264,-528 264,-564"/>
-<text text-anchor="middle" x="237" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00">arith</text>
+<polygon fill="white" stroke="black" points="195,-564 141,-564 141,-528 195,-528 195,-564"/>
+<text text-anchor="middle" x="168" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00">arith</text>
 </a>
 </g>
 </g>
 <!-- dir_dc867ff9a37cad1764f1670dc7eba6c1 -->
 <g id="node4" class="node"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
 <g id="a_node4"><a xlink:href="dir_dc867ff9a37cad1764f1670dc7eba6c1.html" target="_top" xlink:title="ir">
-<polygon fill="white" stroke="black" points="208,-492 154,-492 154,-456 208,-456 208,-492"/>
-<text text-anchor="middle" x="181" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">ir</text>
+<polygon fill="white" stroke="black" points="195,-492 141,-492 141,-456 195,-456 195,-492"/>
+<text text-anchor="middle" x="168" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">ir</text>
 </a>
 </g>
 </g>
 <!-- dir_194ecda214f05a38134392ac6a69b970&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1 -->
 <g id="edge8" class="edge"><title>dir_194ecda214f05a38134392ac6a69b970&#45;&gt;dir_dc867ff9a37cad1764f1670dc7eba6c1</title>
-<path fill="none" stroke="black" d="M223.157,-527.697C216.511,-519.389 208.422,-509.277 201.113,-500.141"/>
-<polygon fill="black" stroke="black" points="203.664,-497.727 194.683,-492.104 198.197,-502.099 203.664,-497.727"/>
+<path fill="none" stroke="black" d="M168,-527.697C168,-519.983 168,-510.712 168,-502.112"/>
+<polygon fill="black" stroke="black" points="171.5,-502.104 168,-492.104 164.5,-502.104 171.5,-502.104"/>
 <g id="a_edge8&#45;headlabel"><a xlink:href="dir_000002_000004.html" target="_top" xlink:title="4">
-<text text-anchor="middle" x="208.126" y="-496.26" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
+<text text-anchor="middle" x="174.339" y="-503.199" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
 </a>
 </g>
 </g>
 <!-- dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
 <g id="node5" class="node"><title>dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
 <g id="a_node5"><a xlink:href="dir_6cd4295f6ad5aa17e5b568d0e5b190e5.html" target="_top" xlink:title="node">
-<polygon fill="white" stroke="black" points="126,-132 72,-132 72,-96 126,-96 126,-132"/>
-<text text-anchor="middle" x="99" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">node</text>
+<polygon fill="white" stroke="black" points="118,-132 64,-132 64,-96 118,-96 118,-132"/>
+<text text-anchor="middle" x="91" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">node</text>
 </a>
 </g>
 </g>
 <!-- dir_194ecda214f05a38134392ac6a69b970&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
 <g id="edge7" class="edge"><title>dir_194ecda214f05a38134392ac6a69b970&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
-<path fill="none" stroke="black" d="M209.915,-532.612C172.817,-514.026 107.451,-475.128 78,-420 25.1439,-321.061 28.7603,-274.494 64,-168 67.1881,-158.366 72.6073,-148.809 78.2414,-140.519"/>
-<polygon fill="black" stroke="black" points="81.0946,-142.546 84.1061,-132.388 75.4174,-138.451 81.0946,-142.546"/>
+<path fill="none" stroke="black" d="M140.766,-533.063C99.2761,-512.815 25,-467.552 25,-403 25,-403 25,-403 25,-257 25,-212.845 51.5676,-167.558 70.9907,-140.35"/>
+<polygon fill="black" stroke="black" points="73.8973,-142.306 77.0031,-132.176 68.2584,-138.158 73.8973,-142.306"/>
 <g id="a_edge7&#45;headlabel"><a xlink:href="dir_000002_000013.html" target="_top" xlink:title="2">
-<text text-anchor="middle" x="81.2946" y="-144.622" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
+<text text-anchor="middle" x="74.0547" y="-144.384" font-family="Helvetica,sans-Serif" font-size="10.00">2</text>
 </a>
 </g>
 </g>
 <!-- dir_fb1b1bc11a768ab8cf63a96a73170118 -->
 <g id="node8" class="node"><title>dir_fb1b1bc11a768ab8cf63a96a73170118</title>
 <g id="a_node8"><a xlink:href="dir_fb1b1bc11a768ab8cf63a96a73170118.html" target="_top" xlink:title="support">
-<polygon fill="white" stroke="black" points="344,-132 290,-132 290,-96 344,-96 344,-132"/>
-<text text-anchor="middle" x="317" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">support</text>
+<polygon fill="white" stroke="black" points="378,-132 324,-132 324,-96 378,-96 378,-132"/>
+<text text-anchor="middle" x="351" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">support</text>
 </a>
 </g>
 </g>
 <!-- dir_194ecda214f05a38134392ac6a69b970&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118 -->
 <g id="edge10" class="edge"><title>dir_194ecda214f05a38134392ac6a69b970&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118</title>
-<path fill="none" stroke="black" d="M258.626,-527.96C285.138,-505.893 329.549,-464.9 354,-420 369.775,-391.032 367.97,-380.738 372,-348 381.835,-268.111 384.403,-241.682 352,-168 347.849,-158.561 342.06,-148.945 336.384,-140.542"/>
-<polygon fill="black" stroke="black" points="339.195,-138.454 330.583,-132.282 333.466,-142.477 339.195,-138.454"/>
+<path fill="none" stroke="black" d="M195.004,-536.493C238.623,-521.144 323.39,-484.288 360,-420 411.578,-329.427 378.557,-197.914 360.511,-141.893"/>
+<polygon fill="black" stroke="black" points="363.811,-140.726 357.339,-132.338 357.168,-142.931 363.811,-140.726"/>
 <g id="a_edge10&#45;headlabel"><a xlink:href="dir_000002_000016.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="343.584" y="-137.264" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<text text-anchor="middle" x="367.638" y="-140.743" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_72c2f11201cd7636dc7624de0754daa5 -->
 <g id="node11" class="node"><title>dir_72c2f11201cd7636dc7624de0754daa5</title>
 <g id="a_node11"><a xlink:href="dir_72c2f11201cd7636dc7624de0754daa5.html" target="_top" xlink:title="tir">
-<polygon fill="white" stroke="black" points="258,-276 204,-276 204,-240 258,-240 258,-276"/>
-<text text-anchor="middle" x="231" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">tir</text>
+<polygon fill="white" stroke="black" points="138,-276 84,-276 84,-240 138,-240 138,-276"/>
+<text text-anchor="middle" x="111" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">tir</text>
 </a>
 </g>
 </g>
 <!-- dir_194ecda214f05a38134392ac6a69b970&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5 -->
 <g id="edge9" class="edge"><title>dir_194ecda214f05a38134392ac6a69b970&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
-<path fill="none" stroke="black" d="M236.643,-527.966C235.642,-480.291 232.808,-345.185 231.58,-286.63"/>
-<polygon fill="black" stroke="black" points="235.072,-286.231 231.363,-276.306 228.074,-286.378 235.072,-286.231"/>
+<path fill="none" stroke="black" d="M153.677,-527.917C146.102,-518.017 137.298,-504.975 132,-492 103.491,-422.178 105.291,-331.058 108.431,-286.272"/>
+<polygon fill="black" stroke="black" points="111.93,-286.419 109.218,-276.177 104.951,-285.875 111.93,-286.419"/>
 <g id="a_edge9&#45;headlabel"><a xlink:href="dir_000002_000007.html" target="_top" xlink:title="4">
-<text text-anchor="middle" x="237.986" y="-287.265" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
+<text text-anchor="middle" x="114.481" y="-287.724" font-family="Helvetica,sans-Serif" font-size="10.00">4</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5 -->
 <g id="node3" class="node"><title>dir_02be2c9d68e402f80df60bd528724ee5</title>
 <g id="a_node3"><a xlink:href="dir_02be2c9d68e402f80df60bd528724ee5.html" target="_top" xlink:title="driver">
-<polygon fill="white" stroke="black" points="330,-420 276,-420 276,-384 330,-384 330,-420"/>
-<text text-anchor="middle" x="303" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00">driver</text>
+<polygon fill="white" stroke="black" points="338,-420 284,-420 284,-384 338,-384 338,-420"/>
+<text text-anchor="middle" x="311" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00">driver</text>
 </a>
 </g>
 </g>
 <!-- dir_404558507ed35459f0d7a6d81d8c508d -->
 <g id="node7" class="node"><title>dir_404558507ed35459f0d7a6d81d8c508d</title>
 <g id="a_node7"><a xlink:href="dir_404558507ed35459f0d7a6d81d8c508d.html" target="_top" xlink:title="runtime">
-<polygon fill="white" stroke="red" points="182,-60 128,-60 128,-24 182,-24 182,-60"/>
-<text text-anchor="middle" x="155" y="-39.5" font-family="Helvetica,sans-Serif" font-size="10.00">runtime</text>
+<polygon fill="white" stroke="red" points="250,-60 196,-60 196,-24 250,-24 250,-60"/>
+<text text-anchor="middle" x="223" y="-39.5" font-family="Helvetica,sans-Serif" font-size="10.00">runtime</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d -->
-<g id="edge23" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
-<path fill="none" stroke="black" d="M313.909,-383.654C344.01,-333.362 421.608,-185.388 353,-96 333.541,-70.6469 243.908,-54.779 192.158,-47.5675"/>
-<polygon fill="black" stroke="black" points="192.416,-44.0706 182.038,-46.2001 191.479,-51.0076 192.416,-44.0706"/>
-<g id="a_edge23&#45;headlabel"><a xlink:href="dir_000003_000008.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="196.359" y="-39.2381" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge24" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_404558507ed35459f0d7a6d81d8c508d</title>
+<path fill="none" stroke="black" d="M309.374,-383.867C307.554,-365.893 304.287,-336.855 300,-312 283.283,-215.089 286.613,-188.049 252,-96 248.567,-86.8696 243.801,-77.3784 239.123,-68.9936"/>
+<polygon fill="black" stroke="black" points="241.998,-66.973 233.956,-60.0751 235.941,-70.4823 241.998,-66.973"/>
+<g id="a_edge24&#45;headlabel"><a xlink:href="dir_000003_000008.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="246.257" y="-66.1598" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118 -->
-<g id="edge25" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118</title>
-<path fill="none" stroke="black" d="M304.863,-383.834C305.927,-373.468 307.204,-359.988 308,-348 312.935,-273.712 315.424,-185.908 316.435,-142.349"/>
-<polygon fill="black" stroke="black" points="319.936,-142.339 316.661,-132.263 312.938,-142.182 319.936,-142.339"/>
-<g id="a_edge25&#45;headlabel"><a xlink:href="dir_000003_000016.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="322.694" y="-143.496" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge26" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_fb1b1bc11a768ab8cf63a96a73170118</title>
+<path fill="none" stroke="black" d="M314.92,-383.88C317.197,-373.531 320.003,-360.052 322,-348 334.288,-273.854 343.919,-185.651 348.346,-142.099"/>
+<polygon fill="black" stroke="black" points="351.841,-142.324 349.358,-132.024 344.876,-141.624 351.841,-142.324"/>
+<g id="a_edge26&#45;headlabel"><a xlink:href="dir_000003_000016.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="354.307" y="-143.684" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_5da96592f3a7c442b838b075c58254c2 -->
 <g id="node9" class="node"><title>dir_5da96592f3a7c442b838b075c58254c2</title>
 <g id="a_node9"><a xlink:href="dir_5da96592f3a7c442b838b075c58254c2.html" target="_top" xlink:title="target">
-<polygon fill="white" stroke="black" points="158,-348 104,-348 104,-312 158,-312 158,-348"/>
-<text text-anchor="middle" x="131" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00">target</text>
+<polygon fill="white" stroke="black" points="258,-348 204,-348 204,-312 258,-312 258,-348"/>
+<text text-anchor="middle" x="231" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00">target</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_5da96592f3a7c442b838b075c58254c2 -->
-<g id="edge22" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_5da96592f3a7c442b838b075c58254c2</title>
-<path fill="none" stroke="black" d="M275.746,-389.908C246.559,-378.03 200.079,-359.114 167.691,-345.932"/>
-<polygon fill="black" stroke="black" points="168.708,-342.568 158.126,-342.04 166.069,-349.051 168.708,-342.568"/>
-<g id="a_edge22&#45;headlabel"><a xlink:href="dir_000003_000017.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="173.108" y="-338.793" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge23" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_5da96592f3a7c442b838b075c58254c2</title>
+<path fill="none" stroke="black" d="M291.225,-383.697C281.246,-374.965 268.989,-364.24 258.143,-354.75"/>
+<polygon fill="black" stroke="black" points="260.378,-352.055 250.548,-348.104 255.769,-357.323 260.378,-352.055"/>
+<g id="a_edge23&#45;headlabel"><a xlink:href="dir_000003_000017.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="264.953" y="-349.786" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_f97d855a3173728370e632aa77170e34 -->
 <g id="node10" class="node"><title>dir_f97d855a3173728370e632aa77170e34</title>
 <g id="a_node10"><a xlink:href="dir_f97d855a3173728370e632aa77170e34.html" target="_top" xlink:title="te">
-<polygon fill="white" stroke="black" points="258,-204 204,-204 204,-168 258,-168 258,-204"/>
-<text text-anchor="middle" x="231" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00">te</text>
+<polygon fill="white" stroke="black" points="250,-204 196,-204 196,-168 250,-168 250,-204"/>
+<text text-anchor="middle" x="223" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00">te</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_f97d855a3173728370e632aa77170e34 -->
-<g id="edge21" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
-<path fill="none" stroke="black" d="M304.179,-383.556C305.524,-352.89 305.074,-288.02 282,-240 276.824,-229.228 268.617,-219.249 260.286,-210.923"/>
-<polygon fill="black" stroke="black" points="262.682,-208.371 253.007,-204.053 257.877,-213.462 262.682,-208.371"/>
-<g id="a_edge21&#45;headlabel"><a xlink:href="dir_000003_000018.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="267.245" y="-206.273" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge22" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_f97d855a3173728370e632aa77170e34</title>
+<path fill="none" stroke="black" d="M307.775,-383.831C301.667,-353.591 286.758,-289.36 262,-240 257.16,-230.35 250.579,-220.602 244.202,-212.144"/>
+<polygon fill="black" stroke="black" points="246.881,-209.889 237.964,-204.167 241.367,-214.201 246.881,-209.889"/>
+<g id="a_edge22&#45;headlabel"><a xlink:href="dir_000003_000018.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="251.332" y="-208.472" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5 -->
-<g id="edge24" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
-<path fill="none" stroke="black" d="M294.315,-383.871C281.882,-359.35 258.904,-314.032 244.314,-285.259"/>
-<polygon fill="black" stroke="black" points="247.36,-283.525 239.716,-276.189 241.116,-286.691 247.36,-283.525"/>
-<g id="a_edge24&#45;headlabel"><a xlink:href="dir_000003_000007.html" target="_top" xlink:title="1">
-<text text-anchor="middle" x="251.518" y="-282.947" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
+<g id="edge25" class="edge"><title>dir_02be2c9d68e402f80df60bd528724ee5&#45;&gt;dir_72c2f11201cd7636dc7624de0754daa5</title>
+<path fill="none" stroke="black" d="M283.632,-391.918C259.07,-382.999 222.723,-367.852 195,-348 169.758,-329.925 145.964,-303.487 130.189,-284.122"/>
+<polygon fill="black" stroke="black" points="132.916,-281.928 123.938,-276.301 127.447,-286.298 132.916,-281.928"/>
+<g id="a_edge25&#45;headlabel"><a xlink:href="dir_000003_000007.html" target="_top" xlink:title="1">
+<text text-anchor="middle" x="137.378" y="-280.463" font-family="Helvetica,sans-Serif" font-size="10.00">1</text>
 </a>
 </g>
 </g>
 <!-- dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5 -->
-<g id="edge27" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
-<path fill="none" stroke="black" d="M153.803,-456.28C119.517,-432.871 65,-386.867 65,-331 65,-331 65,-331 65,-257 65,-217.196 64.4386,-206.378 75,-168 77.4657,-159.04 81.2587,-149.675 85.1067,-141.354"/>
-<polygon fill="black" stroke="black" points="88.3556,-142.675 89.5729,-132.151 82.058,-139.619 88.3556,-142.675"/>
-<g id="a_edge27&#45;headlabel"><a xlink:href="dir_000004_000013.html" target="_top" xlink:title="12">
-<text text-anchor="middle" x="89.3406" y="-144.649" font-family="Helvetica,sans-Serif" font-size="10.00">12</text>
+<g id="edge28" class="edge"><title>dir_dc867ff9a37cad1764f1670dc7eba6c1&#45;&gt;dir_6cd4295f6ad5aa17e5b568d0e5b190e5</title>
+<path fill="none" stroke="black" d="M149.107,-455.65C139.23,-445.87 127.469,-433.028 119,-420 81.7484,-362.691 75.5251,-343.537 65,-276 62.4514,-259.646 62.4579,-183.313 66,-168 68.0764,-159.023 71.8124,-149.765 75.7739,-141.548"/>
+<polygon fill="black" stroke="black" points="78.9866,-142.954 80.442,-132.459 72.7599,-139.756 78.9866,-142.954"/>
+<g id="a_edge28&#45;headlabel"><a xlink:href="dir_000004_000013.html" target="_top" xlink:title="12">
... 24113 lines suppressed ...