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 2023/01/23 23:07:32 UTC

[tvm-site] branch asf-site updated: deploying docs (apache/tvm@1bc6dd40c2251e632a3ce4e68b9180978aca4ac4)

This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/tvm-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 5886a0257d deploying docs (apache/tvm@1bc6dd40c2251e632a3ce4e68b9180978aca4ac4)
5886a0257d is described below

commit 5886a0257d52ac08737ce3e3e9ae5167284d4f88
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Mon Jan 23 23:07:26 2023 +0000

    deploying docs (apache/tvm@1bc6dd40c2251e632a3ce4e68b9180978aca4ac4)
---
 docs/_images/sphx_glr_micro_train_001.png          |  Bin 330120 -> 298784 bytes
 docs/_images/sphx_glr_micro_train_thumb.png        |  Bin 23754 -> 22856 bytes
 .../how_to/compile_models/from_darknet.rst.txt     |    2 +-
 .../how_to/compile_models/from_keras.rst.txt       |    2 +-
 .../how_to/compile_models/from_mxnet.rst.txt       |    2 +-
 .../how_to/compile_models/from_oneflow.rst.txt     |    2 +-
 .../how_to/compile_models/from_pytorch.rst.txt     |    2 +-
 .../how_to/compile_models/from_tensorflow.rst.txt  |    2 +-
 .../compile_models/sg_execution_times.rst.txt      |   22 +-
 .../deploy_models/deploy_model_on_adreno.rst.txt   |    2 +-
 .../deploy_models/deploy_model_on_android.rst.txt  |    2 +-
 .../deploy_object_detection_pytorch.rst.txt        |    4 +-
 .../deploy_models/deploy_prequantized.rst.txt      |    6 +-
 .../deploy_prequantized_tflite.rst.txt             |    4 +-
 .../how_to/deploy_models/deploy_quantized.rst.txt  |    2 +-
 .../deploy_models/deploy_ssd_gluoncv.rst.txt       |    4 +-
 .../deploy_models/sg_execution_times.rst.txt       |   20 +-
 .../extend_tvm/bring_your_own_datatypes.rst.txt    |    2 +-
 .../how_to/extend_tvm/sg_execution_times.rst.txt   |    8 +-
 .../how_to/extend_tvm/use_pass_instrument.rst.txt  |   16 +-
 .../optimize_operators/opt_conv_cuda.rst.txt       |    2 +-
 .../optimize_operators/opt_conv_tensorcore.rst.txt |    2 +-
 .../how_to/optimize_operators/opt_gemm.rst.txt     |   16 +-
 .../optimize_operators/sg_execution_times.rst.txt  |    8 +-
 .../sg_execution_times.rst.txt                     |   14 +-
 .../tune_conv2d_layer_cuda.rst.txt                 |    4 +-
 .../tune_network_cuda.rst.txt                      |    4 +-
 .../tune_network_x86.rst.txt                       |    4 +-
 .../tune_sparse_x86.rst.txt                        |   78 +-
 .../tune_with_autotvm/sg_execution_times.rst.txt   |    4 +-
 .../tune_with_autotvm/tune_conv2d_cuda.rst.txt     |  432 +-------
 .../work_with_microtvm/micro_autotune.rst.txt      |   16 +-
 .../work_with_microtvm/micro_pytorch.rst.txt       |    4 +-
 .../how_to/work_with_microtvm/micro_train.rst.txt  |   18 +-
 .../work_with_microtvm/sg_execution_times.rst.txt  |   16 +-
 .../work_with_relay/sg_execution_times.rst.txt     |    8 +-
 .../how_to/work_with_schedules/intrin_math.rst.txt |    2 +-
 .../work_with_schedules/sg_execution_times.rst.txt |   16 +-
 .../how_to/work_with_schedules/tensorize.rst.txt   |    2 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |    6 +-
 .../frontend/deploy_classification.rst.txt         |    2 +-
 .../tutorials/frontend/deploy_detection.rst.txt    |    2 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |    6 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |    6 +-
 .../topic/vta/tutorials/sg_execution_times.rst.txt |    6 +-
 .../tutorial/auto_scheduler_matmul_x86.rst.txt     |    6 +-
 docs/_sources/tutorial/autotvm_matmul_x86.rst.txt  |   20 +-
 docs/_sources/tutorial/autotvm_relay_x86.rst.txt   |   60 +-
 .../tutorial/cross_compilation_and_rpc.rst.txt     |    2 +-
 docs/_sources/tutorial/intro_topi.rst.txt          |    2 +-
 docs/_sources/tutorial/sg_execution_times.rst.txt  |   22 +-
 .../tutorial/tensor_expr_get_started.rst.txt       |   51 +-
 docs/commit_hash                                   |    2 +-
 docs/how_to/compile_models/from_darknet.html       |    2 +-
 docs/how_to/compile_models/from_keras.html         |    2 +-
 docs/how_to/compile_models/from_mxnet.html         |    2 +-
 docs/how_to/compile_models/from_oneflow.html       |   12 +-
 docs/how_to/compile_models/from_pytorch.html       |   10 +-
 docs/how_to/compile_models/from_tensorflow.html    |    2 +-
 docs/how_to/compile_models/sg_execution_times.html |   22 +-
 .../deploy_models/deploy_model_on_adreno.html      |    2 +-
 .../deploy_models/deploy_model_on_android.html     |    2 +-
 .../deploy_object_detection_pytorch.html           |   42 +-
 docs/how_to/deploy_models/deploy_prequantized.html |    7 +-
 .../deploy_models/deploy_prequantized_tflite.html  |    4 +-
 docs/how_to/deploy_models/deploy_quantized.html    |    2 +-
 docs/how_to/deploy_models/deploy_ssd_gluoncv.html  |   35 +-
 docs/how_to/deploy_models/sg_execution_times.html  |   20 +-
 .../extend_tvm/bring_your_own_datatypes.html       |    2 +-
 docs/how_to/extend_tvm/sg_execution_times.html     |    8 +-
 docs/how_to/extend_tvm/use_pass_instrument.html    |   16 +-
 docs/how_to/optimize_operators/opt_conv_cuda.html  |    2 +-
 .../optimize_operators/opt_conv_tensorcore.html    |    2 +-
 docs/how_to/optimize_operators/opt_gemm.html       |   16 +-
 .../optimize_operators/sg_execution_times.html     |    8 +-
 .../sg_execution_times.html                        |   14 +-
 .../tune_conv2d_layer_cuda.html                    |    4 +-
 .../tune_with_autoscheduler/tune_network_cuda.html |    4 +-
 .../tune_with_autoscheduler/tune_network_x86.html  |    4 +-
 .../tune_with_autoscheduler/tune_sparse_x86.html   |   78 +-
 .../tune_with_autotvm/sg_execution_times.html      |    4 +-
 .../how_to/tune_with_autotvm/tune_conv2d_cuda.html |  432 +-------
 docs/how_to/work_with_microtvm/micro_autotune.html |   16 +-
 docs/how_to/work_with_microtvm/micro_pytorch.html  |    4 +-
 docs/how_to/work_with_microtvm/micro_train.html    |   16 +-
 .../work_with_microtvm/sg_execution_times.html     |   16 +-
 .../how_to/work_with_relay/sg_execution_times.html |    8 +-
 docs/how_to/work_with_schedules/intrin_math.html   |    2 +-
 .../work_with_schedules/sg_execution_times.html    |   16 +-
 docs/how_to/work_with_schedules/tensorize.html     |    2 +-
 .../classtvm_1_1script_1_1printer_1_1Doc.html      |    2 +-
 ...1_1script_1_1printer_1_1Doc__inherit__graph.svg |  623 ++++++-----
 .../classtvm_1_1script_1_1printer_1_1ExprDoc.html  |    2 +-
 ...cript_1_1printer_1_1ExprDoc__inherit__graph.svg |  335 +++---
 ...1_1script_1_1printer_1_1LiteralDoc-members.html |   43 +-
 ...lasstvm_1_1script_1_1printer_1_1LiteralDoc.html |  180 ++--
 ...cript_1_1printer_1_1LiteralDoc__coll__graph.svg |  157 ++-
 ...pt_1_1printer_1_1LiteralDoc__inherit__graph.svg |  129 ++-
 docs/reference/api/doxygen/doc_8h.html             |    3 +-
 docs/reference/api/doxygen/doc_8h__incl.svg        |  896 ++++++++--------
 docs/reference/api/doxygen/doc_8h_source.html      |  239 ++---
 docs/reference/api/doxygen/functions_b.html        |    2 +-
 docs/reference/api/doxygen/functions_d.html        |    2 +-
 docs/reference/api/doxygen/functions_f.html        |    2 +-
 docs/reference/api/doxygen/functions_func_b.html   |    2 +-
 docs/reference/api/doxygen/functions_func_d.html   |    2 +-
 docs/reference/api/doxygen/functions_func_f.html   |    2 +-
 docs/reference/api/doxygen/functions_func_i.html   |    2 +-
 docs/reference/api/doxygen/functions_func_l.html   |    6 +-
 docs/reference/api/doxygen/functions_func_n.html   |    2 +-
 docs/reference/api/doxygen/functions_func_s.html   |    2 +-
 docs/reference/api/doxygen/functions_i.html        |    2 +-
 docs/reference/api/doxygen/functions_l.html        |    4 +-
 docs/reference/api/doxygen/functions_n.html        |    2 +-
 docs/reference/api/doxygen/functions_s.html        |    2 +-
 docs/reference/api/doxygen/ir__docsifier_8h.html   |    2 +-
 .../api/doxygen/ir__docsifier_8h__incl.svg         | 1086 ++++++++++----------
 .../api/doxygen/ir__docsifier_8h_source.html       |    9 +-
 docs/reference/api/doxygen/printer_8h.html         |    2 +-
 docs/reference/api/doxygen/printer_8h__incl.svg    | 1062 +++++++++----------
 docs/reference/api/doxygen/printer_8h_source.html  |    2 +-
 docs/reference/api/doxygen/search/all_14.js        |    2 +-
 docs/reference/api/doxygen/search/all_3.js         |    2 +-
 docs/reference/api/doxygen/search/all_5.js         |    2 +-
 docs/reference/api/doxygen/search/all_7.js         |    2 +-
 docs/reference/api/doxygen/search/all_a.js         |    2 +-
 docs/reference/api/doxygen/search/all_d.js         |    2 +-
 docs/reference/api/doxygen/search/all_f.js         |    2 +-
 docs/reference/api/doxygen/search/functions_13.js  |    2 +-
 docs/reference/api/doxygen/search/functions_2.js   |    2 +-
 docs/reference/api/doxygen/search/functions_4.js   |    2 +-
 docs/reference/api/doxygen/search/functions_6.js   |    2 +-
 docs/reference/api/doxygen/search/functions_9.js   |    2 +-
 docs/reference/api/doxygen/search/functions_c.js   |    2 +-
 docs/reference/api/doxygen/search/functions_e.js   |    2 +-
 docs/reference/api/python/auto_scheduler.html      |    4 +-
 .../api/typedoc/classes/bytestreamreader.html      |   12 +-
 .../api/typedoc/classes/cachedcallstack.html       |   34 +-
 docs/reference/api/typedoc/classes/dldatatype.html |   12 +-
 docs/reference/api/typedoc/classes/dldevice.html   |   10 +-
 .../reference/api/typedoc/classes/environment.html |   12 +-
 docs/reference/api/typedoc/classes/ffilibrary.html |   20 +-
 .../api/typedoc/classes/graphexecutor.html         |   16 +-
 docs/reference/api/typedoc/classes/instance.html   |   40 +-
 docs/reference/api/typedoc/classes/memory.html     |   34 +-
 docs/reference/api/typedoc/classes/module.html     |   10 +-
 docs/reference/api/typedoc/classes/ndarray.html    |   22 +-
 .../api/typedoc/classes/packedfunccell.html        |    6 +-
 docs/reference/api/typedoc/classes/rpcserver.html  |   14 +-
 docs/reference/api/typedoc/classes/scalar.html     |    6 +-
 .../api/typedoc/classes/webgpucontext.html         |   12 +-
 docs/reference/api/typedoc/enums/argtypecode.html  |   30 +-
 .../api/typedoc/enums/aynccallbackcode.html        |    4 +-
 .../api/typedoc/enums/dldatatypecode.html          |    8 +-
 .../api/typedoc/enums/rpcserverstate.html          |   12 +-
 docs/reference/api/typedoc/enums/sizeof.html       |   18 +-
 docs/reference/api/typedoc/index.html              |  112 +-
 .../api/typedoc/interfaces/disposable.html         |    2 +-
 .../api/typedoc/interfaces/functioninfo.html       |    6 +-
 .../api/typedoc/interfaces/libraryprovider.html    |    4 +-
 docs/searchindex.js                                |    2 +-
 .../vta/tutorials/autotvm/sg_execution_times.html  |    6 +-
 .../tutorials/frontend/deploy_classification.html  |    2 +-
 .../vta/tutorials/frontend/deploy_detection.html   |    2 +-
 .../vta/tutorials/frontend/sg_execution_times.html |    6 +-
 .../vta/tutorials/optimize/sg_execution_times.html |    6 +-
 docs/topic/vta/tutorials/sg_execution_times.html   |    6 +-
 docs/tutorial/auto_scheduler_matmul_x86.html       |    5 +-
 docs/tutorial/autotvm_matmul_x86.html              |   20 +-
 docs/tutorial/autotvm_relay_x86.html               |  270 ++---
 docs/tutorial/cross_compilation_and_rpc.html       |    2 +-
 docs/tutorial/intro_topi.html                      |    2 +-
 docs/tutorial/sg_execution_times.html              |   24 +-
 docs/tutorial/tensor_expr_get_started.html         |   47 +-
 174 files changed, 3348 insertions(+), 4133 deletions(-)

diff --git a/docs/_images/sphx_glr_micro_train_001.png b/docs/_images/sphx_glr_micro_train_001.png
index 749f250b96..fb3c2850a3 100644
Binary files a/docs/_images/sphx_glr_micro_train_001.png and b/docs/_images/sphx_glr_micro_train_001.png differ
diff --git a/docs/_images/sphx_glr_micro_train_thumb.png b/docs/_images/sphx_glr_micro_train_thumb.png
index eb961b1b9c..86defffe09 100644
Binary files a/docs/_images/sphx_glr_micro_train_thumb.png and b/docs/_images/sphx_glr_micro_train_thumb.png differ
diff --git a/docs/_sources/how_to/compile_models/from_darknet.rst.txt b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
index 50f453a366..5e8bd8bab7 100644
--- a/docs/_sources/how_to/compile_models/from_darknet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
@@ -318,7 +318,7 @@ The process is no different from other examples.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  13.230 seconds)
+   **Total running time of the script:** ( 1 minutes  12.447 seconds)
 
 
 .. _sphx_glr_download_how_to_compile_models_from_darknet.py:
diff --git a/docs/_sources/how_to/compile_models/from_keras.rst.txt b/docs/_sources/how_to/compile_models/from_keras.rst.txt
index 4f562b994c..f37d684f25 100644
--- a/docs/_sources/how_to/compile_models/from_keras.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_keras.rst.txt
@@ -232,7 +232,7 @@ Look up prediction top 1 index in 1000 class synset.
  .. code-block:: none
 
     Relay top-1 id: 285, class name: Egyptian cat
-
    1/1 [==============================] - ETA: 0s
    1/1 [==============================] - 1s 915ms/step
+
    1/1 [==============================] - ETA: 0s
    1/1 [==============================] - 1s 959ms/step
     Keras top-1 id: 285, class name: Egyptian cat
 
 
diff --git a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
index b1b97e7966..822884a8f4 100644
--- a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
@@ -116,7 +116,7 @@ In this section, we download a pretrained imagenet model and classify an image.
 
  .. code-block:: none
 
-    Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip838bbabd-0180-4f1a-a0aa-060ee27c0473 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+    Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip9b5cc5f4-91fb-4fde-8880-c79b857dba2c from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
     x (1, 3, 224, 224)
 
 
diff --git a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
index e4510d71f6..bd35ddba02 100644
--- a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
@@ -121,7 +121,7 @@ Load a pretrained OneFlow model and save model
  .. code-block:: none
 
     Downloading: "https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip" to /workspace/.oneflow/flowvision_cache/resnet18.zip
-
      0%|          | 0.00/41.5M [00:00<?, ?B/s]
     15%|#5        | 6.33M/41.5M [00:00<00:00, 44.7MB/s]
     26%|##5       | 10.6M/41.5M [00:00<00:00, 43.0MB/s]
     35%|###5      | 14.7M/41.5M [00:00<00:00, 42.9MB/s]
     45%|####5     | 18.8M/41.5M [00:00<00:00, 39.3MB/s]
     54%|#####4    | 22.5M/41.5M [00:00<00:00, 39.3MB/s]
     63%|######3   | 26.3M/41.5M [00:00<00:00, 37.8MB/s]
     77%|#######7  | 32.0M/41.5M [00:00<00:00, 39.3MB/s]
    100%|##########| 41.5M/41.5M [00:00<00:00, 46.4MB/s]
+
      0%|          | 0.00/41.5M [00:00<?, ?B/s]
     39%|###8      | 16.0M/41.5M [00:00<00:00, 122MB/s]
     67%|######6   | 27.7M/41.5M [00:00<00:00, 102MB/s]
     98%|#########7| 40.5M/41.5M [00:00<00:00, 114MB/s]
    100%|##########| 41.5M/41.5M [00:00<00:00, 114MB/s]
 
 
 
diff --git a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
index cc0086e1e2..075e7b1f97 100644
--- a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
@@ -101,7 +101,7 @@ Load a pretrained PyTorch model
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and will be removed in 0.15. The current behavior is equivalent to passing `weights=ResNet18_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet18_Weights.DEFAULT` to get the most up-to-date weights.
       warnings.warn(msg)
     Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
-
      0%|          | 0.00/44.7M [00:00<?, ?B/s]
     26%|##5       | 11.6M/44.7M [00:00<00:00, 122MB/s]
     52%|#####1    | 23.2M/44.7M [00:00<00:00, 88.4MB/s]
     72%|#######1  | 32.1M/44.7M [00:00<00:00, 59.0MB/s]
     99%|#########8| 44.2M/44.7M [00:00<00:00, 69.2MB/s]
    100%|##########| 44.7M/44.7M [00:00<00:00, 72.3MB/s]
+
      0%|          | 0.00/44.7M [00:00<?, ?B/s]
     18%|#7        | 7.99M/44.7M [00:00<00:00, 75.9MB/s]
     36%|###5      | 16.0M/44.7M [00:00<00:00, 79.2MB/s]
     72%|#######1  | 32.0M/44.7M [00:00<00:00, 116MB/s] 
     96%|#########6| 43.0M/44.7M [00:00<00:00, 112MB/s]
    100%|##########| 44.7M/44.7M [00:00<00:00, 105MB/s]
 
 
 
diff --git a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
index 18bcc7acbe..db9e8c4109 100644
--- a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
@@ -424,7 +424,7 @@ Run the corresponding model on tensorflow
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  18.529 seconds)
+   **Total running time of the script:** ( 1 minutes  18.466 seconds)
 
 
 .. _sphx_glr_download_how_to_compile_models_from_tensorflow.py:
diff --git a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
index fd2f77925f..ccec9210df 100644
--- a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
@@ -5,26 +5,26 @@
 
 Computation times
 =================
-**06:07.082** total execution time for **how_to_compile_models** files:
+**06:07.243** total execution time for **how_to_compile_models** files:
 
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:18.529 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:18.466 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)       | 01:13.230 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)       | 01:12.447 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)         | 00:49.618 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)         | 00:50.613 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)       | 00:34.329 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)       | 00:34.331 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)           | 00:29.898 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)           | 00:29.690 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)         | 00:29.085 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)         | 00:29.100 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)         | 00:26.684 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)         | 00:26.481 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)       | 00:24.003 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)       | 00:24.134 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)           | 00:19.168 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)           | 00:19.446 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)             | 00:02.537 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)             | 00:02.534 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt b/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt
index 0075ddb74f..bd89d1fa91 100644
--- a/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt
@@ -727,7 +727,7 @@ well as provides information about the model's performance
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-     2644.1373    2642.7018    2651.1663    2641.1535      3.1790   
+     2545.2906    2544.8195    2549.4633    2544.1715      1.4478   
                
 
 
diff --git a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
index 04dba59e63..2cc529b0a7 100644
--- a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
@@ -437,7 +437,7 @@ Execute on TVM
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      14.5138      14.3758      15.1060      14.1449       0.3479   
+      15.9776      15.7680      16.6149      15.5034       0.4585   
                
 
 
diff --git a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
index a6de6eed06..f189c9d056 100644
--- a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
@@ -130,7 +130,7 @@ Load pre-trained maskrcnn from torchvision and do tracing
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and will be removed in 0.15. The current behavior is equivalent to passing `weights=MaskRCNN_ResNet50_FPN_Weights.COCO_V1`. You can also use `weights=MaskRCNN_ResNet50_FPN_Weights.DEFAULT` to get the most up-to-date weights.
       warnings.warn(msg)
     Downloading: "https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth" to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
-
      0%|          | 0.00/170M [00:00<?, ?B/s]
      5%|4         | 7.99M/170M [00:00<00:02, 63.0MB/s]
      9%|8         | 15.2M/170M [00:00<00:02, 69.4MB/s]
     13%|#2        | 21.9M/170M [00:00<00:02, 52.9MB/s]
     16%|#6        | 27.3M/170M [00:00<00:02, 51.3MB/s]
     19%|#9        | 32.3M/170M [00:00<00:03, 47.1MB/s]
     24%|##3       | 40.0M/170M [00:00<00:02, 53.4MB/s]
     28%|##8       | 48.0M/170M [00:00<00:02, 47.6MB/s]
     33%|###2      | 56.0M/170M [00:01<00:02, 51.2MB/s]
     38%|###7      | 64.0M/170M [00:01<00:02, 51.8MB/s]
     42%|####2     | 72.0M/170M [00:01<00:01, 52.4MB/s]
     47%|####6     | 79.3M/170M [00:01<00:01, 57.7MB/s]
     50%|#####     | 85.0M/170M [00:01<00:01, 58.1MB/s]
     53%|#####3    | 90.7M/170M [00:01<00:01, 54.8MB/s]
     57%|#####6    | 96.1M/170M [00:01<00:01, 54.8MB/s]
     61%|######1   | 104M/170M [00:02<00:01, 49.4MB/s] 
     66%|######5   | 112M/170M [00:02<00:01, 55.2MB/s]
     71%|#######   | 120M/170M [00:02<00:00, 56.9MB/s]
 
     75%|#######5  | 128M/170M [00:02<00:00, 58.3MB/s]
     80%|########  | 136M/170M [00:02<00:00, 61.9MB/s]
     85%|########4 | 144M/170M [00:02<00:00, 58.4MB/s]
     88%|########8 | 150M/170M [00:02<00:00, 59.1MB/s]
     92%|#########1| 156M/170M [00:02<00:00, 57.2MB/s]
     95%|#########5| 162M/170M [00:03<00:00, 57.3MB/s]
     99%|#########8| 168M/170M [00:03<00:00, 49.8MB/s]
    100%|##########| 170M/170M [00:03<00:00, 54.8MB/s]
+
      0%|          | 0.00/170M [00:00<?, ?B/s]
      9%|9         | 15.5M/170M [00:00<00:00, 163MB/s]
     18%|#8        | 31.0M/170M [00:00<00:01, 107MB/s]
     25%|##4       | 42.3M/170M [00:00<00:01, 100MB/s]
     33%|###2      | 55.6M/170M [00:00<00:01, 112MB/s]
     39%|###9      | 66.8M/170M [00:00<00:01, 97.7MB/s]
     47%|####6     | 79.8M/170M [00:00<00:00, 108MB/s] 
     53%|#####3    | 90.7M/170M [00:00<00:00, 104MB/s]
     59%|#####9    | 101M/170M [00:01<00:00, 97.5MB/s]
     66%|######5   | 112M/170M [00:01<00:00, 92.7MB/s]
     74%|#######4  | 126M/170M [00:01<00:00, 107MB/s] 
     81%|########  | 137M/170M [00:01<00:00, 100MB/s]
     86%|########6 | 147M/170M [00:01<00:00, 98.3MB/s]
     94%|#########3| 159M/170M [00:01<00:00, 106MB/s] 
    100%|#########9| 169M/170M [00:01<00:00, 104MB/s]
    100%|##########| 170M/170M [00:01<00:00, 104MB/s]
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torch/nn/functional.py:3897: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
       for i in range(dim)
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/detection/anchor_utils.py:124: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
@@ -299,7 +299,7 @@ Get boxes with score larger than 0.9
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 3 minutes  14.844 seconds)
+   **Total running time of the script:** ( 3 minutes  19.710 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_object_detection_pytorch.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
index 2bdfb6181d..7904fc8759 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
@@ -227,7 +227,7 @@ training. Other models require a full post training calibration.
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and will be removed in 0.15. The current behavior is equivalent to passing `weights=MobileNet_V2_Weights.IMAGENET1K_V1`. You can also use `weights=MobileNet_V2_Weights.DEFAULT` to get the most up-to-date weights.
       warnings.warn(msg)
     Downloading: "https://download.pytorch.org/models/mobilenet_v2-b0353104.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
-
      0%|          | 0.00/13.6M [00:00<?, ?B/s]
     59%|#####8    | 7.99M/13.6M [00:00<00:00, 48.8MB/s]
    100%|##########| 13.6M/13.6M [00:00<00:00, 66.4MB/s]
+
      0%|          | 0.00/13.6M [00:00<?, ?B/s]
    100%|##########| 13.6M/13.6M [00:00<00:00, 145MB/s]
 
 
 
@@ -409,7 +409,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      87.8299      87.7591      90.9274      87.4078       0.4231   
+      90.1042      90.0770      90.8171      89.8795       0.1535   
                
 
 
@@ -458,7 +458,7 @@ TODO
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  9.809 seconds)
+   **Total running time of the script:** ( 1 minutes  11.129 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_prequantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
index e7a3f1ca21..e781f35ef6 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
@@ -423,7 +423,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      115.8371     115.6378     119.7660     114.7599      0.7118   
+      118.1637     118.1807     120.2154     116.4329      0.7943   
                
 
 
@@ -460,7 +460,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  27.167 seconds)
+   **Total running time of the script:** ( 2 minutes  31.432 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_prequantized_tflite.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
index 5b78a41b33..d72c253c2d 100644
--- a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
@@ -257,7 +257,7 @@ We create a Relay VM to build and execute the model.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  34.467 seconds)
+   **Total running time of the script:** ( 1 minutes  18.289 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_quantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
index 285b61fc19..c35b24d75d 100644
--- a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
@@ -170,7 +170,7 @@ Convert and compile model for CPU.
             data: None
       input_sym_arg_type = in_param.infer_type()[0]
     Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
-
      0%|          | 0/132723 [00:00<?, ?KB/s]
      5%|4         | 6473/132723 [00:00<00:01, 64718.33KB/s]
     10%|9         | 12945/132723 [00:00<00:01, 64101.16KB/s]
     16%|#6        | 21378/132723 [00:00<00:01, 73285.38KB/s]
     23%|##2       | 29969/132723 [00:00<00:01, 78246.88KB/s]
     29%|##9       | 38828/132723 [00:00<00:01, 81967.07KB/s]
     36%|###5      | 47663/132723 [00:00<00:01, 84132.06KB/s]
     43%|####2     | 56463/132723 [00:00<00:00, 85392.86KB/s]
     49%|####8     | 65005/132723 [00:00<00:00, 84003.77KB/s]
     56%|#####5    | 73825/132723 [00:00<00:00, 85290.17KB/s]
     62%|######2   | 82710/132723 [00:01<00:00, 86378.42KB/s]
     69%|######9   | 91625/132723 [00:01<00:00, 87216.81KB/s]
     76%|#######5  | 100481/132723 [00:01<00:00, 87616.52KB/s]
     82%|########2 | 109246/132723 [00:01<00:00, 86807.94KB/s]
     89%|########8 | 118074/132723 [00:01<00:00, 87246.06KB/s]
     96%|#########5| 126981/132723 [00:01<00:00, 87788.31KB/s]
    100%|#######
 ###| 132723/132723 [00:01<00:00, 84213.43KB/s]
+
      0%|          | 0/132723 [00:00<?, ?KB/s]
      5%|4         | 6465/132723 [00:00<00:01, 64646.67KB/s]
     11%|#1        | 14645/132723 [00:00<00:01, 74733.65KB/s]
     17%|#7        | 22854/132723 [00:00<00:01, 78089.24KB/s]
     23%|##3       | 31065/132723 [00:00<00:01, 79672.57KB/s]
     30%|##9       | 39309/132723 [00:00<00:01, 80668.00KB/s]
     36%|###5      | 47512/132723 [00:00<00:01, 81129.70KB/s]
     42%|####1     | 55652/132723 [00:00<00:00, 81215.49KB/s]
     48%|####8     | 63900/132723 [00:00<00:00, 81612.54KB/s]
     54%|#####4    | 72176/132723 [00:00<00:00, 81963.79KB/s]
     61%|######    | 80417/132723 [00:01<00:00, 82099.92KB/s]
     67%|######6   | 88627/132723 [00:01<00:00, 82075.96KB/s]
     73%|#######2  | 96835/132723 [00:01<00:00, 81974.14KB/s]
     79%|#######9  | 105079/132723 [00:01<00:00, 82111.94KB/s]
     85%|########5 | 113391/132723 [00:01<00:00, 82414.91KB/s]
     92%|#########1| 121633/132723 [00:01<00:00, 82287.15KB/s]
     98%|########
 #7| 129888/132723 [00:01<00:00, 82360.39KB/s]
    100%|##########| 132723/132723 [00:01<00:00, 81116.41KB/s]
 
 
 
@@ -246,7 +246,7 @@ Display result
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 3 minutes  21.774 seconds)
+   **Total running time of the script:** ( 3 minutes  25.327 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_ssd_gluoncv.py:
diff --git a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
index 2b0dea55c6..8af5c53cc9 100644
--- a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
@@ -5,26 +5,26 @@
 
 Computation times
 =================
-**14:12.861** total execution time for **how_to_deploy_models** files:
+**14:11.486** total execution time for **how_to_deploy_models** files:
 
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)                           | 03:21.774 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)                           | 03:25.327 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 03:14.844 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 03:19.710 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)           | 02:27.167 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)           | 02:31.432 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)                               | 01:34.467 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)                               | 01:18.289 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)                         | 01:09.809 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)                         | 01:11.129 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_adreno.py` (``deploy_model_on_adreno.py``)                   | 00:53.568 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_adreno.py` (``deploy_model_on_adreno.py``)                   | 00:52.846 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)                 | 00:38.279 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)                 | 00:38.840 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``)                       | 00:26.591 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``)                       | 00:27.089 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)                       | 00:26.354 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)                       | 00:26.819 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``)                                     | 00:00.006 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
index 1831859472..fc4a6135b0 100644
--- a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
@@ -463,7 +463,7 @@ First let us define two helper functions to get the mobilenet model and a cat im
 
  .. code-block:: none
 
-    Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip1894251e-7ee7-49a0-997e-041a5f26fbd9 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+    Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zipa441e209-5eeb-42af-b10c-1f1d155b1491 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
 
 
 
diff --git a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
index 6e32471b58..942b1f0c4c 100644
--- a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
@@ -5,14 +5,14 @@
 
 Computation times
 =================
-**00:50.655** total execution time for **how_to_extend_tvm** files:
+**00:50.947** total execution time for **how_to_extend_tvm** files:
 
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``) | 00:46.977 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``) | 00:47.337 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)           | 00:02.650 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)           | 00:02.570 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)                     | 00:01.021 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)                     | 00:01.034 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``)       | 00:00.007 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
index b921afe385..17ced85169 100644
--- a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
@@ -220,10 +220,10 @@ profile the execution time of each passes.
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 17948us [17948us] (48.93%; 48.93%)
-    FoldScaleAxis: 18736us [7us] (51.07%; 51.07%)
-            FoldConstant: 18729us [1650us] (51.05%; 99.96%)
-                    InferType: 17079us [17079us] (46.56%; 91.19%)
+    InferType: 18974us [18974us] (49.05%; 49.05%)
+    FoldScaleAxis: 19712us [8us] (50.95%; 50.95%)
+            FoldConstant: 19704us [1840us] (50.93%; 99.96%)
+                    InferType: 17865us [17865us] (46.18%; 90.66%)
 
 
 
@@ -262,10 +262,10 @@ Refer to following sections and :py:func:`tvm.instrument.pass_instrument` for th
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 17147us [17147us] (48.02%; 48.02%)
-    FoldScaleAxis: 18560us [5us] (51.98%; 51.98%)
-            FoldConstant: 18556us [1596us] (51.97%; 99.98%)
-                    InferType: 16960us [16960us] (47.50%; 91.40%)
+    InferType: 17833us [17833us] (47.87%; 47.87%)
+    FoldScaleAxis: 19423us [5us] (52.13%; 52.13%)
+            FoldConstant: 19418us [1706us] (52.12%; 99.97%)
+                    InferType: 17712us [17712us] (47.54%; 91.21%)
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
index 6dcf5ef2d8..5e0d5ed6e6 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
@@ -331,7 +331,7 @@ latency of convolution.
 
  .. code-block:: none
 
-    Convolution: 52.057407 ms
+    Convolution: 54.197311 ms
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
index edfb1c3903..4d4063afda 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
@@ -602,7 +602,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 13.313597 ms
+    conv2d with tensor core: 6.833782 ms
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
index 5f9424720c..f681d69726 100644
--- a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
@@ -134,8 +134,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 
  .. code-block:: none
 
-    Numpy running time: 0.015084
-    Baseline: 3.370751
+    Numpy running time: 0.017762
+    Baseline: 3.507148
 
 
 
@@ -224,7 +224,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.290637
+    Opt1: 0.300386
 
 
 
@@ -312,7 +312,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.329233
+    Opt2: 0.334985
 
 
 
@@ -397,7 +397,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.113702
+    Opt3: 0.114853
 
 
 
@@ -511,7 +511,7 @@ flattening.
 
  .. code-block:: none
 
-    Opt4: 0.108499
+    Opt4: 0.109487
 
 
 
@@ -620,7 +620,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.100125
+    Opt5: 0.110788
 
 
 
@@ -730,7 +730,7 @@ Furthermore, we can also utilize multi-core processors to do the thread-level pa
 
  .. code-block:: none
 
-    Opt6: 0.132327
+    Opt6: 0.144398
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
index 9ba6010826..76b6947f45 100644
--- a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
@@ -5,12 +5,12 @@
 
 Computation times
 =================
-**00:33.495** total execution time for **how_to_optimize_operators** files:
+**00:34.925** total execution time for **how_to_optimize_operators** files:
 
 +-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)                       | 00:30.705 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)                       | 00:32.363 | 0.0 MB |
 +-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.601 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.473 | 0.0 MB |
 +-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)             | 00:01.190 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)             | 00:01.088 | 0.0 MB |
 +-----------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
index d087747a97..1c9ef7f7f7 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
@@ -5,18 +5,18 @@
 
 Computation times
 =================
-**09:24.925** total execution time for **how_to_tune_with_autoscheduler** files:
+**09:12.340** total execution time for **how_to_tune_with_autoscheduler** files:
 
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``) | 05:39.541 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``) | 05:35.238 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)             | 01:37.605 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)             | 01:37.168 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)           | 01:06.528 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)           | 01:05.047 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)               | 00:34.526 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)               | 00:28.838 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)             | 00:13.932 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)             | 00:13.508 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)           | 00:12.793 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)           | 00:12.540 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
index 960af84570..41d9b0ce15 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
@@ -765,7 +765,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 0.350 ms
+    Execution time of this operator: 0.361 ms
 
 
 
@@ -1372,7 +1372,7 @@ In the example below we resume the status and do more 5 trials.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 5 minutes  39.541 seconds)
+   **Total running time of the script:** ( 5 minutes  35.238 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
index ba4869c5f4..3f3158fe14 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
@@ -647,7 +647,7 @@ so we can read the log file and load the best schedules.
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       7.9029       7.9002       7.9123       7.8963       0.0068   
+       7.8660       7.8647       7.8696       7.8637       0.0026   
                
 
 
@@ -675,7 +675,7 @@ Other Tips
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  6.528 seconds)
+   **Total running time of the script:** ( 1 minutes  5.047 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_network_cuda.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
index dd6427a930..c059ca359b 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
@@ -666,7 +666,7 @@ so we can read the log file and load the best schedules.
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      760.2450     762.3287     762.8100     755.5962      3.2931   
+      752.1154     752.1782     755.5035     748.6643      2.7924   
                
 
 
@@ -694,7 +694,7 @@ Other Tips
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  37.605 seconds)
+   **Total running time of the script:** ( 1 minutes  37.168 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_network_x86.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
index 361a89b6d6..58b6a3aa5b 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
@@ -386,74 +386,26 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
         @T.prim_func
         def main(placeholder: T.Buffer((128, 256), "float32"), placeholder_1: T.Buffer((4916, 16, 1), "float32"), placeholder_2: T.Buffer((4916,), "int32"), placeholder_3: T.Buffer((33,), "int32"), placeholder_4: T.Buffer((128, 512), "float32"), compute: T.Buffer((128, 512), "float32")):
             T.func_attr({"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True})
-            for i0_outer_i1_outer_fused in T.parallel(16):
-                compute_1 = T.allocate([4096], "float32", "global")
-                compute_2 = T.buffer_decl((4096,), data=compute_1)
-                for i_outer_inner, nb_j_inner in T.grid(2, 2):
-                    for i_inner_init in range(64):
-                        cse_var_1: T.int32 = i_outer_inner * 2048 + i_inner_init * 32 + nb_j_inner * 16
-                        compute_2[cse_var_1] = T.float32(0)
-                        compute_2[cse_var_1 + 1] = T.float32(0)
-                        compute_2[cse_var_1 + 2] = T.float32(0)
-                        compute_2[cse_var_1 + 3] = T.float32(0)
-                        compute_2[cse_var_1 + 4] = T.float32(0)
-                        compute_2[cse_var_1 + 5] = T.float32(0)
-                        compute_2[cse_var_1 + 6] = T.float32(0)
-                        compute_2[cse_var_1 + 7] = T.float32(0)
-                        compute_2[cse_var_1 + 8] = T.float32(0)
-                        compute_2[cse_var_1 + 9] = T.float32(0)
-                        compute_2[cse_var_1 + 10] = T.float32(0)
-                        compute_2[cse_var_1 + 11] = T.float32(0)
-                        compute_2[cse_var_1 + 12] = T.float32(0)
-                        compute_2[cse_var_1 + 13] = T.float32(0)
-                        compute_2[cse_var_1 + 14] = T.float32(0)
-                        compute_2[cse_var_1 + 15] = T.float32(0)
-                    for elem_idx, i_inner in T.grid(T.let(cse_var_2, i0_outer_i1_outer_fused * 2 + nb_j_inner, placeholder_5[cse_var_2 + 1] - placeholder_5[cse_var_2]), 64):
-                        cse_var_2 = T.var("int32")
+            for i0_outer_i1_outer_fused in T.parallel(32):
+                compute_1 = T.allocate([2048], "float32", "global")
+                compute_2 = T.buffer_decl((2048,), data=compute_1)
+                for i_outer_inner, nb_j_inner in T.grid(4, 2):
+                    for i_inner_init, j_init in T.grid(16, 16):
+                        compute_2[i_outer_inner * 512 + i_inner_init * 32 + nb_j_inner * 16 + j_init] = T.float32(0)
+                    for elem_idx, i_inner, j in T.grid(T.let(cse_var_1, i0_outer_i1_outer_fused % 16 * 2 + nb_j_inner, placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]), 16, 16):
+                        cse_var_1 = T.var("int32")
                         placeholder_5 = T.buffer_decl((33,), "int32", data=placeholder_3.data)
-                        cse_var_21: T.int32 = elem_idx * 16
-                        cse_var_20: T.int32 = i0_outer_i1_outer_fused * 2 + nb_j_inner
-                        cse_var_19: T.int32 = i_outer_inner * 16384 + i_inner * 256
-                        cse_var_18: T.int32 = i_outer_inner * 2048 + i_inner * 32 + nb_j_inner * 16
-                        cse_var_17: T.int32 = cse_var_18 + 9
-                        cse_var_16: T.int32 = cse_var_18 + 8
-                        cse_var_15: T.int32 = cse_var_18 + 7
-                        cse_var_14: T.int32 = cse_var_18 + 6
-                        cse_var_13: T.int32 = cse_var_18 + 5
-                        cse_var_12: T.int32 = cse_var_18 + 4
-                        cse_var_11: T.int32 = cse_var_18 + 3
-                        cse_var_10: T.int32 = cse_var_18 + 2
-                        cse_var_9: T.int32 = cse_var_18 + 15
-                        cse_var_8: T.int32 = cse_var_18 + 14
-                        cse_var_7: T.int32 = cse_var_18 + 13
-                        cse_var_6: T.int32 = cse_var_18 + 12
-                        cse_var_5: T.int32 = cse_var_18 + 11
-                        cse_var_4: T.int32 = cse_var_18 + 10
-                        cse_var_3: T.int32 = cse_var_18 + 1
+                        cse_var_3: T.int32 = i0_outer_i1_outer_fused % 16 * 2 + nb_j_inner
+                        cse_var_2: T.int32 = i_outer_inner * 512 + i_inner * 32 + nb_j_inner * 16 + j
                         placeholder_6 = T.buffer_decl((78656,), data=placeholder_1.data)
                         placeholder_7 = T.buffer_decl((32768,), data=placeholder.data)
                         placeholder_8 = T.buffer_decl((4916,), "int32", data=placeholder_2.data)
-                        compute_2[cse_var_18] = compute_2[cse_var_18] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_3] = compute_2[cse_var_3] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 1] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_10] = compute_2[cse_var_10] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 2] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_11] = compute_2[cse_var_11] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 3] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_12] = compute_2[cse_var_12] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 4] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_13] = compute_2[cse_var_13] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 5] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_14] = compute_2[cse_var_14] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 6] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_15] = compute_2[cse_var_15] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 7] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_16] = compute_2[cse_var_16] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 8] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_17] = compute_2[cse_var_17] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 9] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_4] = compute_2[cse_var_4] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 10] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_5] = compute_2[cse_var_5] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 11] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_6] = compute_2[cse_var_6] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 12] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_7] = compute_2[cse_var_7] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 13] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_8] = compute_2[cse_var_8] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 14] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                        compute_2[cse_var_9] = compute_2[cse_var_9] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 15] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                for i0_inner, i1_inner in T.grid(128, 32):
-                    cse_var_22: T.int32 = i0_inner * 512 + i0_outer_i1_outer_fused * 32 + i1_inner
+                        compute_2[cse_var_2] = compute_2[cse_var_2] + placeholder_6[placeholder_5[cse_var_3] * 16 + elem_idx * 16 + j] * T.max(placeholder_7[i0_outer_i1_outer_fused // 16 * 16384 + i_outer_inner * 4096 + i_inner * 256 + placeholder_8[placeholder_5[cse_var_3] + elem_idx]], T.float32(0))
+                for i0_inner in range(64):
+                    cse_var_4: T.int32 = i0_outer_i1_outer_fused // 16 * 32768 + i0_inner * 512 + i0_outer_i1_outer_fused % 16 * 32
                     compute_3 = T.buffer_decl((65536,), data=compute.data)
                     placeholder_5 = T.buffer_decl((65536,), data=placeholder_4.data)
-                    compute_3[cse_var_22] = T.max(compute_2[i0_inner * 32 + i1_inner] + placeholder_5[cse_var_22], T.float32(0))
+                    compute_3[cse_var_4:cse_var_4 + 32] = T.max(compute_2[i0_inner * 32:i0_inner * 32 + 32] + placeholder_5[cse_var_4:cse_var_4 + 32], T.Broadcast(T.float32(0), 32))
 
 
 
@@ -503,7 +455,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 1.865 ms
+    Execution time of this operator: 1.504 ms
 
 
 
diff --git a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
index 216bf605e4..da77895f38 100644
--- a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:40.160** total execution time for **how_to_tune_with_autotvm** files:
+**00:29.883** total execution time for **how_to_tune_with_autotvm** files:
 
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)           | 00:40.127 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)           | 00:29.851 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)               | 00:00.019 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
index f47e30cc9c..8b78b05b14 100644
--- a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
@@ -390,7 +390,7 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 8, 64]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6548069
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 8, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1348756
     No: 2   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
@@ -513,9 +513,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 256, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,955732
-    No: 3   GFLOPS: 0.89/0.89       result: MeasureResult(costs=(0.26042663549999995,), error_no=MeasureErrorNo.NO_ERROR, all_cost=9.621100187301636, timestamp=1674506680.363243)  [('tile_f', [-1, 1, 2, 128]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 1, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4163713
-    No: 4   GFLOPS: 0.00/0.89       result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 16, 4, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 256, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9708676
+    No: 3   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -637,9 +636,10 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 1, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 128, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7255657
-    No: 5   GFLOPS: 14.80/14.80     result: MeasureResult(costs=(0.015640404555555557,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.547365665435791, timestamp=1674506684.110485) [('tile_f', [-1, 16, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7646324
-    No: 6   GFLOPS: 0.00/14.80      result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 2, 32]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 128]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,367811
+    No: 4   GFLOPS: 7.15/7.15       result: MeasureResult(costs=(0.0323805845,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.4197022914886475, timestamp=1674513805.5752122)       [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 2, 16]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6515009
+    No: 5   GFLOPS: 96.50/96.50     result: MeasureResult(costs=(0.002399077261904762,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.259687900543213, timestamp=1674513808.2390378)        [('tile_f', [-1, 1, 2, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6046324
+    No: 6   GFLOPS: 0.00/96.50      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -761,8 +761,9 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 1, 64]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 64]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,3454641
-    No: 7   GFLOPS: 0.00/14.80      result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 8, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10063100
+    No: 7   GFLOPS: 1.97/96.50      result: MeasureResult(costs=(0.11765058125,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.502441883087158, timestamp=1674513811.1122339)       [('tile_f', [-1, 32, 1, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,234405
+    No: 8   GFLOPS: 0.00/96.50      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -884,8 +885,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 128, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 64]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6744589
-    No: 8   GFLOPS: 0.00/14.80      result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 1, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 32, 16]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5946922
+    No: 9   GFLOPS: 0.00/96.50      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1007,8 +1008,11 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 16, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 8, 8]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10173325
-    No: 9   GFLOPS: 0.00/14.80      result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 32, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6853262
+    No: 10  GFLOPS: 123.51/123.51   result: MeasureResult(costs=(0.0018743788705882353,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8191518783569336, timestamp=1674513813.335441)       [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1162603
+    No: 11  GFLOPS: 559.47/559.47   result: MeasureResult(costs=(0.00041378937371134016,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.011948585510254, timestamp=1674513814.3352637)      [('tile_f', [-1, 1, 32, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 2]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9928860
+    No: 12  GFLOPS: 877.34/877.34   result: MeasureResult(costs=(0.00026386789949748744,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7633612155914307, timestamp=1674513815.0643272)     [('tile_f', [-1, 2, 2, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10333465
+    No: 13  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1130,9 +1134,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 8, 8, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 8, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10414222
-    No: 10  GFLOPS: 92.01/92.01     result: MeasureResult(costs=(0.002515918093023256,), error_no=MeasureErrorNo.NO_ERROR, all_cost=7.519283056259155, timestamp=1674506693.8013742)        [('tile_f', [-1, 16, 4, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9780563
-    No: 11  GFLOPS: 0.00/92.01      result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 16, 2, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6056774
+    No: 14  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1254,8 +1257,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 16, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3651059
-    No: 12  GFLOPS: 0.00/92.01      result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 16, 8, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2343345
+    No: 15  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1377,8 +1380,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 16, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 128]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7145760
-    No: 13  GFLOPS: 0.00/92.01      result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 256, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5153728
+    No: 16  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1500,9 +1503,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 32, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7206482
-    No: 14  GFLOPS: 296.57/296.57   result: MeasureResult(costs=(0.0007805909333333334,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.138368844985962, timestamp=1674506695.1737492)       [('tile_f', [-1, 1, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5739481
-    No: 15  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 128, 1, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,1901302
+    No: 17  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1624,8 +1626,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 8]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3783463
-    No: 16  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 64, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,695363
+    No: 18  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1747,8 +1749,9 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 32, 1, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1082945
-    No: 17  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 1, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,933866
+    No: 19  GFLOPS: 16.46/877.34    result: MeasureResult(costs=(0.01406467625,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.1628198623657227, timestamp=1674513816.5768745)      [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 64, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2925269
+    No: 20  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1870,376 +1873,7 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 64, 1, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 8, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9145286
-    No: 18  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
-        func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
-        func = build(s, args, target_host=task.target_host, runtime=runtime)
-      File "/workspace/python/tvm/driver/build_module.py", line 227, in build
-        input_mod = lower(inputs, args, name=name, binds=binds)
-      File "/workspace/python/tvm/driver/build_module.py", line 134, in lower
-        return ffi.lower_schedule(inp, args, name, binds, simple_mode)
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 276, in tvm._ffi._cy3.core.FuncCall
-      File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
-    tvm._ffi.base.TVMError: Traceback (most recent call last):
-      24: TVMFuncCall
-            at ../src/runtime/c_runtime_api.cc:477
-      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      22: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      21: operator()
-            at ../include/tvm/runtime/packed_func.h:1730
-      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
-            at ../include/tvm/runtime/packed_func.h:1670
-      19: run<>
-            at ../include/tvm/runtime/packed_func.h:1630
-      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1645
-      13: operator()
-            at ../src/driver/driver_api.cc:395
-      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
-            at ../src/driver/driver_api.cc:381
-      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
-            at ../src/driver/driver_api.cc:276
-      10: tvm::transform::Pass::operator()(tvm::IRModule) const
-            at ../src/ir/transform.cc:258
-      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:451
-      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/tir/ir/transform.cc:100
-      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-            at ../include/tvm/runtime/packed_func.h:1749
-      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
-            at ../include/tvm/runtime/packed_func.h:1693
-      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
-            at ../include/tvm/runtime/packed_func.h:1617
-      2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      1: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      0: operator()
-            at ../src/runtime/c_runtime_api.cc:534
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
-        raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
-
-    Traceback (most recent call last):
-      24: TVMFuncCall
-            at ../src/runtime/c_runtime_api.cc:477
-      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      22: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      21: operator()
-            at ../include/tvm/runtime/packed_func.h:1730
-      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
-            at ../include/tvm/runtime/packed_func.h:1670
-      19: run<>
-            at ../include/tvm/runtime/packed_func.h:1630
-      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1645
-      13: operator()
-            at ../src/driver/driver_api.cc:395
-      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
-            at ../src/driver/driver_api.cc:381
-      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
-            at ../src/driver/driver_api.cc:276
-      10: tvm::transform::Pass::operator()(tvm::IRModule) const
-            at ../src/ir/transform.cc:258
-      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:451
-      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/tir/ir/transform.cc:100
-      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-            at ../include/tvm/runtime/packed_func.h:1749
-      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
-            at ../include/tvm/runtime/packed_func.h:1693
-      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
-            at ../include/tvm/runtime/packed_func.h:1617
-      2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      1: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      0: operator()
-            at ../src/runtime/c_runtime_api.cc:534
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
-        raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 16, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 32, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9186888
-    No: 19  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
-        func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
-        func = build(s, args, target_host=task.target_host, runtime=runtime)
-      File "/workspace/python/tvm/driver/build_module.py", line 227, in build
-        input_mod = lower(inputs, args, name=name, binds=binds)
-      File "/workspace/python/tvm/driver/build_module.py", line 134, in lower
-        return ffi.lower_schedule(inp, args, name, binds, simple_mode)
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 276, in tvm._ffi._cy3.core.FuncCall
-      File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
-    tvm._ffi.base.TVMError: Traceback (most recent call last):
-      24: TVMFuncCall
-            at ../src/runtime/c_runtime_api.cc:477
-      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      22: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      21: operator()
-            at ../include/tvm/runtime/packed_func.h:1730
-      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
-            at ../include/tvm/runtime/packed_func.h:1670
-      19: run<>
-            at ../include/tvm/runtime/packed_func.h:1630
-      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1645
-      13: operator()
-            at ../src/driver/driver_api.cc:395
-      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
-            at ../src/driver/driver_api.cc:381
-      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
-            at ../src/driver/driver_api.cc:276
-      10: tvm::transform::Pass::operator()(tvm::IRModule) const
-            at ../src/ir/transform.cc:258
-      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:451
-      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/tir/ir/transform.cc:100
-      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-            at ../include/tvm/runtime/packed_func.h:1749
-      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
-            at ../include/tvm/runtime/packed_func.h:1693
-      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
-            at ../include/tvm/runtime/packed_func.h:1617
-      2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      1: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      0: operator()
-            at ../src/runtime/c_runtime_api.cc:534
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
-        raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
-
-    Traceback (most recent call last):
-      24: TVMFuncCall
-            at ../src/runtime/c_runtime_api.cc:477
-      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      22: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      21: operator()
-            at ../include/tvm/runtime/packed_func.h:1730
-      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
-            at ../include/tvm/runtime/packed_func.h:1670
-      19: run<>
-            at ../include/tvm/runtime/packed_func.h:1630
-      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1645
-      13: operator()
-            at ../src/driver/driver_api.cc:395
-      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
-            at ../src/driver/driver_api.cc:381
-      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
-            at ../src/driver/driver_api.cc:276
-      10: tvm::transform::Pass::operator()(tvm::IRModule) const
-            at ../src/ir/transform.cc:258
-      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:451
-      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/tir/ir/transform.cc:100
-      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-            at ../include/tvm/runtime/packed_func.h:1749
-      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
-            at ../include/tvm/runtime/packed_func.h:1693
-      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
-            at ../include/tvm/runtime/packed_func.h:1617
-      2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      1: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      0: operator()
-            at ../src/runtime/c_runtime_api.cc:534
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
-        raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 256, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8397059
-    No: 20  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
-        func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
-        func = build(s, args, target_host=task.target_host, runtime=runtime)
-      File "/workspace/python/tvm/driver/build_module.py", line 227, in build
-        input_mod = lower(inputs, args, name=name, binds=binds)
-      File "/workspace/python/tvm/driver/build_module.py", line 134, in lower
-        return ffi.lower_schedule(inp, args, name, binds, simple_mode)
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 276, in tvm._ffi._cy3.core.FuncCall
-      File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
-    tvm._ffi.base.TVMError: Traceback (most recent call last):
-      24: TVMFuncCall
-            at ../src/runtime/c_runtime_api.cc:477
-      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      22: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      21: operator()
-            at ../include/tvm/runtime/packed_func.h:1730
-      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
-            at ../include/tvm/runtime/packed_func.h:1670
-      19: run<>
-            at ../include/tvm/runtime/packed_func.h:1630
-      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1645
-      13: operator()
-            at ../src/driver/driver_api.cc:395
-      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
-            at ../src/driver/driver_api.cc:381
-      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
-            at ../src/driver/driver_api.cc:276
-      10: tvm::transform::Pass::operator()(tvm::IRModule) const
-            at ../src/ir/transform.cc:258
-      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:451
-      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/tir/ir/transform.cc:100
-      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-            at ../include/tvm/runtime/packed_func.h:1749
-      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
-            at ../include/tvm/runtime/packed_func.h:1693
-      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
-            at ../include/tvm/runtime/packed_func.h:1617
-      2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      1: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      0: operator()
-            at ../src/runtime/c_runtime_api.cc:534
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
-        raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
-
-    Traceback (most recent call last):
-      24: TVMFuncCall
-            at ../src/runtime/c_runtime_api.cc:477
-      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      22: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      21: operator()
-            at ../include/tvm/runtime/packed_func.h:1730
-      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
-            at ../include/tvm/runtime/packed_func.h:1670
-      19: run<>
-            at ../include/tvm/runtime/packed_func.h:1630
-      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1630
-      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
-            at ../include/tvm/runtime/packed_func.h:1645
-      13: operator()
-            at ../src/driver/driver_api.cc:395
-      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
-            at ../src/driver/driver_api.cc:381
-      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
-            at ../src/driver/driver_api.cc:276
-      10: tvm::transform::Pass::operator()(tvm::IRModule) const
-            at ../src/ir/transform.cc:258
-      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:451
-      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/ir/transform.cc:274
-      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
-            at ../src/tir/ir/transform.cc:100
-      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-            at ../include/tvm/runtime/packed_func.h:1749
-      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
-            at ../include/tvm/runtime/packed_func.h:1693
-      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
-            at ../include/tvm/runtime/packed_func.h:1617
-      2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      1: Call
-            at ../include/tvm/runtime/packed_func.h:1213
-      0: operator()
-            at ../src/runtime/c_runtime_api.cc:534
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
-        raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 256, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 32, 2]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6444999
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 2, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9279930
 
 
 
@@ -2294,9 +1928,9 @@ and measure running time.
     Finish loading 20 records
 
     Best config:
-    [('tile_f', [-1, 1, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5739481
+    [('tile_f', [-1, 2, 2, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10333465
     Finish loading 20 records
-    Time cost of this operator: 0.001109
+    Time cost of this operator: 0.000541
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
index 47662ea584..19f14ced54 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
@@ -363,10 +363,10 @@ Timing the untuned program
     ########## Build without Autotuning ##########
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)  
     ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------  
-    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  311.7     98.707   (1, 2, 10, 10, 3)  2       1        [311.7]           
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.108     0.984    (1, 6, 10, 10)     1       1        [3.108]           
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.975     0.309    (1, 1, 10, 10, 3)  1       1        [0.975]           
-    Total_time                                    -                                             315.783   -        -                  -       -        -                 
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  312.5     98.738   (1, 2, 10, 10, 3)  2       1        [312.5]           
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.021     0.955    (1, 6, 10, 10)     1       1        [3.021]           
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.974     0.308    (1, 1, 10, 10, 3)  1       1        [0.974]           
+    Total_time                                    -                                             316.495   -        -                  -       -        -                 
 
 
 
@@ -431,10 +431,10 @@ Timing the tuned program
     ########## Build with Autotuning ##########
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)  
     ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------  
-    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  100.8     97.323   (1, 6, 10, 10, 1)  2       1        [100.8]           
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.795     1.733    (1, 6, 10, 10)     1       1        [1.795]           
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.978     0.944    (1, 1, 10, 10, 3)  1       1        [0.978]           
-    Total_time                                    -                                             103.573   -        -                  -       -        -                 
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  102.4     97.408   (1, 6, 10, 10, 1)  2       1        [102.4]           
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.769     1.682    (1, 6, 10, 10)     1       1        [1.769]           
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.956     0.91     (1, 1, 10, 10, 3)  1       1        [0.956]           
+    Total_time                                    -                                             105.125   -        -                  -       -        -                 
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt
index 392992ecd3..00b86e152a 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt
@@ -117,7 +117,7 @@ download a cat image and preprocess it to use as the model input.
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torch/ao/quantization/utils.py:281: UserWarning: must run observer before calling calculate_qparams. Returning default values.
       "must run observer before calling calculate_qparams. " +
     Downloading: "https://download.pytorch.org/models/quantized/mobilenet_v2_qnnpack_37f702c5.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2_qnnpack_37f702c5.pth
-
      0%|          | 0.00/3.42M [00:00<?, ?B/s]
    100%|##########| 3.42M/3.42M [00:00<00:00, 64.7MB/s]
+
      0%|          | 0.00/3.42M [00:00<?, ?B/s]
    100%|##########| 3.42M/3.42M [00:00<00:00, 131MB/s]
     /workspace/python/tvm/relay/frontend/pytorch_utils.py:47: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
       return LooseVersion(torch_ver) > ver
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/setuptools/_distutils/version.py:346: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
@@ -322,7 +322,7 @@ Look up prediction top 1 index in 1000 class synset.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  11.081 seconds)
+   **Total running time of the script:** ( 1 minutes  7.563 seconds)
 
 
 .. _sphx_glr_download_how_to_work_with_microtvm_micro_pytorch.py:
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
index e9b6c85464..fa614110ff 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
@@ -218,7 +218,7 @@ take about **2 minutes** to download the Stanford Cars, while COCO 2017 validati
  .. code-block:: none
 
 
-    '/tmp/tmpumlk8hbn/images/random'
+    '/tmp/tmp64et68e_/images/random'
 
 
 
@@ -309,7 +309,7 @@ objects to other stuff? We can display some examples from our datasets using ``m
 
 
 .. image-sg:: /how_to/work_with_microtvm/images/sphx_glr_micro_train_001.png
-   :alt: [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 0.0]
+   :alt: [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0]
    :srcset: /how_to/work_with_microtvm/images/sphx_glr_micro_train_001.png
    :class: sphx-glr-single-img
 
@@ -318,8 +318,8 @@ objects to other stuff? We can display some examples from our datasets using ``m
 
  .. code-block:: none
 
-    /tmp/tmpumlk8hbn/images/target contains 8144 images
-    /tmp/tmpumlk8hbn/images/random contains 5000 images
+    /tmp/tmp64et68e_/images/target contains 8144 images
+    /tmp/tmp64et68e_/images/random contains 5000 images
 
 
 
@@ -494,13 +494,13 @@ the time on our validation set).
  .. code-block:: none
 
     Epoch 1/3
-    328/328 - 47s - loss: 0.2076 - accuracy: 0.9283 - val_loss: 0.2454 - val_accuracy: 0.9309 - 47s/epoch - 145ms/step
+    328/328 - 47s - loss: 0.2592 - accuracy: 0.9130 - val_loss: 0.2900 - val_accuracy: 0.9037 - 47s/epoch - 143ms/step
     Epoch 2/3
-    328/328 - 41s - loss: 0.0938 - accuracy: 0.9657 - val_loss: 0.1286 - val_accuracy: 0.9569 - 41s/epoch - 125ms/step
+    328/328 - 43s - loss: 0.1075 - accuracy: 0.9605 - val_loss: 0.1097 - val_accuracy: 0.9573 - 43s/epoch - 132ms/step
     Epoch 3/3
-    328/328 - 41s - loss: 0.0656 - accuracy: 0.9751 - val_loss: 0.1139 - val_accuracy: 0.9656 - 41s/epoch - 125ms/step
+    328/328 - 43s - loss: 0.0740 - accuracy: 0.9728 - val_loss: 0.1193 - val_accuracy: 0.9585 - 43s/epoch - 131ms/step
 
-    <keras.callbacks.History object at 0x7ff924610410>
+    <keras.callbacks.History object at 0x7efecb4f6290>
 
 
 
@@ -857,7 +857,7 @@ Arduino tutorial for how to do that `on GitHub <https://github.com/guberti/tvm-a
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 4 minutes  28.121 seconds)
+   **Total running time of the script:** ( 4 minutes  30.307 seconds)
 
 
 .. _sphx_glr_download_how_to_work_with_microtvm_micro_train.py:
diff --git a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
index c32bdf3b5c..f2a97b4da8 100644
--- a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
@@ -5,23 +5,23 @@
 
 Computation times
 =================
-**06:46.122** total execution time for **how_to_work_with_microtvm** files:
+**06:41.154** total execution time for **how_to_work_with_microtvm** files:
 
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)               | 04:28.121 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)               | 04:30.307 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_pytorch.py` (``micro_pytorch.py``)           | 01:11.081 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_pytorch.py` (``micro_pytorch.py``)           | 01:07.563 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)         | 00:53.804 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)         | 00:50.749 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``)                   | 00:09.073 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``)                   | 00:08.696 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)             | 00:04.042 | 0.0 MB |
-+---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``)             | 00:00.000 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)             | 00:03.840 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_microtvm_micro_tvmc.py` (``micro_tvmc.py``)                 | 00:00.000 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``)             | 00:00.000 | 0.0 MB |
++---------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``) | 00:00.000 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_microtvm_micro_mlperftiny.py` (``micro_mlperftiny.py``)     | 00:00.000 | 0.0 MB |
diff --git a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
index 0c8eb62330..308e4c853e 100644
--- a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
@@ -5,14 +5,14 @@
 
 Computation times
 =================
-**00:44.182** total execution time for **how_to_work_with_relay** files:
+**00:44.052** total execution time for **how_to_work_with_relay** files:
 
 +----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_using_pipeline_executor.py` (``using_pipeline_executor.py``) | 00:32.457 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_pipeline_executor.py` (``using_pipeline_executor.py``) | 00:32.218 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)           | 00:10.235 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)           | 00:10.170 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)                             | 00:01.484 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)                             | 00:01.658 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_relay_using_relay_viz.py` (``using_relay_viz.py``)                 | 00:00.006 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
index 4202d7f7cf..e6a9b31d3d 100644
--- a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
@@ -264,7 +264,7 @@ The following example customizes CUDA lowering rule for :code:`exp`.
  .. code-block:: none
 
 
-    <function my_cuda_math_rule at 0x7ff91a4b15f0>
+    <function my_cuda_math_rule at 0x7efcfd7ea680>
 
 
 
diff --git a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
index 4c7af8d7d2..52ad6c2e17 100644
--- a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
@@ -5,22 +5,22 @@
 
 Computation times
 =================
-**00:07.982** total execution time for **how_to_work_with_schedules** files:
+**00:07.544** total execution time for **how_to_work_with_schedules** files:
 
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)                 | 00:05.402 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)                 | 00:05.090 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)                     | 00:01.181 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)                     | 00:01.107 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)                     | 00:00.602 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)                     | 00:00.574 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)                               | 00:00.580 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)                               | 00:00.556 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)                     | 00:00.114 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``) | 00:00.049 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``) | 00:00.050 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)                               | 00:00.030 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)                               | 00:00.031 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)               | 00:00.023 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)               | 00:00.024 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
index c92e3e4fd6..e679f02bfb 100644
--- a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
@@ -328,7 +328,7 @@ The importing needs to happen before the tensorized GEMV being executed.
         def main(A: T.Buffer((1024, 64), "float32"), B: T.Buffer((512, 64), "float32"), C: T.Buffer((1024, 512), "float32")):
             T.func_attr({"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True})
             i = T.var("int32")
-            T.attr(T.iter_var(i, None, "DataPar", ""), "pragma_import_llvm", "; ModuleID = '/tmp/tmpkb80b9a7/input0.cc'\nsource_filename = \"/tmp/tmpkb80b9a7/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*, [...]
+            T.attr(T.iter_var(i, None, "DataPar", ""), "pragma_import_llvm", "; ModuleID = '/tmp/tmptb0aihq4/input0.cc'\nsource_filename = \"/tmp/tmptb0aihq4/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*, [...]
             for i, j_outer in T.grid(1024, 32):
                 T.call_extern("int32", "gemv_update", T.tvm_access_ptr(T.type_annotation("float32"), C.data, i * 512 + j_outer * 16, 16, 2), T.tvm_access_ptr(T.type_annotation("float32"), A.data, i * 64, 64, 1), T.tvm_access_ptr(T.type_annotation("float32"), B.data, j_outer * 1024, 1024, 1), 16, 64, 64)
 
diff --git a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
index d4ffdedec0..fcb506cfd9 100644
--- a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:29.372** total execution time for **topic_vta_tutorials_autotvm** files:
+**00:29.156** total execution time for **topic_vta_tutorials_autotvm** files:
 
 +---------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``) | 00:29.365 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``) | 00:29.149 | 0.0 MB |
 +---------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)     | 00:00.006 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)     | 00:00.007 | 0.0 MB |
 +---------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
index d7a661990d..54a80feb30 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -293,7 +293,7 @@ The compilation steps are:
       DeprecationWarning,
     /workspace/vta/tutorials/frontend/deploy_classification.py:213: DeprecationWarning: legacy graph executor behavior of producing json / lib / params will be removed in the next release. Please see documents of tvm.contrib.graph_executor.GraphModule for the  new recommended usage.
       relay_prog, target=tvm.target.Target(target, host=env.target_host), params=params
-    resnet18_v1 inference graph built in 30.42s!
+    resnet18_v1 inference graph built in 30.99s!
 
 
 
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
index 029135b913..6c3613d561 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -337,7 +337,7 @@ The compilation steps are:
 
     /workspace/python/tvm/relay/build_module.py:348: DeprecationWarning: Please use input parameter mod (tvm.IRModule) instead of deprecated parameter mod (tvm.relay.function.Function)
       DeprecationWarning,
-    yolov3-tiny inference graph built in 20.94s!
+    yolov3-tiny inference graph built in 21.22s!
 
 
 
diff --git a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
index 1cb3f13e38..f68085af3e 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**01:34.703** total execution time for **topic_vta_tutorials_frontend** files:
+**01:36.018** total execution time for **topic_vta_tutorials_frontend** files:
 
 +------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)           | 00:47.640 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)           | 00:48.314 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:47.063 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:47.703 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
index dda17e948c..df6d0fa5eb 100644
--- a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:03.178** total execution time for **topic_vta_tutorials_optimize** files:
+**00:03.114** total execution time for **topic_vta_tutorials_optimize** files:
 
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)         | 00:02.688 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)         | 00:02.657 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``) | 00:00.490 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``) | 00:00.457 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
index b3fb2b742c..e10bb0db74 100644
--- a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:00.906** total execution time for **topic_vta_tutorials** files:
+**00:00.798** total execution time for **topic_vta_tutorials** files:
 
 +---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.491 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.420 | 0.0 MB |
 +---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.415 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.377 | 0.0 MB |
 +---------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
index 4e9d0e9f50..cbf7be18a2 100644
--- a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
@@ -315,7 +315,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 95.074 ms
+    Execution time of this operator: 97.481 ms
 
 
 
@@ -415,7 +415,7 @@ resume the status and do more 5 trials.
     Resume search:
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/xgboost/training.py:17: UserWarning: Old style callback is deprecated.  See: https://xgboost.readthedocs.io/en/latest/python/callbacks.html
       warnings.warn(f'Old style callback is deprecated.  See: {link}', UserWarning)
-
+    *E
 
 
 
@@ -433,7 +433,7 @@ operations.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  22.056 seconds)
+   **Total running time of the script:** ( 1 minutes  22.753 seconds)
 
 
 .. _sphx_glr_download_tutorial_auto_scheduler_matmul_x86.py:
diff --git a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
index 5d81a72c80..63e37ed0e2 100644
--- a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
@@ -454,16 +454,16 @@ reduce variance, we take 5 measurements and average them.
     waiting for device...
     device available
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 2.04/2.04       result: MeasureResult(costs=(0.1315602268,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.3393571376800537, timestamp=1674505214.0668938)       [('tile_y', [-1, 1]), ('tile_x', [-1, 8])],None,30
-    No: 2   GFLOPS: 14.13/14.13     result: MeasureResult(costs=(0.0189911,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.557861328125, timestamp=1674505214.6259162)      [('tile_y', [-1, 4]), ('tile_x', [-1, 256])],None,82
-    No: 3   GFLOPS: 14.23/14.23     result: MeasureResult(costs=(0.0188584128,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5545961856842041, timestamp=1674505215.9326067)       [('tile_y', [-1, 8]), ('tile_x', [-1, 512])],None,93
-    No: 4   GFLOPS: 3.78/14.23      result: MeasureResult(costs=(0.07102492419999999,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3853003978729248, timestamp=1674505218.06937)  [('tile_y', [-1, 256]), ('tile_x', [-1, 16])],None,48
-    No: 5   GFLOPS: 3.76/14.23      result: MeasureResult(costs=(0.07132644460000001,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3777503967285156, timestamp=1674505219.5670109)        [('tile_y', [-1, 128]), ('tile_x', [-1, 16])],None,47
-    No: 6   GFLOPS: 3.15/14.23      result: MeasureResult(costs=(0.08527689720000001,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.5884134769439697, timestamp=1674505221.1781266)        [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
-    No: 7   GFLOPS: 1.48/14.23      result: MeasureResult(costs=(0.18095148300000002,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.107107162475586, timestamp=1674505225.0639858) [('tile_y', [-1, 1]), ('tile_x', [-1, 1])],None,0
-    No: 8   GFLOPS: 12.20/14.23     result: MeasureResult(costs=(0.0220025862,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.578179121017456, timestamp=1674505225.674355) [('tile_y', [-1, 1]), ('tile_x', [-1, 512])],None,90
-    No: 9   GFLOPS: 8.38/14.23      result: MeasureResult(costs=(0.0320272536,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.7061107158660889, timestamp=1674505226.5094233)       [('tile_y', [-1, 1]), ('tile_x', [-1, 32])],None,50
-    No: 10  GFLOPS: 2.43/14.23      result: MeasureResult(costs=(0.11033081559999999,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.9765870571136475, timestamp=1674505228.5267246)        [('tile_y', [-1, 8]), ('tile_x', [-1, 4])],None,23
+    No: 1   GFLOPS: 10.74/10.74     result: MeasureResult(costs=(0.024989734399999998,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6266782283782959, timestamp=1674512336.7337456)       [('tile_y', [-1, 1]), ('tile_x', [-1, 512])],None,90
+    No: 2   GFLOPS: 9.84/10.74      result: MeasureResult(costs=(0.027293356799999995,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.7580826282501221, timestamp=1674512338.1714404)       [('tile_y', [-1, 1]), ('tile_x', [-1, 64])],None,60
+    No: 3   GFLOPS: 2.09/10.74      result: MeasureResult(costs=(0.12843463119999998,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.2941246032714844, timestamp=1674512340.4820457)        [('tile_y', [-1, 256]), ('tile_x', [-1, 4])],None,28
+    No: 4   GFLOPS: 1.17/10.74      result: MeasureResult(costs=(0.23003015540000002,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.003731966018677, timestamp=1674512345.25753)   [('tile_y', [-1, 16]), ('tile_x', [-1, 1])],None,4
+    No: 5   GFLOPS: 2.49/10.74      result: MeasureResult(costs=(0.10782072300000001,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.9857580661773682, timestamp=1674512347.3852532)        [('tile_y', [-1, 8]), ('tile_x', [-1, 4])],None,23
+    No: 6   GFLOPS: 0.51/10.74      result: MeasureResult(costs=(0.5285495102,), error_no=MeasureErrorNo.NO_ERROR, all_cost=8.688407897949219, timestamp=1674512356.849172) [('tile_y', [-1, 128]), ('tile_x', [-1, 1])],None,7
+    No: 7   GFLOPS: 9.63/10.74      result: MeasureResult(costs=(0.0278737556,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.723987340927124, timestamp=1674512357.54924)  [('tile_y', [-1, 512]), ('tile_x', [-1, 128])],None,79
+    No: 8   GFLOPS: 9.34/10.74      result: MeasureResult(costs=(0.028739960200000005,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6966686248779297, timestamp=1674512358.268422)        [('tile_y', [-1, 1]), ('tile_x', [-1, 256])],None,80
+    No: 9   GFLOPS: 10.82/10.82     result: MeasureResult(costs=(0.0248077028,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5921809673309326, timestamp=1674512358.976445)        [('tile_y', [-1, 512]), ('tile_x', [-1, 512])],None,99
+    No: 10  GFLOPS: 12.76/12.76     result: MeasureResult(costs=(0.0210330044,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5353801250457764, timestamp=1674512359.5655851)       [('tile_y', [-1, 32]), ('tile_x', [-1, 512])],None,95
 
 
 
diff --git a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
index 81bc01bc93..c5122c93bb 100644
--- a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
@@ -311,7 +311,7 @@ standard deviation.
 
  .. code-block:: none
 
-    {'mean': 506.7425502299966, 'median': 506.654013650018, 'std': 2.2001279636525695}
+    {'mean': 510.0786643299977, 'median': 510.2044242999966, 'std': 2.1323562065805746}
 
 
 
@@ -545,31 +545,31 @@ the tuning data to.
 
  .. code-block:: none
 
-
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  1/25]  Current/Best:   15.05/  16.90 GFLOPS | Progress: (4/20) | 8.95 s
    [Task  1/25]  Current/Best:    6.07/  16.90 GFLOPS | Progress: (8/20) | 12.61 s
    [Task  1/25]  Current/Best:   22.58/  22.58 GFLOPS | Progress: (12/20) | 14.75 s
    [Task  1/25]  Current/Best:   17.68/  22.95 GFLOPS | Progress: (16/20) | 16.68 s
    [Task  1/25]  Current/Best:   17.02/  22.95 GFLOPS | Progress: (20/20) | 18.68 s Done.
-
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  2/25]  Current/Best:    6.39/  15.56 GFLOPS | Progress: (4/20) | 3.62 s
    [Task  2/25]  Current/Best:   16.94/  18.74 GFLOPS | Progress: (8/20) | 5.09 s
    [Task  2/25]  Current/Best:   10.14/  19.74 GFLOPS | Progress: (12/20) | 6.73 s
    [Task  2/25]  Current/Best:   11.06/  19.82 GFLOPS | Progress: (16/20) | 8.79 s
    [Task  2/25]  Current/Best:    9.18/  19.82 GFLOPS | Progress: (20/20) | 10.42 s Done.
-
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  3/25]  Current/Best:   10.92/  17.21 GFLOPS | Progress: (4/20) | 4.66 s
    [Task  3/25]  Current/Best:   16.56/  17.21 GFLOPS | Progress: (8/20) | 7.08 s
    [Task  3/25]  Current/Best:   14.71/  17.21 GFLOPS | Progress: (12/20) | 10.03 s
    [Task  3/25]  Current/Best:    6.32/  21.55 GFLOPS | Progress: (16/20) | 12.45 s
    [Task  3/25]  Current/Best:   13.13/  21.55 GFLOPS | Progress: (20/20) | 15.07 s Done.
-
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  4/25]  Current/Best:   16.15/  22.05 GFLOPS | Progress: (4/20) | 3.81 s
    [Task  4/25]  Current/Best:   20.80/  22.05 GFLOPS | Progress: (8/20) | 5.78 s
    [Task  4/25]  Current/Best:   16.47/  22.05 GFLOPS | Progress: (12/20) | 7.83 s
    [Task  4/25]  Current/Best:    8.14/  22.05 GFLOPS | Progress: (16/20) | 10.14 s
    [Task  4/25]  Current/Best:    8.41/  22.05 GFLOPS | Progress: (20/20) | 15.25 s Done.
-
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  5/25]  Current/Best:   16.03/  20.57 GFLOPS | Progress: (4/20) | 3.84 s
    [Task  5/25]  Current/Best:    9.86/  20.57 GFLOPS | Progress: (8/20) | 6.02 s
    [Task  5/25]  Current/Best:   14.60/  20.57 GFLOPS | Progress: (12/20) | 8.75 s
    [Task  5/25]  Current/Best:   12.23/  20.57 GFLOPS | Progress: (16/20) | 10.96 s
    [Task  5/25]  Current/Best:   21.00/  21.00 GFLOPS | Progress: (20/20) | 14.14 s Done.
-
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  6/25]  Current/Best:    8.07/  12.32 GFLOPS | Progress: (4/20) | 6.18 s
    [Task  6/25]  Current/Best:   18.80/  18.80 GFLOPS | Progress: (8/20) | 10.28 s
    [Task  6/25]  Current/Best:    7.79/  18.80 GFLOPS | Progress: (12/20) | 12.65 s
    [Task  6/25]  Current/Best:    6.84/  18.80 GFLOPS | Progress: (16/20) | 15.03 s
    [Task  6/25]  Current/Best:    9.35/  18.80 GFLOPS | Progress: (20/20) | 18.69 s Done.
-
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  7/25]  Current/Best:   15.85/  18.97 GFLOPS | Progress: (4/20) | 3.94 s
    [Task  7/25]  Current/Best:   20.49/  20.49 GFLOPS | Progress: (8/20) | 6.75 s
    [Task  7/25]  Current/Best:   21.36/  21.36 GFLOPS | Progress: (12/20) | 10.73 s
    [Task  7/25]  Current/Best:   15.49/  21.36 GFLOPS | Progress: (16/20) | 12.72 s
    [Task  7/25]  Current/Best:    5.51/  21.36 GFLOPS | Progress: (20/20) | 15.53 s Done.
-
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  8/25]  Current/Best:    5.83/  14.96 GFLOPS | Progress: (4/20) | 4.38 s
    [Task  8/25]  Current/Best:    7.34/  14.96 GFLOPS | Progress: (8/20) | 8.82 s
    [Task  8/25]  Current/Best:    7.53/  18.80 GFLOPS | Progress: (12/20) | 11.07 s
    [Task  8/25]  Current/Best:    6.61/  18.80 GFLOPS | Progress: (16/20) | 14.00 s
    [Task  8/25]  Current/Best:    6.21/  18.80 GFLOPS | Progress: (20/20) | 23.44 s Done.
-
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  9/25]  Current/Best:    7.35/  15.23 GFLOPS | Progress: (4/20) | 5.83 s
    [Task  9/25]  Current/Best:   13.00/  15.23 GFLOPS | Progress: (8/20) | 12.07 s
    [Task  9/25]  Current/Best:   13.18/  16.96 GFLOPS | Progress: (12/20) | 18.25 s
    [Task  9/25]  Current/Best:   10.31/  16.96 GFLOPS | Progress: (16/20) | 21.28 s
    [Task  9/25]  Current/Best:   19.09/  20.87 GFLOPS | Progress: (20/20) | 29.47 s Done.
-
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 10/25]  Current/Best:   10.27/  14.03 GFLOPS | Progress: (4/20) | 4.65 s
    [Task 10/25]  Current/Best:   21.58/  21.58 GFLOPS | Progress: (8/20) | 8.18 s
    [Task 10/25]  Current/Best:    2.93/  21.58 GFLOPS | Progress: (12/20) | 11.89 s
    [Task 10/25]  Current/Best:   14.13/  21.58 GFLOPS | Progress: (16/20) | 15.23 s
    [Task 10/25]  Current/Best:    5.05/  21.58 GFLOPS | Progress: (20/20) | 17.39 s Done.
-
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 11/25]  Current/Best:   19.15/  19.42 GFLOPS | Progress: (4/20) | 4.44 s
    [Task 11/25]  Current/Best:   17.52/  22.07 GFLOPS | Progress: (8/20) | 6.65 s
    [Task 11/25]  Current/Best:   18.32/  22.09 GFLOPS | Progress: (12/20) | 9.11 s
    [Task 11/25]  Current/Best:    6.56/  22.09 GFLOPS | Progress: (16/20) | 12.04 s
    [Task 11/25]  Current/Best:   14.67/  22.09 GFLOPS | Progress: (20/20) | 14.98 s Done.
-
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 12/25]  Current/Best:    3.10/  14.81 GFLOPS | Progress: (4/20) | 4.81 s
    [Task 12/25]  Current/Best:    6.01/  16.26 GFLOPS | Progress: (8/20) | 7.55 s
    [Task 12/25]  Current/Best:    8.16/  16.26 GFLOPS | Progress: (12/20) | 16.66 s
    [Task 12/25]  Current/Best:    1.63/  16.26 GFLOPS | Progress: (16/20) | 21.18 s
    [Task 12/25]  Current/Best:    3.29/  16.26 GFLOPS | Progress: (20/20) | 23.87 s Done.
-
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 13/25]  Current/Best:   18.76/  18.76 GFLOPS | Progress: (4/20) | 4.72 s
    [Task 13/25]  Current/Best:   15.18/  18.76 GFLOPS | Progress: (8/20) | 7.94 s
    [Task 13/25]  Current/Best:   18.17/  19.51 GFLOPS | Progress: (12/20) | 11.04 s
    [Task 13/25]  Current/Best:   17.64/  19.51 GFLOPS | Progress: (16/20) | 14.50 s
    [Task 13/25]  Current/Best:    4.24/  19.51 GFLOPS | Progress: (20/20) | 18.30 s Done.
-
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 14/25]  Current/Best:    6.16/  17.73 GFLOPS | Progress: (4/20) | 4.19 s
    [Task 14/25]  Current/Best:   14.73/  17.73 GFLOPS | Progress: (8/20) | 6.63 s
    [Task 14/25]  Current/Best:   12.46/  17.73 GFLOPS | Progress: (12/20) | 8.65 s
    [Task 14/25]  Current/Best:   20.34/  20.34 GFLOPS | Progress: (16/20) | 11.64 s
    [Task 14/25]  Current/Best:   10.03/  20.34 GFLOPS | Progress: (20/20) | 15.22 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 15/25]  Current/Best:   15.22/  15.87 GFLOPS | Progress: (4/20) | 4.11 s Done.
-
    [Task 15/25]  Current/Best:   10.24/  15.87 GFLOPS | Progress: (8/20) | 9.43 s
    [Task 15/25]  Current/Best:   12.79/  20.12 GFLOPS | Progress: (12/20) | 12.11 s
    [Task 15/25]  Current/Best:    7.18/  23.10 GFLOPS | Progress: (16/20) | 13.72 s
    [Task 15/25]  Current/Best:    9.95/  23.10 GFLOPS | Progress: (20/20) | 17.12 s Done.
-
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 16/25]  Current/Best:   17.55/  17.55 GFLOPS | Progress: (4/20) | 3.58 s
    [Task 16/25]  Current/Best:   12.27/  18.35 GFLOPS | Progress: (8/20) | 6.01 s
    [Task 16/25]  Current/Best:    4.11/  19.91 GFLOPS | Progress: (12/20) | 7.86 s
    [Task 16/25]  Current/Best:   12.82/  19.91 GFLOPS | Progress: (16/20) | 9.77 s
    [Task 16/25]  Current/Best:    4.24/  19.91 GFLOPS | Progress: (20/20) | 11.82 s Done.
-
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 17/25]  Current/Best:   18.36/  21.27 GFLOPS | Progress: (4/20) | 4.11 s
    [Task 17/25]  Current/Best:   12.69/  24.04 GFLOPS | Progress: (8/20) | 6.26 s
    [Task 17/25]  Current/Best:   13.95/  24.04 GFLOPS | Progress: (12/20) | 9.60 s
    [Task 17/25]  Current/Best:   12.48/  24.04 GFLOPS | Progress: (16/20) | 12.31 s
    [Task 17/25]  Current/Best:   12.23/  24.04 GFLOPS | Progress: (20/20) | 16.55 s Done.
-
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 18/25]  Current/Best:    6.19/  15.23 GFLOPS | Progress: (4/20) | 5.62 s
    [Task 18/25]  Current/Best:   10.25/  16.19 GFLOPS | Progress: (8/20) | 11.81 s
    [Task 18/25]  Current/Best:   18.37/  18.37 GFLOPS | Progress: (12/20) | 14.21 s
    [Task 18/25]  Current/Best:   19.07/  19.07 GFLOPS | Progress: (16/20) | 16.54 s
    [Task 18/25]  Current/Best:   18.42/  19.16 GFLOPS | Progress: (20/20) | 19.44 s Done.
-
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 19/25]  Current/Best:    9.89/  22.47 GFLOPS | Progress: (4/20) | 4.44 s
    [Task 19/25]  Current/Best:   18.47/  22.47 GFLOPS | Progress: (8/20) | 6.73 s
    [Task 19/25]  Current/Best:   14.56/  22.47 GFLOPS | Progress: (12/20) | 11.75 s
    [Task 19/25]  Current/Best:   15.87/  22.47 GFLOPS | Progress: (16/20) | 15.61 s
    [Task 19/25]  Current/Best:   19.37/  22.47 GFLOPS | Progress: (20/20) | 19.15 s Done.
-
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 20/25]  Current/Best:   21.17/  21.17 GFLOPS | Progress: (4/20) | 4.16 s
    [Task 20/25]  Current/Best:   15.94/  21.17 GFLOPS | Progress: (8/20) | 6.72 s
    [Task 20/25]  Current/Best:   13.49/  21.17 GFLOPS | Progress: (12/20) | 9.17 s
    [Task 20/25]  Current/Best:   20.48/  21.17 GFLOPS | Progress: (16/20) | 11.45 s
    [Task 20/25]  Current/Best:   13.24/  21.19 GFLOPS | Progress: (20/20) | 12.89 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 21/25]  Current/Best:   16.12/  23.03 GFLOPS | Progress: (4/20) | 5.90 s
    [Task 21/25]  Current/Best:    5.37/  23.03 GFLOPS | Progress: (8/20) | 8.28 s
    [Task 21/25]  Current/Best:    8.06/  23.03 GFLOPS | Progress: (12/20) | 10.83 s
    [Task 21/25]  Current/Best:   16.95/  23.03 GFLOPS | Progress: (16/20) | 12.14 s
    [Task 21/25]  Current/Best:    7.71/  23.03 GFLOPS | Progress: (20/20)
  | 14.96 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
+
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  1/25]  Current/Best:    7.25/  19.40 GFLOPS | Progress: (4/20) | 11.14 s
    [Task  1/25]  Current/Best:   14.63/  19.40 GFLOPS | Progress: (8/20) | 15.04 s
    [Task  1/25]  Current/Best:    5.39/  19.40 GFLOPS | Progress: (12/20) | 17.71 s
    [Task  1/25]  Current/Best:   16.70/  22.54 GFLOPS | Progress: (16/20) | 19.67 s
    [Task  1/25]  Current/Best:   22.33/  22.54 GFLOPS | Progress: (20/20) | 22.50 s Done.
+
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  2/25]  Current/Best:   11.43/  16.01 GFLOPS | Progress: (4/20) | 3.48 s
    [Task  2/25]  Current/Best:   12.42/  16.01 GFLOPS | Progress: (8/20) | 5.18 s
    [Task  2/25]  Current/Best:    9.67/  19.58 GFLOPS | Progress: (12/20) | 6.73 s
    [Task  2/25]  Current/Best:    5.62/  19.58 GFLOPS | Progress: (16/20) | 8.17 s
    [Task  2/25]  Current/Best:   12.98/  19.58 GFLOPS | Progress: (20/20) | 9.95 s Done.
+
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  3/25]  Current/Best:    7.61/  20.34 GFLOPS | Progress: (4/20) | 4.72 s
    [Task  3/25]  Current/Best:   11.65/  21.73 GFLOPS | Progress: (8/20) | 7.77 s
    [Task  3/25]  Current/Best:   18.93/  22.30 GFLOPS | Progress: (12/20) | 9.87 s
    [Task  3/25]  Current/Best:   13.49/  22.30 GFLOPS | Progress: (16/20) | 12.07 s
    [Task  3/25]  Current/Best:   23.57/  23.57 GFLOPS | Progress: (20/20) | 14.14 s Done.
+
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  4/25]  Current/Best:   12.11/  20.26 GFLOPS | Progress: (4/20) | 3.76 s
    [Task  4/25]  Current/Best:    9.25/  21.25 GFLOPS | Progress: (8/20) | 9.75 s
    [Task  4/25]  Current/Best:    6.13/  22.38 GFLOPS | Progress: (12/20) | 11.79 s
    [Task  4/25]  Current/Best:   16.84/  22.38 GFLOPS | Progress: (16/20) | 15.29 s
    [Task  4/25]  Current/Best:   15.03/  22.38 GFLOPS | Progress: (20/20) | 17.25 s Done.
+
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  5/25]  Current/Best:   16.15/  16.15 GFLOPS | Progress: (4/20) | 4.07 s
    [Task  5/25]  Current/Best:   14.21/  21.75 GFLOPS | Progress: (8/20) | 5.77 s
    [Task  5/25]  Current/Best:    7.04/  21.75 GFLOPS | Progress: (12/20) | 8.33 s
    [Task  5/25]  Current/Best:   12.61/  21.75 GFLOPS | Progress: (16/20) | 10.14 s
    [Task  5/25]  Current/Best:    4.32/  21.75 GFLOPS | Progress: (20/20) | 11.92 s Done.
+
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  6/25]  Current/Best:   19.76/  19.76 GFLOPS | Progress: (4/20) | 4.75 s
    [Task  6/25]  Current/Best:   10.53/  21.67 GFLOPS | Progress: (8/20) | 12.06 s
    [Task  6/25]  Current/Best:   18.29/  21.67 GFLOPS | Progress: (12/20) | 15.21 s
    [Task  6/25]  Current/Best:   17.47/  21.67 GFLOPS | Progress: (16/20) | 17.59 s
    [Task  6/25]  Current/Best:    4.13/  21.67 GFLOPS | Progress: (20/20) | 21.68 s Done.
+
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  7/25]  Current/Best:   19.48/  19.48 GFLOPS | Progress: (4/20) | 4.00 s
    [Task  7/25]  Current/Best:   16.25/  20.03 GFLOPS | Progress: (8/20) | 6.34 s
    [Task  7/25]  Current/Best:   11.64/  20.03 GFLOPS | Progress: (12/20) | 9.02 s
    [Task  7/25]  Current/Best:   13.10/  20.03 GFLOPS | Progress: (16/20) | 12.25 s
    [Task  7/25]  Current/Best:    3.00/  20.03 GFLOPS | Progress: (20/20) | 15.23 s Done.
+
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  8/25]  Current/Best:   13.96/  13.96 GFLOPS | Progress: (4/20) | 5.83 s
    [Task  8/25]  Current/Best:    9.25/  15.04 GFLOPS | Progress: (8/20) | 14.34 s
    [Task  8/25]  Current/Best:   20.86/  20.86 GFLOPS | Progress: (12/20) | 16.95 s
    [Task  8/25]  Current/Best:   14.15/  20.86 GFLOPS | Progress: (16/20) | 18.96 s
    [Task  8/25]  Current/Best:   17.34/  20.86 GFLOPS | Progress: (20/20) | 24.34 s Done.
+
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  9/25]  Current/Best:   20.98/  20.98 GFLOPS | Progress: (4/20) | 6.26 s
    [Task  9/25]  Current/Best:   14.59/  20.98 GFLOPS | Progress: (8/20) | 11.55 s
    [Task  9/25]  Current/Best:   17.75/  20.98 GFLOPS | Progress: (12/20) | 13.60 s
    [Task  9/25]  Current/Best:    4.97/  23.05 GFLOPS | Progress: (16/20) | 24.82 s
    [Task  9/25]  Current/Best:   13.83/  23.05 GFLOPS | Progress: (20/20) | 27.15 s
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 10/25]  Current/Best:   14.31/  15.31 GFLOPS | Progress: (4/20) | 4.16 s
    [Task 10/25]  Current/Best:   13.74/  16.24 GFLOPS | Progress: (8/20) | 6.42 s
    [Task 10/25]  Current/Best:   13.69/  16.24 GFLOPS | Progress: (12/20) | 8.90 s
    [Task 10/25]  Current/Best:   18.10/  18.10 GFLOPS | Progress: (16/20) | 11.56 s
    [Task 10/25]  Current/Best:    9.95/  18.10 GFLOPS | Progress: (20/20
 ) | 13.57 s Done.
+
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 11/25]  Current/Best:   17.26/  17.26 GFLOPS | Progress: (4/20) | 3.85 s
    [Task 11/25]  Current/Best:    9.38/  23.10 GFLOPS | Progress: (8/20) | 6.12 s
    [Task 11/25]  Current/Best:   18.04/  23.10 GFLOPS | Progress: (12/20) | 8.63 s
    [Task 11/25]  Current/Best:    8.01/  23.10 GFLOPS | Progress: (16/20) | 10.91 s
    [Task 11/25]  Current/Best:    5.97/  23.58 GFLOPS | Progress: (20/20) | 14.21 s Done.
+
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 12/25]  Current/Best:   13.42/  16.09 GFLOPS | Progress: (4/20) | 4.76 s
    [Task 12/25]  Current/Best:   12.63/  16.09 GFLOPS | Progress: (8/20) | 8.44 s
    [Task 12/25]  Current/Best:   16.16/  18.22 GFLOPS | Progress: (12/20) | 13.09 s
    [Task 12/25]  Current/Best:   11.88/  18.22 GFLOPS | Progress: (16/20) | 16.46 s
    [Task 12/25]  Current/Best:   13.21/  18.33 GFLOPS | Progress: (20/20) | 20.07 s Done.
+
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 13/25]  Current/Best:   18.90/  22.74 GFLOPS | Progress: (4/20) | 5.02 s
    [Task 13/25]  Current/Best:    9.75/  22.74 GFLOPS | Progress: (8/20) | 8.71 s
    [Task 13/25]  Current/Best:    6.41/  22.74 GFLOPS | Progress: (12/20) | 11.56 s
    [Task 13/25]  Current/Best:   11.51/  22.74 GFLOPS | Progress: (16/20) | 14.97 s
    [Task 13/25]  Current/Best:   12.10/  22.74 GFLOPS | Progress: (20/20) | 17.81 s Done.
+
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 14/25]  Current/Best:   13.92/  13.92 GFLOPS | Progress: (4/20) | 4.81 s
    [Task 14/25]  Current/Best:   13.27/  18.00 GFLOPS | Progress: (8/20) | 7.33 s
    [Task 14/25]  Current/Best:   17.05/  18.00 GFLOPS | Progress: (12/20) | 9.93 s
    [Task 14/25]  Current/Best:   13.67/  18.00 GFLOPS | Progress: (16/20) | 13.73 s
    [Task 14/25]  Current/Best:   17.35/  18.00 GFLOPS | Progress: (20/20) | 15.76 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
      Done.
-
    [Task 22/25]  Current/Best:    5.05/  19.11 GFLOPS | Progress: (4/20) | 3.79 s
    [Task 22/25]  Current/Best:   18.80/  19.11 GFLOPS | Progress: (8/20) | 5.55 s
    [Task 22/25]  Current/Best:   16.00/  19.11 GFLOPS | Progress: (12/20) | 7.66 s
    [Task 22/25]  Current/Best:    6.91/  19.22 GFLOPS | Progress: (16/20) | 9.42 s
    [Task 22/25]  Current/Best:   11.81/  21.03 GFLOPS | Progress: (20/20) | 11.24 s Done.
-
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 23/25]  Current/Best:   13.33/  17.91 GFLOPS | Progress: (4/20) | 4.72 s
    [Task 23/25]  Current/Best:    2.73/  18.38 GFLOPS | Progress: (8/20) | 9.31 s
    [Task 23/25]  Current/Best:   18.52/  19.43 GFLOPS | Progress: (12/20) | 12.27 s
    [Task 23/25]  Current/Best:    8.26/  19.62 GFLOPS | Progress: (16/20) | 16.11 s
    [Task 23/25]  Current/Best:   23.44/  23.44 GFLOPS | Progress: (20/20) | 19.05 s Done.
-
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 24/25]  Current/Best:    9.56/   9.58 GFLOPS | Progress: (4/20) | 7.25 s
    [Task 24/25]  Current/Best:    2.54/   9.58 GFLOPS | Progress: (8/20) | 17.90 s
    [Task 24/25]  Current/Best:    6.18/   9.58 GFLOPS | Progress: (12/20) | 29.31 s
    [Task 24/25]  Current/Best:   10.36/  10.51 GFLOPS | Progress: (16/20) | 31.40 s
    [Task 24/25]  Current/Best:    7.33/  10.51 GFLOPS | Progress: (20/20) | 42.33 s
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
-
    [Task 25/25]  Current/Best:    5.82/   9.04 GFLOPS | Progress: (4/20) | 12.42 s
    [Task 25/25]  Current/Best:    5.18/   9.04 GFLOPS | Progress: (8/20) | 18.23 s
    [Task 25/25]  Current/Best:    5.70/   9.97 GFLOPS | Progress: (12/20) | 29.15 s
    [Task 25/25]  Current/Best:    8.41/   9.97 GFLOPS | Progress: (16/20) | 31.63 s
    [Task 25/25]  Current/Best:    1.57/   9.97 GFLOPS | Progress: (20/20) | 42.58 s
+
    [Task 15/25]  Current/Best:    9.04/  17.96 GFLOPS | Progress: (4/20) | 8.32 s
    [Task 15/25]  Current/Best:   11.57/  19.11 GFLOPS | Progress: (8/20) | 10.28 s
    [Task 15/25]  Current/Best:    8.98/  19.11 GFLOPS | Progress: (12/20) | 14.16 s
    [Task 15/25]  Current/Best:   12.41/  21.16 GFLOPS | Progress: (16/20) | 17.68 s
    [Task 15/25]  Current/Best:    3.17/  21.16 GFLOPS | Progress: (20/20) | 19.64 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 16/25]  Current/Best:    8.90/  16.81 GFLOPS | Progress: (4/20) | 5.75 s
    [Task 16/25]  Current/Best:   12.24/  16.84 GFLOPS | Progress: (8/20) | 7.49 s
    [Task 16/25]  Current/Best:    9.38/  16.84 GFLOPS | Progress: (12/20) | 9.77 s
    [Task 16/25]  Current/Best:    9.76/  16.84 GFLOPS | Progress: (16/20) | 12.10 s
    [Task 16/25]  Current/Best:   13.03/  20.74 GFLOPS | Progress: (20/20) | 14.15 s Done.
+
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 17/25]  Current/Best:    7.86/  12.26 GFLOPS | Progress: (4/20) | 4.43 s
    [Task 17/25]  Current/Best:   16.12/  16.12 GFLOPS | Progress: (8/20) | 7.97 s
    [Task 17/25]  Current/Best:   10.08/  19.22 GFLOPS | Progress: (12/20) | 11.51 s
    [Task 17/25]  Current/Best:    7.87/  19.22 GFLOPS | Progress: (16/20) | 15.54 s
    [Task 17/25]  Current/Best:   11.49/  20.58 GFLOPS | Progress: (20/20) | 18.11 s Done.
+
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 18/25]  Current/Best:   18.74/  18.74 GFLOPS | Progress: (4/20) | 9.96 s
    [Task 18/25]  Current/Best:    9.53/  18.74 GFLOPS | Progress: (8/20) | 12.49 s
    [Task 18/25]  Current/Best:   15.45/  18.74 GFLOPS | Progress: (12/20) | 17.44 s
    [Task 18/25]  Current/Best:    5.93/  18.74 GFLOPS | Progress: (16/20) | 21.26 s
    [Task 18/25]  Current/Best:   11.46/  18.74 GFLOPS | Progress: (20/20) | 27.04 s Done.
+
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 19/25]  Current/Best:   16.23/  16.23 GFLOPS | Progress: (4/20) | 7.87 s
    [Task 19/25]  Current/Best:   10.29/  17.76 GFLOPS | Progress: (8/20) | 10.54 s
    [Task 19/25]  Current/Best:   21.20/  21.20 GFLOPS | Progress: (12/20) | 13.00 s
    [Task 19/25]  Current/Best:    8.46/  21.20 GFLOPS | Progress: (16/20) | 17.10 s
    [Task 19/25]  Current/Best:   10.77/  21.20 GFLOPS | Progress: (20/20) | 19.97 s Done.
+
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 20/25]  Current/Best:   10.59/  18.72 GFLOPS | Progress: (4/20) | 4.31 s
    [Task 20/25]  Current/Best:    2.10/  18.72 GFLOPS | Progress: (8/20) | 7.94 s
    [Task 20/25]  Current/Best:   19.80/  19.80 GFLOPS | Progress: (12/20) | 10.70 s
    [Task 20/25]  Current/Best:   11.41/  19.80 GFLOPS | Progress: (16/20) | 13.27 s
    [Task 20/25]  Current/Best:   18.21/  19.80 GFLOPS | Progress: (20/20) | 15.27 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 21/25]  Current/Best:    7.58/  10.14 GFLOPS | Progress: (4/20) | 4.81 s
    [Task 21/25]  Current/Best:   10.92/  14.64 GFLOPS | Progress: (8/20) | 7.11 s Done.
+     Done.
+
    [Task 21/25]  Current/Best:    6.53/  18.44 GFLOPS | Progress: (12/20) | 11.81 s
    [Task 21/25]  Current/Best:    3.14/  18.44 GFLOPS | Progress: (16/20) | 16.22 s
    [Task 21/25]  Current/Best:   17.59/  18.44 GFLOPS | Progress: (20/20) | 18.44 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 22/25]  Current/Best:    8.29/  10.90 GFLOPS | Progress: (4/20) | 4.43 s
    [Task 22/25]  Current/Best:   11.58/  16.54 GFLOPS | Progress: (8/20) | 6.32 s
    [Task 22/25]  Current/Best:    9.73/  17.21 GFLOPS | Progress: (12/20) | 8.29 s
    [Task 22/25]  Current/Best:   16.03/  17.21 GFLOPS | Progress: (16/20) | 10.14 s
    [Task 22/25]  Current/Best:   10.10/  17.21 GFLOPS | Progress: (20/20) | 12.98 s Done.
+
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 23/25]  Current/Best:    6.37/  11.62 GFLOPS | Progress: (4/20) | 5.07 s
    [Task 23/25]  Current/Best:   12.14/  12.14 GFLOPS | Progress: (8/20) | 7.65 s
    [Task 23/25]  Current/Best:   12.19/  12.19 GFLOPS | Progress: (12/20) | 12.17 s
    [Task 23/25]  Current/Best:    5.38/  17.97 GFLOPS | Progress: (16/20) | 15.46 s
    [Task 23/25]  Current/Best:   11.37/  18.87 GFLOPS | Progress: (20/20) | 19.54 s Done.
+
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 24/25]  Current/Best:    3.57/   7.65 GFLOPS | Progress: (4/20) | 7.82 s
    [Task 24/25]  Current/Best:    3.70/   7.72 GFLOPS | Progress: (8/20) | 11.11 s
    [Task 24/25]  Current/Best:    9.42/   9.42 GFLOPS | Progress: (12/20) | 21.75 s
    [Task 24/25]  Current/Best:    4.85/   9.62 GFLOPS | Progress: (16/20) | 32.36 s
    [Task 24/25]  Current/Best:    2.70/   9.97 GFLOPS | Progress: (20/20) | 44.49 s
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
+     Done.
+
    [Task 25/25]  Current/Best:    6.87/   6.87 GFLOPS | Progress: (4/20) | 3.95 s
    [Task 25/25]  Current/Best:    8.68/   8.68 GFLOPS | Progress: (8/20) | 14.88 s
    [Task 25/25]  Current/Best:    7.81/   8.68 GFLOPS | Progress: (12/20) | 19.27 s
    [Task 25/25]  Current/Best:    5.94/   8.68 GFLOPS | Progress: (16/20) | 30.20 s
    [Task 25/25]  Current/Best:    5.57/   8.86 GFLOPS | Progress: (20/20) | 41.63 s
 
 
 
@@ -665,8 +665,8 @@ Verify that the optimized model runs and produces the same results:
 
  .. code-block:: none
 
-    class='n02123045 tabby, tabby cat' with probability=0.621103
-    class='n02123159 tiger cat' with probability=0.356379
+    class='n02123045 tabby, tabby cat' with probability=0.621104
+    class='n02123159 tiger cat' with probability=0.356378
     class='n02124075 Egyptian cat' with probability=0.019712
     class='n02129604 tiger, Panthera tigris' with probability=0.001215
     class='n04040759 radiator' with probability=0.000262
@@ -723,8 +723,8 @@ improvement in comparing the optimized model to the unoptimized model.
 
  .. code-block:: none
 
-    optimized: {'mean': 396.8737076900061, 'median': 396.47665980000966, 'std': 2.48934903383971}
-    unoptimized: {'mean': 506.7425502299966, 'median': 506.654013650018, 'std': 2.2001279636525695}
+    optimized: {'mean': 417.5030444500044, 'median': 416.4433565000081, 'std': 2.7551128541673027}
+    unoptimized: {'mean': 510.0786643299977, 'median': 510.2044242999966, 'std': 2.1323562065805746}
 
 
 
@@ -747,7 +747,7 @@ profiling/benchmarking.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 11 minutes  33.956 seconds)
+   **Total running time of the script:** ( 11 minutes  56.222 seconds)
 
 
 .. _sphx_glr_download_tutorial_autotvm_relay_x86.py:
diff --git a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
index f89488133e..9157735847 100644
--- a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
@@ -274,7 +274,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.205e-07 secs/op
+    1.273e-07 secs/op
 
 
 
diff --git a/docs/_sources/tutorial/intro_topi.rst.txt b/docs/_sources/tutorial/intro_topi.rst.txt
index d862412450..32f0d28a52 100644
--- a/docs/_sources/tutorial/intro_topi.rst.txt
+++ b/docs/_sources/tutorial/intro_topi.rst.txt
@@ -268,7 +268,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, placeholder(a, 0xe3c5620)), stage(b, placeholder(b, 0x212b2fb0)), stage(T_add, compute(T_add, body=[a[ax0, ax1, ax2] + b[ax1, ax2]], axis=[T.iter_var(ax0, T.Range(0, 100), "DataPar", ""), T.iter_var(ax1, T.Range(0, 10), "DataPar", ""), T.iter_var(ax2, T.Range(0, 10), "DataPar", "")], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[a[ax0, ax1, ax2] * b[ax1, ax2]], axis=[T.iter_var(ax0, T.Range(0, 100), "DataPar", ""), T.iter_var(ax1, T. [...]
+    [stage(a, placeholder(a, 0xc7ee520)), stage(b, placeholder(b, 0x2029e960)), stage(T_add, compute(T_add, body=[a[ax0, ax1, ax2] + b[ax1, ax2]], axis=[T.iter_var(ax0, T.Range(0, 100), "DataPar", ""), T.iter_var(ax1, T.Range(0, 10), "DataPar", ""), T.iter_var(ax2, T.Range(0, 10), "DataPar", "")], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[a[ax0, ax1, ax2] * b[ax1, ax2]], axis=[T.iter_var(ax0, T.Range(0, 100), "DataPar", ""), T.iter_var(ax1, T. [...]
 
 
 
diff --git a/docs/_sources/tutorial/sg_execution_times.rst.txt b/docs/_sources/tutorial/sg_execution_times.rst.txt
index 2f13f47690..bba4376c07 100644
--- a/docs/_sources/tutorial/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorial/sg_execution_times.rst.txt
@@ -5,32 +5,32 @@
 
 Computation times
 =================
-**14:51.732** total execution time for **tutorial** files:
+**15:24.596** total execution time for **tutorial** files:
 
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)                 | 11:33.956 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)                 | 11:56.222 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:22.056 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:22.753 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)     | 00:58.367 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)     | 01:00.763 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)                 | 00:34.483 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)                 | 00:34.823 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)               | 00:20.950 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)               | 00:27.678 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)       | 00:00.941 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)       | 00:01.364 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)                               | 00:00.811 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)                               | 00:00.833 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.168 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.159 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_tutorial_uma.py` (``uma.py``)                                             | 00:00.000 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)                             | 00:00.000 | 0.0 MB |
-+------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)                           | 00:00.000 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)   | 00:00.000 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
+| :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)                             | 00:00.000 | 0.0 MB |
++------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_tutorial_install.py` (``install.py``)                                     | 00:00.000 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
index b1f6e6a839..93eb0ff547 100644
--- a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
@@ -285,8 +285,8 @@ helper function to run a profile of the TVM generated code.
 
  .. code-block:: none
 
-    Numpy running time: 0.000005
-    naive: 0.000006
+    Numpy running time: 0.000007
+    naive: 0.000008
 
 
 
@@ -389,7 +389,7 @@ compile and run this new schedule with the parallel operation applied:
 
  .. code-block:: none
 
-    parallel: 0.000006
+    parallel: 0.000008
 
 
 
@@ -444,7 +444,7 @@ factor to be the number of threads on your CPU.
 
  .. code-block:: none
 
-    vector: 0.000024
+    vector: 0.000025
     @I.ir_module
     class Module:
         @T.prim_func
@@ -498,10 +498,10 @@ We can now compare the different schedules
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                   numpy    5.160529999557184e-06                    1.0
-                   naive              5.8028e-06      1.1244581468372294
-                parallel    5.860400000000001e-06     1.1356197910879058
-                  vector             2.44884e-05       4.745326546323984
+                   numpy    6.761780000488216e-06                    1.0
+                   naive              7.8529e-06      1.1613657941300963
+                parallel               7.848e-06      1.1606411328723143
+                  vector             2.45403e-05      3.6292662580308934
 
 
 
@@ -922,7 +922,7 @@ matrix multiplication.
 
  .. code-block:: none
 
-    Numpy running time: 0.014464
+    Numpy running time: 0.017759
 
 
 
@@ -980,7 +980,7 @@ optimizations.
 
  .. code-block:: none
 
-    none: 3.282071
+    none: 3.425269
 
 
 
@@ -1077,7 +1077,7 @@ schedule.
 
  .. code-block:: none
 
-    blocking: 0.299850
+    blocking: 0.287472
 
 
 
@@ -1158,7 +1158,7 @@ already cache friendly from our previous optimizations.
 
  .. code-block:: none
 
-    vectorization: 0.330219
+    vectorization: 0.324034
     @I.ir_module
     class Module:
         @T.prim_func
@@ -1221,7 +1221,7 @@ more cache friendly.
 
  .. code-block:: none
 
-    loop permutation: 0.111399
+    loop permutation: 0.116161
     @I.ir_module
     class Module:
         @T.prim_func
@@ -1309,7 +1309,7 @@ optimized schedule.
 
  .. code-block:: none
 
-    array packing: 0.106267
+    array packing: 0.109277
     @I.ir_module
     class Module:
         @T.prim_func
@@ -1389,7 +1389,7 @@ to `C` when all the block results are ready.
 
  .. code-block:: none
 
-    block caching: 0.099431
+    block caching: 0.111031
     @I.ir_module
     class Module:
         @T.prim_func
@@ -1460,7 +1460,7 @@ of thread-level parallelization.
 
  .. code-block:: none
 
-    parallelization: 0.130449
+    parallelization: 0.146142
     @I.ir_module
     class Module:
         @T.prim_func
@@ -1527,13 +1527,13 @@ working, we can compare the results.
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                    none      3.2820714408000002                     1.0
-                blocking            0.2998499887     0.09135998228817103
-           vectorization            0.3302191487        0.10061302889236
-        loop permutation     0.11139917170000002     0.03394172665322807
-           array packing            0.1062667635    0.032377955634657854
-           block caching            0.0994307041    0.030295106579326596
-         parallelization            0.1304491098     0.03974596901772595
+                    none      3.4252686486000004                     1.0
+                blocking     0.28747152930000003     0.08392671022096249
+           vectorization     0.32403417279999996     0.09460109732777937
+        loop permutation            0.1161610273     0.03391296835869448
+           array packing             0.109276615     0.03190307862265469
+           block caching     0.11103101209999999     0.03241527117745388
+         parallelization            0.1461416915    0.042665760409692846
 
 
 
@@ -1573,6 +1573,11 @@ operations with tunable parameters that allows you to automatically optimize
 the computation for specific platforms.
 
 
+.. rst-class:: sphx-glr-timing
+
+   **Total running time of the script:** ( 1 minutes  0.763 seconds)
+
+
 .. _sphx_glr_download_tutorial_tensor_expr_get_started.py:
 
 .. only:: html
diff --git a/docs/commit_hash b/docs/commit_hash
index 9339dbf5ed..d869fc1e79 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-35a66f69e1b2f41ff44af41e379de849bff27250
+1bc6dd40c2251e632a3ce4e68b9180978aca4ac4
diff --git a/docs/how_to/compile_models/from_darknet.html b/docs/how_to/compile_models/from_darknet.html
index 62b40e0bf3..a728922ef5 100644
--- a/docs/how_to/compile_models/from_darknet.html
+++ b/docs/how_to/compile_models/from_darknet.html
@@ -585,7 +585,7 @@ class:[&#39;truck 0.9266&#39;] left:471 top:83 right:689 bottom:169
 class:[&#39;bicycle 0.9984&#39;] left:111 top:113 right:577 bottom:447
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  13.230 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  12.447 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-darknet-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7716f96385bd5abb6e822041e285be54/from_darknet.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_darknet.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/from_keras.html b/docs/how_to/compile_models/from_keras.html
index c7c7d5957b..7051ab2299 100644
--- a/docs/how_to/compile_models/from_keras.html
+++ b/docs/how_to/compile_models/from_keras.html
@@ -506,7 +506,7 @@ Tensorflow is also required since it’s used as the default backend of keras.</
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Relay top-1 id: 285, class name: Egyptian cat
 
 1/1 [==============================] - ETA: 0s
-1/1 [==============================] - 1s 915ms/step
+1/1 [==============================] - 1s 959ms/step
 Keras top-1 id: 285, class name: Egyptian cat
 </pre></div>
 </div>
diff --git a/docs/how_to/compile_models/from_mxnet.html b/docs/how_to/compile_models/from_mxnet.html
index 4f11b887f2..e0f282d122 100644
--- a/docs/how_to/compile_models/from_mxnet.html
+++ b/docs/how_to/compile_models/from_mxnet.html
@@ -439,7 +439,7 @@
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <a href="https://docs.python.org/3/library/stdtypes.html#tuple" title="builtins.tuple" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">x</span><span class="o">.</span><span class="n">shape</span></a><span class="p">)</span>
 </pre></div>
 </div>
-<img src="../../_images/sphx_glr_from_mxnet_001.png" srcset="../../_images/sphx_glr_from_mxnet_001.png" alt="from mxnet" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip838bbabd-0180-4f1a-a0aa-060ee27c0473 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+<img src="../../_images/sphx_glr_from_mxnet_001.png" srcset="../../_images/sphx_glr_from_mxnet_001.png" alt="from mxnet" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip9b5cc5f4-91fb-4fde-8880-c79b857dba2c from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
 x (1, 3, 224, 224)
 </pre></div>
 </div>
diff --git a/docs/how_to/compile_models/from_oneflow.html b/docs/how_to/compile_models/from_oneflow.html
index baa09a8ed7..ed9bb81e1e 100644
--- a/docs/how_to/compile_models/from_oneflow.html
+++ b/docs/how_to/compile_models/from_oneflow.html
@@ -449,14 +449,10 @@ Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdo
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip&quot; to /workspace/.oneflow/flowvision_cache/resnet18.zip
 
   0%|          | 0.00/41.5M [00:00&lt;?, ?B/s]
- 15%|#5        | 6.33M/41.5M [00:00&lt;00:00, 44.7MB/s]
- 26%|##5       | 10.6M/41.5M [00:00&lt;00:00, 43.0MB/s]
- 35%|###5      | 14.7M/41.5M [00:00&lt;00:00, 42.9MB/s]
- 45%|####5     | 18.8M/41.5M [00:00&lt;00:00, 39.3MB/s]
- 54%|#####4    | 22.5M/41.5M [00:00&lt;00:00, 39.3MB/s]
- 63%|######3   | 26.3M/41.5M [00:00&lt;00:00, 37.8MB/s]
- 77%|#######7  | 32.0M/41.5M [00:00&lt;00:00, 39.3MB/s]
-100%|##########| 41.5M/41.5M [00:00&lt;00:00, 46.4MB/s]
+ 39%|###8      | 16.0M/41.5M [00:00&lt;00:00, 122MB/s]
+ 67%|######6   | 27.7M/41.5M [00:00&lt;00:00, 102MB/s]
+ 98%|#########7| 40.5M/41.5M [00:00&lt;00:00, 114MB/s]
+100%|##########| 41.5M/41.5M [00:00&lt;00:00, 114MB/s]
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/compile_models/from_pytorch.html b/docs/how_to/compile_models/from_pytorch.html
index c27693e8b0..34416be145 100644
--- a/docs/how_to/compile_models/from_pytorch.html
+++ b/docs/how_to/compile_models/from_pytorch.html
@@ -432,11 +432,11 @@ be unstable.</p>
 Downloading: &quot;https://download.pytorch.org/models/resnet18-f37072fd.pth&quot; to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
 
   0%|          | 0.00/44.7M [00:00&lt;?, ?B/s]
- 26%|##5       | 11.6M/44.7M [00:00&lt;00:00, 122MB/s]
- 52%|#####1    | 23.2M/44.7M [00:00&lt;00:00, 88.4MB/s]
- 72%|#######1  | 32.1M/44.7M [00:00&lt;00:00, 59.0MB/s]
- 99%|#########8| 44.2M/44.7M [00:00&lt;00:00, 69.2MB/s]
-100%|##########| 44.7M/44.7M [00:00&lt;00:00, 72.3MB/s]
+ 18%|#7        | 7.99M/44.7M [00:00&lt;00:00, 75.9MB/s]
+ 36%|###5      | 16.0M/44.7M [00:00&lt;00:00, 79.2MB/s]
+ 72%|#######1  | 32.0M/44.7M [00:00&lt;00:00, 116MB/s]
+ 96%|#########6| 43.0M/44.7M [00:00&lt;00:00, 112MB/s]
+100%|##########| 44.7M/44.7M [00:00&lt;00:00, 105MB/s]
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/compile_models/from_tensorflow.html b/docs/how_to/compile_models/from_tensorflow.html
index cd914b93cc..401da460ed 100644
--- a/docs/how_to/compile_models/from_tensorflow.html
+++ b/docs/how_to/compile_models/from_tensorflow.html
@@ -649,7 +649,7 @@ banana (score = 0.00022)
 desk (score = 0.00019)
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  18.529 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  18.466 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-tensorflow-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7f1d3d1b878694c201c614c807cdebc8/from_tensorflow.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_tensorflow.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/sg_execution_times.html b/docs/how_to/compile_models/sg_execution_times.html
index 7ce4df0408..bc528f76b6 100644
--- a/docs/how_to/compile_models/sg_execution_times.html
+++ b/docs/how_to/compile_models/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-compile-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>06:07.082</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
+<p><strong>06:07.243</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 81%" />
@@ -349,43 +349,43 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_tensorflow.html#sphx-glr-how-to-compile-models-from-tensorflow-py"><span class="std std-ref">Compile Tensorflow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tensorflow.py</span></code>)</p></td>
-<td><p>01:18.529</p></td>
+<td><p>01:18.466</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_darknet.html#sphx-glr-how-to-compile-models-from-darknet-py"><span class="std std-ref">Compile YOLO-V2 and YOLO-V3 in DarkNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_darknet.py</span></code>)</p></td>
-<td><p>01:13.230</p></td>
+<td><p>01:12.447</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_paddle.html#sphx-glr-how-to-compile-models-from-paddle-py"><span class="std std-ref">Compile PaddlePaddle Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_paddle.py</span></code>)</p></td>
-<td><p>00:49.618</p></td>
+<td><p>00:50.613</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_oneflow.html#sphx-glr-how-to-compile-models-from-oneflow-py"><span class="std std-ref">Compile OneFlow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_oneflow.py</span></code>)</p></td>
-<td><p>00:34.329</p></td>
+<td><p>00:34.331</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_mxnet.html#sphx-glr-how-to-compile-models-from-mxnet-py"><span class="std std-ref">Compile MXNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_mxnet.py</span></code>)</p></td>
-<td><p>00:29.898</p></td>
+<td><p>00:29.690</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_coreml.html#sphx-glr-how-to-compile-models-from-coreml-py"><span class="std std-ref">Compile CoreML Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_coreml.py</span></code>)</p></td>
-<td><p>00:29.085</p></td>
+<td><p>00:29.100</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_tflite.html#sphx-glr-how-to-compile-models-from-tflite-py"><span class="std std-ref">Compile TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tflite.py</span></code>)</p></td>
-<td><p>00:26.684</p></td>
+<td><p>00:26.481</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_pytorch.html#sphx-glr-how-to-compile-models-from-pytorch-py"><span class="std std-ref">Compile PyTorch Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_pytorch.py</span></code>)</p></td>
-<td><p>00:24.003</p></td>
+<td><p>00:24.134</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_keras.html#sphx-glr-how-to-compile-models-from-keras-py"><span class="std std-ref">Compile Keras Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_keras.py</span></code>)</p></td>
-<td><p>00:19.168</p></td>
+<td><p>00:19.446</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_onnx.html#sphx-glr-how-to-compile-models-from-onnx-py"><span class="std std-ref">Compile ONNX Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_onnx.py</span></code>)</p></td>
-<td><p>00:02.537</p></td>
+<td><p>00:02.534</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/deploy_models/deploy_model_on_adreno.html b/docs/how_to/deploy_models/deploy_model_on_adreno.html
index 6ee15095e2..e684d8e0ef 100644
--- a/docs/how_to/deploy_models/deploy_model_on_adreno.html
+++ b/docs/how_to/deploy_models/deploy_model_on_adreno.html
@@ -920,7 +920,7 @@ Top5 predictions:
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
- 2644.1373    2642.7018    2651.1663    2641.1535      3.1790
+ 2545.2906    2544.8195    2549.4633    2544.1715      1.4478
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-model-on-adreno-py">
diff --git a/docs/how_to/deploy_models/deploy_model_on_android.html b/docs/how_to/deploy_models/deploy_model_on_android.html
index 3ed6c84c6d..ca2f53b716 100644
--- a/docs/how_to/deploy_models/deploy_model_on_android.html
+++ b/docs/how_to/deploy_models/deploy_model_on_android.html
@@ -662,7 +662,7 @@ to the remote android device.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  14.5138      14.3758      15.1060      14.1449       0.3479
+  15.9776      15.7680      16.6149      15.5034       0.4585
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
index 7f271eb020..316e87b131 100644
--- a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
+++ b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
@@ -454,31 +454,21 @@ be unstable.</p>
 Downloading: &quot;https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth&quot; to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
 
   0%|          | 0.00/170M [00:00&lt;?, ?B/s]
-  5%|4         | 7.99M/170M [00:00&lt;00:02, 63.0MB/s]
-  9%|8         | 15.2M/170M [00:00&lt;00:02, 69.4MB/s]
- 13%|#2        | 21.9M/170M [00:00&lt;00:02, 52.9MB/s]
- 16%|#6        | 27.3M/170M [00:00&lt;00:02, 51.3MB/s]
- 19%|#9        | 32.3M/170M [00:00&lt;00:03, 47.1MB/s]
- 24%|##3       | 40.0M/170M [00:00&lt;00:02, 53.4MB/s]
- 28%|##8       | 48.0M/170M [00:00&lt;00:02, 47.6MB/s]
- 33%|###2      | 56.0M/170M [00:01&lt;00:02, 51.2MB/s]
- 38%|###7      | 64.0M/170M [00:01&lt;00:02, 51.8MB/s]
- 42%|####2     | 72.0M/170M [00:01&lt;00:01, 52.4MB/s]
- 47%|####6     | 79.3M/170M [00:01&lt;00:01, 57.7MB/s]
- 50%|#####     | 85.0M/170M [00:01&lt;00:01, 58.1MB/s]
- 53%|#####3    | 90.7M/170M [00:01&lt;00:01, 54.8MB/s]
- 57%|#####6    | 96.1M/170M [00:01&lt;00:01, 54.8MB/s]
- 61%|######1   | 104M/170M [00:02&lt;00:01, 49.4MB/s]
- 66%|######5   | 112M/170M [00:02&lt;00:01, 55.2MB/s]
- 71%|#######   | 120M/170M [00:02&lt;00:00, 56.9MB/s]
- 75%|#######5  | 128M/170M [00:02&lt;00:00, 58.3MB/s]
- 80%|########  | 136M/170M [00:02&lt;00:00, 61.9MB/s]
- 85%|########4 | 144M/170M [00:02&lt;00:00, 58.4MB/s]
- 88%|########8 | 150M/170M [00:02&lt;00:00, 59.1MB/s]
- 92%|#########1| 156M/170M [00:02&lt;00:00, 57.2MB/s]
- 95%|#########5| 162M/170M [00:03&lt;00:00, 57.3MB/s]
- 99%|#########8| 168M/170M [00:03&lt;00:00, 49.8MB/s]
-100%|##########| 170M/170M [00:03&lt;00:00, 54.8MB/s]
+  9%|9         | 15.5M/170M [00:00&lt;00:00, 163MB/s]
+ 18%|#8        | 31.0M/170M [00:00&lt;00:01, 107MB/s]
+ 25%|##4       | 42.3M/170M [00:00&lt;00:01, 100MB/s]
+ 33%|###2      | 55.6M/170M [00:00&lt;00:01, 112MB/s]
+ 39%|###9      | 66.8M/170M [00:00&lt;00:01, 97.7MB/s]
+ 47%|####6     | 79.8M/170M [00:00&lt;00:00, 108MB/s]
+ 53%|#####3    | 90.7M/170M [00:00&lt;00:00, 104MB/s]
+ 59%|#####9    | 101M/170M [00:01&lt;00:00, 97.5MB/s]
+ 66%|######5   | 112M/170M [00:01&lt;00:00, 92.7MB/s]
+ 74%|#######4  | 126M/170M [00:01&lt;00:00, 107MB/s]
+ 81%|########  | 137M/170M [00:01&lt;00:00, 100MB/s]
+ 86%|########6 | 147M/170M [00:01&lt;00:00, 98.3MB/s]
+ 94%|#########3| 159M/170M [00:01&lt;00:00, 106MB/s]
+100%|#########9| 169M/170M [00:01&lt;00:00, 104MB/s]
+100%|##########| 170M/170M [00:01&lt;00:00, 104MB/s]
 /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torch/nn/functional.py:3897: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
   for i in range(dim)
 /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/detection/anchor_utils.py:124: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the &#39;trunc&#39; function NOT &#39;floor&#39;). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode=&#39;trunc&#39;), or for actual floor division, use torch.div(a, b, rounding_mode=& [...]
@@ -576,7 +566,7 @@ torchvision rcnn models.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Get 9 valid boxes
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  14.844 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  19.710 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-object-detection-pytorch-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7795da4b258c8feff986668b95ef57ad/deploy_object_detection_pytorch.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_object_detection_pytorch.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized.html b/docs/how_to/deploy_models/deploy_prequantized.html
index 99b5d7959a..a78253e3f0 100644
--- a/docs/how_to/deploy_models/deploy_prequantized.html
+++ b/docs/how_to/deploy_models/deploy_prequantized.html
@@ -495,8 +495,7 @@ training. Other models require a full post training calibration.</p>
 Downloading: &quot;https://download.pytorch.org/models/mobilenet_v2-b0353104.pth&quot; to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
 
   0%|          | 0.00/13.6M [00:00&lt;?, ?B/s]
- 59%|#####8    | 7.99M/13.6M [00:00&lt;00:00, 48.8MB/s]
-100%|##########| 13.6M/13.6M [00:00&lt;00:00, 66.4MB/s]
+100%|##########| 13.6M/13.6M [00:00&lt;00:00, 145MB/s]
 </pre></div>
 </div>
 </div>
@@ -587,7 +586,7 @@ output values are identical out of 1000 outputs from mobilenet v2.</p>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  87.8299      87.7591      90.9274      87.4078       0.4231
+  90.1042      90.0770      90.8171      89.8795       0.1535
 </pre></div>
 </div>
 <div class="admonition note">
@@ -626,7 +625,7 @@ This includes support for the VNNI 8 bit dot product instruction (CascadeLake or
 <div class="section" id="deploy-a-quantized-tflite-model">
 <h2>Deploy a quantized TFLite Model<a class="headerlink" href="#deploy-a-quantized-tflite-model" title="Permalink to this headline">¶</a></h2>
 <p>TODO</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  9.809 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  11.129 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/fb8217c13f4351224c6cf3aacf1a87fc/deploy_prequantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized_tflite.html b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
index 469a5be991..9274ab2f9d 100644
--- a/docs/how_to/deploy_models/deploy_prequantized_tflite.html
+++ b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
@@ -580,7 +580,7 @@ TFLite Top-5 labels: [387 102 386 341 349]
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  115.8371     115.6378     119.7660     114.7599      0.7118
+  118.1637     118.1807     120.2154     116.4329      0.7943
 </pre></div>
 </div>
 <div class="admonition note">
@@ -608,7 +608,7 @@ network for ARM CPU</span></a>.</p></li>
 </ul>
 </div></blockquote>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  27.167 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  31.432 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-tflite-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/56691c7a27d45da61d112276334640d3/deploy_prequantized_tflite.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized_tflite.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_quantized.html b/docs/how_to/deploy_models/deploy_quantized.html
index fafabcbd1e..b50c8e42f9 100644
--- a/docs/how_to/deploy_models/deploy_quantized.html
+++ b/docs/how_to/deploy_models/deploy_quantized.html
@@ -521,7 +521,7 @@ for calibration. But the accuracy might be impacted.</p>
   DeprecationWarning,
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  34.467 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  18.289 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-quantized-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7810ecf51bfc05f7d5e8a400ac3e815d/deploy_quantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_quantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
index b980258fcc..ed49b78713 100644
--- a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
+++ b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
@@ -463,22 +463,23 @@ to your device.</p>
 Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
 
   0%|          | 0/132723 [00:00&lt;?, ?KB/s]
-  5%|4         | 6473/132723 [00:00&lt;00:01, 64718.33KB/s]
- 10%|9         | 12945/132723 [00:00&lt;00:01, 64101.16KB/s]
- 16%|#6        | 21378/132723 [00:00&lt;00:01, 73285.38KB/s]
- 23%|##2       | 29969/132723 [00:00&lt;00:01, 78246.88KB/s]
- 29%|##9       | 38828/132723 [00:00&lt;00:01, 81967.07KB/s]
- 36%|###5      | 47663/132723 [00:00&lt;00:01, 84132.06KB/s]
- 43%|####2     | 56463/132723 [00:00&lt;00:00, 85392.86KB/s]
- 49%|####8     | 65005/132723 [00:00&lt;00:00, 84003.77KB/s]
- 56%|#####5    | 73825/132723 [00:00&lt;00:00, 85290.17KB/s]
- 62%|######2   | 82710/132723 [00:01&lt;00:00, 86378.42KB/s]
- 69%|######9   | 91625/132723 [00:01&lt;00:00, 87216.81KB/s]
- 76%|#######5  | 100481/132723 [00:01&lt;00:00, 87616.52KB/s]
- 82%|########2 | 109246/132723 [00:01&lt;00:00, 86807.94KB/s]
- 89%|########8 | 118074/132723 [00:01&lt;00:00, 87246.06KB/s]
- 96%|#########5| 126981/132723 [00:01&lt;00:00, 87788.31KB/s]
-100%|##########| 132723/132723 [00:01&lt;00:00, 84213.43KB/s]
+  5%|4         | 6465/132723 [00:00&lt;00:01, 64646.67KB/s]
+ 11%|#1        | 14645/132723 [00:00&lt;00:01, 74733.65KB/s]
+ 17%|#7        | 22854/132723 [00:00&lt;00:01, 78089.24KB/s]
+ 23%|##3       | 31065/132723 [00:00&lt;00:01, 79672.57KB/s]
+ 30%|##9       | 39309/132723 [00:00&lt;00:01, 80668.00KB/s]
+ 36%|###5      | 47512/132723 [00:00&lt;00:01, 81129.70KB/s]
+ 42%|####1     | 55652/132723 [00:00&lt;00:00, 81215.49KB/s]
+ 48%|####8     | 63900/132723 [00:00&lt;00:00, 81612.54KB/s]
+ 54%|#####4    | 72176/132723 [00:00&lt;00:00, 81963.79KB/s]
+ 61%|######    | 80417/132723 [00:01&lt;00:00, 82099.92KB/s]
+ 67%|######6   | 88627/132723 [00:01&lt;00:00, 82075.96KB/s]
+ 73%|#######2  | 96835/132723 [00:01&lt;00:00, 81974.14KB/s]
+ 79%|#######9  | 105079/132723 [00:01&lt;00:00, 82111.94KB/s]
+ 85%|########5 | 113391/132723 [00:01&lt;00:00, 82414.91KB/s]
+ 92%|#########1| 121633/132723 [00:01&lt;00:00, 82287.15KB/s]
+ 98%|#########7| 129888/132723 [00:01&lt;00:00, 82360.39KB/s]
+100%|##########| 132723/132723 [00:01&lt;00:00, 81116.41KB/s]
 </pre></div>
 </div>
 <p>Create TVM runtime and do inference
@@ -517,7 +518,7 @@ Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from h
 <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
 </pre></div>
 </div>
-<img src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" srcset="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" alt="deploy ssd gluoncv" class = "sphx-glr-single-img"/><p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  21.774 seconds)</p>
+<img src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" srcset="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" alt="deploy ssd gluoncv" class = "sphx-glr-single-img"/><p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  25.327 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-ssd-gluoncv-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/cccb17d28e5e8b2e94ea8cd5ec59f6ed/deploy_ssd_gluoncv.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_ssd_gluoncv.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/sg_execution_times.html b/docs/how_to/deploy_models/sg_execution_times.html
index a99f623abb..e075d867f5 100644
--- a/docs/how_to/deploy_models/sg_execution_times.html
+++ b/docs/how_to/deploy_models/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-deploy-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>14:12.861</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
+<p><strong>14:11.486</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 86%" />
@@ -349,39 +349,39 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_ssd_gluoncv.html#sphx-glr-how-to-deploy-models-deploy-ssd-gluoncv-py"><span class="std std-ref">Deploy Single Shot Multibox Detector(SSD) model</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_ssd_gluoncv.py</span></code>)</p></td>
-<td><p>03:21.774</p></td>
+<td><p>03:25.327</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_object_detection_pytorch.html#sphx-glr-how-to-deploy-models-deploy-object-detection-pytorch-py"><span class="std std-ref">Compile PyTorch Object Detection Models</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_object_detection_pytorch.py</span></code>)</p></td>
-<td><p>03:14.844</p></td>
+<td><p>03:19.710</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_prequantized_tflite.html#sphx-glr-how-to-deploy-models-deploy-prequantized-tflite-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM - Part 3 (TFLite)</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized_tflite.py</span></code>)</p></td>
-<td><p>02:27.167</p></td>
+<td><p>02:31.432</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_quantized.html#sphx-glr-how-to-deploy-models-deploy-quantized-py"><span class="std std-ref">Deploy a Quantized Model on Cuda</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_quantized.py</span></code>)</p></td>
-<td><p>01:34.467</p></td>
+<td><p>01:18.289</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_prequantized.html#sphx-glr-how-to-deploy-models-deploy-prequantized-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized.py</span></code>)</p></td>
-<td><p>01:09.809</p></td>
+<td><p>01:11.129</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_model_on_adreno.html#sphx-glr-how-to-deploy-models-deploy-model-on-adreno-py"><span class="std std-ref">Deploy the Pretrained Model on Adreno</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_adreno.py</span></code>)</p></td>
-<td><p>00:53.568</p></td>
+<td><p>00:52.846</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_model_on_android.html#sphx-glr-how-to-deploy-models-deploy-model-on-android-py"><span class="std std-ref">Deploy the Pretrained Model on Android</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_android.py</span></code>)</p></td>
-<td><p>00:38.279</p></td>
+<td><p>00:38.840</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_model_on_nano.html#sphx-glr-how-to-deploy-models-deploy-model-on-nano-py"><span class="std std-ref">Deploy the Pretrained Model on Jetson Nano</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_nano.py</span></code>)</p></td>
-<td><p>00:26.591</p></td>
+<td><p>00:27.089</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_model_on_rasp.html#sphx-glr-how-to-deploy-models-deploy-model-on-rasp-py"><span class="std std-ref">Deploy the Pretrained Model on Raspberry Pi</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_rasp.py</span></code>)</p></td>
-<td><p>00:26.354</p></td>
+<td><p>00:26.819</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_sparse.html#sphx-glr-how-to-deploy-models-deploy-sparse-py"><span class="std std-ref">Deploy a Hugging Face Pruned Model on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_sparse.py</span></code>)</p></td>
diff --git a/docs/how_to/extend_tvm/bring_your_own_datatypes.html b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
index 7d732e37e3..bcb7c78a2a 100644
--- a/docs/how_to/extend_tvm/bring_your_own_datatypes.html
+++ b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
@@ -619,7 +619,7 @@ In this alpha state of the Bring Your Own Datatypes framework, we have not imple
 <span class="n">module</span><span class="p">,</span> <a href="https://docs.python.org/3/library/stdtypes.html#dict" title="builtins.dict" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">params</span></a> <span class="o">=</span> <span class="n">get_mobilenet</span><span class="p">()</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip1894251e-7ee7-49a0-997e-041a5f26fbd9 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zipa441e209-5eeb-42af-b10c-1f1d155b1491 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
 </pre></div>
 </div>
 <p>It’s easy to execute MobileNet with native TVM:</p>
diff --git a/docs/how_to/extend_tvm/sg_execution_times.html b/docs/how_to/extend_tvm/sg_execution_times.html
index 628ccd393e..f67bd1a9e9 100644
--- a/docs/how_to/extend_tvm/sg_execution_times.html
+++ b/docs/how_to/extend_tvm/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-extend-tvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:50.655</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
+<p><strong>00:50.947</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 84%" />
@@ -349,15 +349,15 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="bring_your_own_datatypes.html#sphx-glr-how-to-extend-tvm-bring-your-own-datatypes-py"><span class="std std-ref">Bring Your Own Datatypes to TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">bring_your_own_datatypes.py</span></code>)</p></td>
-<td><p>00:46.977</p></td>
+<td><p>00:47.337</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="use_pass_instrument.html#sphx-glr-how-to-extend-tvm-use-pass-instrument-py"><span class="std std-ref">How to Use TVM Pass Instrument</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_instrument.py</span></code>)</p></td>
-<td><p>00:02.650</p></td>
+<td><p>00:02.570</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="use_pass_infra.html#sphx-glr-how-to-extend-tvm-use-pass-infra-py"><span class="std std-ref">How to Use TVM Pass Infra</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_infra.py</span></code>)</p></td>
-<td><p>00:01.021</p></td>
+<td><p>00:01.034</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="low_level_custom_pass.html#sphx-glr-how-to-extend-tvm-low-level-custom-pass-py"><span class="std std-ref">Writing a Customized Pass</span></a> (<code class="docutils literal notranslate"><span class="pre">low_level_custom_pass.py</span></code>)</p></td>
diff --git a/docs/how_to/extend_tvm/use_pass_instrument.html b/docs/how_to/extend_tvm/use_pass_instrument.html
index edaf0e5009..5245d0482d 100644
--- a/docs/how_to/extend_tvm/use_pass_instrument.html
+++ b/docs/how_to/extend_tvm/use_pass_instrument.html
@@ -526,10 +526,10 @@ profile the execution time of each passes.</p>
 </pre></div>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 17948us [17948us] (48.93%; 48.93%)
-FoldScaleAxis: 18736us [7us] (51.07%; 51.07%)
-        FoldConstant: 18729us [1650us] (51.05%; 99.96%)
-                InferType: 17079us [17079us] (46.56%; 91.19%)
+InferType: 18974us [18974us] (49.05%; 49.05%)
+FoldScaleAxis: 19712us [8us] (50.95%; 50.95%)
+        FoldConstant: 19704us [1840us] (50.93%; 99.96%)
+                InferType: 17865us [17865us] (46.18%; 90.66%)
 </pre></div>
 </div>
 </div>
@@ -551,10 +551,10 @@ Refer to following sections and <a class="reference internal" href="../../refere
 </pre></div>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 17147us [17147us] (48.02%; 48.02%)
-FoldScaleAxis: 18560us [5us] (51.98%; 51.98%)
-        FoldConstant: 18556us [1596us] (51.97%; 99.98%)
-                InferType: 16960us [16960us] (47.50%; 91.40%)
+InferType: 17833us [17833us] (47.87%; 47.87%)
+FoldScaleAxis: 19423us [5us] (52.13%; 52.13%)
+        FoldConstant: 19418us [1706us] (52.12%; 99.97%)
+                InferType: 17712us [17712us] (47.54%; 91.21%)
 </pre></div>
 </div>
 <p>Register empty list to clear existing instruments.</p>
diff --git a/docs/how_to/optimize_operators/opt_conv_cuda.html b/docs/how_to/optimize_operators/opt_conv_cuda.html
index b973e2816e..ea80c23bbf 100644
--- a/docs/how_to/optimize_operators/opt_conv_cuda.html
+++ b/docs/how_to/optimize_operators/opt_conv_cuda.html
@@ -575,7 +575,7 @@ latency of convolution.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Convolution: </span><span class="si">%f</span><span class="s2"> ms&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span> <span class="o">*</span> <span cl [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 52.057407 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 54.197311 ms
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-optimize-operators-opt-conv-cuda-py">
diff --git a/docs/how_to/optimize_operators/opt_conv_tensorcore.html b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
index 9b68d95b81..a84c3d5cf0 100644
--- a/docs/how_to/optimize_operators/opt_conv_tensorcore.html
+++ b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
@@ -861,7 +861,7 @@ be able to run on our build server</p>
     <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;conv2d with tensor core: </span><span class="si">%f</span><span class="s2"> ms&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span> <span class="o">* [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 13.313597 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 6.833782 ms
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/optimize_operators/opt_gemm.html b/docs/how_to/optimize_operators/opt_gemm.html
index 42527b260c..a7043c76d6 100644
--- a/docs/how_to/optimize_operators/opt_gemm.html
+++ b/docs/how_to/optimize_operators/opt_gemm.html
@@ -472,8 +472,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Baseline: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.015084
-Baseline: 3.370751
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.017762
+Baseline: 3.507148
 </pre></div>
 </div>
 <p>In TVM, we can always inspect lower level IR to debug or optimize our schedule.
@@ -529,7 +529,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt1: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.290637
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.300386
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -583,7 +583,7 @@ vastly.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt2: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.329233
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.334985
 </pre></div>
 </div>
 <p>Here is the generated IR after vectorization.</p>
@@ -635,7 +635,7 @@ the access pattern for A matrix is more cache friendly.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt3: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.113702
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.114853
 </pre></div>
 </div>
 <p>Here is the generated IR after loop permutation.</p>
@@ -709,7 +709,7 @@ flattening.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt4: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.108499
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.109487
 </pre></div>
 </div>
 <p>Here is the generated IR after array packing.</p>
@@ -784,7 +784,7 @@ write to C when all the block results are ready.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt5: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.100125
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.110788
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -861,7 +861,7 @@ class Module:
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt6: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">opt6_time</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.132327
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.144398
 </pre></div>
 </div>
 <p>Here is the generated IR after parallelization.</p>
diff --git a/docs/how_to/optimize_operators/sg_execution_times.html b/docs/how_to/optimize_operators/sg_execution_times.html
index 71a2bd72c7..5297931f7e 100644
--- a/docs/how_to/optimize_operators/sg_execution_times.html
+++ b/docs/how_to/optimize_operators/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-optimize-operators-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:33.495</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
+<p><strong>00:34.925</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 83%" />
@@ -349,15 +349,15 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="opt_gemm.html#sphx-glr-how-to-optimize-operators-opt-gemm-py"><span class="std std-ref">How to optimize GEMM on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_gemm.py</span></code>)</p></td>
-<td><p>00:30.705</p></td>
+<td><p>00:32.363</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="opt_conv_tensorcore.html#sphx-glr-how-to-optimize-operators-opt-conv-tensorcore-py"><span class="std std-ref">How to optimize convolution using TensorCores</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_tensorcore.py</span></code>)</p></td>
-<td><p>00:01.601</p></td>
+<td><p>00:01.473</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="opt_conv_cuda.html#sphx-glr-how-to-optimize-operators-opt-conv-cuda-py"><span class="std std-ref">How to optimize convolution on GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_cuda.py</span></code>)</p></td>
-<td><p>00:01.190</p></td>
+<td><p>00:01.088</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
index 157746c991..0926f18ee1 100644
--- a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
+++ b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-tune-with-autoscheduler-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>09:24.925</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
+<p><strong>09:12.340</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 85%" />
@@ -349,27 +349,27 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_conv2d_layer_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py"><span class="std std-ref">Auto-scheduling a Convolution Layer for GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_layer_cuda.py</span></code>)</p></td>
-<td><p>05:39.541</p></td>
+<td><p>05:35.238</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_network_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-x86-py"><span class="std std-ref">Auto-scheduling a Neural Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_x86.py</span></code>)</p></td>
-<td><p>01:37.605</p></td>
+<td><p>01:37.168</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_network_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-cuda-py"><span class="std std-ref">Auto-scheduling a Neural Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_cuda.py</span></code>)</p></td>
-<td><p>01:06.528</p></td>
+<td><p>01:05.047</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_sparse_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-sparse-x86-py"><span class="std std-ref">Auto-scheduling Sparse Matrix Multiplication on CPU with Custom Sketch Rule</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_sparse_x86.py</span></code>)</p></td>
-<td><p>00:34.526</p></td>
+<td><p>00:28.838</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_network_arm.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-arm-py"><span class="std std-ref">Auto-scheduling a Neural Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_arm.py</span></code>)</p></td>
-<td><p>00:13.932</p></td>
+<td><p>00:13.508</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_network_mali.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-mali-py"><span class="std std-ref">Auto-scheduling a Neural Network for mali GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_mali.py</span></code>)</p></td>
-<td><p>00:12.793</p></td>
+<td><p>00:12.540</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
index 7ef7604272..58fc18bb16 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
@@ -1011,7 +1011,7 @@ class Module:
 <span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.350 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.361 ms
 </pre></div>
 </div>
 </div>
@@ -1574,7 +1574,7 @@ In the example below we resume the status and do more 5 trials.</p>
 Get devices for measurement successfully!
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 5 minutes  39.541 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 5 minutes  35.238 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/e3e540f3b477c0c52d8eb73e674e8ffd/tune_conv2d_layer_cuda.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_conv2d_layer_cuda.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
index 665ec377c0..47c2de2398 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
@@ -916,7 +916,7 @@ so we can read the log file and load the best schedules.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-   7.9029       7.9002       7.9123       7.8963       0.0068
+   7.8660       7.8647       7.8696       7.8637       0.0026
 </pre></div>
 </div>
 </div>
@@ -938,7 +938,7 @@ to learn how to use the RPC Tracker and RPC Server.
 To use the RPC Tracker in auto-scheduler, replace the runner in <code class="code docutils literal notranslate"><span class="pre">TuningOptions</span></code>
 with <a class="reference internal" href="../../reference/api/python/auto_scheduler.html#tvm.auto_scheduler.RPCRunner" title="tvm.auto_scheduler.RPCRunner"><code class="xref any py py-class docutils literal notranslate"><span class="pre">auto_scheduler.RPCRunner</span></code></a>.</p></li>
 </ol>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  6.528 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  5.047 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-network-cuda-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/eafe360d52540634c9eea0fa89e804bd/tune_network_cuda.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_network_cuda.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
index aad1b03554..6cf9175a64 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
@@ -935,7 +935,7 @@ so we can read the log file and load the best schedules.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  760.2450     762.3287     762.8100     755.5962      3.2931
+  752.1154     752.1782     755.5035     748.6643      2.7924
 </pre></div>
 </div>
 </div>
@@ -957,7 +957,7 @@ to learn how to use the RPC Tracker and RPC Server.
 To use the RPC Tracker in auto-scheduler, replace the runner in <code class="code docutils literal notranslate"><span class="pre">TuningOptions</span></code>
 with <a class="reference internal" href="../../reference/api/python/auto_scheduler.html#tvm.auto_scheduler.RPCRunner" title="tvm.auto_scheduler.RPCRunner"><code class="xref any py py-class docutils literal notranslate"><span class="pre">auto_scheduler.RPCRunner</span></code></a>.</p></li>
 </ol>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  37.605 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  37.168 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-network-x86-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/e416b94ca1090b0897c0f6e0df95b911/tune_network_x86.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_network_x86.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
index aa816aa0ec..be58703521 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
@@ -629,74 +629,26 @@ class Module:
     @T.prim_func
     def main(placeholder: T.Buffer((128, 256), &quot;float32&quot;), placeholder_1: T.Buffer((4916, 16, 1), &quot;float32&quot;), placeholder_2: T.Buffer((4916,), &quot;int32&quot;), placeholder_3: T.Buffer((33,), &quot;int32&quot;), placeholder_4: T.Buffer((128, 512), &quot;float32&quot;), compute: T.Buffer((128, 512), &quot;float32&quot;)):
         T.func_attr({&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True})
-        for i0_outer_i1_outer_fused in T.parallel(16):
-            compute_1 = T.allocate([4096], &quot;float32&quot;, &quot;global&quot;)
-            compute_2 = T.buffer_decl((4096,), data=compute_1)
-            for i_outer_inner, nb_j_inner in T.grid(2, 2):
-                for i_inner_init in range(64):
-                    cse_var_1: T.int32 = i_outer_inner * 2048 + i_inner_init * 32 + nb_j_inner * 16
-                    compute_2[cse_var_1] = T.float32(0)
-                    compute_2[cse_var_1 + 1] = T.float32(0)
-                    compute_2[cse_var_1 + 2] = T.float32(0)
-                    compute_2[cse_var_1 + 3] = T.float32(0)
-                    compute_2[cse_var_1 + 4] = T.float32(0)
-                    compute_2[cse_var_1 + 5] = T.float32(0)
-                    compute_2[cse_var_1 + 6] = T.float32(0)
-                    compute_2[cse_var_1 + 7] = T.float32(0)
-                    compute_2[cse_var_1 + 8] = T.float32(0)
-                    compute_2[cse_var_1 + 9] = T.float32(0)
-                    compute_2[cse_var_1 + 10] = T.float32(0)
-                    compute_2[cse_var_1 + 11] = T.float32(0)
-                    compute_2[cse_var_1 + 12] = T.float32(0)
-                    compute_2[cse_var_1 + 13] = T.float32(0)
-                    compute_2[cse_var_1 + 14] = T.float32(0)
-                    compute_2[cse_var_1 + 15] = T.float32(0)
-                for elem_idx, i_inner in T.grid(T.let(cse_var_2, i0_outer_i1_outer_fused * 2 + nb_j_inner, placeholder_5[cse_var_2 + 1] - placeholder_5[cse_var_2]), 64):
-                    cse_var_2 = T.var(&quot;int32&quot;)
+        for i0_outer_i1_outer_fused in T.parallel(32):
+            compute_1 = T.allocate([2048], &quot;float32&quot;, &quot;global&quot;)
+            compute_2 = T.buffer_decl((2048,), data=compute_1)
+            for i_outer_inner, nb_j_inner in T.grid(4, 2):
+                for i_inner_init, j_init in T.grid(16, 16):
+                    compute_2[i_outer_inner * 512 + i_inner_init * 32 + nb_j_inner * 16 + j_init] = T.float32(0)
+                for elem_idx, i_inner, j in T.grid(T.let(cse_var_1, i0_outer_i1_outer_fused % 16 * 2 + nb_j_inner, placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]), 16, 16):
+                    cse_var_1 = T.var(&quot;int32&quot;)
                     placeholder_5 = T.buffer_decl((33,), &quot;int32&quot;, data=placeholder_3.data)
-                    cse_var_21: T.int32 = elem_idx * 16
-                    cse_var_20: T.int32 = i0_outer_i1_outer_fused * 2 + nb_j_inner
-                    cse_var_19: T.int32 = i_outer_inner * 16384 + i_inner * 256
-                    cse_var_18: T.int32 = i_outer_inner * 2048 + i_inner * 32 + nb_j_inner * 16
-                    cse_var_17: T.int32 = cse_var_18 + 9
-                    cse_var_16: T.int32 = cse_var_18 + 8
-                    cse_var_15: T.int32 = cse_var_18 + 7
-                    cse_var_14: T.int32 = cse_var_18 + 6
-                    cse_var_13: T.int32 = cse_var_18 + 5
-                    cse_var_12: T.int32 = cse_var_18 + 4
-                    cse_var_11: T.int32 = cse_var_18 + 3
-                    cse_var_10: T.int32 = cse_var_18 + 2
-                    cse_var_9: T.int32 = cse_var_18 + 15
-                    cse_var_8: T.int32 = cse_var_18 + 14
-                    cse_var_7: T.int32 = cse_var_18 + 13
-                    cse_var_6: T.int32 = cse_var_18 + 12
-                    cse_var_5: T.int32 = cse_var_18 + 11
-                    cse_var_4: T.int32 = cse_var_18 + 10
-                    cse_var_3: T.int32 = cse_var_18 + 1
+                    cse_var_3: T.int32 = i0_outer_i1_outer_fused % 16 * 2 + nb_j_inner
+                    cse_var_2: T.int32 = i_outer_inner * 512 + i_inner * 32 + nb_j_inner * 16 + j
                     placeholder_6 = T.buffer_decl((78656,), data=placeholder_1.data)
                     placeholder_7 = T.buffer_decl((32768,), data=placeholder.data)
                     placeholder_8 = T.buffer_decl((4916,), &quot;int32&quot;, data=placeholder_2.data)
-                    compute_2[cse_var_18] = compute_2[cse_var_18] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_3] = compute_2[cse_var_3] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 1] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_10] = compute_2[cse_var_10] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 2] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_11] = compute_2[cse_var_11] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 3] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_12] = compute_2[cse_var_12] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 4] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_13] = compute_2[cse_var_13] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 5] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_14] = compute_2[cse_var_14] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 6] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_15] = compute_2[cse_var_15] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 7] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_16] = compute_2[cse_var_16] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 8] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_17] = compute_2[cse_var_17] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 9] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_4] = compute_2[cse_var_4] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 10] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_5] = compute_2[cse_var_5] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 11] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_6] = compute_2[cse_var_6] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 12] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_7] = compute_2[cse_var_7] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 13] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_8] = compute_2[cse_var_8] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 14] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-                    compute_2[cse_var_9] = compute_2[cse_var_9] + placeholder_6[placeholder_5[cse_var_20] * 16 + cse_var_21 + 15] * T.max(placeholder_7[cse_var_19 + placeholder_8[placeholder_5[cse_var_20] + elem_idx]], T.float32(0))
-            for i0_inner, i1_inner in T.grid(128, 32):
-                cse_var_22: T.int32 = i0_inner * 512 + i0_outer_i1_outer_fused * 32 + i1_inner
+                    compute_2[cse_var_2] = compute_2[cse_var_2] + placeholder_6[placeholder_5[cse_var_3] * 16 + elem_idx * 16 + j] * T.max(placeholder_7[i0_outer_i1_outer_fused // 16 * 16384 + i_outer_inner * 4096 + i_inner * 256 + placeholder_8[placeholder_5[cse_var_3] + elem_idx]], T.float32(0))
+            for i0_inner in range(64):
+                cse_var_4: T.int32 = i0_outer_i1_outer_fused // 16 * 32768 + i0_inner * 512 + i0_outer_i1_outer_fused % 16 * 32
                 compute_3 = T.buffer_decl((65536,), data=compute.data)
                 placeholder_5 = T.buffer_decl((65536,), data=placeholder_4.data)
-                compute_3[cse_var_22] = T.max(compute_2[i0_inner * 32 + i1_inner] + placeholder_5[cse_var_22], T.float32(0))
+                compute_3[cse_var_4:cse_var_4 + 32] = T.max(compute_2[i0_inner * 32:i0_inner * 32 + 32] + placeholder_5[cse_var_4:cse_var_4 + 32], T.Broadcast(T.float32(0), 32))
 </pre></div>
 </div>
 </div>
@@ -730,7 +682,7 @@ class Module:
 <span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.865 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.504 ms
 </pre></div>
 </div>
 <div class="admonition note">
diff --git a/docs/how_to/tune_with_autotvm/sg_execution_times.html b/docs/how_to/tune_with_autotvm/sg_execution_times.html
index 261d83deba..08cf03b3ff 100644
--- a/docs/how_to/tune_with_autotvm/sg_execution_times.html
+++ b/docs/how_to/tune_with_autotvm/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-tune-with-autotvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:40.160</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
+<p><strong>00:29.883</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 84%" />
@@ -349,7 +349,7 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_conv2d_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-conv2d-cuda-py"><span class="std std-ref">Tuning High Performance Convolution on NVIDIA GPUs</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_cuda.py</span></code>)</p></td>
-<td><p>00:40.127</p></td>
+<td><p>00:29.851</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_relay_x86.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-x86-py"><span class="std std-ref">Auto-tuning a Convolutional Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_x86.py</span></code>)</p></td>
diff --git a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
index d6779796f4..57bf0125a5 100644
--- a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
+++ b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
@@ -690,7 +690,7 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 8, 64]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 64]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6548069
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 8, 8]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 256]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,1348756
 No: 2   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
@@ -813,9 +813,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 256, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 4, 128]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,955732
-No: 3   GFLOPS: 0.89/0.89       result: MeasureResult(costs=(0.26042663549999995,), error_no=MeasureErrorNo.NO_ERROR, all_cost=9.621100187301636, timestamp=1674506680.363243)  [(&#39;tile_f&#39;, [-1, 1, 2, 128]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 1, 8]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4163713
-No: 4   GFLOPS: 0.00/0.89       result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 16, 4, 2]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 256, 1]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9708676
+No: 3   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -937,9 +936,10 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 1, 2]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 128, 4]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7255657
-No: 5   GFLOPS: 14.80/14.80     result: MeasureResult(costs=(0.015640404555555557,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.547365665435791, timestamp=1674506684.110485) [(&#39;tile_f&#39;, [-1, 16, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 8]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7646324
-No: 6   GFLOPS: 0.00/14.80      result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 2, 32]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 128]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,367811
+No: 4   GFLOPS: 7.15/7.15       result: MeasureResult(costs=(0.0323805845,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.4197022914886475, timestamp=1674513805.5752122)       [(&#39;tile_f&#39;, [-1, 1, 4, 8]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 2, 16]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6515009
+No: 5   GFLOPS: 96.50/96.50     result: MeasureResult(costs=(0.002399077261904762,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.259687900543213, timestamp=1674513808.2390378)        [(&#39;tile_f&#39;, [-1, 1, 2, 2]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 4, 2]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6046324
+No: 6   GFLOPS: 0.00/96.50      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -1061,8 +1061,9 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 1, 64]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 64]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,3454641
-No: 7   GFLOPS: 0.00/14.80      result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 8, 2]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 2, 256]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,10063100
+No: 7   GFLOPS: 1.97/96.50      result: MeasureResult(costs=(0.11765058125,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.502441883087158, timestamp=1674513811.1122339)       [(&#39;tile_f&#39;, [-1, 32, 1, 4]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 2]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,234405
+No: 8   GFLOPS: 0.00/96.50      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -1184,8 +1185,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 128, 1]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 64]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6744589
-No: 8   GFLOPS: 0.00/14.80      result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 1, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 32, 16]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,5946922
+No: 9   GFLOPS: 0.00/96.50      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -1307,8 +1308,11 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 16, 2]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 8, 8]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,10173325
-No: 9   GFLOPS: 0.00/14.80      result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 32, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 4, 4]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6853262
+No: 10  GFLOPS: 123.51/123.51   result: MeasureResult(costs=(0.0018743788705882353,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8191518783569336, timestamp=1674513813.335441)       [(&#39;tile_f&#39;, [-1, 4, 8, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 1]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,1162603
+No: 11  GFLOPS: 559.47/559.47   result: MeasureResult(costs=(0.00041378937371134016,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.011948585510254, timestamp=1674513814.3352637)      [(&#39;tile_f&#39;, [-1, 1, 32, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 32, 2]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9928860
+No: 12  GFLOPS: 877.34/877.34   result: MeasureResult(costs=(0.00026386789949748744,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7633612155914307, timestamp=1674513815.0643272)     [(&#39;tile_f&#39;, [-1, 2, 2, 2]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 4]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,10333465
+No: 13  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -1430,9 +1434,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 8, 8, 2]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 8, 32]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,10414222
-No: 10  GFLOPS: 92.01/92.01     result: MeasureResult(costs=(0.002515918093023256,), error_no=MeasureErrorNo.NO_ERROR, all_cost=7.519283056259155, timestamp=1674506693.8013742)        [(&#39;tile_f&#39;, [-1, 16, 4, 1]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 8]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9780563
-No: 11  GFLOPS: 0.00/92.01      result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 16, 2, 16]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 32, 2]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6056774
+No: 14  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -1554,8 +1557,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 16, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 64]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,3651059
-No: 12  GFLOPS: 0.00/92.01      result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 16, 8, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 32, 1]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2343345
+No: 15  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -1677,8 +1680,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 16, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 128]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7145760
-No: 13  GFLOPS: 0.00/92.01      result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 256, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 16]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,5153728
+No: 16  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -1800,9 +1803,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 32, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 2]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7206482
-No: 14  GFLOPS: 296.57/296.57   result: MeasureResult(costs=(0.0007805909333333334,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.138368844985962, timestamp=1674506695.1737492)       [(&#39;tile_f&#39;, [-1, 1, 8, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 16]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,5739481
-No: 15  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 128, 1, 2]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 64]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,1901302
+No: 17  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -1924,8 +1926,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 8, 4]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 4, 8]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,3783463
-No: 16  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 64, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 32, 8]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,695363
+No: 18  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -2047,8 +2049,9 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 32, 1, 4]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 32, 8]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,1082945
-No: 17  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 1, 32]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 64]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,933866
+No: 19  GFLOPS: 16.46/877.34    result: MeasureResult(costs=(0.01406467625,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.1628198623657227, timestamp=1674513816.5768745)      [(&#39;tile_f&#39;, [-1, 1, 4, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 64, 1]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2925269
+No: 20  GFLOPS: 0.00/877.34     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
@@ -2170,376 +2173,7 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 64, 1, 4]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 8, 2]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9145286
-No: 18  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
-    func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
-    func = build(s, args, target_host=task.target_host, runtime=runtime)
-  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 227, in build
-    input_mod = lower(inputs, args, name=name, binds=binds)
-  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 134, in lower
-    return ffi.lower_schedule(inp, args, name, binds, simple_mode)
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 276, in tvm._ffi._cy3.core.FuncCall
-  File &quot;tvm/_ffi/_cython/./base.pxi&quot;, line 181, in tvm._ffi._cy3.core.CHECK_CALL
-tvm._ffi.base.TVMError: Traceback (most recent call last):
-  24: TVMFuncCall
-        at ../src/runtime/c_runtime_api.cc:477
-  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  22: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  21: operator()
-        at ../include/tvm/runtime/packed_func.h:1730
-  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
-        at ../include/tvm/runtime/packed_func.h:1670
-  19: run&lt;&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1645
-  13: operator()
-        at ../src/driver/driver_api.cc:395
-  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
-        at ../src/driver/driver_api.cc:381
-  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
-        at ../src/driver/driver_api.cc:276
-  10: tvm::transform::Pass::operator()(tvm::IRModule) const
-        at ../src/ir/transform.cc:258
-  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:451
-  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/tir/ir/transform.cc:100
-  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-        at ../include/tvm/runtime/packed_func.h:1749
-  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
-        at ../include/tvm/runtime/packed_func.h:1693
-  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
-        at ../include/tvm/runtime/packed_func.h:1617
-  2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  1: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  0: operator()
-        at ../src/runtime/c_runtime_api.cc:534
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
-    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
-
-Traceback (most recent call last):
-  24: TVMFuncCall
-        at ../src/runtime/c_runtime_api.cc:477
-  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  22: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  21: operator()
-        at ../include/tvm/runtime/packed_func.h:1730
-  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
-        at ../include/tvm/runtime/packed_func.h:1670
-  19: run&lt;&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1645
-  13: operator()
-        at ../src/driver/driver_api.cc:395
-  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
-        at ../src/driver/driver_api.cc:381
-  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
-        at ../src/driver/driver_api.cc:276
-  10: tvm::transform::Pass::operator()(tvm::IRModule) const
-        at ../src/ir/transform.cc:258
-  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:451
-  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/tir/ir/transform.cc:100
-  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-        at ../include/tvm/runtime/packed_func.h:1749
-  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
-        at ../include/tvm/runtime/packed_func.h:1693
-  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
-        at ../include/tvm/runtime/packed_func.h:1617
-  2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  1: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  0: operator()
-        at ../src/runtime/c_runtime_api.cc:534
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
-    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 16, 4]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 32, 4]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9186888
-No: 19  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
-    func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
-    func = build(s, args, target_host=task.target_host, runtime=runtime)
-  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 227, in build
-    input_mod = lower(inputs, args, name=name, binds=binds)
-  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 134, in lower
-    return ffi.lower_schedule(inp, args, name, binds, simple_mode)
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 276, in tvm._ffi._cy3.core.FuncCall
-  File &quot;tvm/_ffi/_cython/./base.pxi&quot;, line 181, in tvm._ffi._cy3.core.CHECK_CALL
-tvm._ffi.base.TVMError: Traceback (most recent call last):
-  24: TVMFuncCall
-        at ../src/runtime/c_runtime_api.cc:477
-  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  22: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  21: operator()
-        at ../include/tvm/runtime/packed_func.h:1730
-  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
-        at ../include/tvm/runtime/packed_func.h:1670
-  19: run&lt;&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1645
-  13: operator()
-        at ../src/driver/driver_api.cc:395
-  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
-        at ../src/driver/driver_api.cc:381
-  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
-        at ../src/driver/driver_api.cc:276
-  10: tvm::transform::Pass::operator()(tvm::IRModule) const
-        at ../src/ir/transform.cc:258
-  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:451
-  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/tir/ir/transform.cc:100
-  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-        at ../include/tvm/runtime/packed_func.h:1749
-  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
-        at ../include/tvm/runtime/packed_func.h:1693
-  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
-        at ../include/tvm/runtime/packed_func.h:1617
-  2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  1: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  0: operator()
-        at ../src/runtime/c_runtime_api.cc:534
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
-    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
-
-Traceback (most recent call last):
-  24: TVMFuncCall
-        at ../src/runtime/c_runtime_api.cc:477
-  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  22: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  21: operator()
-        at ../include/tvm/runtime/packed_func.h:1730
-  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
-        at ../include/tvm/runtime/packed_func.h:1670
-  19: run&lt;&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1645
-  13: operator()
-        at ../src/driver/driver_api.cc:395
-  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
-        at ../src/driver/driver_api.cc:381
-  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
-        at ../src/driver/driver_api.cc:276
-  10: tvm::transform::Pass::operator()(tvm::IRModule) const
-        at ../src/ir/transform.cc:258
-  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:451
-  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/tir/ir/transform.cc:100
-  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-        at ../include/tvm/runtime/packed_func.h:1749
-  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
-        at ../include/tvm/runtime/packed_func.h:1693
-  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
-        at ../include/tvm/runtime/packed_func.h:1617
-  2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  1: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  0: operator()
-        at ../src/runtime/c_runtime_api.cc:534
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
-    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 256, 2]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 4]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,8397059
-No: 20  GFLOPS: 0.00/296.57     result: Traceback (most recent call last):
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 592, in __call__
-    func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 544, in _build_func_common
-    func = build(s, args, target_host=task.target_host, runtime=runtime)
-  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 227, in build
-    input_mod = lower(inputs, args, name=name, binds=binds)
-  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 134, in lower
-    return ffi.lower_schedule(inp, args, name, binds, simple_mode)
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 276, in tvm._ffi._cy3.core.FuncCall
-  File &quot;tvm/_ffi/_cython/./base.pxi&quot;, line 181, in tvm._ffi._cy3.core.CHECK_CALL
-tvm._ffi.base.TVMError: Traceback (most recent call last):
-  24: TVMFuncCall
-        at ../src/runtime/c_runtime_api.cc:477
-  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  22: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  21: operator()
-        at ../include/tvm/runtime/packed_func.h:1730
-  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
-        at ../include/tvm/runtime/packed_func.h:1670
-  19: run&lt;&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1645
-  13: operator()
-        at ../src/driver/driver_api.cc:395
-  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
-        at ../src/driver/driver_api.cc:381
-  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
-        at ../src/driver/driver_api.cc:276
-  10: tvm::transform::Pass::operator()(tvm::IRModule) const
-        at ../src/ir/transform.cc:258
-  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:451
-  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/tir/ir/transform.cc:100
-  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-        at ../include/tvm/runtime/packed_func.h:1749
-  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
-        at ../include/tvm/runtime/packed_func.h:1693
-  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
-        at ../include/tvm/runtime/packed_func.h:1617
-  2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  1: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  0: operator()
-        at ../src/runtime/c_runtime_api.cc:534
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
-    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
-
-Traceback (most recent call last):
-  24: TVMFuncCall
-        at ../src/runtime/c_runtime_api.cc:477
-  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  22: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  21: operator()
-        at ../include/tvm/runtime/packed_func.h:1730
-  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
-        at ../include/tvm/runtime/packed_func.h:1670
-  19: run&lt;&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1630
-  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
-        at ../include/tvm/runtime/packed_func.h:1645
-  13: operator()
-        at ../src/driver/driver_api.cc:395
-  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
-        at ../src/driver/driver_api.cc:381
-  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
-        at ../src/driver/driver_api.cc:276
-  10: tvm::transform::Pass::operator()(tvm::IRModule) const
-        at ../src/ir/transform.cc:258
-  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:451
-  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/ir/transform.cc:274
-  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
-        at ../src/tir/ir/transform.cc:100
-  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
-        at ../include/tvm/runtime/packed_func.h:1749
-  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
-        at ../include/tvm/runtime/packed_func.h:1693
-  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
-        at ../include/tvm/runtime/packed_func.h:1617
-  2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  1: Call
-        at ../include/tvm/runtime/packed_func.h:1213
-  0: operator()
-        at ../src/runtime/c_runtime_api.cc:534
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 875, in verify_pass
-    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 256, 2]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 32, 2]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6444999
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 2, 4]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 128]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9279930
 </pre></div>
 </div>
 <p>Finally we can inspect the best config from log file, check correctness,
@@ -2578,9 +2212,9 @@ and measure running time.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Finish loading 20 records
 
 Best config:
-[(&#39;tile_f&#39;, [-1, 1, 8, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 16]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,5739481
+[(&#39;tile_f&#39;, [-1, 2, 2, 2]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 4]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,10333465
 Finish loading 20 records
-Time cost of this operator: 0.001109
+Time cost of this operator: 0.000541
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autotvm-tune-conv2d-cuda-py">
diff --git a/docs/how_to/work_with_microtvm/micro_autotune.html b/docs/how_to/work_with_microtvm/micro_autotune.html
index 5190d08e3c..e3b6f8d53c 100644
--- a/docs/how_to/work_with_microtvm/micro_autotune.html
+++ b/docs/how_to/work_with_microtvm/micro_autotune.html
@@ -647,10 +647,10 @@ the tuned operator.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>########## Build without Autotuning ##########
 Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)
 ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  311.7     98.707   (1, 2, 10, 10, 3)  2       1        [311.7]
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.108     0.984    (1, 6, 10, 10)     1       1        [3.108]
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.975     0.309    (1, 1, 10, 10, 3)  1       1        [0.975]
-Total_time                                    -                                             315.783   -        -                  -       -        -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  312.5     98.738   (1, 2, 10, 10, 3)  2       1        [312.5]
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.021     0.955    (1, 6, 10, 10)     1       1        [3.021]
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.974     0.308    (1, 1, 10, 10, 3)  1       1        [0.974]
+Total_time                                    -                                             316.495   -        -                  -       -        -
 </pre></div>
 </div>
 </div>
@@ -702,10 +702,10 @@ Total_time                                    -
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>########## Build with Autotuning ##########
 Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)
 ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  100.8     97.323   (1, 6, 10, 10, 1)  2       1        [100.8]
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.795     1.733    (1, 6, 10, 10)     1       1        [1.795]
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.978     0.944    (1, 1, 10, 10, 3)  1       1        [0.978]
-Total_time                                    -                                             103.573   -        -                  -       -        -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  102.4     97.408   (1, 6, 10, 10, 1)  2       1        [102.4]
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.769     1.682    (1, 6, 10, 10)     1       1        [1.769]
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.956     0.91     (1, 1, 10, 10, 3)  1       1        [0.956]
+Total_time                                    -                                             105.125   -        -                  -       -        -
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-autotune-py">
diff --git a/docs/how_to/work_with_microtvm/micro_pytorch.html b/docs/how_to/work_with_microtvm/micro_pytorch.html
index 99094713bb..3b02c33a70 100644
--- a/docs/how_to/work_with_microtvm/micro_pytorch.html
+++ b/docs/how_to/work_with_microtvm/micro_pytorch.html
@@ -454,7 +454,7 @@ download a cat image and preprocess it to use as the model input.</p>
 Downloading: &quot;https://download.pytorch.org/models/quantized/mobilenet_v2_qnnpack_37f702c5.pth&quot; to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2_qnnpack_37f702c5.pth
 
   0%|          | 0.00/3.42M [00:00&lt;?, ?B/s]
-100%|##########| 3.42M/3.42M [00:00&lt;00:00, 64.7MB/s]
+100%|##########| 3.42M/3.42M [00:00&lt;00:00, 131MB/s]
 /workspace/python/tvm/relay/frontend/pytorch_utils.py:47: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
   return LooseVersion(torch_ver) &gt; ver
 /venv/apache-tvm-py3.7/lib/python3.7/site-packages/setuptools/_distutils/version.py:346: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
@@ -578,7 +578,7 @@ via the host <cite>main.cc`</cite> or if a Zephyr emulated board is selected as
 Torch top-1 id: 282, class name: tiger cat
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  11.081 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  7.563 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-pytorch-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/12b9ecc04c41abaa12022061771821d1/micro_pytorch.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">micro_pytorch.py</span></code></a></p>
diff --git a/docs/how_to/work_with_microtvm/micro_train.html b/docs/how_to/work_with_microtvm/micro_train.html
index bc0777a0d7..2440941a97 100644
--- a/docs/how_to/work_with_microtvm/micro_train.html
+++ b/docs/how_to/work_with_microtvm/micro_train.html
@@ -524,7 +524,7 @@ take about <strong>2 minutes</strong> to download the Stanford Cars, while COCO
 <a href="https://docs.python.org/3/library/shutil.html#shutil.move" title="shutil.move" class="sphx-glr-backref-module-shutil sphx-glr-backref-type-py-function"><span class="n">shutil</span><span class="o">.</span><span class="n">move</span></a><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><a href="https://docs.python.org/3/library/stdtypes.html#str" title="builtins.str" class="sphx-glr-backref-module-builtins sphx-glr-backref-typ [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&#39;/tmp/tmpumlk8hbn/images/random&#39;
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&#39;/tmp/tmp64et68e_/images/random&#39;
 </pre></div>
 </div>
 </div>
@@ -584,8 +584,8 @@ objects to other stuff? We can display some examples from our datasets using <co
     <span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">(</span><span class="s2">&quot;off&quot;</span><span class="p">)</span>
 </pre></div>
 </div>
-<img src="../../_images/sphx_glr_micro_train_001.png" srcset="../../_images/sphx_glr_micro_train_001.png" alt="[0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 0.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmpumlk8hbn/images/target contains 8144 images
-/tmp/tmpumlk8hbn/images/random contains 5000 images
+<img src="../../_images/sphx_glr_micro_train_001.png" srcset="../../_images/sphx_glr_micro_train_001.png" alt="[0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmp64et68e_/images/target contains 8144 images
+/tmp/tmp64et68e_/images/random contains 5000 images
 </pre></div>
 </div>
 </div>
@@ -697,13 +697,13 @@ the time on our validation set).</p>
 </pre></div>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Epoch 1/3
-328/328 - 47s - loss: 0.2076 - accuracy: 0.9283 - val_loss: 0.2454 - val_accuracy: 0.9309 - 47s/epoch - 145ms/step
+328/328 - 47s - loss: 0.2592 - accuracy: 0.9130 - val_loss: 0.2900 - val_accuracy: 0.9037 - 47s/epoch - 143ms/step
 Epoch 2/3
-328/328 - 41s - loss: 0.0938 - accuracy: 0.9657 - val_loss: 0.1286 - val_accuracy: 0.9569 - 41s/epoch - 125ms/step
+328/328 - 43s - loss: 0.1075 - accuracy: 0.9605 - val_loss: 0.1097 - val_accuracy: 0.9573 - 43s/epoch - 132ms/step
 Epoch 3/3
-328/328 - 41s - loss: 0.0656 - accuracy: 0.9751 - val_loss: 0.1139 - val_accuracy: 0.9656 - 41s/epoch - 125ms/step
+328/328 - 43s - loss: 0.0740 - accuracy: 0.9728 - val_loss: 0.1193 - val_accuracy: 0.9585 - 43s/epoch - 131ms/step
 
-&lt;keras.callbacks.History object at 0x7ff924610410&gt;
+&lt;keras.callbacks.History object at 0x7efecb4f6290&gt;
 </pre></div>
 </div>
 </div>
@@ -963,7 +963,7 @@ as intended.</p>
 <p>From here, we could modify the model to read live images from the camera - we have another
 Arduino tutorial for how to do that <a class="reference external" href="https://github.com/guberti/tvm-arduino-demos/tree/master/examples/person_detection">on GitHub</a>. Alternatively, we could also
 <a class="reference external" href="https://tvm.apache.org/docs/how_to/work_with_microtvm/micro_autotune.html">use TVM’s autotuning capabilities</a> to dramatically improve the model’s performance.</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 4 minutes  28.121 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 4 minutes  30.307 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-train-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/b52cec46baf4f78d6bcd94cbe269c8a6/micro_train.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">micro_train.py</span></code></a></p>
diff --git a/docs/how_to/work_with_microtvm/sg_execution_times.html b/docs/how_to/work_with_microtvm/sg_execution_times.html
index fc9b184e88..d37f401099 100644
--- a/docs/how_to/work_with_microtvm/sg_execution_times.html
+++ b/docs/how_to/work_with_microtvm/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-microtvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>06:46.122</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
+<p><strong>06:41.154</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 83%" />
@@ -349,30 +349,30 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="micro_train.html#sphx-glr-how-to-work-with-microtvm-micro-train-py"><span class="std std-ref">Training Vision Models for microTVM on Arduino</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_train.py</span></code>)</p></td>
-<td><p>04:28.121</p></td>
+<td><p>04:30.307</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="micro_pytorch.html#sphx-glr-how-to-work-with-microtvm-micro-pytorch-py"><span class="std std-ref">microTVM PyTorch Tutorial</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_pytorch.py</span></code>)</p></td>
-<td><p>01:11.081</p></td>
+<td><p>01:07.563</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="micro_autotune.html#sphx-glr-how-to-work-with-microtvm-micro-autotune-py"><span class="std std-ref">Autotuning with microTVM</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_autotune.py</span></code>)</p></td>
-<td><p>00:53.804</p></td>
+<td><p>00:50.749</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="micro_aot.html#sphx-glr-how-to-work-with-microtvm-micro-aot-py"><span class="std std-ref">microTVM Host-Driven AoT</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_aot.py</span></code>)</p></td>
-<td><p>00:09.073</p></td>
+<td><p>00:08.696</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="micro_tflite.html#sphx-glr-how-to-work-with-microtvm-micro-tflite-py"><span class="std std-ref">microTVM with TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tflite.py</span></code>)</p></td>
-<td><p>00:04.042</p></td>
+<td><p>00:03.840</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="micro_ethosu.html#sphx-glr-how-to-work-with-microtvm-micro-ethosu-py"><span class="std std-ref">Running TVM on bare metal Arm(R) Cortex(R)-M55 CPU and Ethos(TM)-U55 NPU with CMSIS-NN</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_ethosu.py</span></code>)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="micro_tvmc.html#sphx-glr-how-to-work-with-microtvm-micro-tvmc-py"><span class="std std-ref">Executing a Tiny Model with TVMC Micro</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tvmc.py</span></code>)</p></td>
 <td><p>00:00.000</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="micro_tvmc.html#sphx-glr-how-to-work-with-microtvm-micro-tvmc-py"><span class="std std-ref">Executing a Tiny Model with TVMC Micro</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tvmc.py</span></code>)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="micro_ethosu.html#sphx-glr-how-to-work-with-microtvm-micro-ethosu-py"><span class="std std-ref">Running TVM on bare metal Arm(R) Cortex(R)-M55 CPU and Ethos(TM)-U55 NPU with CMSIS-NN</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_ethosu.py</span></code>)</p></td>
 <td><p>00:00.000</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
diff --git a/docs/how_to/work_with_relay/sg_execution_times.html b/docs/how_to/work_with_relay/sg_execution_times.html
index 81851d3561..009f0a5e98 100644
--- a/docs/how_to/work_with_relay/sg_execution_times.html
+++ b/docs/how_to/work_with_relay/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-relay-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:44.182</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
+<p><strong>00:44.052</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 84%" />
@@ -349,15 +349,15 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="using_pipeline_executor.html#sphx-glr-how-to-work-with-relay-using-pipeline-executor-py"><span class="std std-ref">Using Pipeline Executor in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_pipeline_executor.py</span></code>)</p></td>
-<td><p>00:32.457</p></td>
+<td><p>00:32.218</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="using_external_lib.html#sphx-glr-how-to-work-with-relay-using-external-lib-py"><span class="std std-ref">Using External Libraries in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_external_lib.py</span></code>)</p></td>
-<td><p>00:10.235</p></td>
+<td><p>00:10.170</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="build_gcn.html#sphx-glr-how-to-work-with-relay-build-gcn-py"><span class="std std-ref">Building a Graph Convolutional Network</span></a> (<code class="docutils literal notranslate"><span class="pre">build_gcn.py</span></code>)</p></td>
-<td><p>00:01.484</p></td>
+<td><p>00:01.658</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="using_relay_viz.html#sphx-glr-how-to-work-with-relay-using-relay-viz-py"><span class="std std-ref">Use Relay Visualizer to Visualize Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_relay_viz.py</span></code>)</p></td>
diff --git a/docs/how_to/work_with_schedules/intrin_math.html b/docs/how_to/work_with_schedules/intrin_math.html
index 1aeef740b5..545cf748b6 100644
--- a/docs/how_to/work_with_schedules/intrin_math.html
+++ b/docs/how_to/work_with_schedules/intrin_math.html
@@ -535,7 +535,7 @@ The following example customizes CUDA lowering rule for <code class="code docuti
 <a href="../../reference/api/python/ir.html#tvm.ir.register_intrin_lowering" title="tvm.ir.register_intrin_lowering" class="sphx-glr-backref-module-tvm-ir sphx-glr-backref-type-py-function"><span class="n">register_intrin_lowering</span></a><span class="p">(</span><span class="s2">&quot;tir.exp&quot;</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">&quot;cuda&quot;</span><span class="p">,</span> <span class="n">f</span><span class="o">= [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;function my_cuda_math_rule at 0x7ff91a4b15f0&gt;
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;function my_cuda_math_rule at 0x7efcfd7ea680&gt;
 </pre></div>
 </div>
 <p>Register the rule to TVM with override option to override existing rule.
diff --git a/docs/how_to/work_with_schedules/sg_execution_times.html b/docs/how_to/work_with_schedules/sg_execution_times.html
index 99e48a796e..eccbcbf425 100644
--- a/docs/how_to/work_with_schedules/sg_execution_times.html
+++ b/docs/how_to/work_with_schedules/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-schedules-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:07.982</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
+<p><strong>00:07.544</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 83%" />
@@ -349,19 +349,19 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="intrin_math.html#sphx-glr-how-to-work-with-schedules-intrin-math-py"><span class="std std-ref">Intrinsics and Math Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">intrin_math.py</span></code>)</p></td>
-<td><p>00:05.402</p></td>
+<td><p>00:05.090</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tensorize.html#sphx-glr-how-to-work-with-schedules-tensorize-py"><span class="std std-ref">Use Tensorize to Leverage Hardware Intrinsics</span></a> (<code class="docutils literal notranslate"><span class="pre">tensorize.py</span></code>)</p></td>
-<td><p>00:01.181</p></td>
+<td><p>00:01.107</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="reduction.html#sphx-glr-how-to-work-with-schedules-reduction-py"><span class="std std-ref">Reduction</span></a> (<code class="docutils literal notranslate"><span class="pre">reduction.py</span></code>)</p></td>
-<td><p>00:00.602</p></td>
+<td><p>00:00.574</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="scan.html#sphx-glr-how-to-work-with-schedules-scan-py"><span class="std std-ref">Scan and Recurrent Kernel</span></a> (<code class="docutils literal notranslate"><span class="pre">scan.py</span></code>)</p></td>
-<td><p>00:00.580</p></td>
+<td><p>00:00.556</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="extern_op.html#sphx-glr-how-to-work-with-schedules-extern-op-py"><span class="std std-ref">External Tensor Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">extern_op.py</span></code>)</p></td>
@@ -369,15 +369,15 @@
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="schedule_primitives.html#sphx-glr-how-to-work-with-schedules-schedule-primitives-py"><span class="std std-ref">Schedule Primitives in TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">schedule_primitives.py</span></code>)</p></td>
-<td><p>00:00.049</p></td>
+<td><p>00:00.050</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tedd.html#sphx-glr-how-to-work-with-schedules-tedd-py"><span class="std std-ref">Use Tensor Expression Debug Display (TEDD) for Visualization</span></a> (<code class="docutils literal notranslate"><span class="pre">tedd.py</span></code>)</p></td>
-<td><p>00:00.030</p></td>
+<td><p>00:00.031</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tuple_inputs.html#sphx-glr-how-to-work-with-schedules-tuple-inputs-py"><span class="std std-ref">Compute and Reduce with Tuple Inputs</span></a> (<code class="docutils literal notranslate"><span class="pre">tuple_inputs.py</span></code>)</p></td>
-<td><p>00:00.023</p></td>
+<td><p>00:00.024</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/work_with_schedules/tensorize.html b/docs/how_to/work_with_schedules/tensorize.html
index 437faaeb3b..4dcb51e920 100644
--- a/docs/how_to/work_with_schedules/tensorize.html
+++ b/docs/how_to/work_with_schedules/tensorize.html
@@ -574,7 +574,7 @@ class Module:
     def main(A: T.Buffer((1024, 64), &quot;float32&quot;), B: T.Buffer((512, 64), &quot;float32&quot;), C: T.Buffer((1024, 512), &quot;float32&quot;)):
         T.func_attr({&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True})
         i = T.var(&quot;int32&quot;)
-        T.attr(T.iter_var(i, None, &quot;DataPar&quot;, &quot;&quot;), &quot;pragma_import_llvm&quot;, &quot;; ModuleID = &#39;/tmp/tmpkb80b9a7/input0.cc&#39;\nsource_filename = \&quot;/tmp/tmpkb80b9a7/input0.cc\&quot;\ntarget datalayout = \&quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128\&quot;\ntarget triple = \&quot;x86_64-pc-linux-gnu\&quot;\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca  [...]
+        T.attr(T.iter_var(i, None, &quot;DataPar&quot;, &quot;&quot;), &quot;pragma_import_llvm&quot;, &quot;; ModuleID = &#39;/tmp/tmptb0aihq4/input0.cc&#39;\nsource_filename = \&quot;/tmp/tmptb0aihq4/input0.cc\&quot;\ntarget datalayout = \&quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128\&quot;\ntarget triple = \&quot;x86_64-pc-linux-gnu\&quot;\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca  [...]
         for i, j_outer in T.grid(1024, 32):
             T.call_extern(&quot;int32&quot;, &quot;gemv_update&quot;, T.tvm_access_ptr(T.type_annotation(&quot;float32&quot;), C.data, i * 512 + j_outer * 16, 16, 2), T.tvm_access_ptr(T.type_annotation(&quot;float32&quot;), A.data, i * 64, 64, 1), T.tvm_access_ptr(T.type_annotation(&quot;float32&quot;), B.data, j_outer * 1024, 1024, 1), 16, 64, 64)
 </pre></div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1Doc.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1Doc.html
index 06d5e3e29d..6dc8c9d57f 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1Doc.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1Doc.html
@@ -78,7 +78,7 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::script::printer::Doc:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1printer_1_1Doc__inherit__graph.svg" width="4894" height="948"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1printer_1_1Doc__inherit__graph.svg" width="4894" height="934"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1Doc__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1Doc__inherit__graph.svg
index c6a0b70db3..8174258635 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1Doc__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1Doc__inherit__graph.svg
@@ -4,324 +4,323 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::script::printer::Doc Pages: 1 -->
-<svg width="3670pt" height="711pt"
- viewBox="0.00 0.00 3670.00 711.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 707)">
+<svg width="3670pt" height="700pt"
+ viewBox="0.00 0.00 3670.00 700.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 696)">
 <title>tvm::script::printer::Doc</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-707 3666,-707 3666,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-696 3666,-696 3666,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="1748,-342.5 1748,-432.5 1914,-432.5 1914,-342.5 1748,-342.5"/>
-<text text-anchor="middle" x="1831" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer::Doc</text>
-<polyline fill="none" stroke="#000000" points="1748,-413.5 1914,-413.5 "/>
-<text text-anchor="middle" x="1831" y="-401.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1748,-394.5 1914,-394.5 "/>
-<text text-anchor="start" x="1756" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~Doc()</text>
-<text text-anchor="start" x="1756" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1756" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="1756" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># Doc()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="1748,-331.5 1748,-421.5 1914,-421.5 1914,-331.5 1748,-331.5"/>
+<text text-anchor="middle" x="1831" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer::Doc</text>
+<polyline fill="none" stroke="#000000" points="1748,-402.5 1914,-402.5 "/>
+<text text-anchor="middle" x="1831" y="-390.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1748,-383.5 1914,-383.5 "/>
+<text text-anchor="start" x="1756" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~Doc()</text>
+<text text-anchor="start" x="1756" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1756" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="1756" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># Doc()</text>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1script_1_1printer_1_1ExprDoc.html" target="_top" xlink:title="Reference type of ExprDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="920,-204.5 920,-305.5 1086,-305.5 1086,-204.5 920,-204.5"/>
-<text text-anchor="start" x="928" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1003" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprDoc</text>
-<polyline fill="none" stroke="#000000" points="920,-275.5 1086,-275.5 "/>
-<text text-anchor="middle" x="1003" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="920,-256.5 1086,-256.5 "/>
-<text text-anchor="start" x="928" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator[]()</text>
-<text text-anchor="start" x="928" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="928" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="928" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ExprDoc()</text>
+<polygon fill="#ffffff" stroke="#000000" points="920,-193.5 920,-294.5 1086,-294.5 1086,-193.5 920,-193.5"/>
+<text text-anchor="start" x="928" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1003" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprDoc</text>
+<polyline fill="none" stroke="#000000" points="920,-264.5 1086,-264.5 "/>
+<text text-anchor="middle" x="1003" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="920,-245.5 1086,-245.5 "/>
+<text text-anchor="start" x="928" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator[]()</text>
+<text text-anchor="start" x="928" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="928" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="928" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ExprDoc()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node2 -->
 <g id="edge2" class="edge">
 <title>Node0&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M1737.8219,-372.5893C1575.0654,-346.5443 1241.538,-293.1718 1086.1276,-268.3024"/>
-<polygon fill="none" stroke="#191970" points="1737.3897,-376.0645 1747.8171,-374.1887 1738.4958,-369.1525 1737.3897,-376.0645"/>
+<path fill="none" stroke="#191970" d="M1737.8219,-361.5893C1575.0654,-335.5443 1241.538,-282.1718 1086.1276,-257.3024"/>
+<polygon fill="none" stroke="#191970" points="1737.3897,-365.0645 1747.8171,-363.1887 1738.4958,-358.1525 1737.3897,-365.0645"/>
 </g>
 <!-- Node13 -->
 <g id="node14" class="node">
 <title>Node13</title>
 <g id="a_node14"><a xlink:href="classtvm_1_1script_1_1printer_1_1SliceDoc.html" target="_top" xlink:title="Reference type of SliceDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1656,-210 1656,-300 1822,-300 1822,-210 1656,-210"/>
-<text text-anchor="start" x="1664" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1739" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SliceDoc</text>
-<polyline fill="none" stroke="#000000" points="1656,-270 1822,-270 "/>
-<text text-anchor="middle" x="1739" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1656,-251 1822,-251 "/>
-<text text-anchor="start" x="1664" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SliceDoc()</text>
-<text text-anchor="start" x="1664" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1664" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1656,-199 1656,-289 1822,-289 1822,-199 1656,-199"/>
+<text text-anchor="start" x="1664" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1739" y="-266" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SliceDoc</text>
+<polyline fill="none" stroke="#000000" points="1656,-259 1822,-259 "/>
+<text text-anchor="middle" x="1739" y="-247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1656,-240 1822,-240 "/>
+<text text-anchor="start" x="1664" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SliceDoc()</text>
+<text text-anchor="start" x="1664" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1664" y="-206" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node13 -->
 <g id="edge13" class="edge">
 <title>Node0&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M1793.7245,-333.8151C1785.9376,-322.6003 1777.8044,-310.8868 1770.2623,-300.0246"/>
-<polygon fill="none" stroke="#191970" points="1791.0178,-336.0537 1799.5961,-342.2716 1796.7677,-332.0613 1791.0178,-336.0537"/>
+<path fill="none" stroke="#191970" d="M1793.7245,-322.8151C1785.9376,-311.6003 1777.8044,-299.8868 1770.2623,-289.0246"/>
+<polygon fill="none" stroke="#191970" points="1791.0178,-325.0537 1799.5961,-331.2716 1796.7677,-321.0613 1791.0178,-325.0537"/>
 </g>
 <!-- Node14 -->
 <g id="node15" class="node">
 <title>Node14</title>
 <g id="a_node15"><a xlink:href="classtvm_1_1script_1_1printer_1_1StmtBlockDoc.html" target="_top" xlink:title="Reference type of StmtBlockDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1840,-210 1840,-300 2006,-300 2006,-210 1840,-210"/>
-<text text-anchor="start" x="1848" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1923" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StmtBlockDoc</text>
-<polyline fill="none" stroke="#000000" points="1840,-270 2006,-270 "/>
-<text text-anchor="middle" x="1923" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1840,-251 2006,-251 "/>
-<text text-anchor="start" x="1848" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ StmtBlockDoc()</text>
-<text text-anchor="start" x="1848" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1848" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1840,-199 1840,-289 2006,-289 2006,-199 1840,-199"/>
+<text text-anchor="start" x="1848" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1923" y="-266" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StmtBlockDoc</text>
+<polyline fill="none" stroke="#000000" points="1840,-259 2006,-259 "/>
+<text text-anchor="middle" x="1923" y="-247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1840,-240 2006,-240 "/>
+<text text-anchor="start" x="1848" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ StmtBlockDoc()</text>
+<text text-anchor="start" x="1848" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1848" y="-206" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node14 -->
 <g id="edge14" class="edge">
 <title>Node0&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1868.2755,-333.8151C1876.0624,-322.6003 1884.1956,-310.8868 1891.7377,-300.0246"/>
-<polygon fill="none" stroke="#191970" points="1865.2323,-332.0613 1862.4039,-342.2716 1870.9822,-336.0537 1865.2323,-332.0613"/>
+<path fill="none" stroke="#191970" d="M1868.2755,-322.8151C1876.0624,-311.6003 1884.1956,-299.8868 1891.7377,-289.0246"/>
+<polygon fill="none" stroke="#191970" points="1865.2323,-321.0613 1862.4039,-331.2716 1870.9822,-325.0537 1865.2323,-321.0613"/>
 </g>
 <!-- Node15 -->
 <g id="node16" class="node">
 <title>Node15</title>
 <g id="a_node16"><a xlink:href="classtvm_1_1script_1_1printer_1_1StmtDoc.html" target="_top" xlink:title="Reference type of StmtDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2576,-210 2576,-300 2742,-300 2742,-210 2576,-210"/>
-<text text-anchor="start" x="2584" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="2659" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StmtDoc</text>
-<polyline fill="none" stroke="#000000" points="2576,-270 2742,-270 "/>
-<text text-anchor="middle" x="2659" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2576,-251 2742,-251 "/>
-<text text-anchor="start" x="2584" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="2584" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="2584" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># StmtDoc()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2576,-199 2576,-289 2742,-289 2742,-199 2576,-199"/>
+<text text-anchor="start" x="2584" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="2659" y="-266" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StmtDoc</text>
+<polyline fill="none" stroke="#000000" points="2576,-259 2742,-259 "/>
+<text text-anchor="middle" x="2659" y="-247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2576,-240 2742,-240 "/>
+<text text-anchor="start" x="2584" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="2584" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="2584" y="-206" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># StmtDoc()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node15 -->
 <g id="edge15" class="edge">
 <title>Node0&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M1924.1781,-372.5893C2086.9346,-346.5443 2420.462,-293.1718 2575.8724,-268.3024"/>
-<polygon fill="none" stroke="#191970" points="1923.5042,-369.1525 1914.1829,-374.1887 1924.6103,-376.0645 1923.5042,-369.1525"/>
+<path fill="none" stroke="#191970" d="M1924.1781,-361.5893C2086.9346,-335.5443 2420.462,-282.1718 2575.8724,-257.3024"/>
+<polygon fill="none" stroke="#191970" points="1923.5042,-358.1525 1914.1829,-363.1887 1924.6103,-365.0645 1923.5042,-358.1525"/>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="1764,-469.5 1764,-702.5 1898,-702.5 1898,-469.5 1764,-469.5"/>
-<text text-anchor="middle" x="1831" y="-690.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="1764,-683.5 1898,-683.5 "/>
-<text text-anchor="start" x="1772" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="1772" y="-660.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="1764,-653.5 1898,-653.5 "/>
-<text text-anchor="start" x="1772" y="-641.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1764,-458.5 1764,-691.5 1898,-691.5 1898,-458.5 1764,-458.5"/>
+<text text-anchor="middle" x="1831" y="-679.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="1764,-672.5 1898,-672.5 "/>
+<text text-anchor="start" x="1772" y="-660.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="1772" y="-649.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="1764,-642.5 1898,-642.5 "/>
 <text text-anchor="start" x="1772" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="1772" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="1772" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="1772" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="1772" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="1772" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="1772" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="1772" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="1772" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="1772" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="1772" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="1772" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="1772" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="1772" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="1772" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<text text-anchor="start" x="1772" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="1772" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="1772" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="1772" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="1772" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="1772" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="1772" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="1772" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="1772" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="1772" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="1772" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="1772" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="1772" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="1772" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="1772" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M1831,-459.1315C1831,-449.7956 1831,-440.8139 1831,-432.5544"/>
-<polygon fill="none" stroke="#191970" points="1827.5001,-459.3835 1831,-469.3836 1834.5001,-459.3836 1827.5001,-459.3835"/>
+<path fill="none" stroke="#191970" d="M1831,-448.1315C1831,-438.7956 1831,-429.8139 1831,-421.5544"/>
+<polygon fill="none" stroke="#191970" points="1827.5001,-448.3835 1831,-458.3836 1834.5001,-448.3836 1827.5001,-448.3835"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1script_1_1printer_1_1AttrAccessDoc.html" target="_top" xlink:title="Reference type of AttrAccessDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-39 0,-129 166,-129 166,-39 0,-39"/>
-<text text-anchor="start" x="8" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="83" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AttrAccessDoc</text>
-<polyline fill="none" stroke="#000000" points="0,-99 166,-99 "/>
-<text text-anchor="middle" x="83" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-80 166,-80 "/>
-<text text-anchor="start" x="8" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AttrAccessDoc()</text>
-<text text-anchor="start" x="8" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="8" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-33.5 0,-123.5 166,-123.5 166,-33.5 0,-33.5"/>
+<text text-anchor="start" x="8" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="83" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AttrAccessDoc</text>
+<polyline fill="none" stroke="#000000" points="0,-93.5 166,-93.5 "/>
+<text text-anchor="middle" x="83" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-74.5 166,-74.5 "/>
+<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AttrAccessDoc()</text>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node3 -->
 <g id="edge3" class="edge">
 <title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M909.569,-252.4847C721.5237,-246.2429 304.2976,-226.1027 175,-168 155.0747,-159.0461 136.5515,-144.0824 121.4255,-129.2447"/>
-<polygon fill="none" stroke="#191970" points="909.6037,-255.9876 919.7124,-252.8152 909.8318,-248.9913 909.6037,-255.9876"/>
+<path fill="none" stroke="#191970" d="M909.726,-241.1272C721.9715,-234.2235 305.2552,-212.923 175,-157 156.8642,-149.2137 139.6429,-136.5616 125.1096,-123.6667"/>
+<polygon fill="none" stroke="#191970" points="909.7336,-244.6296 919.8537,-241.4937 909.9868,-237.6342 909.7336,-244.6296"/>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
 <title>Node4</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1script_1_1printer_1_1CallDoc.html" target="_top" xlink:title="Reference type of CallDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="184,-39 184,-129 350,-129 350,-39 184,-39"/>
-<text text-anchor="start" x="192" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="267" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CallDoc</text>
-<polyline fill="none" stroke="#000000" points="184,-99 350,-99 "/>
-<text text-anchor="middle" x="267" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="184,-80 350,-80 "/>
-<text text-anchor="start" x="192" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallDoc()</text>
-<text text-anchor="start" x="192" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="192" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="184,-33.5 184,-123.5 350,-123.5 350,-33.5 184,-33.5"/>
+<text text-anchor="start" x="192" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="267" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CallDoc</text>
+<polyline fill="none" stroke="#000000" points="184,-93.5 350,-93.5 "/>
+<text text-anchor="middle" x="267" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="184,-74.5 350,-74.5 "/>
+<text text-anchor="start" x="192" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallDoc()</text>
+<text text-anchor="start" x="192" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="192" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node2&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M909.4885,-249.2336C755.175,-238.5834 454.7329,-212.7337 359,-168 339.4053,-158.8439 321.0809,-144.0236 306.0243,-129.3614"/>
-<polygon fill="none" stroke="#191970" points="909.6746,-252.7544 919.8898,-249.9437 910.1515,-245.7707 909.6746,-252.7544"/>
+<path fill="none" stroke="#191970" d="M909.3461,-237.8632C755.1794,-226.6827 455.4078,-200.0915 359,-157 341.1731,-149.0319 324.157,-136.4932 309.7153,-123.7563"/>
+<polygon fill="none" stroke="#191970" points="909.5131,-241.3842 919.7382,-238.6095 910.0146,-234.4021 909.5131,-241.3842"/>
 </g>
 <!-- Node5 -->
 <g id="node6" class="node">
 <title>Node5</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1script_1_1printer_1_1DictDoc.html" target="_top" xlink:title="Reference type of DictDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="368,-33.5 368,-134.5 534,-134.5 534,-33.5 368,-33.5"/>
-<text text-anchor="start" x="376" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="451" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::DictDoc</text>
-<polyline fill="none" stroke="#000000" points="368,-104.5 534,-104.5 "/>
-<text text-anchor="middle" x="451" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="368,-85.5 534,-85.5 "/>
-<text text-anchor="start" x="376" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DictDoc()</text>
-<text text-anchor="start" x="376" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DictDoc()</text>
-<text text-anchor="start" x="376" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="376" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="368,-28 368,-129 534,-129 534,-28 368,-28"/>
+<text text-anchor="start" x="376" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="451" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::DictDoc</text>
+<polyline fill="none" stroke="#000000" points="368,-99 534,-99 "/>
+<text text-anchor="middle" x="451" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="368,-80 534,-80 "/>
+<text text-anchor="start" x="376" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DictDoc()</text>
+<text text-anchor="start" x="376" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DictDoc()</text>
+<text text-anchor="start" x="376" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="376" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node5 -->
 <g id="edge5" class="edge">
 <title>Node2&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M909.6644,-243.4771C794.4403,-228.2004 605.9869,-199.4778 543,-168 526.3617,-159.685 510.5196,-147.4769 496.8166,-134.9297"/>
-<polygon fill="none" stroke="#191970" points="909.5203,-246.9883 919.8916,-244.8233 910.4339,-240.0482 909.5203,-246.9883"/>
+<path fill="none" stroke="#191970" d="M909.3434,-232.0786C794.2491,-216.4323 606.4177,-187.3729 543,-157 528.2295,-149.9259 513.919,-139.8751 501.1594,-129.3182"/>
+<polygon fill="none" stroke="#191970" points="909.1818,-235.5884 919.5602,-233.4583 910.1186,-228.6514 909.1818,-235.5884"/>
 </g>
 <!-- Node6 -->
 <g id="node7" class="node">
 <title>Node6</title>
 <g id="a_node7"><a xlink:href="classtvm_1_1script_1_1printer_1_1IdDoc.html" target="_top" xlink:title="Reference type of IdDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="552,-33.5 552,-134.5 718,-134.5 718,-33.5 552,-33.5"/>
-<text text-anchor="start" x="560" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="635" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IdDoc</text>
-<polyline fill="none" stroke="#000000" points="552,-104.5 718,-104.5 "/>
-<text text-anchor="middle" x="635" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="552,-85.5 718,-85.5 "/>
-<text text-anchor="start" x="560" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IdDoc()</text>
-<text text-anchor="start" x="560" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IdDoc()</text>
-<text text-anchor="start" x="560" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="560" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="552,-28 552,-129 718,-129 718,-28 552,-28"/>
+<text text-anchor="start" x="560" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="635" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IdDoc</text>
+<polyline fill="none" stroke="#000000" points="552,-99 718,-99 "/>
+<text text-anchor="middle" x="635" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="552,-80 718,-80 "/>
+<text text-anchor="start" x="560" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IdDoc()</text>
+<text text-anchor="start" x="560" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IdDoc()</text>
+<text text-anchor="start" x="560" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="560" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node6 -->
 <g id="edge6" class="edge">
 <title>Node2&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M909.8995,-236.3463C854.3357,-222.6708 783.7758,-200.709 727,-168 711.2578,-158.9308 695.9411,-146.7693 682.4656,-134.5213"/>
-<polygon fill="none" stroke="#191970" points="909.1975,-239.7773 919.7395,-238.7206 910.8394,-232.9726 909.1975,-239.7773"/>
+<path fill="none" stroke="#191970" d="M909.9895,-224.579C854.6117,-210.6512 784.2135,-188.6935 727,-157 713.225,-149.3693 699.6249,-139.4721 687.2795,-129.2912"/>
+<polygon fill="none" stroke="#191970" points="909.2483,-228.0011 919.7958,-227.0013 910.927,-221.2053 909.2483,-228.0011"/>
 </g>
 <!-- Node7 -->
 <g id="node8" class="node">
 <title>Node7</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1script_1_1printer_1_1IndexDoc.html" target="_top" xlink:title="Reference type of IndexDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="736,-39 736,-129 902,-129 902,-39 736,-39"/>
-<text text-anchor="start" x="744" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="819" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IndexDoc</text>
-<polyline fill="none" stroke="#000000" points="736,-99 902,-99 "/>
-<text text-anchor="middle" x="819" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="736,-80 902,-80 "/>
-<text text-anchor="start" x="744" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IndexDoc()</text>
-<text text-anchor="start" x="744" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="744" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="736,-33.5 736,-123.5 902,-123.5 902,-33.5 736,-33.5"/>
+<text text-anchor="start" x="744" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="819" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IndexDoc</text>
+<polyline fill="none" stroke="#000000" points="736,-93.5 902,-93.5 "/>
+<text text-anchor="middle" x="819" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="736,-74.5 902,-74.5 "/>
+<text text-anchor="start" x="744" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IndexDoc()</text>
+<text text-anchor="start" x="744" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="744" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node7 -->
 <g id="edge7" class="edge">
 <title>Node2&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M940.6579,-197.0625C916.793,-174.8837 889.9466,-149.934 867.5563,-129.1257"/>
-<polygon fill="none" stroke="#191970" points="938.5843,-199.9135 948.2921,-204.1573 943.3496,-194.786 938.5843,-199.9135"/>
+<path fill="none" stroke="#191970" d="M939.1419,-186.5624C916.2596,-165.9808 890.8072,-143.0874 869.2408,-123.6894"/>
+<polygon fill="none" stroke="#191970" points="937.0186,-189.3601 946.7941,-193.4453 941.6998,-184.1556 937.0186,-189.3601"/>
 </g>
 <!-- Node8 -->
 <g id="node9" class="node">
 <title>Node8</title>
 <g id="a_node9"><a xlink:href="classtvm_1_1script_1_1printer_1_1LambdaDoc.html" target="_top" xlink:title="Reference type of LambdaDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="920,-39 920,-129 1086,-129 1086,-39 920,-39"/>
-<text text-anchor="start" x="928" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1003" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LambdaDoc</text>
-<polyline fill="none" stroke="#000000" points="920,-99 1086,-99 "/>
-<text text-anchor="middle" x="1003" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="920,-80 1086,-80 "/>
-<text text-anchor="start" x="928" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LambdaDoc()</text>
-<text text-anchor="start" x="928" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="928" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="920,-33.5 920,-123.5 1086,-123.5 1086,-33.5 920,-33.5"/>
+<text text-anchor="start" x="928" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1003" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LambdaDoc</text>
+<polyline fill="none" stroke="#000000" points="920,-93.5 1086,-93.5 "/>
+<text text-anchor="middle" x="1003" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="920,-74.5 1086,-74.5 "/>
+<text text-anchor="start" x="928" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LambdaDoc()</text>
+<text text-anchor="start" x="928" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="928" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node8 -->
 <g id="edge8" class="edge">
 <title>Node2&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1003,-193.876C1003,-172.5169 1003,-148.9432 1003,-129.1257"/>
-<polygon fill="none" stroke="#191970" points="999.5001,-194.1573 1003,-204.1573 1006.5001,-194.1574 999.5001,-194.1573"/>
+<path fill="none" stroke="#191970" d="M1003,-183.3229C1003,-163.6014 1003,-142.0754 1003,-123.6894"/>
+<polygon fill="none" stroke="#191970" points="999.5001,-183.4452 1003,-193.4453 1006.5001,-183.4453 999.5001,-183.4452"/>
 </g>
 <!-- Node9 -->
 <g id="node10" class="node">
 <title>Node9</title>
 <g id="a_node10"><a xlink:href="classtvm_1_1script_1_1printer_1_1ListDoc.html" target="_top" xlink:title="Reference type of ListDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1104,-33.5 1104,-134.5 1270,-134.5 1270,-33.5 1104,-33.5"/>
-<text text-anchor="start" x="1112" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1187" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ListDoc</text>
-<polyline fill="none" stroke="#000000" points="1104,-104.5 1270,-104.5 "/>
-<text text-anchor="middle" x="1187" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1104,-85.5 1270,-85.5 "/>
-<text text-anchor="start" x="1112" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ListDoc()</text>
-<text text-anchor="start" x="1112" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ListDoc()</text>
-<text text-anchor="start" x="1112" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1112" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1104,-28 1104,-129 1270,-129 1270,-28 1104,-28"/>
+<text text-anchor="start" x="1112" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1187" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ListDoc</text>
+<polyline fill="none" stroke="#000000" points="1104,-99 1270,-99 "/>
+<text text-anchor="middle" x="1187" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1104,-80 1270,-80 "/>
+<text text-anchor="start" x="1112" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ListDoc()</text>
+<text text-anchor="start" x="1112" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ListDoc()</text>
+<text text-anchor="start" x="1112" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1112" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node9 -->
 <g id="edge9" class="edge">
 <title>Node2&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M1065.3049,-197.0971C1087.103,-176.8391 1111.3922,-154.2659 1132.5029,-134.6468"/>
-<polygon fill="none" stroke="#191970" points="1062.6504,-194.786 1057.7079,-204.1573 1067.4157,-199.9135 1062.6504,-194.786"/>
+<path fill="none" stroke="#191970" d="M1066.7765,-186.6358C1087.6124,-167.8948 1110.5869,-147.2303 1130.8215,-129.0301"/>
+<polygon fill="none" stroke="#191970" points="1064.3002,-184.1556 1059.2059,-193.4453 1068.9814,-189.3601 1064.3002,-184.1556"/>
 </g>
 <!-- Node10 -->
 <g id="node11" class="node">
 <title>Node10</title>
 <g id="a_node11"><a xlink:href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" target="_top" xlink:title="Reference type of LiteralDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1288,-.5 1288,-167.5 1454,-167.5 1454,-.5 1288,-.5"/>
-<text text-anchor="start" x="1296" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1371" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LiteralDoc</text>
-<polyline fill="none" stroke="#000000" points="1288,-137.5 1454,-137.5 "/>
-<text text-anchor="middle" x="1371" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1288,-118.5 1454,-118.5 "/>
-<text text-anchor="start" x="1296" y="-106.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1296" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="1296" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ None()</text>
-<text text-anchor="start" x="1296" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
-<text text-anchor="start" x="1296" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Boolean()</text>
-<text text-anchor="start" x="1296" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
-<text text-anchor="start" x="1296" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Str()</text>
-<text text-anchor="start" x="1296" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
-<text text-anchor="start" x="1296" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># LiteralDoc()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1288,-.5 1288,-156.5 1454,-156.5 1454,-.5 1288,-.5"/>
+<text text-anchor="start" x="1296" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1371" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LiteralDoc</text>
+<polyline fill="none" stroke="#000000" points="1288,-126.5 1454,-126.5 "/>
+<text text-anchor="middle" x="1371" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1288,-107.5 1454,-107.5 "/>
+<text text-anchor="start" x="1296" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1296" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="1296" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ None()</text>
+<text text-anchor="start" x="1296" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
+<text text-anchor="start" x="1296" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Boolean()</text>
+<text text-anchor="start" x="1296" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
+<text text-anchor="start" x="1296" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Str()</text>
+<text text-anchor="start" x="1296" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
 <text text-anchor="start" x="1296" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># LiteralDoc()</text>
 </a>
 </g>
@@ -329,274 +328,274 @@
 <!-- Node2&#45;&gt;Node10 -->
 <g id="edge10" class="edge">
 <title>Node2&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M1096.1005,-236.3463C1151.6643,-222.6708 1222.2242,-200.709 1279,-168 1281.9985,-166.2725 1284.9816,-164.4329 1287.9395,-162.5018"/>
-<polygon fill="none" stroke="#191970" points="1095.1606,-232.9726 1086.2605,-238.7206 1096.8025,-239.7773 1095.1606,-232.9726"/>
+<path fill="none" stroke="#191970" d="M1096.0105,-224.579C1151.3883,-210.6512 1221.7865,-188.6935 1279,-157 1281.9387,-155.3721 1284.8694,-153.6411 1287.7816,-151.8262"/>
+<polygon fill="none" stroke="#191970" points="1095.073,-221.2053 1086.2042,-227.0013 1096.7517,-228.0011 1095.073,-221.2053"/>
 </g>
 <!-- Node11 -->
 <g id="node12" class="node">
 <title>Node11</title>
 <g id="a_node12"><a xlink:href="classtvm_1_1script_1_1printer_1_1OperationDoc.html" target="_top" xlink:title="Reference type of OperationDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1472,-39 1472,-129 1638,-129 1638,-39 1472,-39"/>
-<text text-anchor="start" x="1480" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1555" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::OperationDoc</text>
-<polyline fill="none" stroke="#000000" points="1472,-99 1638,-99 "/>
-<text text-anchor="middle" x="1555" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1472,-80 1638,-80 "/>
-<text text-anchor="start" x="1480" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ OperationDoc()</text>
-<text text-anchor="start" x="1480" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1480" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1472,-33.5 1472,-123.5 1638,-123.5 1638,-33.5 1472,-33.5"/>
+<text text-anchor="start" x="1480" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1555" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::OperationDoc</text>
+<polyline fill="none" stroke="#000000" points="1472,-93.5 1638,-93.5 "/>
+<text text-anchor="middle" x="1555" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1472,-74.5 1638,-74.5 "/>
+<text text-anchor="start" x="1480" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ OperationDoc()</text>
+<text text-anchor="start" x="1480" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1480" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node11 -->
 <g id="edge11" class="edge">
 <title>Node2&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M1096.3356,-243.4771C1211.5597,-228.2004 1400.0131,-199.4778 1463,-168 1482.1534,-158.428 1500.2516,-143.6971 1515.2463,-129.2288"/>
-<polygon fill="none" stroke="#191970" points="1095.5661,-240.0482 1086.1084,-244.8233 1096.4797,-246.9883 1095.5661,-240.0482"/>
+<path fill="none" stroke="#191970" d="M1096.6566,-232.0786C1211.7509,-216.4323 1399.5823,-187.3729 1463,-157 1480.4216,-148.6562 1497.2033,-136.1712 1511.555,-123.5991"/>
+<polygon fill="none" stroke="#191970" points="1095.8814,-228.6514 1086.4398,-233.4583 1096.8182,-235.5884 1095.8814,-228.6514"/>
 </g>
 <!-- Node12 -->
 <g id="node13" class="node">
 <title>Node12</title>
 <g id="a_node13"><a xlink:href="classtvm_1_1script_1_1printer_1_1TupleDoc.html" target="_top" xlink:title="Reference type of TupleDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1656,-33.5 1656,-134.5 1822,-134.5 1822,-33.5 1656,-33.5"/>
-<text text-anchor="start" x="1664" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1739" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TupleDoc</text>
-<polyline fill="none" stroke="#000000" points="1656,-104.5 1822,-104.5 "/>
-<text text-anchor="middle" x="1739" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1656,-85.5 1822,-85.5 "/>
-<text text-anchor="start" x="1664" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TupleDoc()</text>
-<text text-anchor="start" x="1664" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TupleDoc()</text>
-<text text-anchor="start" x="1664" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1664" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1656,-28 1656,-129 1822,-129 1822,-28 1656,-28"/>
+<text text-anchor="start" x="1664" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1739" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TupleDoc</text>
+<polyline fill="none" stroke="#000000" points="1656,-99 1822,-99 "/>
+<text text-anchor="middle" x="1739" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1656,-80 1822,-80 "/>
+<text text-anchor="start" x="1664" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TupleDoc()</text>
+<text text-anchor="start" x="1664" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TupleDoc()</text>
+<text text-anchor="start" x="1664" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1664" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node12 -->
 <g id="edge12" class="edge">
 <title>Node2&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M1096.5115,-249.2336C1250.825,-238.5834 1551.2671,-212.7337 1647,-168 1664.2433,-159.9426 1680.5029,-147.4989 1694.4176,-134.6366"/>
-<polygon fill="none" stroke="#191970" points="1095.8485,-245.7707 1086.1102,-249.9437 1096.3254,-252.7544 1095.8485,-245.7707"/>
+<path fill="none" stroke="#191970" d="M1096.6539,-237.8632C1250.8206,-226.6827 1550.5922,-200.0915 1647,-157 1662.335,-150.1457 1677.0699,-139.9093 1690.0824,-129.0741"/>
+<polygon fill="none" stroke="#191970" points="1095.9854,-234.4021 1086.2618,-238.6095 1096.4869,-241.3842 1095.9854,-234.4021"/>
 </g>
 <!-- Node16 -->
 <g id="node17" class="node">
 <title>Node16</title>
 <g id="a_node17"><a xlink:href="classtvm_1_1script_1_1printer_1_1AssertDoc.html" target="_top" xlink:title="Reference type of AssertDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1840,-39 1840,-129 2006,-129 2006,-39 1840,-39"/>
-<text text-anchor="start" x="1848" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1923" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AssertDoc</text>
-<polyline fill="none" stroke="#000000" points="1840,-99 2006,-99 "/>
-<text text-anchor="middle" x="1923" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1840,-80 2006,-80 "/>
-<text text-anchor="start" x="1848" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AssertDoc()</text>
-<text text-anchor="start" x="1848" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1848" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1840,-33.5 1840,-123.5 2006,-123.5 2006,-33.5 1840,-33.5"/>
+<text text-anchor="start" x="1848" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1923" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AssertDoc</text>
+<polyline fill="none" stroke="#000000" points="1840,-93.5 2006,-93.5 "/>
+<text text-anchor="middle" x="1923" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1840,-74.5 2006,-74.5 "/>
+<text text-anchor="start" x="1848" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AssertDoc()</text>
+<text text-anchor="start" x="1848" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1848" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node16 -->
 <g id="edge16" class="edge">
 <title>Node15&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M2565.4885,-249.2336C2411.175,-238.5834 2110.7329,-212.7337 2015,-168 1995.4053,-158.8439 1977.0809,-144.0236 1962.0243,-129.3614"/>
-<polygon fill="none" stroke="#191970" points="2565.6746,-252.7544 2575.8898,-249.9437 2566.1515,-245.7707 2565.6746,-252.7544"/>
+<path fill="none" stroke="#191970" d="M2565.3461,-237.8632C2411.1794,-226.6827 2111.4078,-200.0915 2015,-157 1997.1731,-149.0319 1980.157,-136.4932 1965.7153,-123.7563"/>
+<polygon fill="none" stroke="#191970" points="2565.5131,-241.3842 2575.7382,-238.6095 2566.0146,-234.4021 2565.5131,-241.3842"/>
 </g>
 <!-- Node17 -->
 <g id="node18" class="node">
 <title>Node17</title>
 <g id="a_node18"><a xlink:href="classtvm_1_1script_1_1printer_1_1AssignDoc.html" target="_top" xlink:title="Reference type of AssignDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2024,-39 2024,-129 2190,-129 2190,-39 2024,-39"/>
-<text text-anchor="start" x="2032" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="2107" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AssignDoc</text>
-<polyline fill="none" stroke="#000000" points="2024,-99 2190,-99 "/>
-<text text-anchor="middle" x="2107" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2024,-80 2190,-80 "/>
-<text text-anchor="start" x="2032" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AssignDoc()</text>
-<text text-anchor="start" x="2032" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="2032" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2024,-33.5 2024,-123.5 2190,-123.5 2190,-33.5 2024,-33.5"/>
+<text text-anchor="start" x="2032" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="2107" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AssignDoc</text>
+<polyline fill="none" stroke="#000000" points="2024,-93.5 2190,-93.5 "/>
+<text text-anchor="middle" x="2107" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2024,-74.5 2190,-74.5 "/>
+<text text-anchor="start" x="2032" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AssignDoc()</text>
+<text text-anchor="start" x="2032" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="2032" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node17 -->
 <g id="edge17" class="edge">
 <title>Node15&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M2565.6644,-243.4771C2450.4403,-228.2004 2261.9869,-199.4778 2199,-168 2179.8466,-158.428 2161.7484,-143.6971 2146.7537,-129.2288"/>
-<polygon fill="none" stroke="#191970" points="2565.5203,-246.9883 2575.8916,-244.8233 2566.4339,-240.0482 2565.5203,-246.9883"/>
+<path fill="none" stroke="#191970" d="M2565.3434,-232.0786C2450.2491,-216.4323 2262.4177,-187.3729 2199,-157 2181.5784,-148.6562 2164.7967,-136.1712 2150.445,-123.5991"/>
+<polygon fill="none" stroke="#191970" points="2565.1818,-235.5884 2575.5602,-233.4583 2566.1186,-228.6514 2565.1818,-235.5884"/>
 </g>
 <!-- Node18 -->
 <g id="node19" class="node">
 <title>Node18</title>
 <g id="a_node19"><a xlink:href="classtvm_1_1script_1_1printer_1_1ClassDoc.html" target="_top" xlink:title="Reference type of ClassDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2208,-39 2208,-129 2374,-129 2374,-39 2208,-39"/>
-<text text-anchor="start" x="2216" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="2291" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ClassDoc</text>
-<polyline fill="none" stroke="#000000" points="2208,-99 2374,-99 "/>
-<text text-anchor="middle" x="2291" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2208,-80 2374,-80 "/>
-<text text-anchor="start" x="2216" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ClassDoc()</text>
-<text text-anchor="start" x="2216" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="2216" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2208,-33.5 2208,-123.5 2374,-123.5 2374,-33.5 2208,-33.5"/>
+<text text-anchor="start" x="2216" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="2291" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ClassDoc</text>
+<polyline fill="none" stroke="#000000" points="2208,-93.5 2374,-93.5 "/>
+<text text-anchor="middle" x="2291" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2208,-74.5 2374,-74.5 "/>
+<text text-anchor="start" x="2216" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ClassDoc()</text>
+<text text-anchor="start" x="2216" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="2216" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node18 -->
 <g id="edge18" class="edge">
 <title>Node15&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M2565.8995,-236.3463C2510.3357,-222.6708 2439.7758,-200.709 2383,-168 2365.0089,-157.6352 2347.5736,-143.2314 2332.8073,-129.2756"/>
-<polygon fill="none" stroke="#191970" points="2565.1975,-239.7773 2575.7395,-238.7206 2566.8394,-232.9726 2565.1975,-239.7773"/>
+<path fill="none" stroke="#191970" d="M2565.9895,-224.579C2510.6117,-210.6512 2440.2135,-188.6935 2383,-157 2366.6537,-147.945 2350.5536,-135.6981 2336.5043,-123.5732"/>
+<polygon fill="none" stroke="#191970" points="2565.2483,-228.0011 2575.7958,-227.0013 2566.927,-221.2053 2565.2483,-228.0011"/>
 </g>
 <!-- Node19 -->
 <g id="node20" class="node">
 <title>Node19</title>
 <g id="a_node20"><a xlink:href="classtvm_1_1script_1_1printer_1_1ExprStmtDoc.html" target="_top" xlink:title="Reference type of ExprStmtDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2392,-39 2392,-129 2558,-129 2558,-39 2392,-39"/>
-<text text-anchor="start" x="2400" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="2475" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprStmtDoc</text>
-<polyline fill="none" stroke="#000000" points="2392,-99 2558,-99 "/>
-<text text-anchor="middle" x="2475" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2392,-80 2558,-80 "/>
-<text text-anchor="start" x="2400" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExprStmtDoc()</text>
-<text text-anchor="start" x="2400" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="2400" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2392,-33.5 2392,-123.5 2558,-123.5 2558,-33.5 2392,-33.5"/>
+<text text-anchor="start" x="2400" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="2475" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprStmtDoc</text>
+<polyline fill="none" stroke="#000000" points="2392,-93.5 2558,-93.5 "/>
+<text text-anchor="middle" x="2475" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2392,-74.5 2558,-74.5 "/>
+<text text-anchor="start" x="2400" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExprStmtDoc()</text>
+<text text-anchor="start" x="2400" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="2400" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node19 -->
 <g id="edge19" class="edge">
 <title>Node15&#45;&gt;Node19</title>
-<path fill="none" stroke="#191970" d="M2602.8287,-202.7973C2577.571,-179.3241 2548.0433,-151.8827 2523.7342,-129.291"/>
-<polygon fill="none" stroke="#191970" points="2600.4667,-205.3803 2610.1745,-209.6241 2605.232,-200.2527 2600.4667,-205.3803"/>
+<path fill="none" stroke="#191970" d="M2601.2802,-192.0835C2576.8855,-170.1416 2548.7387,-144.8248 2525.218,-123.6689"/>
+<polygon fill="none" stroke="#191970" points="2598.9456,-194.6912 2608.7212,-198.7764 2603.6268,-189.4867 2598.9456,-194.6912"/>
 </g>
 <!-- Node20 -->
 <g id="node21" class="node">
 <title>Node20</title>
 <g id="a_node21"><a xlink:href="classtvm_1_1script_1_1printer_1_1ForDoc.html" target="_top" xlink:title="Reference type of ForDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2576,-39 2576,-129 2742,-129 2742,-39 2576,-39"/>
-<text text-anchor="start" x="2584" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="2659" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ForDoc</text>
-<polyline fill="none" stroke="#000000" points="2576,-99 2742,-99 "/>
-<text text-anchor="middle" x="2659" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2576,-80 2742,-80 "/>
-<text text-anchor="start" x="2584" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ForDoc()</text>
-<text text-anchor="start" x="2584" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="2584" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2576,-33.5 2576,-123.5 2742,-123.5 2742,-33.5 2576,-33.5"/>
+<text text-anchor="start" x="2584" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="2659" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ForDoc</text>
+<polyline fill="none" stroke="#000000" points="2576,-93.5 2742,-93.5 "/>
+<text text-anchor="middle" x="2659" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2576,-74.5 2742,-74.5 "/>
+<text text-anchor="start" x="2584" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ForDoc()</text>
+<text text-anchor="start" x="2584" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="2584" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node20 -->
 <g id="edge20" class="edge">
 <title>Node15&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M2659,-199.4472C2659,-176.7439 2659,-150.8161 2659,-129.291"/>
-<polygon fill="none" stroke="#191970" points="2655.5001,-199.6241 2659,-209.6241 2662.5001,-199.6241 2655.5001,-199.6241"/>
+<path fill="none" stroke="#191970" d="M2659,-188.6527C2659,-167.5338 2659,-143.7305 2659,-123.6689"/>
+<polygon fill="none" stroke="#191970" points="2655.5001,-188.7764 2659,-198.7764 2662.5001,-188.7764 2655.5001,-188.7764"/>
 </g>
 <!-- Node21 -->
 <g id="node22" class="node">
 <title>Node21</title>
 <g id="a_node22"><a xlink:href="classtvm_1_1script_1_1printer_1_1FunctionDoc.html" target="_top" xlink:title="Reference type of FunctionDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2760,-39 2760,-129 2926,-129 2926,-39 2760,-39"/>
-<text text-anchor="start" x="2768" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="2843" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FunctionDoc</text>
-<polyline fill="none" stroke="#000000" points="2760,-99 2926,-99 "/>
-<text text-anchor="middle" x="2843" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2760,-80 2926,-80 "/>
-<text text-anchor="start" x="2768" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FunctionDoc()</text>
-<text text-anchor="start" x="2768" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="2768" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2760,-33.5 2760,-123.5 2926,-123.5 2926,-33.5 2760,-33.5"/>
+<text text-anchor="start" x="2768" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="2843" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FunctionDoc</text>
+<polyline fill="none" stroke="#000000" points="2760,-93.5 2926,-93.5 "/>
+<text text-anchor="middle" x="2843" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2760,-74.5 2926,-74.5 "/>
+<text text-anchor="start" x="2768" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FunctionDoc()</text>
+<text text-anchor="start" x="2768" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="2768" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node21 -->
 <g id="edge21" class="edge">
 <title>Node15&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M2715.1713,-202.7973C2740.429,-179.3241 2769.9567,-151.8827 2794.2658,-129.291"/>
-<polygon fill="none" stroke="#191970" points="2712.768,-200.2527 2707.8255,-209.6241 2717.5333,-205.3803 2712.768,-200.2527"/>
+<path fill="none" stroke="#191970" d="M2716.7198,-192.0835C2741.1145,-170.1416 2769.2613,-144.8248 2792.782,-123.6689"/>
+<polygon fill="none" stroke="#191970" points="2714.3732,-189.4867 2709.2788,-198.7764 2719.0544,-194.6912 2714.3732,-189.4867"/>
 </g>
 <!-- Node22 -->
 <g id="node23" class="node">
 <title>Node22</title>
 <g id="a_node23"><a xlink:href="classtvm_1_1script_1_1printer_1_1IfDoc.html" target="_top" xlink:title="Reference type of IfDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2944,-39 2944,-129 3110,-129 3110,-39 2944,-39"/>
-<text text-anchor="start" x="2952" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="3027" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IfDoc</text>
-<polyline fill="none" stroke="#000000" points="2944,-99 3110,-99 "/>
-<text text-anchor="middle" x="3027" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2944,-80 3110,-80 "/>
-<text text-anchor="start" x="2952" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IfDoc()</text>
-<text text-anchor="start" x="2952" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="2952" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2944,-33.5 2944,-123.5 3110,-123.5 3110,-33.5 2944,-33.5"/>
+<text text-anchor="start" x="2952" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="3027" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IfDoc</text>
+<polyline fill="none" stroke="#000000" points="2944,-93.5 3110,-93.5 "/>
+<text text-anchor="middle" x="3027" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2944,-74.5 3110,-74.5 "/>
+<text text-anchor="start" x="2952" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IfDoc()</text>
+<text text-anchor="start" x="2952" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="2952" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node22 -->
 <g id="edge22" class="edge">
 <title>Node15&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M2752.1005,-236.3463C2807.6643,-222.6708 2878.2242,-200.709 2935,-168 2952.9911,-157.6352 2970.4264,-143.2314 2985.1927,-129.2756"/>
-<polygon fill="none" stroke="#191970" points="2751.1606,-232.9726 2742.2605,-238.7206 2752.8025,-239.7773 2751.1606,-232.9726"/>
+<path fill="none" stroke="#191970" d="M2752.0105,-224.579C2807.3883,-210.6512 2877.7865,-188.6935 2935,-157 2951.3463,-147.945 2967.4464,-135.6981 2981.4957,-123.5732"/>
+<polygon fill="none" stroke="#191970" points="2751.073,-221.2053 2742.2042,-227.0013 2752.7517,-228.0011 2751.073,-221.2053"/>
 </g>
 <!-- Node23 -->
 <g id="node24" class="node">
 <title>Node23</title>
 <g id="a_node24"><a xlink:href="classtvm_1_1script_1_1printer_1_1ReturnDoc.html" target="_top" xlink:title="Reference type of ReturnDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3128,-39 3128,-129 3294,-129 3294,-39 3128,-39"/>
-<text text-anchor="start" x="3136" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="3211" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ReturnDoc</text>
-<polyline fill="none" stroke="#000000" points="3128,-99 3294,-99 "/>
-<text text-anchor="middle" x="3211" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3128,-80 3294,-80 "/>
-<text text-anchor="start" x="3136" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ReturnDoc()</text>
-<text text-anchor="start" x="3136" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="3136" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3128,-33.5 3128,-123.5 3294,-123.5 3294,-33.5 3128,-33.5"/>
+<text text-anchor="start" x="3136" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="3211" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ReturnDoc</text>
+<polyline fill="none" stroke="#000000" points="3128,-93.5 3294,-93.5 "/>
+<text text-anchor="middle" x="3211" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3128,-74.5 3294,-74.5 "/>
+<text text-anchor="start" x="3136" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ReturnDoc()</text>
+<text text-anchor="start" x="3136" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="3136" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node23 -->
 <g id="edge23" class="edge">
 <title>Node15&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M2752.3356,-243.4771C2867.5597,-228.2004 3056.0131,-199.4778 3119,-168 3138.1534,-158.428 3156.2516,-143.6971 3171.2463,-129.2288"/>
-<polygon fill="none" stroke="#191970" points="2751.5661,-240.0482 2742.1084,-244.8233 2752.4797,-246.9883 2751.5661,-240.0482"/>
+<path fill="none" stroke="#191970" d="M2752.6566,-232.0786C2867.7509,-216.4323 3055.5823,-187.3729 3119,-157 3136.4216,-148.6562 3153.2033,-136.1712 3167.555,-123.5991"/>
+<polygon fill="none" stroke="#191970" points="2751.8814,-228.6514 2742.4398,-233.4583 2752.8182,-235.5884 2751.8814,-228.6514"/>
 </g>
 <!-- Node24 -->
 <g id="node25" class="node">
 <title>Node24</title>
 <g id="a_node25"><a xlink:href="classtvm_1_1script_1_1printer_1_1ScopeDoc.html" target="_top" xlink:title="Reference type of ScopeDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3312,-33.5 3312,-134.5 3478,-134.5 3478,-33.5 3312,-33.5"/>
-<text text-anchor="start" x="3320" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="3395" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScopeDoc</text>
-<polyline fill="none" stroke="#000000" points="3312,-104.5 3478,-104.5 "/>
-<text text-anchor="middle" x="3395" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3312,-85.5 3478,-85.5 "/>
-<text text-anchor="start" x="3320" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ScopeDoc()</text>
-<text text-anchor="start" x="3320" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ScopeDoc()</text>
-<text text-anchor="start" x="3320" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="3320" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3312,-28 3312,-129 3478,-129 3478,-28 3312,-28"/>
+<text text-anchor="start" x="3320" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="3395" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScopeDoc</text>
+<polyline fill="none" stroke="#000000" points="3312,-99 3478,-99 "/>
+<text text-anchor="middle" x="3395" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3312,-80 3478,-80 "/>
+<text text-anchor="start" x="3320" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ScopeDoc()</text>
+<text text-anchor="start" x="3320" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ScopeDoc()</text>
+<text text-anchor="start" x="3320" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="3320" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node24 -->
 <g id="edge24" class="edge">
 <title>Node15&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M2752.5115,-249.2336C2906.825,-238.5834 3207.2671,-212.7337 3303,-168 3320.2433,-159.9426 3336.5029,-147.4989 3350.4176,-134.6366"/>
-<polygon fill="none" stroke="#191970" points="2751.8485,-245.7707 2742.1102,-249.9437 2752.3254,-252.7544 2751.8485,-245.7707"/>
+<path fill="none" stroke="#191970" d="M2752.6539,-237.8632C2906.8206,-226.6827 3206.5922,-200.0915 3303,-157 3318.335,-150.1457 3333.0699,-139.9093 3346.0824,-129.0741"/>
+<polygon fill="none" stroke="#191970" points="2751.9854,-234.4021 2742.2618,-238.6095 2752.4869,-241.3842 2751.9854,-234.4021"/>
 </g>
 <!-- Node25 -->
 <g id="node26" class="node">
 <title>Node25</title>
 <g id="a_node26"><a xlink:href="classtvm_1_1script_1_1printer_1_1WhileDoc.html" target="_top" xlink:title="Reference type of WhileDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3496,-39 3496,-129 3662,-129 3662,-39 3496,-39"/>
-<text text-anchor="start" x="3504" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="3579" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::WhileDoc</text>
-<polyline fill="none" stroke="#000000" points="3496,-99 3662,-99 "/>
-<text text-anchor="middle" x="3579" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3496,-80 3662,-80 "/>
-<text text-anchor="start" x="3504" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ WhileDoc()</text>
-<text text-anchor="start" x="3504" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="3504" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3496,-33.5 3496,-123.5 3662,-123.5 3662,-33.5 3496,-33.5"/>
+<text text-anchor="start" x="3504" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="3579" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::WhileDoc</text>
+<polyline fill="none" stroke="#000000" points="3496,-93.5 3662,-93.5 "/>
+<text text-anchor="middle" x="3579" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3496,-74.5 3662,-74.5 "/>
+<text text-anchor="start" x="3504" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ WhileDoc()</text>
+<text text-anchor="start" x="3504" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="3504" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node25 -->
 <g id="edge25" class="edge">
 <title>Node15&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M2752.431,-252.4847C2940.4763,-246.2429 3357.7024,-226.1027 3487,-168 3506.9253,-159.0461 3525.4485,-144.0824 3540.5745,-129.2447"/>
-<polygon fill="none" stroke="#191970" points="2752.1682,-248.9913 2742.2876,-252.8152 2752.3963,-255.9876 2752.1682,-248.9913"/>
+<path fill="none" stroke="#191970" d="M2752.274,-241.1272C2940.0285,-234.2235 3356.7448,-212.923 3487,-157 3505.1358,-149.2137 3522.3571,-136.5616 3536.8904,-123.6667"/>
+<polygon fill="none" stroke="#191970" points="2752.0132,-237.6342 2742.1463,-241.4937 2752.2664,-244.6296 2752.0132,-237.6342"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1ExprDoc.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1ExprDoc.html
index 82e655777e..63f9b5fd84 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1ExprDoc.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1ExprDoc.html
@@ -78,7 +78,7 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::script::printer::ExprDoc:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1printer_1_1ExprDoc__inherit__graph.svg" width="2440" height="948"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1printer_1_1ExprDoc__inherit__graph.svg" width="2440" height="934"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1ExprDoc__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1ExprDoc__inherit__graph.svg
index 4a41b2cc17..7d16a23bde 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1ExprDoc__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1ExprDoc__inherit__graph.svg
@@ -4,201 +4,200 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::script::printer::ExprDoc Pages: 1 -->
-<svg width="1830pt" height="711pt"
- viewBox="0.00 0.00 1830.00 711.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 707)">
+<svg width="1830pt" height="700pt"
+ viewBox="0.00 0.00 1830.00 700.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 696)">
 <title>tvm::script::printer::ExprDoc</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-707 1826,-707 1826,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-696 1826,-696 1826,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="828,-204.5 828,-305.5 994,-305.5 994,-204.5 828,-204.5"/>
-<text text-anchor="start" x="836" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="911" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprDoc</text>
-<polyline fill="none" stroke="#000000" points="828,-275.5 994,-275.5 "/>
-<text text-anchor="middle" x="911" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="828,-256.5 994,-256.5 "/>
-<text text-anchor="start" x="836" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator[]()</text>
-<text text-anchor="start" x="836" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="836" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="836" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ExprDoc()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="828,-193.5 828,-294.5 994,-294.5 994,-193.5 828,-193.5"/>
+<text text-anchor="start" x="836" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="911" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprDoc</text>
+<polyline fill="none" stroke="#000000" points="828,-264.5 994,-264.5 "/>
+<text text-anchor="middle" x="911" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="828,-245.5 994,-245.5 "/>
+<text text-anchor="start" x="836" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator[]()</text>
+<text text-anchor="start" x="836" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="836" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="836" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ExprDoc()</text>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1script_1_1printer_1_1AttrAccessDoc.html" target="_top" xlink:title="Reference type of AttrAccessDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-39 0,-129 166,-129 166,-39 0,-39"/>
-<text text-anchor="start" x="8" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="83" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AttrAccessDoc</text>
-<polyline fill="none" stroke="#000000" points="0,-99 166,-99 "/>
-<text text-anchor="middle" x="83" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-80 166,-80 "/>
-<text text-anchor="start" x="8" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AttrAccessDoc()</text>
-<text text-anchor="start" x="8" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="8" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-33.5 0,-123.5 166,-123.5 166,-33.5 0,-33.5"/>
+<text text-anchor="start" x="8" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="83" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AttrAccessDoc</text>
+<polyline fill="none" stroke="#000000" points="0,-93.5 166,-93.5 "/>
+<text text-anchor="middle" x="83" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-74.5 166,-74.5 "/>
+<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AttrAccessDoc()</text>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node3 -->
 <g id="edge3" class="edge">
 <title>Node0&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M817.8527,-251.0748C646.2665,-242.6885 287.5091,-219.4382 175,-168 155.1332,-158.9171 136.6223,-143.9262 121.4898,-129.1028"/>
-<polygon fill="none" stroke="#191970" points="817.7236,-254.5725 827.8806,-251.5583 818.0608,-247.5806 817.7236,-254.5725"/>
+<path fill="none" stroke="#191970" d="M817.6824,-239.7052C646.2319,-230.7136 288.2849,-206.5098 175,-157 156.9151,-149.0962 139.7073,-136.4129 125.1707,-123.5256"/>
+<polygon fill="none" stroke="#191970" points="817.5352,-243.2022 827.703,-240.2245 817.8976,-236.2116 817.5352,-243.2022"/>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
 <title>Node4</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1script_1_1printer_1_1CallDoc.html" target="_top" xlink:title="Reference type of CallDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="184,-39 184,-129 350,-129 350,-39 184,-39"/>
-<text text-anchor="start" x="192" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="267" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CallDoc</text>
-<polyline fill="none" stroke="#000000" points="184,-99 350,-99 "/>
-<text text-anchor="middle" x="267" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="184,-80 350,-80 "/>
-<text text-anchor="start" x="192" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallDoc()</text>
-<text text-anchor="start" x="192" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="192" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="184,-33.5 184,-123.5 350,-123.5 350,-33.5 184,-33.5"/>
+<text text-anchor="start" x="192" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="267" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CallDoc</text>
+<polyline fill="none" stroke="#000000" points="184,-93.5 350,-93.5 "/>
+<text text-anchor="middle" x="267" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="184,-74.5 350,-74.5 "/>
+<text text-anchor="start" x="192" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallDoc()</text>
+<text text-anchor="start" x="192" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="192" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node0&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M818.0307,-246.8679C682.5404,-233.9224 438.3303,-206.1399 359,-168 339.5074,-158.6285 321.2053,-143.7611 306.138,-129.1214"/>
-<polygon fill="none" stroke="#191970" points="817.7085,-250.353 827.9941,-247.8119 818.3688,-243.3842 817.7085,-250.353"/>
+<path fill="none" stroke="#191970" d="M817.9179,-235.5007C682.5791,-222.1053 438.9059,-193.7775 359,-157 341.262,-148.8359 324.2702,-136.2436 309.8234,-123.518"/>
+<polygon fill="none" stroke="#191970" points="817.5764,-238.9839 827.8707,-236.4782 818.2607,-232.0174 817.5764,-238.9839"/>
 </g>
 <!-- Node5 -->
 <g id="node6" class="node">
 <title>Node5</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1script_1_1printer_1_1DictDoc.html" target="_top" xlink:title="Reference type of DictDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="368,-33.5 368,-134.5 534,-134.5 534,-33.5 368,-33.5"/>
-<text text-anchor="start" x="376" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="451" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::DictDoc</text>
-<polyline fill="none" stroke="#000000" points="368,-104.5 534,-104.5 "/>
-<text text-anchor="middle" x="451" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="368,-85.5 534,-85.5 "/>
-<text text-anchor="start" x="376" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DictDoc()</text>
-<text text-anchor="start" x="376" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DictDoc()</text>
-<text text-anchor="start" x="376" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="376" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="368,-28 368,-129 534,-129 534,-28 368,-28"/>
+<text text-anchor="start" x="376" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="451" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::DictDoc</text>
+<polyline fill="none" stroke="#000000" points="368,-99 534,-99 "/>
+<text text-anchor="middle" x="451" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="368,-80 534,-80 "/>
+<text text-anchor="start" x="376" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DictDoc()</text>
+<text text-anchor="start" x="376" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DictDoc()</text>
+<text text-anchor="start" x="376" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="376" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node5 -->
 <g id="edge5" class="edge">
 <title>Node0&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M817.6647,-246.1198C740.4036,-235.7584 629.6614,-213.7868 543,-168 526.7452,-159.4119 511.142,-147.2663 497.5499,-134.8723"/>
-<polygon fill="none" stroke="#191970" points="817.4956,-249.6273 827.8636,-247.4463 818.3985,-242.6857 817.4956,-249.6273"/>
+<path fill="none" stroke="#191970" d="M817.6885,-234.3058C740.68,-223.4685 630.2781,-201.2539 543,-157 528.5805,-149.6887 514.512,-139.6737 501.888,-129.243"/>
+<polygon fill="none" stroke="#191970" points="817.4716,-237.8087 827.854,-235.6977 818.4213,-230.8734 817.4716,-237.8087"/>
 </g>
 <!-- Node6 -->
 <g id="node7" class="node">
 <title>Node6</title>
 <g id="a_node7"><a xlink:href="classtvm_1_1script_1_1printer_1_1IdDoc.html" target="_top" xlink:title="Reference type of IdDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="552,-33.5 552,-134.5 718,-134.5 718,-33.5 552,-33.5"/>
-<text text-anchor="start" x="560" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="635" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IdDoc</text>
-<polyline fill="none" stroke="#000000" points="552,-104.5 718,-104.5 "/>
-<text text-anchor="middle" x="635" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="552,-85.5 718,-85.5 "/>
-<text text-anchor="start" x="560" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IdDoc()</text>
-<text text-anchor="start" x="560" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IdDoc()</text>
-<text text-anchor="start" x="560" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="560" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="552,-28 552,-129 718,-129 718,-28 552,-28"/>
+<text text-anchor="start" x="560" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="635" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IdDoc</text>
+<polyline fill="none" stroke="#000000" points="552,-99 718,-99 "/>
+<text text-anchor="middle" x="635" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="552,-80 718,-80 "/>
+<text text-anchor="start" x="560" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IdDoc()</text>
+<text text-anchor="start" x="560" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IdDoc()</text>
+<text text-anchor="start" x="560" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="560" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node6 -->
 <g id="edge6" class="edge">
 <title>Node0&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M818.2911,-217.6981C788.1323,-203.8765 755.1899,-186.9083 727,-168 712.6304,-158.3616 698.2575,-146.5441 685.2865,-134.8507"/>
-<polygon fill="none" stroke="#191970" points="816.9991,-220.955 827.5531,-221.8852 819.8827,-214.5765 816.9991,-220.955"/>
+<path fill="none" stroke="#191970" d="M818.6583,-206.1406C788.5241,-192.2816 755.5034,-175.4322 727,-157 714.3056,-148.791 701.4745,-138.99 689.5877,-129.142"/>
+<polygon fill="none" stroke="#191970" points="817.3573,-209.3938 827.9094,-210.3441 820.2531,-203.0208 817.3573,-209.3938"/>
 </g>
 <!-- Node7 -->
 <g id="node8" class="node">
 <title>Node7</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1script_1_1printer_1_1IndexDoc.html" target="_top" xlink:title="Reference type of IndexDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="736,-39 736,-129 902,-129 902,-39 736,-39"/>
-<text text-anchor="start" x="744" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="819" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IndexDoc</text>
-<polyline fill="none" stroke="#000000" points="736,-99 902,-99 "/>
-<text text-anchor="middle" x="819" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="736,-80 902,-80 "/>
-<text text-anchor="start" x="744" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IndexDoc()</text>
-<text text-anchor="start" x="744" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="744" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="736,-33.5 736,-123.5 902,-123.5 902,-33.5 736,-33.5"/>
+<text text-anchor="start" x="744" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="819" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IndexDoc</text>
+<polyline fill="none" stroke="#000000" points="736,-93.5 902,-93.5 "/>
+<text text-anchor="middle" x="819" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="736,-74.5 902,-74.5 "/>
+<text text-anchor="start" x="744" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IndexDoc()</text>
+<text text-anchor="start" x="744" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="744" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node7 -->
 <g id="edge7" class="edge">
 <title>Node0&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M878.8962,-195.3288C867.2007,-173.5904 854.1825,-149.3936 843.2781,-129.1257"/>
-<polygon fill="none" stroke="#191970" points="875.8258,-197.0093 883.6461,-204.1573 881.9903,-193.6927 875.8258,-197.0093"/>
+<path fill="none" stroke="#191970" d="M878.0228,-184.677C866.857,-164.5905 854.5754,-142.4971 844.1204,-123.6894"/>
+<polygon fill="none" stroke="#191970" points="874.9792,-186.4055 882.8971,-193.4453 881.0975,-183.0044 874.9792,-186.4055"/>
 </g>
 <!-- Node8 -->
 <g id="node9" class="node">
 <title>Node8</title>
 <g id="a_node9"><a xlink:href="classtvm_1_1script_1_1printer_1_1LambdaDoc.html" target="_top" xlink:title="Reference type of LambdaDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="920,-39 920,-129 1086,-129 1086,-39 920,-39"/>
-<text text-anchor="start" x="928" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1003" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LambdaDoc</text>
-<polyline fill="none" stroke="#000000" points="920,-99 1086,-99 "/>
-<text text-anchor="middle" x="1003" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="920,-80 1086,-80 "/>
-<text text-anchor="start" x="928" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LambdaDoc()</text>
-<text text-anchor="start" x="928" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="928" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="920,-33.5 920,-123.5 1086,-123.5 1086,-33.5 920,-33.5"/>
+<text text-anchor="start" x="928" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1003" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LambdaDoc</text>
+<polyline fill="none" stroke="#000000" points="920,-93.5 1086,-93.5 "/>
+<text text-anchor="middle" x="1003" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="920,-74.5 1086,-74.5 "/>
+<text text-anchor="start" x="928" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LambdaDoc()</text>
+<text text-anchor="start" x="928" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="928" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node8 -->
 <g id="edge8" class="edge">
 <title>Node0&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M943.1038,-195.3288C954.7993,-173.5904 967.8175,-149.3936 978.7219,-129.1257"/>
-<polygon fill="none" stroke="#191970" points="940.0097,-193.6927 938.3539,-204.1573 946.1742,-197.0093 940.0097,-193.6927"/>
+<path fill="none" stroke="#191970" d="M943.9772,-184.677C955.143,-164.5905 967.4246,-142.4971 977.8796,-123.6894"/>
+<polygon fill="none" stroke="#191970" points="940.9025,-183.0044 939.1029,-193.4453 947.0208,-186.4055 940.9025,-183.0044"/>
 </g>
 <!-- Node9 -->
 <g id="node10" class="node">
 <title>Node9</title>
 <g id="a_node10"><a xlink:href="classtvm_1_1script_1_1printer_1_1ListDoc.html" target="_top" xlink:title="Reference type of ListDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1104,-33.5 1104,-134.5 1270,-134.5 1270,-33.5 1104,-33.5"/>
-<text text-anchor="start" x="1112" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1187" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ListDoc</text>
-<polyline fill="none" stroke="#000000" points="1104,-104.5 1270,-104.5 "/>
-<text text-anchor="middle" x="1187" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1104,-85.5 1270,-85.5 "/>
-<text text-anchor="start" x="1112" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ListDoc()</text>
-<text text-anchor="start" x="1112" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ListDoc()</text>
-<text text-anchor="start" x="1112" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1112" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1104,-28 1104,-129 1270,-129 1270,-28 1104,-28"/>
+<text text-anchor="start" x="1112" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1187" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ListDoc</text>
+<polyline fill="none" stroke="#000000" points="1104,-99 1270,-99 "/>
+<text text-anchor="middle" x="1187" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1104,-80 1270,-80 "/>
+<text text-anchor="start" x="1112" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ListDoc()</text>
+<text text-anchor="start" x="1112" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ListDoc()</text>
+<text text-anchor="start" x="1112" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1112" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node9 -->
 <g id="edge9" class="edge">
 <title>Node0&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M1003.7089,-217.6981C1033.8677,-203.8765 1066.8101,-186.9083 1095,-168 1109.3696,-158.3616 1123.7425,-146.5441 1136.7135,-134.8507"/>
-<polygon fill="none" stroke="#191970" points="1002.1173,-214.5765 994.4469,-221.8852 1005.0009,-220.955 1002.1173,-214.5765"/>
+<path fill="none" stroke="#191970" d="M1003.3417,-206.1406C1033.4759,-192.2816 1066.4966,-175.4322 1095,-157 1107.6944,-148.791 1120.5255,-138.99 1132.4123,-129.142"/>
+<polygon fill="none" stroke="#191970" points="1001.7469,-203.0208 994.0906,-210.3441 1004.6427,-209.3938 1001.7469,-203.0208"/>
 </g>
 <!-- Node10 -->
 <g id="node11" class="node">
 <title>Node10</title>
 <g id="a_node11"><a xlink:href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" target="_top" xlink:title="Reference type of LiteralDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1288,-.5 1288,-167.5 1454,-167.5 1454,-.5 1288,-.5"/>
-<text text-anchor="start" x="1296" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1371" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LiteralDoc</text>
-<polyline fill="none" stroke="#000000" points="1288,-137.5 1454,-137.5 "/>
-<text text-anchor="middle" x="1371" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1288,-118.5 1454,-118.5 "/>
-<text text-anchor="start" x="1296" y="-106.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1296" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="1296" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ None()</text>
-<text text-anchor="start" x="1296" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
-<text text-anchor="start" x="1296" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Boolean()</text>
-<text text-anchor="start" x="1296" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
-<text text-anchor="start" x="1296" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Str()</text>
-<text text-anchor="start" x="1296" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
-<text text-anchor="start" x="1296" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># LiteralDoc()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1288,-.5 1288,-156.5 1454,-156.5 1454,-.5 1288,-.5"/>
+<text text-anchor="start" x="1296" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1371" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LiteralDoc</text>
+<polyline fill="none" stroke="#000000" points="1288,-126.5 1454,-126.5 "/>
+<text text-anchor="middle" x="1371" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1288,-107.5 1454,-107.5 "/>
+<text text-anchor="start" x="1296" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1296" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="1296" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ None()</text>
+<text text-anchor="start" x="1296" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
+<text text-anchor="start" x="1296" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Boolean()</text>
+<text text-anchor="start" x="1296" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
+<text text-anchor="start" x="1296" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Str()</text>
+<text text-anchor="start" x="1296" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
 <text text-anchor="start" x="1296" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># LiteralDoc()</text>
 </a>
 </g>
@@ -206,110 +205,110 @@
 <!-- Node0&#45;&gt;Node10 -->
 <g id="edge10" class="edge">
 <title>Node0&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M1004.3353,-246.1198C1081.5964,-235.7584 1192.3386,-213.7868 1279,-168 1281.9641,-166.4339 1284.9066,-164.7496 1287.8191,-162.967"/>
-<polygon fill="none" stroke="#191970" points="1003.6015,-242.6857 994.1364,-247.4463 1004.5044,-249.6273 1003.6015,-242.6857"/>
+<path fill="none" stroke="#191970" d="M1004.3115,-234.3058C1081.32,-223.4685 1191.7219,-201.2539 1279,-157 1281.9963,-155.4808 1284.9774,-153.8448 1287.9335,-152.1126"/>
+<polygon fill="none" stroke="#191970" points="1003.5787,-230.8734 994.146,-235.6977 1004.5284,-237.8087 1003.5787,-230.8734"/>
 </g>
 <!-- Node11 -->
 <g id="node12" class="node">
 <title>Node11</title>
 <g id="a_node12"><a xlink:href="classtvm_1_1script_1_1printer_1_1OperationDoc.html" target="_top" xlink:title="Reference type of OperationDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1472,-39 1472,-129 1638,-129 1638,-39 1472,-39"/>
-<text text-anchor="start" x="1480" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1555" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::OperationDoc</text>
-<polyline fill="none" stroke="#000000" points="1472,-99 1638,-99 "/>
-<text text-anchor="middle" x="1555" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1472,-80 1638,-80 "/>
-<text text-anchor="start" x="1480" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ OperationDoc()</text>
-<text text-anchor="start" x="1480" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1480" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1472,-33.5 1472,-123.5 1638,-123.5 1638,-33.5 1472,-33.5"/>
+<text text-anchor="start" x="1480" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1555" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::OperationDoc</text>
+<polyline fill="none" stroke="#000000" points="1472,-93.5 1638,-93.5 "/>
+<text text-anchor="middle" x="1555" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1472,-74.5 1638,-74.5 "/>
+<text text-anchor="start" x="1480" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ OperationDoc()</text>
+<text text-anchor="start" x="1480" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1480" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node11 -->
 <g id="edge11" class="edge">
 <title>Node0&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M1003.9693,-246.8679C1139.4596,-233.9224 1383.6697,-206.1399 1463,-168 1482.4926,-158.6285 1500.7947,-143.7611 1515.862,-129.1214"/>
-<polygon fill="none" stroke="#191970" points="1003.6312,-243.3842 994.0059,-247.8119 1004.2915,-250.353 1003.6312,-243.3842"/>
+<path fill="none" stroke="#191970" d="M1004.0821,-235.5007C1139.4209,-222.1053 1383.0941,-193.7775 1463,-157 1480.738,-148.8359 1497.7298,-136.2436 1512.1766,-123.518"/>
+<polygon fill="none" stroke="#191970" points="1003.7393,-232.0174 994.1293,-236.4782 1004.4236,-238.9839 1003.7393,-232.0174"/>
 </g>
 <!-- Node12 -->
 <g id="node13" class="node">
 <title>Node12</title>
 <g id="a_node13"><a xlink:href="classtvm_1_1script_1_1printer_1_1TupleDoc.html" target="_top" xlink:title="Reference type of TupleDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1656,-33.5 1656,-134.5 1822,-134.5 1822,-33.5 1656,-33.5"/>
-<text text-anchor="start" x="1664" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="1739" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TupleDoc</text>
-<polyline fill="none" stroke="#000000" points="1656,-104.5 1822,-104.5 "/>
-<text text-anchor="middle" x="1739" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1656,-85.5 1822,-85.5 "/>
-<text text-anchor="start" x="1664" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TupleDoc()</text>
-<text text-anchor="start" x="1664" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TupleDoc()</text>
-<text text-anchor="start" x="1664" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="1664" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1656,-28 1656,-129 1822,-129 1822,-28 1656,-28"/>
+<text text-anchor="start" x="1664" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="1739" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TupleDoc</text>
+<polyline fill="none" stroke="#000000" points="1656,-99 1822,-99 "/>
+<text text-anchor="middle" x="1739" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1656,-80 1822,-80 "/>
+<text text-anchor="start" x="1664" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TupleDoc()</text>
+<text text-anchor="start" x="1664" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TupleDoc()</text>
+<text text-anchor="start" x="1664" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="1664" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node12 -->
 <g id="edge12" class="edge">
 <title>Node0&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M1004.1473,-251.0748C1175.7335,-242.6885 1534.4909,-219.4382 1647,-168 1664.3097,-160.0862 1680.59,-147.6873 1694.5034,-134.822"/>
-<polygon fill="none" stroke="#191970" points="1003.9392,-247.5806 994.1194,-251.5583 1004.2764,-254.5725 1003.9392,-247.5806"/>
+<path fill="none" stroke="#191970" d="M1004.3176,-239.7052C1175.7681,-230.7136 1533.7151,-206.5098 1647,-157 1662.3914,-150.2734 1677.1475,-140.0849 1690.1624,-129.2551"/>
+<polygon fill="none" stroke="#191970" points="1004.1024,-236.2116 994.297,-240.2245 1004.4648,-243.2022 1004.1024,-236.2116"/>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1script_1_1printer_1_1Doc.html" target="_top" xlink:title="Reference type of DocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="828,-342.5 828,-432.5 994,-432.5 994,-342.5 828,-342.5"/>
-<text text-anchor="middle" x="911" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer::Doc</text>
-<polyline fill="none" stroke="#000000" points="828,-413.5 994,-413.5 "/>
-<text text-anchor="middle" x="911" y="-401.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="828,-394.5 994,-394.5 "/>
-<text text-anchor="start" x="836" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~Doc()</text>
-<text text-anchor="start" x="836" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="836" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="836" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># Doc()</text>
+<polygon fill="#ffffff" stroke="#000000" points="828,-331.5 828,-421.5 994,-421.5 994,-331.5 828,-331.5"/>
+<text text-anchor="middle" x="911" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer::Doc</text>
+<polyline fill="none" stroke="#000000" points="828,-402.5 994,-402.5 "/>
+<text text-anchor="middle" x="911" y="-390.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="828,-383.5 994,-383.5 "/>
+<text text-anchor="start" x="836" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~Doc()</text>
+<text text-anchor="start" x="836" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="836" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="836" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># Doc()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M911,-332.2098C911,-323.5051 911,-314.5409 911,-305.9407"/>
-<polygon fill="none" stroke="#191970" points="907.5001,-332.2716 911,-342.2716 914.5001,-332.2716 907.5001,-332.2716"/>
+<path fill="none" stroke="#191970" d="M911,-321.2098C911,-312.5051 911,-303.5409 911,-294.9407"/>
+<polygon fill="none" stroke="#191970" points="907.5001,-321.2716 911,-331.2716 914.5001,-321.2716 907.5001,-321.2716"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="844,-469.5 844,-702.5 978,-702.5 978,-469.5 844,-469.5"/>
-<text text-anchor="middle" x="911" y="-690.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="844,-683.5 978,-683.5 "/>
-<text text-anchor="start" x="852" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="852" y="-660.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="844,-653.5 978,-653.5 "/>
-<text text-anchor="start" x="852" y="-641.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<polygon fill="#ffffff" stroke="#000000" points="844,-458.5 844,-691.5 978,-691.5 978,-458.5 844,-458.5"/>
+<text text-anchor="middle" x="911" y="-679.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="844,-672.5 978,-672.5 "/>
+<text text-anchor="start" x="852" y="-660.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="852" y="-649.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="844,-642.5 978,-642.5 "/>
 <text text-anchor="start" x="852" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="852" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="852" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="852" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="852" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="852" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="852" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="852" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="852" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="852" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="852" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="852" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="852" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="852" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="852" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<text text-anchor="start" x="852" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="852" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="852" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="852" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="852" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="852" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="852" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="852" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="852" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="852" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="852" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="852" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="852" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="852" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="852" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge2" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M911,-459.1315C911,-449.7956 911,-440.8139 911,-432.5544"/>
-<polygon fill="none" stroke="#191970" points="907.5001,-459.3835 911,-469.3836 914.5001,-459.3836 907.5001,-459.3835"/>
+<path fill="none" stroke="#191970" d="M911,-448.1315C911,-438.7956 911,-429.8139 911,-421.5544"/>
+<polygon fill="none" stroke="#191970" points="907.5001,-448.3835 911,-458.3836 914.5001,-448.3836 907.5001,-448.3835"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc-members.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc-members.html
index 5f4021e954..5433d54845 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc-members.html
@@ -71,38 +71,37 @@ $(function() {
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3e9b0901b6e01257b060a45e159cc37e">_type_is_nullable</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a2d76fa1fb628ff276a284e61123589c5">as</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad2304f112248c0076f6cc12f3ebe69da">Boolean</a>(bool v)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ab0a0ccbeb39cc510cb3bf37acdc2e0bc">Boolean</a>(bool v, const Optional&lt; ObjectPath &gt; &amp;p)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa5c355fbb7d2f7402ee360dba8a52cdd">ContainerType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ac261cdb80487fb29ac42b28678f8cbef">data_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a157fb6ccc8acfcdd964482a502521ebd">DataType</a>(const DLDataType &amp;v)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#adf4d8759e01746a0da3b03146b7baf00">DataType</a>(const runtime::DataType &amp;v, const Optional&lt; ObjectPath &gt; &amp;p)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a17d8d5ad92691f9e18e3e0ae8ef69e4f">defined</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html#accbc6699956d0166032a97e80ad3880d">Doc</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html">tvm::script::printer::Doc</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#acd04bb22a6861e9952c344ee8547411f">DowncastNoCheck</a>(ObjectRef ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html#ac5eb04f9e694f614cfacda6ac80c6e33">ExprDoc</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">tvm::script::printer::ExprDoc</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a22e5bb9d64dbc773bb9263b70882239e">FFIClearAfterMove</a>(ObjectRef *ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aad7a2c38982b0a9d5f874eaf3e4676ba">Float</a>(double v)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a1a90c18a43f22d5c2eefe5be0c48b91b">Float</a>(double v, const Optional&lt; ObjectPath &gt; &amp;p)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aadbc0886ffa80162ff31eefd0431ba09">get</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aed593996e4076632450de8fde776707c">GetDataPtr</a>(const ObjectRef &amp;ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aea849aacf9a86be23f9d3e51d7ed77b0">Int</a>(int64_t v)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a6d030ebf49c3993e09da67aa6ebfb8ba">LiteralDoc</a>(ObjectRef value)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">explicit</span><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a3d925b6bd457b43db5c9990a5faf9ad6">LiteralDoc</a>(ObjectRef value, ObjectPath object_path)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad7b614de314ca220044ccfd78e4a9640">None</a>()</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa07c1f6d66a438ea950637d13ed09471">ObjectRef</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a6a7dd7404edf1c26f8dbd9bd92d03a02">ObjectRef</a>(ObjectPtr&lt; Object &gt; data)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</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_1runtime_1_1ObjectRef.html#aa1bd13a7185cb4b2b6bdde49416e8aa4">operator!=</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3deeeac5827a88f375b8c6ae1039c219">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4744bf4a1b48f202d41b51dc5e08e6ee">operator&lt;</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#affdf1b8cdb36e140de7b3ad7064e4617">operator==</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html#ae1f6796aeb37346a3962d70cf1c0a5b7">operator[]</a>(Array&lt; Doc &gt; indices) const</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">tvm::script::printer::ExprDoc</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a789d7d73bd4d94612fa2a84c16b26b89">Str</a>(const String &amp;v)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a7fc733a1cdefbf3acf6fe26e934ba3ad">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(LiteralDoc, ExprDoc, LiteralDocNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html#a38f76803f62b2a231ce114f9ee3cf1ec">tvm::script::printer::ExprDoc::TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(ExprDoc, Doc, ExprDocNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">tvm::script::printer::ExprDoc</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html#a7cfddf03d0abda9b7c47ffae0e16f2ac">tvm::script::printer::Doc::TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(Doc, ObjectRef, DocNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html">tvm::script::printer::Doc</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html#a3a7365774bd87b76770627d544888ccc">~Doc</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html">tvm::script::printer::Doc</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a3b88804f3208f2a7abc8641ee978776e">Int</a>(int64_t v, const Optional&lt; ObjectPath &gt; &amp;p)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a964b5256fc9ed898b54bfa9b8f4c8de1">LiteralDoc</a>(ObjectRef value, const Optional&lt; ObjectPath &gt; &amp;object_path)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">explicit</span><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aec73b3eb7dc65adb78911fb334f1ae85">None</a>(const Optional&lt; ObjectPath &gt; &amp;p)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa07c1f6d66a438ea950637d13ed09471">ObjectRef</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a6a7dd7404edf1c26f8dbd9bd92d03a02">ObjectRef</a>(ObjectPtr&lt; Object &gt; data)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</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_1runtime_1_1ObjectRef.html#aa1bd13a7185cb4b2b6bdde49416e8aa4">operator!=</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3deeeac5827a88f375b8c6ae1039c219">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4744bf4a1b48f202d41b51dc5e08e6ee">operator&lt;</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#affdf1b8cdb36e140de7b3ad7064e4617">operator==</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html#ae1f6796aeb37346a3962d70cf1c0a5b7">operator[]</a>(Array&lt; Doc &gt; indices) const</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">tvm::script::printer::ExprDoc</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a8423a0ede5a29b24f6db5d9f6574a200">Str</a>(const String &amp;v, const Optional&lt; ObjectPath &gt; &amp;p)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a7fc733a1cdefbf3acf6fe26e934ba3ad">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(LiteralDoc, ExprDoc, LiteralDocNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html#a38f76803f62b2a231ce114f9ee3cf1ec">tvm::script::printer::ExprDoc::TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(ExprDoc, Doc, ExprDocNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">tvm::script::printer::ExprDoc</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html#a7cfddf03d0abda9b7c47ffae0e16f2ac">tvm::script::printer::Doc::TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(Doc, ObjectRef, DocNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html">tvm::script::printer::Doc</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html#a3a7365774bd87b76770627d544888ccc">~Doc</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html">tvm::script::printer::Doc</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc.html
index eb2400ba25..39acac34d3 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc.html
@@ -79,13 +79,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::script::printer::LiteralDoc:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1printer_1_1LiteralDoc__inherit__graph.svg" width="232" height="948"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1printer_1_1LiteralDoc__inherit__graph.svg" width="232" height="934"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::script::printer::LiteralDoc:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1printer_1_1LiteralDoc__coll__graph.svg" width="232" height="1239"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1printer_1_1LiteralDoc__coll__graph.svg" width="232" height="1224"><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">
@@ -140,31 +140,29 @@ Public Member Functions</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
-<tr class="memitem:ad7b614de314ca220044ccfd78e4a9640"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad7b614de314ca220044ccfd78e4a9640">None</a> ()</td></tr>
-<tr class="memdesc:ad7b614de314ca220044ccfd78e4a9640"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent None/null/empty value.  <a href="#ad7b614de314ca220044ccfd78e4a9640">More...</a><br /></td></tr>
-<tr class="separator:ad7b614de314ca220044ccfd78e4a9640"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aea849aacf9a86be23f9d3e51d7ed77b0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aea849aacf9a86be23f9d3e51d7ed77b0">Int</a> (int64_t v)</td></tr>
-<tr class="memdesc:aea849aacf9a86be23f9d3e51d7ed77b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent integer.  <a href="#aea849aacf9a86be23f9d3e51d7ed77b0">More...</a><br /></td></tr>
-<tr class="separator:aea849aacf9a86be23f9d3e51d7ed77b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad2304f112248c0076f6cc12f3ebe69da"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad2304f112248c0076f6cc12f3ebe69da">Boolean</a> (bool v)</td></tr>
-<tr class="memdesc:ad2304f112248c0076f6cc12f3ebe69da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent boolean.  <a href="#ad2304f112248c0076f6cc12f3ebe69da">More...</a><br /></td></tr>
-<tr class="separator:ad2304f112248c0076f6cc12f3ebe69da"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aad7a2c38982b0a9d5f874eaf3e4676ba"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aad7a2c38982b0a9d5f874eaf3e4676ba">Float</a> (double v)</td></tr>
-<tr class="memdesc:aad7a2c38982b0a9d5f874eaf3e4676ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent float.  <a href="#aad7a2c38982b0a9d5f874eaf3e4676ba">More...</a><br /></td></tr>
-<tr class="separator:aad7a2c38982b0a9d5f874eaf3e4676ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a789d7d73bd4d94612fa2a84c16b26b89"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a789d7d73bd4d94612fa2a84c16b26b89">Str</a> (const <a class="el" href="classtvm_1_1runtime_1_1String.html">String</a> &amp;v)</td></tr>
-<tr class="memdesc:a789d7d73bd4d94612fa2a84c16b26b89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent string.  <a href="#a789d7d73bd4d94612fa2a84c16b26b89">More...</a><br /></td></tr>
-<tr class="separator:a789d7d73bd4d94612fa2a84c16b26b89"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a157fb6ccc8acfcdd964482a502521ebd"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a157fb6ccc8acfcdd964482a502521ebd">DataType</a> (const DLDataType &amp;v)</td></tr>
-<tr class="memdesc:a157fb6ccc8acfcdd964482a502521ebd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent string.  <a href="#a157fb6ccc8acfcdd964482a502521ebd">More...</a><br /></td></tr>
-<tr class="separator:a157fb6ccc8acfcdd964482a502521ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec73b3eb7dc65adb78911fb334f1ae85"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aec73b3eb7dc65adb78911fb334f1ae85">None</a> (const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectPath.html"> [...]
+<tr class="memdesc:aec73b3eb7dc65adb78911fb334f1ae85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent None/null/empty value.  <a href="#aec73b3eb7dc65adb78911fb334f1ae85">More...</a><br /></td></tr>
+<tr class="separator:aec73b3eb7dc65adb78911fb334f1ae85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b88804f3208f2a7abc8641ee978776e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a3b88804f3208f2a7abc8641ee978776e">Int</a> (int64_t v, const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectP [...]
+<tr class="memdesc:a3b88804f3208f2a7abc8641ee978776e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent integer.  <a href="#a3b88804f3208f2a7abc8641ee978776e">More...</a><br /></td></tr>
+<tr class="separator:a3b88804f3208f2a7abc8641ee978776e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0a0ccbeb39cc510cb3bf37acdc2e0bc"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ab0a0ccbeb39cc510cb3bf37acdc2e0bc">Boolean</a> (bool v, const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1Object [...]
+<tr class="memdesc:ab0a0ccbeb39cc510cb3bf37acdc2e0bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent boolean.  <a href="#ab0a0ccbeb39cc510cb3bf37acdc2e0bc">More...</a><br /></td></tr>
+<tr class="separator:ab0a0ccbeb39cc510cb3bf37acdc2e0bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a90c18a43f22d5c2eefe5be0c48b91b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a1a90c18a43f22d5c2eefe5be0c48b91b">Float</a> (double v, const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1Object [...]
+<tr class="memdesc:a1a90c18a43f22d5c2eefe5be0c48b91b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent float.  <a href="#a1a90c18a43f22d5c2eefe5be0c48b91b">More...</a><br /></td></tr>
+<tr class="separator:a1a90c18a43f22d5c2eefe5be0c48b91b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8423a0ede5a29b24f6db5d9f6574a200"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a8423a0ede5a29b24f6db5d9f6574a200">Str</a> (const <a class="el" href="classtvm_1_1runtime_1_1String.html">String</a> &amp;v, const <a class="el" href="classtvm_1_1runtime_1_1O [...]
+<tr class="memdesc:a8423a0ede5a29b24f6db5d9f6574a200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent string.  <a href="#a8423a0ede5a29b24f6db5d9f6574a200">More...</a><br /></td></tr>
+<tr class="separator:a8423a0ede5a29b24f6db5d9f6574a200"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf4d8759e01746a0da3b03146b7baf00"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#adf4d8759e01746a0da3b03146b7baf00">DataType</a> (const <a class="el" href="classtvm_1_1runtime_1_1DataType.html">runtime::DataType</a> &amp;v, const <a class="el" href="classt [...]
+<tr class="memdesc:adf4d8759e01746a0da3b03146b7baf00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent string.  <a href="#adf4d8759e01746a0da3b03146b7baf00">More...</a><br /></td></tr>
+<tr class="separator:adf4d8759e01746a0da3b03146b7baf00"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
 Protected Member Functions</h2></td></tr>
-<tr class="memitem:a6d030ebf49c3993e09da67aa6ebfb8ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a6d030ebf49c3993e09da67aa6ebfb8ba">LiteralDoc</a> (<a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> value)</td></tr>
-<tr class="separator:a6d030ebf49c3993e09da67aa6ebfb8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d925b6bd457b43db5c9990a5faf9ad6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a3d925b6bd457b43db5c9990a5faf9ad6">LiteralDoc</a> (<a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> value, <a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> object_path)</td></tr>
-<tr class="separator:a3d925b6bd457b43db5c9990a5faf9ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a964b5256fc9ed898b54bfa9b8f4c8de1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a964b5256fc9ed898b54bfa9b8f4c8de1">LiteralDoc</a> (<a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> value, const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectPath.html">Objec [...]
+<tr class="separator:a964b5256fc9ed898b54bfa9b8f4c8de1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_methods_classtvm_1_1script_1_1printer_1_1ExprDoc"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1printer_1_1ExprDoc')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">tvm::script::printer::ExprDoc</a></td></tr>
 <tr class="memitem:ac5eb04f9e694f614cfacda6ac80c6e33 inherit pro_methods_classtvm_1_1script_1_1printer_1_1ExprDoc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html#ac5eb04f9e694f614cfacda6ac80c6e33">ExprDoc</a> ()=default</td></tr>
 <tr class="separator:ac5eb04f9e694f614cfacda6ac80c6e33 inherit pro_methods_classtvm_1_1script_1_1printer_1_1ExprDoc"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -205,34 +203,8 @@ Additional Inherited Members</h2></td></tr>
 <div class="textblock"><p>Reference type of <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html" title="Doc that represents literal value. ">LiteralDocNode</a>. </p>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html" title="Doc that represents literal value. ">LiteralDocNode</a> </dd></dl>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a6d030ebf49c3993e09da67aa6ebfb8ba"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6d030ebf49c3993e09da67aa6ebfb8ba">&#9670;&nbsp;</a></span>LiteralDoc() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::script::printer::LiteralDoc::LiteralDoc </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a>&#160;</td>
-          <td class="paramname"><em>value</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">explicit</span><span class="mlabel">protected</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a3d925b6bd457b43db5c9990a5faf9ad6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3d925b6bd457b43db5c9990a5faf9ad6">&#9670;&nbsp;</a></span>LiteralDoc() <span class="overload">[2/2]</span></h2>
+<a id="a964b5256fc9ed898b54bfa9b8f4c8de1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a964b5256fc9ed898b54bfa9b8f4c8de1">&#9670;&nbsp;</a></span>LiteralDoc()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -249,7 +221,7 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a>&#160;</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> &gt; &amp;&#160;</td>
           <td class="paramname"><em>object_path</em>&#160;</td>
         </tr>
         <tr>
@@ -260,7 +232,7 @@ Additional Inherited Members</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+<span class="mlabels"><span class="mlabel">explicit</span><span class="mlabel">protected</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -268,8 +240,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a id="ad2304f112248c0076f6cc12f3ebe69da"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad2304f112248c0076f6cc12f3ebe69da">&#9670;&nbsp;</a></span>Boolean()</h2>
+<a id="ab0a0ccbeb39cc510cb3bf37acdc2e0bc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab0a0ccbeb39cc510cb3bf37acdc2e0bc">&#9670;&nbsp;</a></span>Boolean()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -281,8 +253,18 @@ Additional Inherited Members</h2></td></tr>
           <td class="memname">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a> tvm::script::printer::LiteralDoc::Boolean </td>
           <td>(</td>
           <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>v</em></td><td>)</td>
+          <td class="paramname"><em>v</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>p</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -296,14 +278,15 @@ Additional Inherited Members</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">v</td><td>The boolean value. </td></tr>
+    <tr><td class="paramname">p</td><td>The object path </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="a157fb6ccc8acfcdd964482a502521ebd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a157fb6ccc8acfcdd964482a502521ebd">&#9670;&nbsp;</a></span>DataType()</h2>
+<a id="adf4d8759e01746a0da3b03146b7baf00"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adf4d8759e01746a0da3b03146b7baf00">&#9670;&nbsp;</a></span>DataType()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -314,9 +297,19 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="memname">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a> tvm::script::printer::LiteralDoc::DataType </td>
           <td>(</td>
-          <td class="paramtype">const DLDataType &amp;&#160;</td>
-          <td class="paramname"><em>v</em></td><td>)</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1DataType.html">runtime::DataType</a> &amp;&#160;</td>
+          <td class="paramname"><em>v</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>p</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -330,14 +323,15 @@ Additional Inherited Members</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">v</td><td>The string value. </td></tr>
+    <tr><td class="paramname">p</td><td>The object path </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="aad7a2c38982b0a9d5f874eaf3e4676ba"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aad7a2c38982b0a9d5f874eaf3e4676ba">&#9670;&nbsp;</a></span>Float()</h2>
+<a id="a1a90c18a43f22d5c2eefe5be0c48b91b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1a90c18a43f22d5c2eefe5be0c48b91b">&#9670;&nbsp;</a></span>Float()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -349,8 +343,18 @@ Additional Inherited Members</h2></td></tr>
           <td class="memname">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a> tvm::script::printer::LiteralDoc::Float </td>
           <td>(</td>
           <td class="paramtype">double&#160;</td>
-          <td class="paramname"><em>v</em></td><td>)</td>
+          <td class="paramname"><em>v</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>p</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -364,14 +368,15 @@ Additional Inherited Members</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">v</td><td>The float value. </td></tr>
+    <tr><td class="paramname">p</td><td>The object path </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="aea849aacf9a86be23f9d3e51d7ed77b0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aea849aacf9a86be23f9d3e51d7ed77b0">&#9670;&nbsp;</a></span>Int()</h2>
+<a id="a3b88804f3208f2a7abc8641ee978776e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b88804f3208f2a7abc8641ee978776e">&#9670;&nbsp;</a></span>Int()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -383,8 +388,18 @@ Additional Inherited Members</h2></td></tr>
           <td class="memname">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a> tvm::script::printer::LiteralDoc::Int </td>
           <td>(</td>
           <td class="paramtype">int64_t&#160;</td>
-          <td class="paramname"><em>v</em></td><td>)</td>
+          <td class="paramname"><em>v</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>p</em>&#160;</td>
+        </tr>
+        <tr>
           <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -398,14 +413,15 @@ Additional Inherited Members</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">v</td><td>The integer value. </td></tr>
+    <tr><td class="paramname">p</td><td>The object path </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="ad7b614de314ca220044ccfd78e4a9640"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad7b614de314ca220044ccfd78e4a9640">&#9670;&nbsp;</a></span>None()</h2>
+<a id="aec73b3eb7dc65adb78911fb334f1ae85"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aec73b3eb7dc65adb78911fb334f1ae85">&#9670;&nbsp;</a></span>None()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -416,7 +432,8 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="memname">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a> tvm::script::printer::LiteralDoc::None </td>
           <td>(</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>p</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
@@ -428,11 +445,17 @@ Additional Inherited Members</h2></td></tr>
 </div><div class="memdoc">
 
 <p>Create a <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html" title="Reference type of LiteralDocNode. ">LiteralDoc</a> to represent None/null/empty value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">p</td><td>The object path </td></tr>
+  </table>
+  </dd>
+</dl>
 
 </div>
 </div>
-<a id="a789d7d73bd4d94612fa2a84c16b26b89"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a789d7d73bd4d94612fa2a84c16b26b89">&#9670;&nbsp;</a></span>Str()</h2>
+<a id="a8423a0ede5a29b24f6db5d9f6574a200"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8423a0ede5a29b24f6db5d9f6574a200">&#9670;&nbsp;</a></span>Str()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -444,8 +467,18 @@ Additional Inherited Members</h2></td></tr>
           <td class="memname">static <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a> tvm::script::printer::LiteralDoc::Str </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1String.html">String</a> &amp;&#160;</td>
-          <td class="paramname"><em>v</em></td><td>)</td>
+          <td class="paramname"><em>v</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>p</em>&#160;</td>
+        </tr>
+        <tr>
           <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -459,6 +492,7 @@ Additional Inherited Members</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">v</td><td>The string value. </td></tr>
+    <tr><td class="paramname">p</td><td>The object path </td></tr>
   </table>
   </dd>
 </dl>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc__coll__graph.svg
index b665a4ce52..15f79fda79 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc__coll__graph.svg
@@ -4,140 +4,139 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::script::printer::LiteralDoc Pages: 1 -->
-<svg width="174pt" height="929pt"
- viewBox="0.00 0.00 174.00 929.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 925)">
+<svg width="174pt" height="918pt"
+ viewBox="0.00 0.00 174.00 918.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 914)">
 <title>tvm::script::printer::LiteralDoc</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-925 170,-925 170,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-914 170,-914 170,4 -4,4"/>
 <!-- Node4 -->
 <g id="node1" class="node">
 <title>Node4</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-167.5 166,-167.5 166,-.5 0,-.5"/>
-<text text-anchor="start" x="8" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="83" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LiteralDoc</text>
-<polyline fill="none" stroke="#000000" points="0,-137.5 166,-137.5 "/>
-<text text-anchor="middle" x="83" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-118.5 166,-118.5 "/>
-<text text-anchor="start" x="8" y="-106.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ None()</text>
-<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
-<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Boolean()</text>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Str()</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># LiteralDoc()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-156.5 166,-156.5 166,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="83" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LiteralDoc</text>
+<polyline fill="none" stroke="#000000" points="0,-126.5 166,-126.5 "/>
+<text text-anchor="middle" x="83" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-107.5 166,-107.5 "/>
+<text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ None()</text>
+<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Boolean()</text>
+<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Str()</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># LiteralDoc()</text>
 </g>
 <!-- Node5 -->
 <g id="node2" class="node">
 <title>Node5</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1script_1_1printer_1_1ExprDoc.html" target="_top" xlink:title="Reference type of ExprDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-205.5 0,-306.5 166,-306.5 166,-205.5 0,-205.5"/>
-<text text-anchor="start" x="8" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="83" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprDoc</text>
-<polyline fill="none" stroke="#000000" points="0,-276.5 166,-276.5 "/>
-<text text-anchor="middle" x="83" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-257.5 166,-257.5 "/>
-<text text-anchor="start" x="8" y="-245.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator[]()</text>
-<text text-anchor="start" x="8" y="-234.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="8" y="-223.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="8" y="-212.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ExprDoc()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-194.5 0,-295.5 166,-295.5 166,-194.5 0,-194.5"/>
+<text text-anchor="start" x="8" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="83" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprDoc</text>
+<polyline fill="none" stroke="#000000" points="0,-265.5 166,-265.5 "/>
+<text text-anchor="middle" x="83" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-246.5 166,-246.5 "/>
+<text text-anchor="start" x="8" y="-234.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator[]()</text>
+<text text-anchor="start" x="8" y="-223.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="8" y="-212.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-201.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ExprDoc()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge1" class="edge">
 <title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M83,-195.0585C83,-186.137 83,-176.8213 83,-167.5438"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-195.3246 83,-205.3246 86.5001,-195.3246 79.5001,-195.3246"/>
+<path fill="none" stroke="#191970" d="M83,-183.9143C83,-175.039 83,-165.8013 83,-156.6463"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-184.1398 83,-194.1398 86.5001,-184.1398 79.5001,-184.1398"/>
 </g>
 <!-- Node6 -->
 <g id="node3" class="node">
 <title>Node6</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1script_1_1printer_1_1Doc.html" target="_top" xlink:title="Reference type of DocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-344.5 0,-434.5 166,-434.5 166,-344.5 0,-344.5"/>
-<text text-anchor="middle" x="83" y="-422.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer::Doc</text>
-<polyline fill="none" stroke="#000000" points="0,-415.5 166,-415.5 "/>
-<text text-anchor="middle" x="83" y="-403.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-396.5 166,-396.5 "/>
-<text text-anchor="start" x="8" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~Doc()</text>
-<text text-anchor="start" x="8" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="8" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="8" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># Doc()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-333.5 0,-423.5 166,-423.5 166,-333.5 0,-333.5"/>
+<text text-anchor="middle" x="83" y="-411.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer::Doc</text>
+<polyline fill="none" stroke="#000000" points="0,-404.5 166,-404.5 "/>
+<text text-anchor="middle" x="83" y="-392.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-385.5 166,-385.5 "/>
+<text text-anchor="start" x="8" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~Doc()</text>
+<text text-anchor="start" x="8" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="8" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># Doc()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge2" class="edge">
 <title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M83,-334.175C83,-325.0608 83,-315.6537 83,-306.661"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-334.303 83,-344.303 86.5001,-334.303 79.5001,-334.303"/>
+<path fill="none" stroke="#191970" d="M83,-323.175C83,-314.0608 83,-304.6537 83,-295.661"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-323.303 83,-333.303 86.5001,-323.303 79.5001,-323.303"/>
 </g>
 <!-- Node7 -->
 <g id="node4" class="node">
 <title>Node7</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="16,-472.5 16,-694.5 150,-694.5 150,-472.5 16,-472.5"/>
-<text text-anchor="middle" x="83" y="-682.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="16,-675.5 150,-675.5 "/>
-<text text-anchor="start" x="24" y="-663.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="16,-656.5 150,-656.5 "/>
-<text text-anchor="start" x="24" y="-644.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<polygon fill="#ffffff" stroke="#000000" points="16,-461.5 16,-683.5 150,-683.5 150,-461.5 16,-461.5"/>
+<text text-anchor="middle" x="83" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="16,-664.5 150,-664.5 "/>
+<text text-anchor="start" x="24" y="-652.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="16,-645.5 150,-645.5 "/>
 <text text-anchor="start" x="24" y="-633.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="24" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="24" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="24" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="24" y="-589.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="24" y="-578.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="24" y="-567.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="24" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="24" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="24" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="24" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="24" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="24" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="24" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="24" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<text text-anchor="start" x="24" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="24" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="24" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="24" y="-589.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="24" y="-578.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="24" y="-567.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="24" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="24" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="24" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="24" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="24" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="24" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="24" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="24" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="24" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node6 -->
 <g id="edge3" class="edge">
 <title>Node7&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M83,-462.21C83,-452.5946 83,-443.3195 83,-434.7969"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-462.3362 83,-472.3362 86.5001,-462.3362 79.5001,-462.3362"/>
+<path fill="none" stroke="#191970" d="M83,-451.21C83,-441.5946 83,-432.3195 83,-423.7969"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-451.3362 83,-461.3362 86.5001,-451.3362 79.5001,-451.3362"/>
 </g>
 <!-- Node8 -->
 <g id="node5" class="node">
 <title>Node8</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="13,-742.5 13,-920.5 153,-920.5 153,-742.5 13,-742.5"/>
-<text text-anchor="start" x="21" y="-908.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="83" y="-897.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="13,-890.5 153,-890.5 "/>
-<text text-anchor="middle" x="83" y="-878.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="13,-871.5 153,-871.5 "/>
-<text text-anchor="start" x="21" y="-859.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="13,-731.5 13,-909.5 153,-909.5 153,-731.5 13,-731.5"/>
+<text text-anchor="start" x="21" y="-897.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="83" y="-886.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="13,-879.5 153,-879.5 "/>
+<text text-anchor="middle" x="83" y="-867.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="13,-860.5 153,-860.5 "/>
 <text text-anchor="start" x="21" y="-848.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="21" y="-837.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="21" y="-826.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="21" y="-815.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="21" y="-804.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="21" y="-793.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="21" y="-782.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="21" y="-771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="21" y="-760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="21" y="-749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<text text-anchor="start" x="21" y="-793.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="21" y="-782.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="21" y="-771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="21" y="-760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="21" y="-749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="21" y="-738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node8&#45;&gt;Node7 -->
 <g id="edge4" class="edge">
 <title>Node8&#45;&gt;Node7</title>
-<path fill="none" stroke="#404040" d="M83,-742.3167C83,-730.8765 83,-719.0062 83,-707.1402"/>
-<polygon fill="none" stroke="#404040" points="83.0001,-706.7944 79,-700.7944 83,-694.7944 87,-700.7943 83.0001,-706.7944"/>
-<text text-anchor="middle" x="102.5" y="-716" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M83,-731.3167C83,-719.8765 83,-708.0062 83,-696.1402"/>
+<polygon fill="none" stroke="#404040" points="83.0001,-695.7944 79,-689.7944 83,-683.7944 87,-689.7943 83.0001,-695.7944"/>
+<text text-anchor="middle" x="102.5" y="-705" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc__inherit__graph.svg
index 98d724ec14..be84ac626d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1printer_1_1LiteralDoc__inherit__graph.svg
@@ -4,110 +4,109 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::script::printer::LiteralDoc Pages: 1 -->
-<svg width="174pt" height="711pt"
- viewBox="0.00 0.00 174.00 711.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 707)">
+<svg width="174pt" height="700pt"
+ viewBox="0.00 0.00 174.00 700.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 696)">
 <title>tvm::script::printer::LiteralDoc</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-707 170,-707 170,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-696 170,-696 170,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-167.5 166,-167.5 166,-.5 0,-.5"/>
-<text text-anchor="start" x="8" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="83" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LiteralDoc</text>
-<polyline fill="none" stroke="#000000" points="0,-137.5 166,-137.5 "/>
-<text text-anchor="middle" x="83" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-118.5 166,-118.5 "/>
-<text text-anchor="start" x="8" y="-106.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ None()</text>
-<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
-<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Boolean()</text>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Str()</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># LiteralDoc()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-156.5 166,-156.5 166,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="83" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LiteralDoc</text>
+<polyline fill="none" stroke="#000000" points="0,-126.5 166,-126.5 "/>
+<text text-anchor="middle" x="83" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-107.5 166,-107.5 "/>
+<text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ None()</text>
+<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Boolean()</text>
+<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Str()</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># LiteralDoc()</text>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1script_1_1printer_1_1ExprDoc.html" target="_top" xlink:title="Reference type of ExprDocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-204.5 0,-305.5 166,-305.5 166,-204.5 0,-204.5"/>
-<text text-anchor="start" x="8" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
-<text text-anchor="middle" x="83" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprDoc</text>
-<polyline fill="none" stroke="#000000" points="0,-275.5 166,-275.5 "/>
-<text text-anchor="middle" x="83" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-256.5 166,-256.5 "/>
-<text text-anchor="start" x="8" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator[]()</text>
-<text text-anchor="start" x="8" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="8" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="8" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ExprDoc()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-193.5 0,-294.5 166,-294.5 166,-193.5 0,-193.5"/>
+<text text-anchor="start" x="8" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer</text>
+<text text-anchor="middle" x="83" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExprDoc</text>
+<polyline fill="none" stroke="#000000" points="0,-264.5 166,-264.5 "/>
+<text text-anchor="middle" x="83" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-245.5 166,-245.5 "/>
+<text text-anchor="start" x="8" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator[]()</text>
+<text text-anchor="start" x="8" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="8" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ExprDoc()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M83,-193.941C83,-185.4 83,-176.5037 83,-167.6342"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-194.1573 83,-204.1573 86.5001,-194.1574 79.5001,-194.1573"/>
+<path fill="none" stroke="#191970" d="M83,-183.1651C83,-174.5768 83,-165.649 83,-156.7897"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-183.4452 83,-193.4453 86.5001,-183.4453 79.5001,-183.4452"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1script_1_1printer_1_1Doc.html" target="_top" xlink:title="Reference type of DocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-342.5 0,-432.5 166,-432.5 166,-342.5 0,-342.5"/>
-<text text-anchor="middle" x="83" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer::Doc</text>
-<polyline fill="none" stroke="#000000" points="0,-413.5 166,-413.5 "/>
-<text text-anchor="middle" x="83" y="-401.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-394.5 166,-394.5 "/>
-<text text-anchor="start" x="8" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~Doc()</text>
-<text text-anchor="start" x="8" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="8" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="8" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># Doc()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-331.5 0,-421.5 166,-421.5 166,-331.5 0,-331.5"/>
+<text text-anchor="middle" x="83" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::printer::Doc</text>
+<polyline fill="none" stroke="#000000" points="0,-402.5 166,-402.5 "/>
+<text text-anchor="middle" x="83" y="-390.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-383.5 166,-383.5 "/>
+<text text-anchor="start" x="8" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~Doc()</text>
+<text text-anchor="start" x="8" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="8" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># Doc()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge2" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M83,-332.2098C83,-323.5051 83,-314.5409 83,-305.9407"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-332.2716 83,-342.2716 86.5001,-332.2716 79.5001,-332.2716"/>
+<path fill="none" stroke="#191970" d="M83,-321.2098C83,-312.5051 83,-303.5409 83,-294.9407"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-321.2716 83,-331.2716 86.5001,-321.2716 79.5001,-321.2716"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="16,-469.5 16,-702.5 150,-702.5 150,-469.5 16,-469.5"/>
-<text text-anchor="middle" x="83" y="-690.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="16,-683.5 150,-683.5 "/>
-<text text-anchor="start" x="24" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="24" y="-660.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="16,-653.5 150,-653.5 "/>
-<text text-anchor="start" x="24" y="-641.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<polygon fill="#ffffff" stroke="#000000" points="16,-458.5 16,-691.5 150,-691.5 150,-458.5 16,-458.5"/>
+<text text-anchor="middle" x="83" y="-679.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="16,-672.5 150,-672.5 "/>
+<text text-anchor="start" x="24" y="-660.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="24" y="-649.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="16,-642.5 150,-642.5 "/>
 <text text-anchor="start" x="24" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="24" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="24" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="24" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="24" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="24" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="24" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="24" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="24" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="24" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="24" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="24" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="24" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="24" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="24" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<text text-anchor="start" x="24" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="24" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="24" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="24" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="24" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="24" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="24" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="24" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="24" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="24" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="24" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="24" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="24" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="24" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="24" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge3" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M83,-459.1315C83,-449.7956 83,-440.8139 83,-432.5544"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-459.3835 83,-469.3836 86.5001,-459.3836 79.5001,-459.3835"/>
+<path fill="none" stroke="#191970" d="M83,-448.1315C83,-438.7956 83,-429.8139 83,-421.5544"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-448.3835 83,-458.3836 86.5001,-448.3836 79.5001,-448.3835"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/doc_8h.html b/docs/reference/api/doxygen/doc_8h.html
index bbda5eafe0..561e75424c 100644
--- a/docs/reference/api/doxygen/doc_8h.html
+++ b/docs/reference/api/doxygen/doc_8h.html
@@ -72,10 +72,11 @@ $(function() {
 <div class="textblock"><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="node_8h_source.html">tvm/node/node.h</a>&gt;</code><br />
 <code>#include &lt;<a class="el" href="data__type_8h_source.html">tvm/runtime/data_type.h</a>&gt;</code><br />
+<code>#include &lt;string&gt;</code><br />
 </div><div class="textblock"><div class="dynheader">
 Include dependency graph for doc.h:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="doc_8h__incl.svg" width="4310" height="1082"><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="doc_8h__incl.svg" width="4360" height="1082"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 </div><div class="textblock"><div class="dynheader">
diff --git a/docs/reference/api/doxygen/doc_8h__incl.svg b/docs/reference/api/doxygen/doc_8h__incl.svg
index 9fee404e43..8e8e4f05f4 100644
--- a/docs/reference/api/doxygen/doc_8h__incl.svg
+++ b/docs/reference/api/doxygen/doc_8h__incl.svg
@@ -4,1376 +4,1382 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: include/tvm/script/printer/doc.h Pages: 1 -->
-<svg width="3232pt" height="811pt"
- viewBox="0.00 0.00 3232.00 811.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="3270pt" height="811pt"
+ viewBox="0.00 0.00 3270.00 811.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 807)">
 <title>include/tvm/script/printer/doc.h</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-807 3228,-807 3228,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-807 3266,-807 3266,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="3020,-772.5 3020,-802.5 3124,-802.5 3124,-772.5 3020,-772.5"/>
-<text text-anchor="start" x="3028" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/script</text>
-<text text-anchor="middle" x="3072" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/printer/doc.h</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="693,-772.5 693,-802.5 797,-802.5 797,-772.5 693,-772.5"/>
+<text text-anchor="start" x="701" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/script</text>
+<text text-anchor="middle" x="745" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/printer/doc.h</text>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
-<polygon fill="#ffffff" stroke="#000000" points="519.5,-716.5 519.5,-735.5 598.5,-735.5 598.5,-716.5 519.5,-716.5"/>
-<text text-anchor="middle" x="559" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/expr.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1186.5,-716.5 1186.5,-735.5 1265.5,-735.5 1265.5,-716.5 1186.5,-716.5"/>
+<text text-anchor="middle" x="1226" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node0&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M3019.8012,-786.2226C2692.8317,-778.2207 930.2538,-735.0856 609.2001,-727.2285"/>
-<polygon fill="#191970" stroke="#191970" points="608.9053,-723.7204 598.8226,-726.9746 608.7339,-730.7183 608.9053,-723.7204"/>
+<path fill="none" stroke="#191970" d="M797.3911,-780.8013C890.8194,-768.8557 1084.9413,-744.0356 1176.3551,-732.3475"/>
+<polygon fill="#191970" stroke="#191970" points="1176.9796,-735.7963 1186.4549,-731.0562 1176.0918,-728.8528 1176.9796,-735.7963"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="986.5,-548.5 986.5,-567.5 1085.5,-567.5 1085.5,-548.5 986.5,-548.5"/>
-<text text-anchor="middle" x="1036" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/node.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1243.5,-548.5 1243.5,-567.5 1342.5,-567.5 1342.5,-548.5 1243.5,-548.5"/>
+<text text-anchor="middle" x="1293" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/node.h</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node3 -->
 <g id="edge163" class="edge">
 <title>Node0&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M3019.8834,-781.6254C2737.9537,-749.846 1396.901,-598.6811 1096.0125,-564.7647"/>
-<polygon fill="#191970" stroke="#191970" points="1096.0804,-561.2502 1085.7512,-563.608 1095.2962,-568.2062 1096.0804,-561.2502"/>
+<path fill="none" stroke="#191970" d="M780.9558,-772.4419C881.5708,-730.3048 1164.8652,-611.6623 1260.785,-571.4915"/>
+<polygon fill="#191970" stroke="#191970" points="1262.3764,-574.6196 1270.2482,-567.5284 1259.6723,-568.163 1262.3764,-574.6196"/>
+</g>
+<!-- Node14 -->
+<g id="node15" class="node">
+<title>Node14</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="294,-62 294,-81 338,-81 338,-62 294,-62"/>
+<text text-anchor="middle" x="316" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string</text>
+</g>
+<!-- Node0&#45;&gt;Node14 -->
+<g id="edge165" class="edge">
+<title>Node0&#45;&gt;Node14</title>
+<path fill="none" stroke="#191970" d="M692.9092,-784.79C523.645,-775.2983 0,-740.257 0,-670 0,-670 0,-670 0,-189 0,-149.6547 24.8467,-142.5347 59,-123 97.1013,-101.2072 223.7244,-83.0136 283.8152,-75.3704"/>
+<polygon fill="#191970" stroke="#191970" points="284.3983,-78.8248 293.8859,-74.1093 283.5285,-71.8791 284.3983,-78.8248"/>
 </g>
 <!-- Node33 -->
 <g id="node34" class="node">
 <title>Node33</title>
 <g id="a_node34"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
-<polygon fill="#ffffff" stroke="#000000" points="2830,-297 2830,-316 2968,-316 2968,-297 2830,-297"/>
-<text text-anchor="middle" x="2899" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/data_type.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2716,-297 2716,-316 2854,-316 2854,-297 2716,-297"/>
+<text text-anchor="middle" x="2785" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/data_type.h</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node33 -->
 <g id="edge164" class="edge">
 <title>Node0&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M3080.2454,-772.42C3091.4215,-750.5326 3110,-708.3768 3110,-670 3110,-670 3110,-670 3110,-440.5 3110,-369.3423 3023.4292,-334.3643 2961.1913,-318.4123"/>
-<polygon fill="#191970" stroke="#191970" points="2961.9748,-315.0008 2951.4284,-316.0128 2960.304,-321.7985 2961.9748,-315.0008"/>
+<path fill="none" stroke="#191970" d="M797.1097,-786.2283C1137.8281,-777.7475 3034,-727.947 3034,-670 3034,-670 3034,-670 3034,-440.5 3034,-362.0829 2937.0541,-329.3542 2864.1453,-315.8284"/>
+<polygon fill="#191970" stroke="#191970" points="2864.4856,-312.3345 2854.0297,-314.0446 2863.2699,-319.2281 2864.4856,-312.3345"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="ir_2span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
-<polygon fill="#ffffff" stroke="#000000" points="946.5,-604.5 946.5,-623.5 1027.5,-623.5 1027.5,-604.5 946.5,-604.5"/>
-<text text-anchor="middle" x="987" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/span.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1287.5,-604.5 1287.5,-623.5 1368.5,-623.5 1368.5,-604.5 1287.5,-604.5"/>
+<text text-anchor="middle" x="1328" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/span.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge2" class="edge">
 <title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M595.491,-716.4509C673.2726,-696.0969 855.252,-648.4761 940.8941,-626.0651"/>
-<polygon fill="#191970" stroke="#191970" points="941.8132,-629.4425 950.6013,-623.5249 940.041,-622.6706 941.8132,-629.4425"/>
+<path fill="none" stroke="#191970" d="M1255.2142,-716.3822C1273.1513,-709.0632 1295.2476,-697.2693 1309,-680 1319.5499,-666.7521 1324.2419,-647.8887 1326.3286,-633.7186"/>
+<polygon fill="#191970" stroke="#191970" points="1329.8316,-633.8941 1327.5057,-623.5577 1322.8781,-633.0885 1329.8316,-633.8941"/>
 </g>
 <!-- Node1&#45;&gt;Node3 -->
 <g id="edge156" class="edge">
 <title>Node1&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M585.4815,-716.413C621.2076,-703.4994 686.8436,-679.8457 743,-660 834.7435,-627.5778 942.9126,-590.1208 998.6385,-570.8806"/>
-<polygon fill="#191970" stroke="#191970" points="999.7832,-574.1882 1008.094,-567.617 997.4993,-567.5712 999.7832,-574.1882"/>
+<path fill="none" stroke="#191970" d="M1220.5086,-716.4073C1213.7968,-703.3872 1204.1312,-679.5069 1211,-660 1223.403,-624.7764 1253.6791,-592.7383 1273.7664,-574.314"/>
+<polygon fill="#191970" stroke="#191970" points="1276.2759,-576.7659 1281.4156,-567.5012 1271.6202,-571.5386 1276.2759,-576.7659"/>
 </g>
 <!-- Node8 -->
 <g id="node9" class="node">
 <title>Node8</title>
 <g id="a_node9"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
-<polygon fill="#ffffff" stroke="#000000" points="2248.5,-123.5 2248.5,-142.5 2367.5,-142.5 2367.5,-123.5 2248.5,-123.5"/>
-<text text-anchor="middle" x="2308" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/object.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2070.5,-123.5 2070.5,-142.5 2189.5,-142.5 2189.5,-123.5 2070.5,-123.5"/>
+<text text-anchor="middle" x="2130" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/object.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node8 -->
 <g id="edge158" class="edge">
 <title>Node1&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M598.7882,-724.2662C907.9282,-710.4824 2919.6593,-615.015 3132,-456 3168.4604,-428.696 3174.1108,-401.9112 3162,-358 3138.2459,-271.8724 3086.9735,-265.507 3003,-235 2910.9993,-201.5768 2886.3696,-196.1503 2790,-179 2644.8185,-153.1629 2472.2769,-141.1355 2378.0446,-136.1238"/>
-<polygon fill="#191970" stroke="#191970" points="2377.9513,-132.6143 2367.7828,-135.5894 2377.5872,-139.6048 2377.9513,-132.6143"/>
-</g>
-<!-- Node14 -->
-<g id="node15" class="node">
-<title>Node14</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="263,-62 263,-81 307,-81 307,-62 263,-62"/>
-<text text-anchor="middle" x="285" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string</text>
+<path fill="none" stroke="#191970" d="M1265.7817,-724.7392C1389.7146,-720.6339 1779.8358,-706.3696 2102,-680 2326.187,-661.65 2382.1163,-654.3219 2605,-624 2822.7356,-594.3785 2982.7033,-657.6569 3070,-456 3087.3609,-415.896 3092.7249,-399.1449 3078,-358 3047.0599,-271.5459 2997.6483,-268.1056 2912,-235 2825.1018,-201.4113 2801.7443,-195.2014 2710,-179 2527.8738,-146.8379 2309.5799,-137.1509 2200.0154,-134.242"/>
+<polygon fill="#191970" stroke="#191970" points="2199.8425,-130.7365 2189.7567,-133.9811 2199.6645,-137.7343 2199.8425,-130.7365"/>
 </g>
 <!-- Node1&#45;&gt;Node14 -->
 <g id="edge161" class="edge">
 <title>Node1&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M519.3185,-724.0314C424.8628,-719.0037 188.9816,-704.3415 114,-680 58.3154,-661.9229 0,-672.5453 0,-614 0,-614 0,-614 0,-189 0,-150.2415 23.7623,-142.9369 57,-123 89.7883,-103.3326 197.8416,-84.7152 252.5918,-76.2582"/>
-<polygon fill="#191970" stroke="#191970" points="253.4339,-79.6704 262.7931,-74.705 252.3801,-72.7502 253.4339,-79.6704"/>
+<path fill="none" stroke="#191970" d="M1186.4588,-725.2636C1006.4315,-721.7779 268.7547,-706.0136 169,-680 105.9156,-663.5491 38,-679.1941 38,-614 38,-614 38,-614 38,-189 38,-150.2415 61.8303,-143.0498 95,-123 126.6081,-103.8942 230.4689,-85.1486 283.7876,-76.4848"/>
+<polygon fill="#191970" stroke="#191970" points="284.4211,-79.928 293.7411,-74.8893 283.3131,-73.0163 284.4211,-79.928"/>
 </g>
 <!-- Node15 -->
 <g id="node16" class="node">
 <title>Node15</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="741.5,-62 741.5,-81 810.5,-81 810.5,-62 741.5,-62"/>
-<text text-anchor="middle" x="776" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">type_traits</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2573.5,-62 2573.5,-81 2642.5,-81 2642.5,-62 2573.5,-62"/>
+<text text-anchor="middle" x="2608" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">type_traits</text>
 </g>
 <!-- Node1&#45;&gt;Node15 -->
 <g id="edge162" class="edge">
 <title>Node1&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M519.4741,-725.2527C404.1196,-722.0123 76,-704.8134 76,-614 76,-614 76,-614 76,-440.5 76,-143.0401 576.7648,-84.789 731.2003,-73.8973"/>
-<polygon fill="#191970" stroke="#191970" points="731.5442,-77.3821 741.2869,-73.2192 731.0746,-70.3979 731.5442,-77.3821"/>
+<path fill="none" stroke="#191970" d="M1265.9108,-725.9176C1547.5089,-725.083 3224,-715.8374 3224,-614 3224,-614 3224,-614 3224,-373.5 3224,-218.39 3122.837,-185.7805 2981,-123 2923.0423,-97.3465 2738.8746,-81.0079 2652.9511,-74.5916"/>
+<polygon fill="#191970" stroke="#191970" points="2652.9583,-71.0828 2642.7287,-73.8405 2652.4454,-78.0639 2652.9583,-71.0828"/>
 </g>
 <!-- Node24 -->
 <g id="node25" class="node">
 <title>Node24</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="918,-179.5 918,-198.5 982,-198.5 982,-179.5 918,-179.5"/>
-<text text-anchor="middle" x="950" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">algorithm</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="664,-179.5 664,-198.5 728,-198.5 728,-179.5 664,-179.5"/>
+<text text-anchor="middle" x="696" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">algorithm</text>
 </g>
 <!-- Node1&#45;&gt;Node24 -->
 <g id="edge159" class="edge">
 <title>Node1&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M519.3127,-718.5679C442.7197,-703.0866 282,-664.5757 282,-614 282,-614 282,-614 282,-558 282,-467.2626 260.8281,-424.0904 323,-358 364.313,-314.0832 774.4219,-225.5497 908.1076,-197.6352"/>
-<polygon fill="#191970" stroke="#191970" points="908.9055,-201.0443 917.9818,-195.5788 907.4782,-194.1913 908.9055,-201.0443"/>
+<path fill="none" stroke="#191970" d="M1186.37,-725.798C1033.2977,-724.7417 480.7082,-718.3002 310,-680 234.9424,-663.16 150,-690.9236 150,-614 150,-614 150,-614 150,-502 150,-471.8084 557.1194,-260.3727 668.2594,-203.2151"/>
+<polygon fill="#191970" stroke="#191970" points="669.9102,-206.3019 677.2054,-198.6189 666.7112,-200.0756 669.9102,-206.3019"/>
 </g>
 <!-- Node26 -->
 <g id="node27" class="node">
 <title>Node26</title>
 <g id="a_node27"><a xlink:href="string_8h.html" target="_top" xlink:title="Runtime String container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1404,-291.5 1404,-321.5 1530,-321.5 1530,-291.5 1404,-291.5"/>
-<text text-anchor="start" x="1412" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="1467" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/string.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1010,-291.5 1010,-321.5 1136,-321.5 1136,-291.5 1010,-291.5"/>
+<text text-anchor="start" x="1018" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="1073" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/string.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node26 -->
 <g id="edge157" class="edge">
 <title>Node1&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M598.6501,-723.8353C796.4628,-712.6337 1670.1357,-658.2692 1746,-568 1830.5139,-467.4388 1617.7075,-366.1079 1516.7008,-325.2727"/>
-<polygon fill="#191970" stroke="#191970" points="1517.8735,-321.9723 1507.2887,-321.5118 1515.2761,-328.4726 1517.8735,-321.9723"/>
+<path fill="none" stroke="#191970" d="M1186.4475,-725.0846C1007.3936,-720.5414 278.5735,-697.6062 212,-624 -.8018,-388.7181 589.3345,-501.3911 886,-389 937.392,-369.5303 995.0439,-343.423 1032.572,-325.8354"/>
+<polygon fill="#191970" stroke="#191970" points="1034.1057,-328.9818 1041.6634,-321.5567 1031.1249,-322.6482 1034.1057,-328.9818"/>
 </g>
 <!-- Node45 -->
 <g id="node46" class="node">
 <title>Node45</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="520,-364 520,-383 564,-383 564,-364 520,-364"/>
-<text text-anchor="middle" x="542" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">limits</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2810,-364 2810,-383 2854,-383 2854,-364 2810,-364"/>
+<text text-anchor="middle" x="2832" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">limits</text>
 </g>
 <!-- Node1&#45;&gt;Node45 -->
 <g id="edge160" class="edge">
 <title>Node1&#45;&gt;Node45</title>
-<path fill="none" stroke="#191970" d="M519.1257,-717.1621C470.8698,-703.8399 396,-673.5714 396,-614 396,-614 396,-614 396,-558 396,-480.5585 476.0753,-416.6294 517.6213,-388.6723"/>
-<polygon fill="#191970" stroke="#191970" points="519.6585,-391.5218 526.0975,-383.1081 515.8171,-385.67 519.6585,-391.5218"/>
+<path fill="none" stroke="#191970" d="M1265.6587,-724.599C1421.7243,-718.7044 2008.4019,-692.953 2486,-624 2606.435,-606.6123 2660.751,-646.1763 2754,-568 2808.5565,-522.262 2825.2829,-432.8027 2830.1362,-393.1866"/>
+<polygon fill="#191970" stroke="#191970" points="2833.642,-393.3234 2831.2513,-383.0018 2826.6836,-392.5614 2833.642,-393.3234"/>
 </g>
 <!-- Node49 -->
 <g id="node50" class="node">
 <title>Node49</title>
 <g id="a_node50"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM. ">
-<polygon fill="#ffffff" stroke="#000000" points="1016,-660.5 1016,-679.5 1096,-679.5 1096,-660.5 1016,-660.5"/>
-<text text-anchor="middle" x="1056" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/type.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1220,-660.5 1220,-679.5 1300,-679.5 1300,-660.5 1220,-660.5"/>
+<text text-anchor="middle" x="1260" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/type.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node49 -->
 <g id="edge149" class="edge">
 <title>Node1&#45;&gt;Node49</title>
-<path fill="none" stroke="#191970" d="M598.8315,-721.5119C688.7098,-711.3848 907.1136,-686.7759 1005.9462,-675.6399"/>
-<polygon fill="#191970" stroke="#191970" points="1006.4336,-679.1072 1015.9788,-674.5094 1005.6498,-672.1512 1006.4336,-679.1072"/>
+<path fill="none" stroke="#191970" d="M1231.9223,-716.2455C1236.6027,-708.5367 1243.2673,-697.5598 1248.9289,-688.2348"/>
+<polygon fill="#191970" stroke="#191970" points="1251.9475,-690.007 1254.1455,-679.6427 1245.9639,-686.3741 1251.9475,-690.007"/>
 </g>
 <!-- Node2&#45;&gt;Node3 -->
 <g id="edge3" class="edge">
 <title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M995.5351,-604.2455C1002.4912,-596.2958 1012.4883,-584.8706 1020.8051,-575.3656"/>
-<polygon fill="#191970" stroke="#191970" points="1023.6116,-577.4732 1027.5627,-567.6427 1018.3436,-572.8637 1023.6116,-577.4732"/>
+<path fill="none" stroke="#191970" d="M1321.9035,-604.2455C1317.0855,-596.5367 1310.2249,-585.5598 1304.3968,-576.2348"/>
+<polygon fill="#191970" stroke="#191970" points="1307.2947,-574.2677 1299.0267,-567.6427 1301.3587,-577.9777 1307.2947,-574.2677"/>
 </g>
 <!-- Node2&#45;&gt;Node8 -->
 <g id="edge147" class="edge">
 <title>Node2&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1027.5835,-612.2211C1183.0483,-604.8765 1732,-573.8548 1732,-502 1732,-502 1732,-502 1732,-440.5 1732,-372.1563 1716.8471,-336.3238 1768,-291 1819.9074,-245.0076 2011.7796,-275.6045 2078,-255 2159.6824,-229.5845 2246.297,-175.069 2285.9078,-148.3709"/>
-<polygon fill="#191970" stroke="#191970" points="2287.9898,-151.1876 2294.2841,-142.6652 2284.0489,-145.4023 2287.9898,-151.1876"/>
+<path fill="none" stroke="#191970" d="M1368.699,-611.8655C1620.741,-598.3867 2958,-522.9851 2958,-440.5 2958,-440.5 2958,-440.5 2958,-306.5 2958,-229.4222 2873.2284,-259.054 2800,-235 2588.5262,-165.5352 2323.7148,-143.0351 2199.8852,-136.022"/>
+<polygon fill="#191970" stroke="#191970" points="2199.9574,-132.5208 2189.7804,-135.4666 2199.5732,-139.5103 2199.9574,-132.5208"/>
 </g>
 <!-- Node2&#45;&gt;Node14 -->
 <g id="edge148" class="edge">
 <title>Node2&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M946.4302,-610.0863C805.64,-595.8363 340.2832,-542.951 222,-456 130.1164,-388.4556 76,-359.0388 76,-245 76,-245 76,-245 76,-189 76,-109.0588 193.6199,-82.9327 252.3868,-74.8682"/>
-<polygon fill="#191970" stroke="#191970" points="253.1555,-78.2986 262.6333,-73.5636 252.2713,-71.3547 253.1555,-78.2986"/>
+<path fill="none" stroke="#191970" d="M1287.2781,-612.5116C1122.5033,-606.0854 505.3198,-578.0038 323,-512 260.72,-489.4533 254.75,-465.0574 202,-425 179.904,-408.2207 168.6363,-410.4182 151,-389 125.4558,-357.9781 114,-346.6854 114,-306.5 114,-306.5 114,-306.5 114,-189 114,-111.2758 227.1239,-84.0783 284.0604,-75.3118"/>
+<polygon fill="#191970" stroke="#191970" points="284.5986,-78.7705 293.9979,-73.8813 283.6012,-71.8419 284.5986,-78.7705"/>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
 <title>Node4</title>
 <g id="a_node5"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="1863.5,-492.5 1863.5,-511.5 1984.5,-511.5 1984.5,-492.5 1863.5,-492.5"/>
-<text text-anchor="middle" x="1924" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/reflection.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1715.5,-492.5 1715.5,-511.5 1836.5,-511.5 1836.5,-492.5 1715.5,-492.5"/>
+<text text-anchor="middle" x="1776" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/reflection.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M1085.6455,-554.8692C1234.8007,-545.463 1679.3439,-517.4288 1853.1943,-506.4652"/>
-<polygon fill="#191970" stroke="#191970" points="1853.4972,-509.9532 1863.2571,-505.8306 1853.0566,-502.967 1853.4972,-509.9532"/>
+<path fill="none" stroke="#191970" d="M1342.8703,-552.2179C1429.002,-542.2316 1605.8974,-521.722 1704.8999,-510.2435"/>
+<polygon fill="#191970" stroke="#191970" points="1705.5803,-513.6881 1715.1106,-509.0596 1704.7741,-506.7347 1705.5803,-513.6881"/>
 </g>
 <!-- Node5 -->
 <g id="node6" class="node">
 <title>Node5</title>
 <g id="a_node6"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
-<polygon fill="#ffffff" stroke="#000000" points="1142.5,-425.5 1142.5,-455.5 1255.5,-455.5 1255.5,-425.5 1142.5,-425.5"/>
-<text text-anchor="start" x="1150.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
-<text text-anchor="middle" x="1199" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1151.5,-425.5 1151.5,-455.5 1264.5,-455.5 1264.5,-425.5 1151.5,-425.5"/>
+<text text-anchor="start" x="1159.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
+<text text-anchor="middle" x="1208" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node5 -->
 <g id="edge138" class="edge">
 <title>Node3&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M1049.339,-548.3845C1075.4838,-529.5377 1134.015,-487.345 1169.6387,-461.6654"/>
-<polygon fill="#191970" stroke="#191970" points="1172.103,-464.2036 1178.1683,-455.5167 1168.0096,-458.5251 1172.103,-464.2036"/>
+<path fill="none" stroke="#191970" d="M1286.0441,-548.3845C1272.7925,-530.0661 1243.5861,-489.6925 1224.9011,-463.8633"/>
+<polygon fill="#191970" stroke="#191970" points="1227.7031,-461.7651 1219.0061,-455.7143 1222.0315,-465.868 1227.7031,-461.7651"/>
 </g>
 <!-- Node3&#45;&gt;Node8 -->
 <g id="edge142" class="edge">
 <title>Node3&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1068.5395,-548.4719C1164.1994,-519.9436 1451.8655,-430.4375 1676,-322 1702.3112,-309.2705 1706.1047,-299.7279 1734,-291 1866.3756,-249.5823 1912.9037,-300.3043 2044,-255 2105.0936,-233.8873 2109.3445,-206.1606 2168,-179 2198.0844,-165.0693 2233.5843,-153.4552 2261.3085,-145.3819"/>
-<polygon fill="#191970" stroke="#191970" points="2262.4934,-148.6834 2271.1465,-142.5699 2260.5696,-141.953 2262.4934,-148.6834"/>
+<path fill="none" stroke="#191970" d="M1342.8578,-556.9459C1600.5789,-550.9459 2773.2579,-516.7133 2863,-389 2888.0416,-353.3629 2889.3544,-325.6775 2863,-291 2806.7584,-216.9964 2551.0075,-197.9022 2460,-179 2370.9775,-160.51 2266.8685,-147.3842 2199.7588,-140.0058"/>
+<polygon fill="#191970" stroke="#191970" points="2200.0428,-136.5161 2189.7231,-138.915 2199.2864,-143.4751 2200.0428,-136.5161"/>
 </g>
 <!-- Node9 -->
 <g id="node10" class="node">
 <title>Node9</title>
 <g id="a_node10"><a xlink:href="c__runtime__api_8h.html" target="_top" xlink:title="tvm/runtime/c_runtime\l_api.h">
-<polygon fill="#ffffff" stroke="#000000" points="2949.5,-56.5 2949.5,-86.5 3078.5,-86.5 3078.5,-56.5 2949.5,-56.5"/>
-<text text-anchor="start" x="2957.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/c_runtime</text>
-<text text-anchor="middle" x="3014" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_api.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="3045.5,-56.5 3045.5,-86.5 3174.5,-86.5 3174.5,-56.5 3045.5,-56.5"/>
+<text text-anchor="start" x="3053.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/c_runtime</text>
+<text text-anchor="middle" x="3110" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node9 -->
 <g id="edge140" class="edge">
 <title>Node3&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M1085.5487,-557.6703C1410.5224,-554.8735 3224,-529.2858 3224,-306.5 3224,-306.5 3224,-306.5 3224,-189 3224,-125.0877 3149.0057,-95.6012 3088.6491,-82.2195"/>
-<polygon fill="#191970" stroke="#191970" points="3089.2268,-78.7645 3078.7205,-80.1311 3087.7859,-85.6146 3089.2268,-78.7645"/>
+<path fill="none" stroke="#191970" d="M1342.5706,-557.1512C1542.3857,-553.5745 2289.1896,-538.6708 2524,-512 2655.7323,-497.0373 2690.9771,-497.1767 2817,-456 3025.0597,-388.0186 3262,-463.8843 3262,-245 3262,-245 3262,-245 3262,-189 3262,-139.8507 3211.6388,-108.3523 3168.8929,-90.4691"/>
+<polygon fill="#191970" stroke="#191970" points="3169.9343,-87.1158 3159.35,-86.6434 3167.3296,-93.6132 3169.9343,-87.1158"/>
 </g>
 <!-- Node3&#45;&gt;Node14 -->
 <g id="edge143" class="edge">
 <title>Node3&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M986.0918,-556.6568C861.0096,-552.8966 536.7439,-540.6095 433,-512 314.777,-479.3976 273.0445,-475.3878 186,-389 180.6611,-383.7014 114,-247.3211 114,-245 114,-245 114,-245 114,-189 114,-122.2473 203.6093,-90.5655 253.0916,-78.1594"/>
-<polygon fill="#191970" stroke="#191970" points="254.0788,-81.5223 262.9948,-75.799 252.4558,-74.713 254.0788,-81.5223"/>
+<path fill="none" stroke="#191970" d="M1243.3995,-557.1006C1063.4389,-553.6229 451.0892,-539.8419 368,-512 302.7786,-490.1453 299.036,-460.3017 240,-425 210.3131,-407.2481 192.1564,-416.3651 171,-389 147.9861,-359.2323 152,-344.1265 152,-306.5 152,-306.5 152,-306.5 152,-189 152,-124.7162 236.2933,-92.2129 284.0157,-78.9623"/>
+<polygon fill="#191970" stroke="#191970" points="285.1103,-82.2932 293.8822,-76.3515 283.3196,-75.5261 285.1103,-82.2932"/>
 </g>
 <!-- Node3&#45;&gt;Node15 -->
 <g id="edge144" class="edge">
 <title>Node3&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M986.4757,-555.277C898.8201,-549.9012 720.2055,-536.2886 663,-512 583.0082,-478.0367 548.4265,-467.4312 511,-389 446.2248,-253.2564 664.9077,-127.0685 746.5164,-85.693"/>
-<polygon fill="#191970" stroke="#191970" points="748.3806,-88.6741 755.7609,-81.0727 745.2511,-82.4126 748.3806,-88.6741"/>
+<path fill="none" stroke="#191970" d="M1342.5452,-557.7951C1566.8435,-556.3754 2487.9701,-545.1251 2760,-456 2873.5222,-418.8067 2906.1785,-404.0526 2993,-322 3040.6325,-276.9838 3065.6688,-233.3204 3029,-179 3003.4805,-141.1959 2985.6088,-139.2752 2943,-123 2890.7213,-103.0313 2731.1893,-84.3053 2652.6451,-75.9992"/>
+<polygon fill="#191970" stroke="#191970" points="2652.8827,-72.5051 2642.5725,-74.9443 2652.1535,-79.467 2652.8827,-72.5051"/>
 </g>
 <!-- Node16 -->
 <g id="node17" class="node">
 <title>Node16</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1230.5,-62 1230.5,-81 1275.5,-81 1275.5,-62 1230.5,-62"/>
-<text text-anchor="middle" x="1253" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">utility</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1357.5,-62 1357.5,-81 1402.5,-81 1402.5,-62 1357.5,-62"/>
+<text text-anchor="middle" x="1380" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">utility</text>
 </g>
 <!-- Node3&#45;&gt;Node16 -->
 <g id="edge145" class="edge">
 <title>Node3&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M986.3522,-555.0887C905.4473,-549.7032 749.2443,-536.4427 700,-512 633.2993,-478.8927 611.2249,-428.897 634,-358 664.7434,-262.2986 846.6122,-133.7678 870,-123 932.3338,-94.3014 1139.6066,-78.5834 1220.3793,-73.4259"/>
-<polygon fill="#191970" stroke="#191970" points="1220.7073,-76.9123 1230.4693,-72.7949 1220.2703,-69.926 1220.7073,-76.9123"/>
+<path fill="none" stroke="#191970" d="M1243.4769,-556.1008C1076.5418,-548.571 539.0287,-514.7804 434,-389 406.0818,-355.5656 414.223,-330.3028 433,-291 484.2264,-183.7762 530.4038,-166.4691 641,-123 707.355,-96.9196 1213.2197,-77.3806 1347.4102,-72.6186"/>
+<polygon fill="#191970" stroke="#191970" points="1347.6077,-76.1139 1357.4785,-72.2644 1347.3615,-69.1183 1347.6077,-76.1139"/>
 </g>
 <!-- Node18 -->
 <g id="node19" class="node">
 <title>Node18</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2248.5,-235.5 2248.5,-254.5 2295.5,-254.5 2295.5,-235.5 2248.5,-235.5"/>
-<text text-anchor="middle" x="2272" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">vector</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1978.5,-235.5 1978.5,-254.5 2025.5,-254.5 2025.5,-235.5 1978.5,-235.5"/>
+<text text-anchor="middle" x="2002" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">vector</text>
 </g>
 <!-- Node3&#45;&gt;Node18 -->
 <g id="edge146" class="edge">
 <title>Node3&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M1085.7831,-556.5804C1256.2043,-551.5686 1815.4974,-533.8259 1994,-512 2121.2688,-496.4386 2158.1129,-504.0142 2277,-456 2327.9829,-435.4099 2354.6759,-437.2727 2381,-389 2387.5963,-376.9039 2382.9914,-371.6331 2381,-358 2376.5084,-327.2501 2380.8272,-314.9293 2361,-291 2346.6361,-273.6643 2324.0448,-262.0992 2305.2181,-254.9012"/>
-<polygon fill="#191970" stroke="#191970" points="2306.3742,-251.5976 2295.7795,-251.5277 2304.0182,-258.1892 2306.3742,-251.5976"/>
+<path fill="none" stroke="#191970" d="M1312.9321,-548.4036C1400.7584,-506.1722 1753.9014,-336.93 1868,-291 1901.7881,-277.3987 1941.3233,-264.1411 1968.6514,-255.3805"/>
+<polygon fill="#191970" stroke="#191970" points="1970.021,-258.6177 1978.4901,-252.2518 1967.8996,-251.9469 1970.021,-258.6177"/>
 </g>
 <!-- Node22 -->
 <g id="node23" class="node">
 <title>Node22</title>
 <g id="a_node23"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
-<polygon fill="#ffffff" stroke="#000000" points="1076.5,-179.5 1076.5,-198.5 1205.5,-198.5 1205.5,-179.5 1076.5,-179.5"/>
-<text text-anchor="middle" x="1141" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/memory.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1560.5,-179.5 1560.5,-198.5 1689.5,-198.5 1689.5,-179.5 1560.5,-179.5"/>
+<text text-anchor="middle" x="1625" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/memory.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node22 -->
 <g id="edge141" class="edge">
 <title>Node3&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M986.4654,-553.493C881.8655,-542.6054 648,-510.4423 648,-440.5 648,-440.5 648,-440.5 648,-373.5 648,-284.3435 934.3901,-223.9145 1070.6107,-200.2144"/>
-<polygon fill="#191970" stroke="#191970" points="1071.287,-203.6495 1080.5485,-198.5042 1070.0998,-196.7509 1071.287,-203.6495"/>
+<path fill="none" stroke="#191970" d="M1290.6276,-548.3664C1281.7997,-509.9747 1254.8346,-366.3256 1325,-291 1382.6886,-229.0688 1432.7706,-284.7684 1512,-255 1546.0198,-242.2179 1581.6443,-219.6409 1603.5856,-204.5002"/>
+<polygon fill="#191970" stroke="#191970" points="1605.6606,-207.3199 1611.8355,-198.7105 1601.6395,-201.5901 1605.6606,-207.3199"/>
 </g>
 <!-- Node34 -->
 <g id="node35" class="node">
 <title>Node34</title>
 <g id="a_node35"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="tvm/node/structural\l_hash.h">
-<polygon fill="#ffffff" stroke="#000000" points="1798.5,-425.5 1798.5,-455.5 1911.5,-455.5 1911.5,-425.5 1798.5,-425.5"/>
-<text text-anchor="start" x="1806.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
-<text text-anchor="middle" x="1855" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_hash.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1612.5,-425.5 1612.5,-455.5 1725.5,-455.5 1725.5,-425.5 1612.5,-425.5"/>
+<text text-anchor="start" x="1620.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
+<text text-anchor="middle" x="1669" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_hash.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node34 -->
 <g id="edge139" class="edge">
 <title>Node3&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M1085.9437,-556.2851C1215.3124,-551.538 1558.9509,-536.9045 1670,-512 1721.8157,-500.3795 1778.3397,-476.812 1815.0951,-459.9088"/>
-<polygon fill="#191970" stroke="#191970" points="1816.869,-462.9437 1824.4576,-455.5502 1813.9147,-456.5977 1816.869,-462.9437"/>
+<path fill="none" stroke="#191970" d="M1327.7623,-548.4352C1360.2521,-539.3941 1410.0607,-525.2737 1453,-512 1508.786,-494.7551 1572.166,-473.5861 1615.7699,-458.7744"/>
+<polygon fill="#191970" stroke="#191970" points="1616.9727,-462.0623 1625.3121,-455.5273 1614.7177,-455.4355 1616.9727,-462.0623"/>
 </g>
 <!-- Node47 -->
 <g id="node48" class="node">
 <title>Node47</title>
 <g id="a_node48"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="332.5,-364 332.5,-383 463.5,-383 463.5,-364 332.5,-364"/>
-<text text-anchor="middle" x="398" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/repr_printer.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="180.5,-364 180.5,-383 311.5,-383 311.5,-364 180.5,-364"/>
+<text text-anchor="middle" x="246" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/repr_printer.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node47 -->
 <g id="edge134" class="edge">
 <title>Node3&#45;&gt;Node47</title>
-<path fill="none" stroke="#191970" d="M986.1972,-556.9427C853.8337,-553.7293 500.4791,-542.3714 458,-512 418.7009,-483.9023 404.8873,-424.4448 400.2336,-393.3674"/>
-<polygon fill="#191970" stroke="#191970" points="403.6848,-392.767 398.9033,-383.3125 396.7452,-393.6852 403.6848,-392.767"/>
+<path fill="none" stroke="#191970" d="M1243.2131,-557.5224C1066.9185,-555.5451 478.7676,-546.4094 402,-512 352.3864,-489.7618 357.1347,-460.5526 316,-425 301.0181,-412.0512 282.9985,-398.8428 268.9942,-389.0448"/>
+<polygon fill="#191970" stroke="#191970" points="270.66,-385.9415 260.4435,-383.1355 266.6803,-391.7002 270.66,-385.9415"/>
 </g>
 <!-- Node4&#45;&gt;Node5 -->
 <g id="edge5" class="edge">
 <title>Node4&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M1863.4339,-496.8623C1728.9673,-485.4559 1406.3494,-458.0889 1266.0527,-446.1879"/>
-<polygon fill="#191970" stroke="#191970" points="1266.1284,-442.6819 1255.8683,-445.324 1265.5366,-449.6568 1266.1284,-442.6819"/>
+<path fill="none" stroke="#191970" d="M1715.4832,-495.4476C1608.3466,-483.8474 1386.1205,-459.7859 1274.7138,-447.7234"/>
+<polygon fill="#191970" stroke="#191970" points="1274.9296,-444.2264 1264.6109,-446.6295 1274.176,-451.1857 1274.9296,-444.2264"/>
 </g>
 <!-- Node4&#45;&gt;Node8 -->
 <g id="edge97" class="edge">
 <title>Node4&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1984.5466,-499.9377C2132.941,-494.5855 2511.6944,-479.0443 2636,-456 2734.4111,-437.7561 2758.6349,-427.5521 2851,-389 2909.5311,-364.5699 2944.3345,-376.3662 2977,-322 2984.0959,-310.19 2985.5497,-301.8041 2977,-291 2967.2285,-278.6519 2518.6029,-179.218 2361.5855,-144.7295"/>
-<polygon fill="#191970" stroke="#191970" points="2362.1904,-141.279 2351.6725,-142.5533 2360.6894,-148.1162 2362.1904,-141.279"/>
+<path fill="none" stroke="#191970" d="M1836.6066,-498.2944C2001.7124,-486.6441 2451.3791,-443.9853 2515,-322 2522.4087,-307.7948 2512.9922,-241.3967 2509,-235 2484.2564,-195.3534 2463.7473,-195.44 2420,-179 2347.8258,-151.8774 2259.7057,-140.7468 2199.6757,-136.179"/>
+<polygon fill="#191970" stroke="#191970" points="2199.7733,-132.6771 2189.5478,-135.4504 2199.2709,-139.6591 2199.7733,-132.6771"/>
 </g>
 <!-- Node4&#45;&gt;Node9 -->
 <g id="edge93" class="edge">
 <title>Node4&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M1984.7601,-498.2196C2015.4159,-496.3257 2053.1794,-494.013 2087,-492 2364.3037,-475.4947 2437.1544,-502.6731 2711,-456 2817.2202,-437.8963 2849.6753,-441.0896 2944,-389 3008.1326,-353.5836 3026.9829,-327.0962 3040,-255 3050.4241,-197.2652 3054.1742,-179.672 3039,-123 3036.4973,-113.6529 3032.2823,-103.9667 3028.0194,-95.5512"/>
-<polygon fill="#191970" stroke="#191970" points="3031.0758,-93.8446 3023.2748,-86.6756 3024.9025,-97.1446 3031.0758,-93.8446"/>
+<path fill="none" stroke="#191970" d="M1836.7432,-500.509C2036.4942,-495.4167 2665.3334,-477.8151 2754,-456 2937.9382,-410.7448 2992.0396,-358.6414 3094,-199 3113.2947,-168.7899 3124.7646,-158.6478 3121,-123 3120.0818,-114.3057 3118.3148,-104.9209 3116.4612,-96.5746"/>
+<polygon fill="#191970" stroke="#191970" points="3119.8308,-95.6149 3114.1243,-86.6882 3113.0185,-97.2251 3119.8308,-95.6149"/>
 </g>
 <!-- Node4&#45;&gt;Node14 -->
 <g id="edge131" class="edge">
 <title>Node4&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1863.4475,-500.6537C1701.5913,-496.7762 1245.4942,-484.0217 867,-456 795.6954,-450.721 286.1134,-429.222 227,-389 167.3404,-348.4064 152,-317.1603 152,-245 152,-245 152,-245 152,-189 152,-135.1753 213.9347,-100.0942 253.2752,-83.2401"/>
-<polygon fill="#191970" stroke="#191970" points="254.822,-86.3884 262.7388,-79.3475 252.1591,-79.9147 254.822,-86.3884"/>
+<path fill="none" stroke="#191970" d="M1715.2143,-499.7783C1468.2039,-490.3603 547.399,-451.329 434,-389 325.0541,-329.1186 315.5738,-151.6173 315.5768,-91.5949"/>
+<polygon fill="#191970" stroke="#191970" points="319.0801,-91.2599 315.6772,-81.2264 312.0804,-91.192 319.0801,-91.2599"/>
 </g>
 <!-- Node4&#45;&gt;Node15 -->
 <g id="edge132" class="edge">
 <title>Node4&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M1863.1945,-501.1357C1663.2644,-498.0175 1034.0759,-485.9099 948,-456 851.4184,-422.4395 821.4977,-404.4278 761,-322 708.5393,-250.5226 717.7582,-206.7022 747,-123 751.061,-111.3757 757.6869,-99.3332 763.5808,-89.8188"/>
-<polygon fill="#191970" stroke="#191970" points="766.6253,-91.556 769.1085,-81.2562 760.7443,-87.7593 766.6253,-91.556"/>
+<path fill="none" stroke="#191970" d="M1836.5756,-501.2268C2011.5644,-498.6261 2515.5748,-488.45 2677,-456 2763.1431,-438.6834 2791.9513,-440.6969 2863,-389 2955.1221,-321.9696 3077.3956,-270.8553 3010,-179 2967.477,-121.0442 2748.1522,-88.2335 2652.5906,-76.4955"/>
+<polygon fill="#191970" stroke="#191970" points="2652.9994,-73.0195 2642.6521,-75.2961 2652.1607,-79.9691 2652.9994,-73.0195"/>
 </g>
 <!-- Node4&#45;&gt;Node18 -->
 <g id="edge133" class="edge">
 <title>Node4&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M1984.6123,-495.5317C2094.2633,-482.4456 2318.5419,-448.8632 2365,-389 2385.3565,-362.7698 2344.2847,-298.8905 2338,-291 2327.8471,-278.2528 2313.2386,-267.5696 2300.3452,-259.717"/>
-<polygon fill="#191970" stroke="#191970" points="2301.7565,-256.4899 2291.3482,-254.5103 2298.2502,-262.5485 2301.7565,-256.4899"/>
+<path fill="none" stroke="#191970" d="M1775.95,-492.2319C1776.2956,-467.4071 1780.2282,-400.8349 1811,-358 1828.4815,-333.6654 1843.169,-338.7691 1868,-322 1887.5245,-308.8145 1890.8697,-303.2407 1911,-291 1930.5261,-279.1267 1953.4997,-267.5308 1971.4786,-258.9518"/>
+<polygon fill="#191970" stroke="#191970" points="1973.3447,-261.9416 1980.8993,-254.5134 1970.3613,-255.6092 1973.3447,-261.9416"/>
 </g>
 <!-- Node4&#45;&gt;Node22 -->
 <g id="edge95" class="edge">
 <title>Node4&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M1863.3765,-500.1585C1703.6892,-495.0376 1274.1603,-479.4453 1134,-456 1025.1946,-437.7996 981.4842,-457.4862 895,-389 858.5016,-360.0972 831.2366,-329.0949 858,-291 884.81,-252.8388 1011.9541,-218.2786 1086.3862,-200.8688"/>
-<polygon fill="#191970" stroke="#191970" points="1087.5673,-204.1882 1096.5231,-198.5275 1085.9919,-197.3678 1087.5673,-204.1882"/>
+<path fill="none" stroke="#191970" d="M1715.4232,-498.4711C1615.0449,-488.9124 1417.2489,-453.4634 1336,-322 1328.7566,-310.2799 1326.7454,-301.2068 1336,-291 1391.0442,-230.2922 1647.9558,-315.7078 1703,-255 1721.3059,-234.8106 1689.548,-215.0835 1661.2228,-202.5351"/>
+<polygon fill="#191970" stroke="#191970" points="1662.3995,-199.2327 1651.8257,-198.5645 1659.6749,-205.6808 1662.3995,-199.2327"/>
 </g>
 <!-- Node4&#45;&gt;Node33 -->
 <g id="edge94" class="edge">
 <title>Node4&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M1984.5029,-499.7289C2160.9285,-492.2746 2671.5894,-464.5508 2818,-389 2847.5657,-373.7435 2872.8018,-343.6585 2886.9207,-324.3424"/>
-<polygon fill="#191970" stroke="#191970" points="2889.8494,-326.2627 2892.7653,-316.077 2884.1339,-322.2212 2889.8494,-326.2627"/>
+<path fill="none" stroke="#191970" d="M1836.7484,-501.4948C2022.0577,-499.5784 2571.9153,-490.9752 2644,-456 2696.1357,-430.7039 2689.6908,-399.6316 2730,-358 2741.7467,-345.868 2755.6323,-332.8757 2766.5125,-322.9758"/>
+<polygon fill="#191970" stroke="#191970" points="2769.0822,-325.3713 2774.1617,-316.0735 2764.3927,-320.1744 2769.0822,-325.3713"/>
 </g>
 <!-- Node4&#45;&gt;Node34 -->
 <g id="edge69" class="edge">
 <title>Node4&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M1913.2188,-492.3906C1904.2263,-484.3756 1891.0669,-472.6466 1879.5333,-462.3666"/>
-<polygon fill="#191970" stroke="#191970" points="1881.6733,-459.5855 1871.8793,-455.5446 1877.0156,-464.8111 1881.6733,-459.5855"/>
+<path fill="none" stroke="#191970" d="M1759.2813,-492.3906C1744.5319,-483.9132 1722.5538,-471.2809 1703.9756,-460.6028"/>
+<polygon fill="#191970" stroke="#191970" points="1705.5892,-457.4933 1695.1751,-455.5446 1702.101,-463.5623 1705.5892,-457.4933"/>
 </g>
 <!-- Node35 -->
 <g id="node36" class="node">
 <title>Node35</title>
 <g id="a_node36"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device&#45;independent managed NDArray abstraction. ">
-<polygon fill="#ffffff" stroke="#000000" points="2094.5,-364 2094.5,-383 2219.5,-383 2219.5,-364 2094.5,-364"/>
-<text text-anchor="middle" x="2157" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/ndarray.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2207.5,-364 2207.5,-383 2332.5,-383 2332.5,-364 2207.5,-364"/>
+<text text-anchor="middle" x="2270" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/ndarray.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node35 -->
 <g id="edge96" class="edge">
 <title>Node4&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M1961.8751,-492.4347C1988.8541,-484.7448 2025.4247,-472.5003 2055,-456 2087.8924,-437.649 2120.8538,-408.5792 2140.0687,-390.2973"/>
-<polygon fill="#191970" stroke="#191970" points="2142.6671,-392.6534 2147.4217,-383.1853 2137.8005,-387.6218 2142.6671,-392.6534"/>
+<path fill="none" stroke="#191970" d="M1836.6883,-496.3157C1919.6076,-488.1082 2063.7486,-472.1446 2114,-456 2164.5353,-439.7642 2218.1185,-407.7187 2247.4789,-388.6982"/>
+<polygon fill="#191970" stroke="#191970" points="2249.6902,-391.4332 2256.1258,-383.0169 2245.8464,-385.583 2249.6902,-391.4332"/>
 </g>
 <!-- Node41 -->
 <g id="node42" class="node">
 <title>Node41</title>
 <g id="a_node42"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
-<polygon fill="#ffffff" stroke="#000000" points="1930,-425.5 1930,-455.5 2046,-455.5 2046,-425.5 1930,-425.5"/>
-<text text-anchor="start" x="1938" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/packed</text>
-<text text-anchor="middle" x="1988" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_func.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1989,-425.5 1989,-455.5 2105,-455.5 2105,-425.5 1989,-425.5"/>
+<text text-anchor="start" x="1997" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/packed</text>
+<text text-anchor="middle" x="2047" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node41 -->
 <g id="edge98" class="edge">
 <title>Node4&#45;&gt;Node41</title>
-<path fill="none" stroke="#191970" d="M1934,-492.3906C1942.2606,-484.4527 1954.3122,-472.8718 1964.9355,-462.6635"/>
-<polygon fill="#191970" stroke="#191970" points="1967.5584,-464.9971 1972.3438,-455.5446 1962.7082,-459.9498 1967.5584,-464.9971"/>
+<path fill="none" stroke="#191970" d="M1818.0464,-492.4581C1860.9748,-482.7161 1928.3031,-467.4368 1978.8563,-455.9643"/>
+<polygon fill="#191970" stroke="#191970" points="1979.7537,-459.3498 1988.7311,-453.7234 1978.2044,-452.5234 1979.7537,-459.3498"/>
 </g>
 <!-- Node6 -->
 <g id="node7" class="node">
 <title>Node6</title>
 <g id="a_node7"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures. ">
-<polygon fill="#ffffff" stroke="#000000" points="866.5,-297 866.5,-316 975.5,-316 975.5,-297 866.5,-297"/>
-<text text-anchor="middle" x="921" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/functor.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1344.5,-297 1344.5,-316 1453.5,-316 1453.5,-297 1344.5,-297"/>
+<text text-anchor="middle" x="1399" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node6 -->
 <g id="edge6" class="edge">
 <title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M1142.3972,-438.845C1066.1152,-435.2851 936.4482,-424.0965 907,-389 892.0399,-371.1705 901.287,-343.3467 910.3021,-325.0203"/>
-<polygon fill="#191970" stroke="#191970" points="913.4014,-326.6465 914.9984,-316.1727 907.2184,-323.3646 913.4014,-326.6465"/>
+<path fill="none" stroke="#191970" d="M1229.5388,-425.389C1266.0542,-399.7709 1339.7407,-348.0746 1376.7394,-322.1174"/>
+<polygon fill="#191970" stroke="#191970" points="1379.1343,-324.7127 1385.3105,-316.1042 1375.114,-318.9823 1379.1343,-324.7127"/>
 </g>
 <!-- Node5&#45;&gt;Node14 -->
 <g id="edge68" class="edge">
 <title>Node5&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1142.1963,-439.212C943.0971,-434.465 286.9789,-416.77 252,-389 222.0925,-365.2563 228,-344.6867 228,-306.5 228,-306.5 228,-306.5 228,-189 228,-150.341 253.2862,-111.0543 270.175,-89.1259"/>
-<polygon fill="#191970" stroke="#191970" points="273.0817,-91.095 276.5895,-81.0977 267.6129,-86.7255 273.0817,-91.095"/>
+<path fill="none" stroke="#191970" d="M1151.4304,-439.207C990.262,-435.1485 536.5345,-420.982 478,-389 363.196,-326.2734 327.5269,-150.6261 318.5837,-91.3359"/>
+<polygon fill="#191970" stroke="#191970" points="322.0017,-90.5086 317.1359,-81.0972 315.0706,-91.4888 322.0017,-90.5086"/>
 </g>
 <!-- Node19 -->
 <g id="node20" class="node">
 <title>Node19</title>
 <g id="a_node20"><a xlink:href="object__path_8h.html" target="_top" xlink:title="tvm/node/object_path.h">
-<polygon fill="#ffffff" stroke="#000000" points="1381,-364 1381,-383 1513,-383 1513,-364 1381,-364"/>
-<text text-anchor="middle" x="1447" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/object_path.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="745,-364 745,-383 877,-383 877,-364 745,-364"/>
+<text text-anchor="middle" x="811" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/object_path.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node19 -->
 <g id="edge21" class="edge">
 <title>Node5&#45;&gt;Node19</title>
-<path fill="none" stroke="#191970" d="M1254.656,-425.4639C1299.117,-413.4522 1360.6258,-396.835 1402.0107,-385.6544"/>
-<polygon fill="#191970" stroke="#191970" points="1403.0752,-388.9923 1411.8163,-383.0053 1401.2495,-382.2346 1403.0752,-388.9923"/>
+<path fill="none" stroke="#191970" d="M1151.1196,-430.9005C1078.7902,-418.6938 954.1158,-397.653 877.4771,-384.719"/>
+<polygon fill="#191970" stroke="#191970" points="877.8969,-381.2405 867.4539,-383.0275 876.732,-388.1429 877.8969,-381.2405"/>
 </g>
 <!-- Node32 -->
 <g id="node33" class="node">
 <title>Node32</title>
 <g id="a_node33"><a xlink:href="array_8h.html" target="_top" xlink:title="Runtime Array container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1093,-358.5 1093,-388.5 1219,-388.5 1219,-358.5 1093,-358.5"/>
-<text text-anchor="start" x="1101" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="1156" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/array.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1101,-358.5 1101,-388.5 1227,-388.5 1227,-358.5 1101,-358.5"/>
+<text text-anchor="start" x="1109" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="1164" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/array.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node32 -->
 <g id="edge55" class="edge">
 <title>Node5&#45;&gt;Node32</title>
-<path fill="none" stroke="#191970" d="M1189.2426,-425.2967C1183.9097,-416.9873 1177.1865,-406.5115 1171.184,-397.1587"/>
-<polygon fill="#191970" stroke="#191970" points="1174.0656,-395.1686 1165.7188,-388.6432 1168.1745,-398.9495 1174.0656,-395.1686"/>
+<path fill="none" stroke="#191970" d="M1198.0157,-425.2967C1192.5588,-416.9873 1185.6792,-406.5115 1179.5371,-397.1587"/>
+<polygon fill="#191970" stroke="#191970" points="1182.3596,-395.0806 1173.9448,-388.6432 1176.5086,-398.9231 1182.3596,-395.0806"/>
 </g>
 <!-- Node5&#45;&gt;Node33 -->
 <g id="edge63" class="edge">
 <title>Node5&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M1255.5732,-438.7517C1464.65,-432.1508 2183.9727,-408.1466 2229,-389 2247.5184,-381.1256 2243.56,-366.0564 2262,-358 2367.3313,-311.9808 2663.6121,-333.3072 2778,-322 2791.6524,-320.6505 2806.143,-318.9915 2820.1735,-317.266"/>
-<polygon fill="#191970" stroke="#191970" points="2820.8014,-320.7149 2830.29,-316.0014 2819.9331,-313.7689 2820.8014,-320.7149"/>
+<path fill="none" stroke="#191970" d="M1264.6363,-438.1466C1486.6443,-428.893 2288.0679,-395.213 2342,-389 2416.2733,-380.4437 2626.5863,-338.6749 2728.3953,-318.0576"/>
+<polygon fill="#191970" stroke="#191970" points="2729.091,-321.4878 2738.196,-316.0703 2727.6999,-314.6275 2729.091,-321.4878"/>
 </g>
 <!-- Node7 -->
 <g id="node8" class="node">
 <title>Node7</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1414.5,-179.5 1414.5,-198.5 1503.5,-198.5 1503.5,-179.5 1414.5,-179.5"/>
-<text text-anchor="middle" x="1459" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/logging.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1123.5,-179.5 1123.5,-198.5 1212.5,-198.5 1212.5,-179.5 1123.5,-179.5"/>
+<text text-anchor="middle" x="1168" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/logging.h</text>
 </g>
 <!-- Node6&#45;&gt;Node7 -->
 <g id="edge7" class="edge">
 <title>Node6&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M964.5711,-296.984C1062.3543,-275.628 1299.0177,-223.9404 1405.5082,-200.6827"/>
-<polygon fill="#191970" stroke="#191970" points="1406.3754,-204.0759 1415.3983,-198.5227 1404.8817,-197.2371 1406.3754,-204.0759"/>
+<path fill="none" stroke="#191970" d="M1380.0963,-296.8845C1339.4707,-276.2199 1243.667,-227.4886 1195.9784,-203.2314"/>
+<polygon fill="#191970" stroke="#191970" points="1197.341,-199.9978 1186.8409,-198.5836 1194.1673,-206.237 1197.341,-199.9978"/>
 </g>
 <!-- Node6&#45;&gt;Node8 -->
 <g id="edge8" class="edge">
 <title>Node6&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M948.1585,-296.9366C1019.6902,-272.2358 1219.6431,-206.3324 1392,-179 1554.8341,-153.1778 2053.6212,-139.0315 2238.2871,-134.5682"/>
-<polygon fill="#191970" stroke="#191970" points="2238.5062,-138.0641 2248.4195,-134.3255 2238.3385,-131.0661 2238.5062,-138.0641"/>
+<path fill="none" stroke="#191970" d="M1453.8507,-301.1582C1565.6493,-290.1362 1812.5149,-265.0644 1850,-255 1947.9417,-228.7036 2055.8166,-173.6078 2104.1205,-147.4193"/>
+<polygon fill="#191970" stroke="#191970" points="2105.8704,-150.4517 2112.9665,-142.5842 2102.513,-144.3093 2105.8704,-150.4517"/>
 </g>
 <!-- Node6&#45;&gt;Node15 -->
 <g id="edge18" class="edge">
 <title>Node6&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M896.7192,-296.8896C878.2199,-288.4198 853.3875,-274.3968 838,-255 798.2099,-204.8423 783.3117,-127.7923 778.2889,-91.5949"/>
-<polygon fill="#191970" stroke="#191970" points="781.7213,-90.8417 776.9861,-81.3639 774.7774,-91.7259 781.7213,-90.8417"/>
+<path fill="none" stroke="#191970" d="M1453.5094,-302.1073C1520.8304,-295.7877 1638.4096,-281.8187 1736,-255 1886.7277,-213.5788 1910.142,-160.0636 2062,-123 2110.1408,-111.2504 2441.0619,-84.553 2563.0062,-74.9894"/>
+<polygon fill="#191970" stroke="#191970" points="2563.4275,-78.4672 2573.1239,-74.1976 2562.8813,-71.4885 2563.4275,-78.4672"/>
 </g>
 <!-- Node6&#45;&gt;Node16 -->
 <g id="edge19" class="edge">
 <title>Node6&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M908.3213,-296.6407C897.4047,-287.2782 882.4254,-272.1188 876,-255 864.1303,-223.3764 860.7662,-209.1475 876,-179 894.9226,-141.5523 913.3917,-139.4254 952,-123 1000.044,-102.5603 1152.3378,-83.0869 1220.0247,-75.1923"/>
-<polygon fill="#191970" stroke="#191970" points="1220.5997,-78.6493 1230.1327,-74.0264 1219.7974,-71.6954 1220.5997,-78.6493"/>
+<path fill="none" stroke="#191970" d="M1407.732,-296.7158C1415.8188,-286.9452 1427.2838,-271.1016 1432,-255 1448.4907,-198.6987 1454.5816,-177.1465 1432,-123 1426.0761,-108.7957 1414.1169,-96.5036 1403.1597,-87.4942"/>
+<polygon fill="#191970" stroke="#191970" points="1405.1472,-84.607 1395.0926,-81.2672 1400.87,-90.1482 1405.1472,-84.607"/>
 </g>
 <!-- Node6&#45;&gt;Node18 -->
 <g id="edge20" class="edge">
 <title>Node6&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M975.5948,-303.9037C1041.0379,-300.7989 1154.0295,-295.4618 1251,-291 1638.9058,-273.1518 2109.7467,-252.2023 2238.2395,-246.4976"/>
-<polygon fill="#191970" stroke="#191970" points="2238.4202,-249.9931 2248.2552,-246.053 2238.1098,-243 2238.4202,-249.9931"/>
+<path fill="none" stroke="#191970" d="M1453.6876,-301.7624C1549.4848,-293.3281 1753.8412,-274.7326 1926,-255 1939.8755,-253.4096 1955.1467,-251.4426 1968.3374,-249.6751"/>
+<polygon fill="#191970" stroke="#191970" points="1968.9642,-253.1222 1978.4038,-248.3113 1968.0244,-246.1856 1968.9642,-253.1222"/>
 </g>
 <!-- Node8&#45;&gt;Node9 -->
 <g id="edge9" class="edge">
 <title>Node8&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M2367.5847,-127.8095C2495.8532,-116.636 2797.9045,-90.3242 2938.9667,-78.0362"/>
-<polygon fill="#191970" stroke="#191970" points="2939.5908,-81.4952 2949.2493,-77.1405 2938.9832,-74.5216 2939.5908,-81.4952"/>
+<path fill="none" stroke="#191970" d="M2189.8282,-129.2455C2360.1946,-118.5541 2847.6748,-87.9622 3035.2193,-76.1929"/>
+<polygon fill="#191970" stroke="#191970" points="3035.5015,-79.6821 3045.2626,-75.5626 3035.063,-72.6959 3035.5015,-79.6821"/>
 </g>
 <!-- Node13 -->
 <g id="node14" class="node">
 <title>Node13</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2351.5,-62 2351.5,-81 2476.5,-81 2476.5,-62 2351.5,-62"/>
-<text text-anchor="middle" x="2414" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/logging.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1941.5,-62 1941.5,-81 2066.5,-81 2066.5,-62 1941.5,-62"/>
+<text text-anchor="middle" x="2004" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/logging.h</text>
 </g>
 <!-- Node8&#45;&gt;Node13 -->
 <g id="edge13" class="edge">
 <title>Node8&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M2324.5625,-123.3906C2341.7537,-113.4165 2368.8582,-97.6908 2388.7266,-86.1633"/>
-<polygon fill="#191970" stroke="#191970" points="2390.6606,-89.0877 2397.5538,-81.0419 2387.1477,-83.033 2390.6606,-89.0877"/>
+<path fill="none" stroke="#191970" d="M2110.3125,-123.3906C2089.5078,-113.2359 2056.489,-97.1196 2032.7681,-85.5416"/>
+<polygon fill="#191970" stroke="#191970" points="2034.0712,-82.283 2023.5493,-81.0419 2031.0007,-88.5736 2034.0712,-82.283"/>
 </g>
 <!-- Node8&#45;&gt;Node14 -->
 <g id="edge14" class="edge">
 <title>Node8&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M2248.2775,-131.3717C2039.6476,-125.6586 1323.9182,-105.8515 733,-87 577.309,-82.0331 391.2103,-75.3578 317.4279,-72.6819"/>
-<polygon fill="#191970" stroke="#191970" points="317.4944,-69.1821 307.3739,-72.3168 317.2402,-76.1775 317.4944,-69.1821"/>
+<path fill="none" stroke="#191970" d="M2070.053,-130.1547C2024.5099,-128.0398 1960.3175,-125.1591 1904,-123 1278.2612,-99.0105 513.5386,-77.0693 348.3957,-72.4085"/>
+<polygon fill="#191970" stroke="#191970" points="348.4876,-68.9098 338.3929,-72.1266 348.2903,-75.907 348.4876,-68.9098"/>
 </g>
 <!-- Node8&#45;&gt;Node15 -->
 <g id="edge15" class="edge">
 <title>Node8&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M2248.414,-130.608C1998.7864,-120.5871 1039.9563,-82.0962 820.7936,-73.2982"/>
-<polygon fill="#191970" stroke="#191970" points="820.7597,-69.7941 810.6274,-72.8901 820.4789,-76.7885 820.7597,-69.7941"/>
+<path fill="none" stroke="#191970" d="M2189.7693,-124.8838C2194.5834,-124.242 2199.3727,-123.6076 2204,-123 2334.5632,-105.8566 2488.9768,-86.4001 2563.4368,-77.0694"/>
+<polygon fill="#191970" stroke="#191970" points="2563.9145,-80.537 2573.402,-75.8213 2563.0445,-73.5912 2563.9145,-80.537"/>
 </g>
 <!-- Node8&#45;&gt;Node16 -->
 <g id="edge16" class="edge">
 <title>Node8&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M2248.2737,-124.5019C2243.4499,-123.9458 2238.6467,-123.4352 2234,-123 1862.7223,-88.2269 1410.0299,-75.2846 1285.8416,-72.2483"/>
-<polygon fill="#191970" stroke="#191970" points="1285.5873,-68.7412 1275.5062,-72.0001 1285.4192,-75.7392 1285.5873,-68.7412"/>
+<path fill="none" stroke="#191970" d="M2070.2074,-128.097C1919.6105,-115.7481 1528.4742,-83.6749 1412.7269,-74.1836"/>
+<polygon fill="#191970" stroke="#191970" points="1412.96,-70.6911 1402.7074,-73.362 1412.3878,-77.6676 1412.96,-70.6911"/>
 </g>
 <!-- Node17 -->
 <g id="node18" class="node">
 <title>Node17</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2283,-62 2283,-81 2333,-81 2333,-62 2283,-62"/>
-<text text-anchor="middle" x="2308" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">atomic</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2351,-62 2351,-81 2401,-81 2401,-62 2351,-62"/>
+<text text-anchor="middle" x="2376" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">atomic</text>
 </g>
 <!-- Node8&#45;&gt;Node17 -->
 <g id="edge17" class="edge">
 <title>Node8&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M2308,-123.3906C2308,-114.8657 2308,-102.1392 2308,-91.4235"/>
-<polygon fill="#191970" stroke="#191970" points="2311.5001,-91.2448 2308,-81.2449 2304.5001,-91.2449 2311.5001,-91.2448"/>
+<path fill="none" stroke="#191970" d="M2168.1676,-123.4581C2215.4682,-111.633 2295.4026,-91.6494 2341.1257,-80.2186"/>
+<polygon fill="#191970" stroke="#191970" points="2342.0313,-83.6 2350.8839,-77.779 2340.3335,-76.809 2342.0313,-83.6"/>
 </g>
 <!-- Node10 -->
 <g id="node11" class="node">
 <title>Node10</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2874.5,-.5 2874.5,-19.5 2967.5,-19.5 2967.5,-.5 2874.5,-.5"/>
-<text text-anchor="middle" x="2921" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dlpack/dlpack.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2970.5,-.5 2970.5,-19.5 3063.5,-19.5 3063.5,-.5 2970.5,-.5"/>
+<text text-anchor="middle" x="3017" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dlpack/dlpack.h</text>
 </g>
 <!-- Node9&#45;&gt;Node10 -->
 <g id="edge10" class="edge">
 <title>Node9&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M2991.0112,-56.2977C2976.8034,-46.9022 2958.6215,-34.8787 2944.3475,-25.4395"/>
-<polygon fill="#191970" stroke="#191970" points="2945.8845,-22.2598 2935.6128,-19.6633 2942.0233,-28.0986 2945.8845,-22.2598"/>
+<path fill="none" stroke="#191970" d="M3087.0112,-56.2977C3072.8034,-46.9022 3054.6215,-34.8787 3040.3475,-25.4395"/>
+<polygon fill="#191970" stroke="#191970" points="3041.8845,-22.2598 3031.6128,-19.6633 3038.0233,-28.0986 3041.8845,-22.2598"/>
 </g>
 <!-- Node11 -->
 <g id="node12" class="node">
 <title>Node11</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2986,-.5 2986,-19.5 3042,-19.5 3042,-.5 2986,-.5"/>
-<text text-anchor="middle" x="3014" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stddef.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="3082,-.5 3082,-19.5 3138,-19.5 3138,-.5 3082,-.5"/>
+<text text-anchor="middle" x="3110" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stddef.h</text>
 </g>
 <!-- Node9&#45;&gt;Node11 -->
 <g id="edge11" class="edge">
 <title>Node9&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M3014,-56.2977C3014,-48.3834 3014,-38.6043 3014,-30.0759"/>
-<polygon fill="#191970" stroke="#191970" points="3017.5001,-29.8469 3014,-19.8469 3010.5001,-29.847 3017.5001,-29.8469"/>
+<path fill="none" stroke="#191970" d="M3110,-56.2977C3110,-48.3834 3110,-38.6043 3110,-30.0759"/>
+<polygon fill="#191970" stroke="#191970" points="3113.5001,-29.8469 3110,-19.8469 3106.5001,-29.847 3113.5001,-29.8469"/>
 </g>
 <!-- Node12 -->
 <g id="node13" class="node">
 <title>Node12</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="3060.5,-.5 3060.5,-19.5 3113.5,-19.5 3113.5,-.5 3060.5,-.5"/>
-<text text-anchor="middle" x="3087" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stdint.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="3156.5,-.5 3156.5,-19.5 3209.5,-19.5 3209.5,-.5 3156.5,-.5"/>
+<text text-anchor="middle" x="3183" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stdint.h</text>
 </g>
 <!-- Node9&#45;&gt;Node12 -->
 <g id="edge12" class="edge">
 <title>Node9&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M3032.0449,-56.2977C3042.8114,-47.2274 3056.4851,-35.7077 3067.4995,-26.4285"/>
-<polygon fill="#191970" stroke="#191970" points="3069.9191,-28.9667 3075.3118,-19.8469 3065.4089,-23.6132 3069.9191,-28.9667"/>
+<path fill="none" stroke="#191970" d="M3128.0449,-56.2977C3138.8114,-47.2274 3152.4851,-35.7077 3163.4995,-26.4285"/>
+<polygon fill="#191970" stroke="#191970" points="3165.9191,-28.9667 3171.3118,-19.8469 3161.4089,-23.6132 3165.9191,-28.9667"/>
 </g>
 <!-- Node19&#45;&gt;Node8 -->
 <g id="edge53" class="edge">
 <title>Node19&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1487.7058,-363.9389C1524.9814,-354.725 1581.4211,-339.6137 1629,-322 1659.7699,-310.609 1664.4095,-299.8646 1696,-291 1831.6711,-252.9295 1878.2058,-302.1349 2011,-255 2070.1399,-234.0085 2072.4619,-204.0507 2130,-179 2166.091,-163.2868 2208.7184,-152.0376 2243.2086,-144.598"/>
-<polygon fill="#191970" stroke="#191970" points="2244.1035,-147.9865 2253.1705,-142.5055 2242.6646,-141.1359 2244.1035,-147.9865"/>
+<path fill="none" stroke="#191970" d="M877.2059,-369.305C1019.6184,-360.1123 1351.1965,-337.7563 1463,-322 1531.2716,-312.3786 1546.9849,-302.2925 1615,-291 1738.7744,-270.4497 1772.8726,-283.7633 1895,-255 1931.8714,-246.3161 2023.3459,-218.1996 2056,-199 2078.5377,-185.7485 2100.3789,-164.9909 2114.4176,-150.2973"/>
+<polygon fill="#191970" stroke="#191970" points="2117.1079,-152.5445 2121.3691,-142.8443 2111.9888,-147.7699 2117.1079,-152.5445"/>
 </g>
 <!-- Node19&#45;&gt;Node14 -->
 <g id="edge54" class="edge">
 <title>Node19&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1405.9138,-363.9425C1394.9469,-361.6842 1383.0675,-359.4999 1372,-358 1251.0652,-341.611 939.6264,-361.0431 824,-322 672.4083,-270.8126 671.4348,-185.1544 524,-123 453.7876,-93.4004 364.522,-79.9892 317.4506,-74.6177"/>
-<polygon fill="#191970" stroke="#191970" points="317.5683,-71.1099 307.2478,-73.505 316.8093,-78.0686 317.5683,-71.1099"/>
+<path fill="none" stroke="#191970" d="M797.6796,-363.8316C741.0442,-322.8142 519.6935,-163.4446 444,-123 412.5278,-106.1837 374.3404,-91.4997 347.9101,-82.1607"/>
+<polygon fill="#191970" stroke="#191970" points="348.9894,-78.8305 338.3946,-78.8498 346.689,-85.4417 348.9894,-78.8305"/>
 </g>
 <!-- Node20 -->
 <g id="node21" class="node">
 <title>Node20</title>
 <g id="a_node21"><a xlink:href="optional_8h.html" target="_top" xlink:title="Runtime Optional container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1260,-291.5 1260,-321.5 1386,-321.5 1386,-291.5 1260,-291.5"/>
-<text text-anchor="start" x="1268" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="1323" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/optional.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="752,-291.5 752,-321.5 878,-321.5 878,-291.5 752,-291.5"/>
+<text text-anchor="start" x="760" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="815" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/optional.h</text>
 </a>
 </g>
 </g>
 <!-- Node19&#45;&gt;Node20 -->
 <g id="edge22" class="edge">
 <title>Node19&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M1429.2338,-363.9005C1411.1433,-354.1258 1382.5691,-338.6865 1359.61,-326.2812"/>
-<polygon fill="#191970" stroke="#191970" points="1361.2632,-323.1962 1350.8015,-321.5218 1357.9355,-329.3548 1361.2632,-323.1962"/>
+<path fill="none" stroke="#191970" d="M811.5731,-363.9005C812.074,-355.5099 812.8242,-342.9451 813.495,-331.7085"/>
+<polygon fill="#191970" stroke="#191970" points="817.0009,-331.7126 814.1032,-321.5218 810.0134,-331.2954 817.0009,-331.7126"/>
 </g>
 <!-- Node19&#45;&gt;Node26 -->
 <g id="edge36" class="edge">
 <title>Node19&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M1449.8655,-363.9005C1452.396,-355.4234 1456.1983,-342.6856 1459.5787,-331.3614"/>
-<polygon fill="#191970" stroke="#191970" points="1463.0092,-332.1051 1462.5159,-321.5218 1456.3017,-330.1028 1463.0092,-332.1051"/>
+<path fill="none" stroke="#191970" d="M848.26,-363.9717C888.7887,-353.6075 954.4554,-336.8148 1004.3668,-324.0512"/>
+<polygon fill="#191970" stroke="#191970" points="1005.3058,-327.4238 1014.1268,-321.5553 1003.5715,-320.6421 1005.3058,-327.4238"/>
 </g>
 <!-- Node20&#45;&gt;Node16 -->
 <g id="edge23" class="edge">
 <title>Node20&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1318.5147,-291.4422C1306.2789,-250.3648 1272.3314,-136.3983 1258.7372,-90.7606"/>
-<polygon fill="#191970" stroke="#191970" points="1262.091,-89.7593 1255.8818,-81.1746 1255.3823,-91.7577 1262.091,-89.7593"/>
+<path fill="none" stroke="#191970" d="M767.733,-291.4445C706.9257,-269.6925 613.7608,-226.8048 655,-179 701.076,-125.5883 1211.2886,-84.0502 1347.0058,-73.8902"/>
+<polygon fill="#191970" stroke="#191970" points="1347.4779,-77.3649 1357.1914,-73.1342 1346.9597,-70.3841 1347.4779,-77.3649"/>
 </g>
 <!-- Node21 -->
 <g id="node22" class="node">
 <title>Node21</title>
 <g id="a_node22"><a xlink:href="runtime_2container_2base_8h.html" target="_top" xlink:title="Base utilities for common POD(plain old data) container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1374.5,-235.5 1374.5,-254.5 1429.5,-254.5 1429.5,-235.5 1374.5,-235.5"/>
-<text text-anchor="middle" x="1402" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">./base.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1334.5,-235.5 1334.5,-254.5 1389.5,-254.5 1389.5,-235.5 1334.5,-235.5"/>
+<text text-anchor="middle" x="1362" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">./base.h</text>
 </a>
 </g>
 </g>
 <!-- Node20&#45;&gt;Node21 -->
 <g id="edge24" class="edge">
 <title>Node20&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1342.5281,-291.2977C1354.2937,-282.1384 1369.2675,-270.4816 1381.2465,-261.1562"/>
-<polygon fill="#191970" stroke="#191970" points="1383.6103,-263.7516 1389.3511,-254.8469 1379.3102,-258.228 1383.6103,-263.7516"/>
+<path fill="none" stroke="#191970" d="M878.0148,-299.4152C992.5716,-286.5354 1231.6603,-259.6543 1324.2455,-249.2448"/>
+<polygon fill="#191970" stroke="#191970" points="1324.7354,-252.7119 1334.2817,-248.1164 1323.9533,-245.7557 1324.7354,-252.7119"/>
 </g>
 <!-- Node21&#45;&gt;Node7 -->
 <g id="edge25" class="edge">
 <title>Node21&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M1411.9286,-235.2455C1420.1838,-227.1352 1432.1209,-215.4075 1441.9082,-205.7919"/>
-<polygon fill="#191970" stroke="#191970" points="1444.5046,-208.1476 1449.1851,-198.6427 1439.5989,-203.1542 1444.5046,-208.1476"/>
+<path fill="none" stroke="#191970" d="M1334.2045,-236.9766C1301.8892,-227.6484 1248.1918,-212.1482 1210.6017,-201.2974"/>
+<polygon fill="#191970" stroke="#191970" points="1211.5153,-197.9183 1200.9369,-198.5076 1209.5739,-204.6437 1211.5153,-197.9183"/>
 </g>
 <!-- Node21&#45;&gt;Node8 -->
 <g id="edge32" class="edge">
 <title>Node21&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1399.0886,-235.3294C1395.3967,-220.8583 1391.1562,-193.7023 1406,-179 1435.4429,-149.8377 2031.5175,-137.4686 2238.1769,-134.0456"/>
-<polygon fill="#191970" stroke="#191970" points="2238.3644,-137.5431 2248.3058,-133.8798 2238.2498,-130.544 2238.3644,-137.5431"/>
+<path fill="none" stroke="#191970" d="M1383.7117,-235.4063C1418.4746,-220.5192 1489.118,-192.1974 1552,-179 1647.2966,-158.9996 1928.6496,-142.9579 2060.4296,-136.3137"/>
+<polygon fill="#191970" stroke="#191970" points="2060.6061,-139.8093 2070.4186,-135.8136 2060.2561,-132.8181 2060.6061,-139.8093"/>
 </g>
 <!-- Node21&#45;&gt;Node13 -->
 <g id="edge26" class="edge">
 <title>Node21&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M1429.7267,-240.4704C1479.8789,-232.268 1589.0027,-214.378 1681,-199 1974.8876,-149.8748 2049.3938,-143.2569 2342,-87 2348.1801,-85.8118 2354.6453,-84.5075 2361.0574,-83.1758"/>
-<polygon fill="#191970" stroke="#191970" points="2361.9774,-86.5589 2371.0414,-81.0731 2360.5347,-79.7092 2361.9774,-86.5589"/>
+<path fill="none" stroke="#191970" d="M1370.6473,-235.2015C1392.5263,-211.1628 1452.9854,-149.3178 1518,-123 1591.0993,-93.4095 1814.2909,-79.6379 1931.0585,-74.3141"/>
+<polygon fill="#191970" stroke="#191970" points="1931.4994,-77.798 1941.3331,-73.855 1931.1868,-70.805 1931.4994,-77.798"/>
 </g>
 <!-- Node21&#45;&gt;Node16 -->
 <g id="edge35" class="edge">
 <title>Node21&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1393.7769,-235.4248C1369.7163,-207.4079 1299.1953,-125.2912 1268.0648,-89.0418"/>
-<polygon fill="#191970" stroke="#191970" points="1270.5518,-86.5656 1261.3814,-81.2595 1265.2413,-91.1262 1270.5518,-86.5656"/>
+<path fill="none" stroke="#191970" d="M1362.385,-235.1435C1362.9381,-222.2285 1364.105,-198.884 1366,-179 1368.9212,-148.3485 1373.8263,-112.9711 1376.9866,-91.4257"/>
+<polygon fill="#191970" stroke="#191970" points="1380.4897,-91.6634 1378.4998,-81.2571 1373.5659,-90.633 1380.4897,-91.6634"/>
 </g>
 <!-- Node21&#45;&gt;Node22 -->
 <g id="edge27" class="edge">
 <title>Node21&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M1374.4618,-238.3322C1369.6466,-237.198 1364.6811,-236.0487 1360,-235 1305.133,-222.7082 1242.3088,-209.6125 1198.0604,-200.5504"/>
-<polygon fill="#191970" stroke="#191970" points="1198.5693,-197.0822 1188.0709,-198.5085 1197.1673,-203.9403 1198.5693,-197.0822"/>
+<path fill="none" stroke="#191970" d="M1389.6485,-239.1129C1432.3581,-230.0188 1515.1954,-212.3804 1570.3117,-200.6447"/>
+<polygon fill="#191970" stroke="#191970" points="1571.2128,-204.0313 1580.2646,-198.5254 1569.7549,-197.1848 1571.2128,-204.0313"/>
 </g>
 <!-- Node21&#45;&gt;Node24 -->
 <g id="edge33" class="edge">
 <title>Node21&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1374.4058,-241.5812C1298.0907,-232.1263 1083.815,-205.5789 992.2984,-194.2405"/>
-<polygon fill="#191970" stroke="#191970" points="992.6338,-190.7554 982.2793,-192.9992 991.7731,-197.7023 992.6338,-190.7554"/>
+<path fill="none" stroke="#191970" d="M1334.3436,-242.65C1310.4305,-240.6195 1274.9351,-237.6092 1244,-235 1055.2932,-219.0838 830.0215,-200.2158 738.139,-192.5257"/>
+<polygon fill="#191970" stroke="#191970" points="738.3768,-189.0334 728.1197,-191.6872 737.7929,-196.009 738.3768,-189.0334"/>
 </g>
 <!-- Node25 -->
 <g id="node26" class="node">
 <title>Node25</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1588.5,-179.5 1588.5,-198.5 1671.5,-198.5 1671.5,-179.5 1588.5,-179.5"/>
-<text text-anchor="middle" x="1630" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">initializer_list</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1230.5,-179.5 1230.5,-198.5 1313.5,-198.5 1313.5,-179.5 1230.5,-179.5"/>
+<text text-anchor="middle" x="1272" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">initializer_list</text>
 </g>
 <!-- Node21&#45;&gt;Node25 -->
 <g id="edge34" class="edge">
 <title>Node21&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M1429.5021,-238.2451C1467.0188,-229.0305 1534.8552,-212.3689 1581.1363,-201.0016"/>
-<polygon fill="#191970" stroke="#191970" points="1582.0787,-204.3742 1590.9552,-198.5899 1580.409,-197.5763 1582.0787,-204.3742"/>
+<path fill="none" stroke="#191970" d="M1346.3232,-235.2455C1332.5144,-226.6534 1312.1807,-214.0014 1296.2708,-204.1018"/>
+<polygon fill="#191970" stroke="#191970" points="1297.8368,-200.954 1287.4972,-198.6427 1294.1387,-206.8974 1297.8368,-200.954"/>
 </g>
 <!-- Node22&#45;&gt;Node8 -->
 <g id="edge28" class="edge">
 <title>Node22&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1205.7699,-185.57C1243.233,-183.6046 1291.2737,-181.1158 1334,-179 1672.9574,-162.2147 2078.3403,-143.5093 2238.2494,-136.1845"/>
-<polygon fill="#191970" stroke="#191970" points="2238.5946,-139.6725 2248.424,-135.7186 2238.2744,-132.6798 2238.5946,-139.6725"/>
+<path fill="none" stroke="#191970" d="M1689.6575,-180.7174C1694.5097,-180.1259 1699.3316,-179.5475 1704,-179 1829.4853,-164.2841 1975.9779,-148.8468 2060.3668,-140.123"/>
+<polygon fill="#191970" stroke="#191970" points="2060.757,-143.6014 2070.3447,-139.0928 2060.0381,-136.6384 2060.757,-143.6014"/>
 </g>
 <!-- Node22&#45;&gt;Node15 -->
 <g id="edge30" class="edge">
 <title>Node22&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M1111.4397,-179.484C1046.0361,-158.4294 889.0514,-107.8932 815.402,-84.1842"/>
-<polygon fill="#191970" stroke="#191970" points="816.1726,-80.7554 805.5811,-81.0227 814.0275,-87.4187 816.1726,-80.7554"/>
+<path fill="none" stroke="#191970" d="M1648.6519,-179.4389C1686.8902,-164.462 1764.983,-135.855 1834,-123 2086.1627,-76.0324 2154.1335,-105.0097 2410,-87 2462.6819,-83.2919 2523.2024,-78.4724 2563.323,-75.1988"/>
+<polygon fill="#191970" stroke="#191970" points="2563.6368,-78.6849 2573.318,-74.3808 2563.0658,-71.7082 2563.6368,-78.6849"/>
 </g>
 <!-- Node22&#45;&gt;Node16 -->
 <g id="edge31" class="edge">
 <title>Node22&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1150.1654,-179.3845C1169.1165,-159.5028 1212.8319,-113.6406 1236.7092,-88.5908"/>
-<polygon fill="#191970" stroke="#191970" points="1239.3417,-90.9017 1243.7079,-81.2484 1234.2748,-86.072 1239.3417,-90.9017"/>
+<path fill="none" stroke="#191970" d="M1627.3572,-179.1032C1630.117,-164.8366 1632.7275,-138.5068 1619,-123 1592.1165,-92.632 1472.1827,-78.9043 1413.1051,-73.896"/>
+<polygon fill="#191970" stroke="#191970" points="1413.069,-70.3816 1402.8184,-73.0602 1412.5021,-77.3586 1413.069,-70.3816"/>
 </g>
 <!-- Node23 -->
 <g id="node24" class="node">
 <title>Node23</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1080.5,-123.5 1080.5,-142.5 1129.5,-142.5 1129.5,-123.5 1080.5,-123.5"/>
-<text text-anchor="middle" x="1105" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstdlib</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1560.5,-123.5 1560.5,-142.5 1609.5,-142.5 1609.5,-123.5 1560.5,-123.5"/>
+<text text-anchor="middle" x="1585" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstdlib</text>
 </g>
 <!-- Node22&#45;&gt;Node23 -->
 <g id="edge29" class="edge">
 <title>Node22&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M1134.7293,-179.2455C1129.7736,-171.5367 1122.717,-160.5598 1116.7224,-151.2348"/>
-<polygon fill="#191970" stroke="#191970" points="1119.5506,-149.1618 1111.1989,-142.6427 1113.6624,-152.9471 1119.5506,-149.1618"/>
+<path fill="none" stroke="#191970" d="M1618.0325,-179.2455C1612.4689,-171.4564 1604.522,-160.3308 1597.8171,-150.9439"/>
+<polygon fill="#191970" stroke="#191970" points="1600.5481,-148.7457 1591.8876,-142.6427 1594.852,-152.8144 1600.5481,-148.7457"/>
 </g>
 <!-- Node26&#45;&gt;Node7 -->
 <g id="edge37" class="edge">
 <title>Node26&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M1465.9541,-291.1389C1464.5128,-269.9692 1461.9152,-231.8174 1460.3352,-208.6112"/>
-<polygon fill="#191970" stroke="#191970" points="1463.8221,-208.2986 1459.6509,-198.5595 1456.8383,-208.7742 1463.8221,-208.2986"/>
+<path fill="none" stroke="#191970" d="M1025.9317,-291.4101C993.9067,-278.6204 960.4404,-258.6186 979,-235 995.495,-214.0088 1063.707,-201.4001 1113.4626,-194.8265"/>
+<polygon fill="#191970" stroke="#191970" points="1113.9828,-198.2886 1123.4604,-193.553 1113.0983,-191.3447 1113.9828,-198.2886"/>
 </g>
 <!-- Node26&#45;&gt;Node8 -->
 <g id="edge41" class="edge">
 <title>Node26&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1530.3095,-291.8985C1531.8873,-291.5897 1533.4528,-291.2896 1535,-291 1643.18,-270.7548 1674.5571,-286.5372 1780,-255 1800.1933,-248.9603 1803.2656,-242.4028 1823,-235 1906.6255,-203.6303 1928.824,-198.4325 2016,-179 2091.288,-162.2175 2178.8266,-149.2848 2238.2772,-141.4666"/>
-<polygon fill="#191970" stroke="#191970" points="2238.8407,-144.9229 2248.3053,-140.1613 2237.9372,-137.9814 2238.8407,-144.9229"/>
+<path fill="none" stroke="#191970" d="M1136.0947,-300.6616C1221.5624,-292.3966 1378.7675,-275.9329 1512,-255 1621.2424,-237.8363 1943.5503,-171.6563 2074.122,-144.6135"/>
+<polygon fill="#191970" stroke="#191970" points="2074.8477,-148.0376 2083.9295,-142.5812 2073.4273,-141.1832 2074.8477,-148.0376"/>
 </g>
 <!-- Node26&#45;&gt;Node13 -->
 <g id="edge39" class="edge">
 <title>Node26&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M1530.0095,-304.6717C1631.9745,-300.7908 1839.0784,-289.0768 2011,-255 2177.8662,-221.9252 2246.3566,-251.9522 2377,-143 2393.0472,-129.6172 2402.9702,-107.4809 2408.4491,-91.3789"/>
-<polygon fill="#191970" stroke="#191970" points="2411.9318,-91.9653 2411.5529,-81.3772 2405.2463,-89.8906 2411.9318,-91.9653"/>
+<path fill="none" stroke="#191970" d="M1136.2491,-300.6659C1217.4901,-292.4615 1353.452,-276.1248 1399,-255 1480.4735,-217.2132 1469.7288,-159.0169 1552,-123 1618.3014,-93.9744 1821.3442,-80.1127 1931.3503,-74.5797"/>
+<polygon fill="#191970" stroke="#191970" points="1931.5584,-78.0737 1941.374,-74.0856 1931.2138,-71.0822 1931.5584,-78.0737"/>
 </g>
 <!-- Node26&#45;&gt;Node14 -->
 <g id="edge47" class="edge">
 <title>Node26&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1403.8137,-292.7454C1400.8364,-292.1451 1397.887,-291.5603 1395,-291 1302.8999,-273.1239 1277.8754,-278.3158 1187,-255 1112.8026,-235.9632 1093.3731,-231.4812 1024,-199 1008.4681,-191.7278 1007.0482,-185.048 991,-179 857.9402,-128.8549 816.5243,-144.7343 676,-123 543.3223,-102.4793 384.5009,-83.1802 317.4254,-75.2704"/>
-<polygon fill="#191970" stroke="#191970" points="317.4365,-71.7478 307.0964,-74.0571 316.6198,-78.6999 317.4365,-71.7478"/>
+<path fill="none" stroke="#191970" d="M1039.1164,-291.4023C971.7756,-261.5367 823.0357,-196.3052 770,-179 615.139,-128.4698 423.4083,-90.9883 348.3075,-77.2381"/>
+<polygon fill="#191970" stroke="#191970" points="348.556,-73.726 338.0916,-75.3828 347.3052,-80.6134 348.556,-73.726"/>
 </g>
 <!-- Node26&#45;&gt;Node15 -->
 <g id="edge49" class="edge">
 <title>Node26&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M1408.3235,-291.4021C1369.1202,-281.2554 1316.423,-267.5021 1270,-255 1180.0413,-230.7733 1155.5624,-230.8172 1068,-199 1047.8106,-191.6639 1043.7869,-187.3613 1024,-179 983.5549,-161.9093 972.4183,-160.1541 932,-143 887.4562,-124.0949 836.6387,-100.3973 805.439,-85.5985"/>
-<polygon fill="#191970" stroke="#191970" points="806.5653,-82.2585 796.0314,-81.1238 803.5585,-88.5799 806.5653,-82.2585"/>
+<path fill="none" stroke="#191970" d="M1136.1093,-302.3149C1284.7851,-292.3158 1648.6461,-266.9809 1703,-255 1869.0141,-218.4065 1896.2175,-160.6287 2062,-123 2110.3247,-112.0315 2441.1306,-84.8447 2563.0254,-75.0711"/>
+<polygon fill="#191970" stroke="#191970" points="2563.4501,-78.5484 2573.139,-74.2618 2562.8916,-71.5707 2563.4501,-78.5484"/>
 </g>
 <!-- Node26&#45;&gt;Node16 -->
 <g id="edge51" class="edge">
 <title>Node26&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1530.3266,-291.9848C1531.8993,-291.6503 1533.4591,-291.3215 1535,-291 1621.1803,-273.0199 1753.7759,-318.2002 1725,-235 1714.6539,-205.0862 1707.5547,-196.2257 1681,-179 1552.044,-95.3478 1362.3331,-76.7871 1286.3046,-72.6714"/>
-<polygon fill="#191970" stroke="#191970" points="1286.0923,-69.1569 1275.9329,-72.163 1285.7495,-76.1485 1286.0923,-69.1569"/>
+<path fill="none" stroke="#191970" d="M1018.5411,-291.4303C985.5409,-279.3811 952.8403,-260.3168 970,-235 1057.8506,-105.3887 1266.6526,-78.5193 1347.3671,-72.953"/>
+<polygon fill="#191970" stroke="#191970" points="1347.6789,-76.4404 1357.4416,-72.3247 1347.2432,-69.454 1347.6789,-76.4404"/>
 </g>
 <!-- Node26&#45;&gt;Node18 -->
 <g id="edge52" class="edge">
 <title>Node26&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M1530.167,-301.6742C1691.532,-289.3463 2114.8448,-257.0063 2237.9579,-247.6007"/>
-<polygon fill="#191970" stroke="#191970" points="2238.5649,-251.0647 2248.2692,-246.813 2238.0316,-244.085 2238.5649,-251.0647"/>
+<path fill="none" stroke="#191970" d="M1136.1236,-302.3212C1316.6417,-290.3709 1830.8472,-256.3304 1968.02,-247.2495"/>
+<polygon fill="#191970" stroke="#191970" points="1968.5738,-250.7206 1978.3208,-246.5676 1968.1114,-243.7359 1968.5738,-250.7206"/>
 </g>
 <!-- Node26&#45;&gt;Node21 -->
 <g id="edge38" class="edge">
 <title>Node26&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1450.9326,-291.2977C1441.534,-282.4052 1429.6473,-271.1586 1419.943,-261.9769"/>
-<polygon fill="#191970" stroke="#191970" points="1422.0768,-259.1774 1412.4073,-254.8469 1417.2658,-264.2621 1422.0768,-259.1774"/>
+<path fill="none" stroke="#191970" d="M1136.0652,-293.0796C1193.625,-280.8307 1276.7813,-263.1348 1324.5087,-252.9783"/>
+<polygon fill="#191970" stroke="#191970" points="1325.3659,-256.3743 1334.4183,-250.8695 1323.9088,-249.5276 1325.3659,-256.3743"/>
 </g>
 <!-- Node26&#45;&gt;Node22 -->
 <g id="edge40" class="edge">
 <title>Node26&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M1425.3807,-291.4992C1360.9913,-268.2914 1238.3027,-224.0708 1177.3036,-202.0849"/>
-<polygon fill="#191970" stroke="#191970" points="1178.3048,-198.7254 1167.7104,-198.6272 1175.9312,-205.3107 1178.3048,-198.7254"/>
+<path fill="none" stroke="#191970" d="M1136.0743,-300.4391C1231.6552,-290.8951 1408.5555,-271.7263 1470,-255 1516.6006,-242.3145 1567.574,-218.5335 1597.8899,-203.2491"/>
+<polygon fill="#191970" stroke="#191970" points="1599.6607,-206.2749 1606.9751,-198.61 1596.4773,-200.0406 1599.6607,-206.2749"/>
 </g>
 <!-- Node26&#45;&gt;Node24 -->
 <g id="edge42" class="edge">
 <title>Node26&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1403.8175,-292.7258C1400.8392,-292.1307 1397.8885,-291.5524 1395,-291 1299.8389,-272.8 1274.4937,-276.3962 1180,-255 1112.01,-239.605 1034.3281,-216.0338 988.8745,-201.6204"/>
-<polygon fill="#191970" stroke="#191970" points="989.7234,-198.2176 979.1327,-198.5148 987.5972,-204.8869 989.7234,-198.2176"/>
+<path fill="none" stroke="#191970" d="M1136.0862,-295.5868C1184.0628,-284.6577 1237.5208,-265.0937 1210,-235 1178.3803,-200.4241 855.2331,-191.6399 738.1057,-189.5835"/>
+<polygon fill="#191970" stroke="#191970" points="738.1347,-186.0836 728.0773,-189.4151 738.0171,-193.0826 738.1347,-186.0836"/>
 </g>
 <!-- Node26&#45;&gt;Node25 -->
 <g id="edge45" class="edge">
 <title>Node26&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M1530.0965,-293.5695C1601.3184,-278.9021 1707.5641,-256.7736 1709,-255 1726.0746,-233.9094 1695.1045,-214.6195 1667.0747,-202.4135"/>
-<polygon fill="#191970" stroke="#191970" points="1668.3336,-199.1466 1657.7553,-198.5532 1665.6547,-205.6137 1668.3336,-199.1466"/>
+<path fill="none" stroke="#191970" d="M1136.1133,-293.3903C1177.861,-283.6343 1227.7848,-269.5419 1244,-255 1257.4391,-242.9477 1264.6377,-223.3684 1268.3532,-208.6588"/>
+<polygon fill="#191970" stroke="#191970" points="1271.8434,-209.0818 1270.5613,-198.5648 1265.0051,-207.5858 1271.8434,-209.0818"/>
 </g>
 <!-- Node27 -->
 <g id="node28" class="node">
 <title>Node27</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1486.5,-235.5 1486.5,-254.5 1539.5,-254.5 1539.5,-235.5 1486.5,-235.5"/>
-<text text-anchor="middle" x="1513" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstddef</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="988.5,-235.5 988.5,-254.5 1041.5,-254.5 1041.5,-235.5 988.5,-235.5"/>
+<text text-anchor="middle" x="1015" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstddef</text>
 </g>
 <!-- Node26&#45;&gt;Node27 -->
 <g id="edge43" class="edge">
 <title>Node26&#45;&gt;Node27</title>
-<path fill="none" stroke="#191970" d="M1478.3708,-291.2977C1484.7561,-282.7609 1492.7641,-272.0545 1499.4705,-263.0883"/>
-<polygon fill="#191970" stroke="#191970" points="1502.4479,-264.9511 1505.6348,-254.8469 1496.8425,-260.7584 1502.4479,-264.9511"/>
+<path fill="none" stroke="#191970" d="M1058.6629,-291.2977C1050.3603,-282.4941 1039.8818,-271.3833 1031.2711,-262.2529"/>
+<polygon fill="#191970" stroke="#191970" points="1033.6939,-259.7206 1024.2865,-254.8469 1028.6013,-264.5234 1033.6939,-259.7206"/>
 </g>
 <!-- Node28 -->
 <g id="node29" class="node">
 <title>Node28</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1558,-235.5 1558,-254.5 1608,-254.5 1608,-235.5 1558,-235.5"/>
-<text text-anchor="middle" x="1583" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstring</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1060,-235.5 1060,-254.5 1110,-254.5 1110,-235.5 1060,-235.5"/>
+<text text-anchor="middle" x="1085" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstring</text>
 </g>
 <!-- Node26&#45;&gt;Node28 -->
 <g id="edge44" class="edge">
 <title>Node26&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M1495.3768,-291.4554C1513.8828,-281.644 1537.8888,-268.9167 1556.0931,-259.2653"/>
-<polygon fill="#191970" stroke="#191970" points="1557.8285,-262.3068 1565.0241,-254.5303 1554.5495,-256.1222 1557.8285,-262.3068"/>
+<path fill="none" stroke="#191970" d="M1075.9663,-291.2977C1077.5279,-283.2945 1079.4616,-273.3843 1081.1388,-264.7889"/>
+<polygon fill="#191970" stroke="#191970" points="1084.5987,-265.3322 1083.0786,-254.8469 1077.7282,-263.9915 1084.5987,-265.3322"/>
 </g>
 <!-- Node29 -->
 <g id="node30" class="node">
 <title>Node29</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1832,-235.5 1832,-254.5 1890,-254.5 1890,-235.5 1832,-235.5"/>
-<text text-anchor="middle" x="1861" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">memory</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1636,-235.5 1636,-254.5 1694,-254.5 1694,-235.5 1636,-235.5"/>
+<text text-anchor="middle" x="1665" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">memory</text>
 </g>
 <!-- Node26&#45;&gt;Node29 -->
 <g id="edge46" class="edge">
 <title>Node26&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M1530.3862,-293.3852C1534.9868,-292.5425 1539.5609,-291.7375 1544,-291 1665.1634,-270.8693 1697.1505,-276.9369 1818,-255 1819.2726,-254.769 1820.5642,-254.525 1821.8669,-254.2707"/>
-<polygon fill="#191970" stroke="#191970" points="1822.8641,-257.638 1831.9359,-252.1652 1821.4312,-250.7862 1822.8641,-257.638"/>
+<path fill="none" stroke="#191970" d="M1136.2724,-300.0794C1163.8339,-297.2854 1196.5145,-293.9761 1226,-291 1385.1052,-274.9411 1425.08,-272.798 1584,-255 1597.5554,-253.4819 1612.3698,-251.6915 1625.5797,-250.0482"/>
+<polygon fill="#191970" stroke="#191970" points="1626.2881,-253.4869 1635.775,-248.7699 1625.4172,-246.5413 1626.2881,-253.4869"/>
 </g>
 <!-- Node30 -->
 <g id="node31" class="node">
 <title>Node30</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1626.5,-235.5 1626.5,-254.5 1699.5,-254.5 1699.5,-235.5 1626.5,-235.5"/>
-<text text-anchor="middle" x="1663" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string_view</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1128.5,-235.5 1128.5,-254.5 1201.5,-254.5 1201.5,-235.5 1128.5,-235.5"/>
+<text text-anchor="middle" x="1165" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string_view</text>
 </g>
 <!-- Node26&#45;&gt;Node30 -->
 <g id="edge48" class="edge">
 <title>Node26&#45;&gt;Node30</title>
-<path fill="none" stroke="#191970" d="M1514.947,-291.4554C1548.0804,-281.059 1591.6483,-267.3884 1622.9308,-257.5727"/>
-<polygon fill="#191970" stroke="#191970" points="1624.1335,-260.8637 1632.627,-254.5303 1622.0378,-254.1848 1624.1335,-260.8637"/>
+<path fill="none" stroke="#191970" d="M1095.7416,-291.2977C1109.7967,-281.9022 1127.783,-269.8787 1141.9036,-260.4395"/>
+<polygon fill="#191970" stroke="#191970" points="1144.1759,-263.1305 1150.5444,-254.6633 1140.2857,-257.311 1144.1759,-263.1305"/>
 </g>
 <!-- Node31 -->
 <g id="node32" class="node">
 <title>Node31</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1908.5,-235.5 1908.5,-254.5 2001.5,-254.5 2001.5,-235.5 1908.5,-235.5"/>
-<text text-anchor="middle" x="1955" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_map</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="762.5,-235.5 762.5,-254.5 855.5,-254.5 855.5,-235.5 762.5,-235.5"/>
+<text text-anchor="middle" x="809" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_map</text>
 </g>
 <!-- Node26&#45;&gt;Node31 -->
 <g id="edge50" class="edge">
 <title>Node26&#45;&gt;Node31</title>
-<path fill="none" stroke="#191970" d="M1530.238,-297.735C1547.0521,-295.4707 1565.2065,-293.0851 1582,-291 1719.5535,-273.9214 1757.0223,-275.3959 1898.3747,-255.0114"/>
-<polygon fill="#191970" stroke="#191970" points="1898.8926,-258.473 1908.2852,-253.5712 1897.8858,-251.5458 1898.8926,-258.473"/>
+<path fill="none" stroke="#191970" d="M1009.7654,-291.7692C963.8684,-281.0773 902.5827,-266.8005 859.8448,-256.8445"/>
+<polygon fill="#191970" stroke="#191970" points="860.4745,-253.3976 849.9411,-254.5374 858.8863,-260.215 860.4745,-253.3976"/>
 </g>
 <!-- Node32&#45;&gt;Node15 -->
 <g id="edge58" class="edge">
 <title>Node32&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M1092.9461,-370.5108C1008.8776,-365.3974 865.8032,-352.4088 824,-322 774.4937,-285.9877 776.1619,-258.5583 762,-199 754.1861,-166.1385 757.5303,-156.4807 762,-123 763.4431,-112.1902 766.5187,-100.4337 769.4206,-90.8862"/>
-<polygon fill="#191970" stroke="#191970" points="772.8016,-91.8049 772.5269,-81.2137 766.1368,-89.6646 772.8016,-91.8049"/>
+<path fill="none" stroke="#191970" d="M1227.1002,-372.2904C1341.1263,-369.2311 1588.7286,-358.5823 1794,-322 1821.3622,-317.1237 2008.3715,-262.962 2035,-255 2237.5698,-194.4308 2478.0252,-114.925 2569.8169,-84.2935"/>
+<polygon fill="#191970" stroke="#191970" points="2571.1272,-87.546 2579.5034,-81.0583 2568.9096,-80.9065 2571.1272,-87.546"/>
 </g>
 <!-- Node32&#45;&gt;Node16 -->
 <g id="edge59" class="edge">
 <title>Node32&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1100.6083,-358.398C1074.4276,-349.8965 1043.4181,-337.783 1018,-322 1000.9045,-311.3848 1000.1294,-304.268 985,-291 966.0032,-274.3404 957.3181,-274.2909 941,-255 917.3305,-227.0185 887.7071,-208.8299 909,-179 945.9761,-127.1991 1141.4136,-89.8422 1220.1187,-76.6843"/>
-<polygon fill="#191970" stroke="#191970" points="1221.1219,-80.0664 1230.421,-74.9893 1219.9854,-73.1593 1221.1219,-80.0664"/>
+<path fill="none" stroke="#191970" d="M1172.6983,-358.3906C1184.3734,-339.5409 1206.929,-307.7553 1235,-291 1299.0775,-252.7526 1352.2303,-313.1497 1399,-255 1437.8978,-206.6376 1407.0209,-126.349 1389.7144,-90.1787"/>
+<polygon fill="#191970" stroke="#191970" points="1392.8437,-88.6108 1385.2622,-81.21 1386.5737,-91.7233 1392.8437,-88.6108"/>
 </g>
 <!-- Node32&#45;&gt;Node18 -->
 <g id="edge60" class="edge">
 <title>Node32&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M1219.1107,-359.2745C1222.1083,-358.8002 1225.0826,-358.3709 1228,-358 1325.1885,-345.6455 2018.668,-359.9258 2109,-322 2127.5541,-314.2101 2124.8144,-301.4688 2142,-291 2158.5372,-280.9262 2206.083,-265.2161 2238.8457,-255.0152"/>
-<polygon fill="#191970" stroke="#191970" points="2239.9654,-258.3326 2248.4881,-252.0386 2237.9006,-251.644 2239.9654,-258.3326"/>
+<path fill="none" stroke="#191970" d="M1227.2184,-372.2626C1359.8463,-368.9819 1662.8306,-357.7038 1759,-322 1781.0867,-313.8001 1780.5038,-300.6423 1802,-291 1869.2963,-260.8138 1892.3227,-272.3885 1964,-255 1965.4502,-254.6482 1966.93,-254.2835 1968.4238,-253.9107"/>
+<polygon fill="#191970" stroke="#191970" points="1969.4965,-257.2491 1978.3191,-251.3829 1967.764,-250.4669 1969.4965,-257.2491"/>
 </g>
 <!-- Node32&#45;&gt;Node20 -->
 <g id="edge62" class="edge">
 <title>Node32&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M1193.4781,-358.4639C1217.8878,-348.6708 1249.9283,-335.8162 1276.0342,-325.3426"/>
-<polygon fill="#191970" stroke="#191970" points="1277.3808,-328.5736 1285.3585,-321.6017 1274.7743,-322.0769 1277.3808,-328.5736"/>
+<path fill="none" stroke="#191970" d="M1100.7556,-361.7388C1045.6032,-351.4315 963.4625,-335.9575 892,-322 890.7202,-321.75 889.4286,-321.4971 888.1278,-321.2418"/>
+<polygon fill="#191970" stroke="#191970" points="888.5088,-317.7496 878.0204,-319.2474 887.1536,-324.6172 888.5088,-317.7496"/>
 </g>
 <!-- Node32&#45;&gt;Node21 -->
 <g id="edge61" class="edge">
 <title>Node32&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1167.5593,-358.402C1182.5361,-339.8639 1210.3813,-308.7099 1241,-291 1279.882,-268.5106 1330.4805,-256.4113 1364.4871,-250.3527"/>
-<polygon fill="#191970" stroke="#191970" points="1365.2013,-253.7817 1374.4768,-248.6616 1364.0328,-246.8799 1365.2013,-253.7817"/>
+<path fill="none" stroke="#191970" d="M1164.1246,-358.469C1165.1145,-339.9999 1169.6359,-308.9171 1188,-291 1207.2444,-272.2241 1279.2478,-257.9042 1324.3795,-250.5343"/>
+<polygon fill="#191970" stroke="#191970" points="1325.0736,-253.968 1334.3993,-248.9398 1323.9734,-247.055 1325.0736,-253.968"/>
 </g>
 <!-- Node32&#45;&gt;Node24 -->
 <g id="edge56" class="edge">
 <title>Node32&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1128.6027,-358.3265C1110.6549,-348.2631 1086.7621,-334.6322 1066,-322 1044.3045,-308.7999 1039.829,-303.9782 1018,-291 989.2794,-273.9245 969.4895,-283.4704 952,-255 943.5723,-241.2809 943.7902,-222.7489 945.7038,-208.8147"/>
-<polygon fill="#191970" stroke="#191970" points="949.179,-209.2613 947.4693,-198.8053 942.2854,-208.0453 949.179,-209.2613"/>
+<path fill="none" stroke="#191970" d="M1100.9744,-366.7054C1052.5832,-359.8346 984.9634,-346.5869 930,-322 908.4939,-312.3796 908.5267,-300.574 887,-291 817.6247,-260.1455 777.2238,-304.9036 720,-255 706.6731,-243.3779 700.7434,-223.7413 698.1068,-208.9013"/>
+<polygon fill="#191970" stroke="#191970" points="701.5301,-208.1117 696.6645,-198.7001 694.599,-209.0917 701.5301,-208.1117"/>
 </g>
 <!-- Node32&#45;&gt;Node29 -->
 <g id="edge57" class="edge">
 <title>Node32&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M1219.15,-359.5435C1222.137,-358.9972 1225.0984,-358.4791 1228,-358 1365.2863,-335.3315 1412.7958,-380.5994 1539,-322 1557.2516,-313.5254 1553.8779,-299.748 1572,-291 1671.5103,-242.9637 1709.4265,-275.5324 1818,-255 1819.2709,-254.7597 1820.561,-254.5076 1821.8624,-254.2463"/>
-<polygon fill="#191970" stroke="#191970" points="1822.8717,-257.61 1831.9251,-252.1068 1821.4159,-250.7631 1822.8717,-257.61"/>
+<path fill="none" stroke="#191970" d="M1183.2749,-358.4078C1208.8364,-339.267 1256.0901,-306.8503 1302,-291 1305.8169,-289.6822 1532.7468,-261.4167 1625.8208,-249.8593"/>
+<polygon fill="#191970" stroke="#191970" points="1626.4724,-253.3053 1635.9651,-248.6 1625.61,-246.3586 1626.4724,-253.3053"/>
 </g>
 <!-- Node33&#45;&gt;Node9 -->
 <g id="edge64" class="edge">
 <title>Node33&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M2911.0406,-296.7917C2922.5577,-287.0773 2939.9138,-271.2741 2952,-255 2988.3134,-206.1041 3004.2779,-134.5431 3010.5102,-96.8638"/>
-<polygon fill="#191970" stroke="#191970" points="3014.0047,-97.1692 3012.0816,-86.7504 3007.0877,-96.0944 3014.0047,-97.1692"/>
+<path fill="none" stroke="#191970" d="M2819.7228,-296.905C2882.042,-277.9315 3013.1462,-229.755 3086,-143 3096.9769,-129.9286 3102.9978,-111.6295 3106.2637,-96.8162"/>
+<polygon fill="#191970" stroke="#191970" points="3109.7441,-97.2502 3108.1864,-86.7705 3102.8689,-95.9343 3109.7441,-97.2502"/>
 </g>
 <!-- Node33&#45;&gt;Node13 -->
 <g id="edge65" class="edge">
 <title>Node33&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M2894.5885,-296.8276C2879.7641,-265.5499 2828.3997,-166.6471 2753,-123 2709.0003,-97.5296 2572.801,-83.1212 2487.0233,-76.352"/>
-<polygon fill="#191970" stroke="#191970" points="2487.062,-72.8447 2476.8222,-75.5642 2486.523,-79.8239 2487.062,-72.8447"/>
+<path fill="none" stroke="#191970" d="M2771.7194,-296.9792C2737.5016,-272.9529 2642.7786,-209.6032 2554,-179 2388.2611,-121.8676 2183.3569,-91.9042 2076.5306,-79.1678"/>
+<polygon fill="#191970" stroke="#191970" points="2076.8437,-75.6806 2066.5033,-77.9887 2076.0261,-82.6327 2076.8437,-75.6806"/>
 </g>
 <!-- Node33&#45;&gt;Node14 -->
 <g id="edge66" class="edge">
 <title>Node33&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M2863.5697,-296.9115C2804.5924,-281.3404 2682.3455,-250.7186 2577,-235 2112.1522,-165.6403 561.2813,-85.4473 317.4006,-73.1236"/>
-<polygon fill="#191970" stroke="#191970" points="317.2542,-69.6119 307.0906,-72.6038 316.9016,-76.603 317.2542,-69.6119"/>
+<path fill="none" stroke="#191970" d="M2737.7712,-296.9811C2665.731,-282.6154 2523.9941,-254.9563 2403,-235 2055.7101,-177.7193 1969.5352,-154.8811 1619,-123 1361.1721,-99.5506 524.0167,-76.895 348.4715,-72.3314"/>
+<polygon fill="#191970" stroke="#191970" points="348.414,-68.8289 338.3267,-72.0687 348.2327,-75.8265 348.414,-68.8289"/>
 </g>
 <!-- Node33&#45;&gt;Node15 -->
 <g id="edge67" class="edge">
 <title>Node33&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M2885.7734,-296.7345C2852.5363,-272.6957 2762.081,-210.3402 2677,-179 2549.7239,-132.1169 2511.8483,-137.6001 2377,-123 1866.4014,-67.717 1735.3039,-103.919 1222,-87 1075.2663,-82.1635 901.3941,-75.9945 820.9551,-73.1156"/>
-<polygon fill="#191970" stroke="#191970" points="820.8153,-69.6084 810.6964,-72.7481 820.5647,-76.6039 820.8153,-69.6084"/>
+<path fill="none" stroke="#191970" d="M2785.8005,-296.7348C2787.7014,-266.816 2789.3352,-175.2862 2744,-123 2720.8932,-96.3503 2682.5028,-83.4499 2652.3919,-77.2288"/>
+<polygon fill="#191970" stroke="#191970" points="2653.008,-73.7834 2642.5319,-75.3649 2651.7077,-80.6616 2653.008,-73.7834"/>
 </g>
 <!-- Node34&#45;&gt;Node6 -->
 <g id="edge70" class="edge">
 <title>Node34&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M1798.3176,-439.6435C1643.9483,-436.8464 1218.6329,-425.9161 1084,-389 1030.5,-374.3304 974.017,-341.1952 943.6009,-321.6745"/>
-<polygon fill="#191970" stroke="#191970" points="945.3193,-318.6168 935.0304,-316.089 941.4973,-324.4813 945.3193,-318.6168"/>
+<path fill="none" stroke="#191970" d="M1638.5524,-425.389C1585.9496,-399.2824 1478.7782,-346.0936 1427.5333,-320.661"/>
+<polygon fill="#191970" stroke="#191970" points="1428.8652,-317.4147 1418.3517,-316.1042 1425.7532,-323.6849 1428.8652,-317.4147"/>
 </g>
 <!-- Node34&#45;&gt;Node14 -->
 <g id="edge92" class="edge">
 <title>Node34&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1798.4089,-438.9405C1523.4574,-431.322 339.5132,-398.0191 323,-389 283.8866,-367.6373 266,-351.0671 266,-306.5 266,-306.5 266,-306.5 266,-189 266,-154.1936 274.2253,-114.3226 279.8521,-91.1197"/>
-<polygon fill="#191970" stroke="#191970" points="283.3113,-91.7152 282.3581,-81.1633 276.523,-90.0065 283.3113,-91.7152"/>
+<path fill="none" stroke="#191970" d="M1612.4903,-438.2999C1382.4744,-429.3044 528.2561,-395.4926 516,-389 450.3337,-354.2134 456.1031,-317.5613 416,-255 378.9151,-197.1471 341.9656,-124.4524 325.2516,-90.5469"/>
+<polygon fill="#191970" stroke="#191970" points="328.2786,-88.77 320.7364,-81.3291 321.9922,-91.8493 328.2786,-88.77"/>
 </g>
 <!-- Node34&#45;&gt;Node33 -->
 <g id="edge71" class="edge">
 <title>Node34&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M1911.7896,-426.6857C1914.8977,-426.0789 1917.9828,-425.5115 1921,-425 2071.2541,-399.5287 2119.3433,-442.6111 2262,-389 2284.3926,-380.5847 2283.4875,-366.089 2306,-358 2404.9969,-322.4291 2673.3507,-332.6865 2778,-322 2791.5632,-320.615 2805.9564,-318.9464 2819.9046,-317.2244"/>
-<polygon fill="#191970" stroke="#191970" points="2820.4767,-320.6802 2829.9641,-315.9644 2819.6067,-313.7345 2820.4767,-320.6802"/>
+<path fill="none" stroke="#191970" d="M1725.7472,-437.5744C1914.6241,-427.7772 2511.2216,-396.3271 2530,-389 2550.305,-381.0773 2548.4567,-367.65 2568,-358 2594.9643,-344.6857 2669.0983,-328.5682 2723.2328,-317.9512"/>
+<polygon fill="#191970" stroke="#191970" points="2723.9439,-321.3786 2733.0923,-316.0347 2722.6081,-314.5072 2723.9439,-321.3786"/>
 </g>
 <!-- Node34&#45;&gt;Node35 -->
 <g id="edge72" class="edge">
 <title>Node34&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M1911.5121,-427.1663C1914.7208,-426.4285 1917.9006,-425.7021 1921,-425 1983.0493,-410.9446 2054.4371,-395.4617 2102.304,-385.1794"/>
-<polygon fill="#191970" stroke="#191970" points="2103.1065,-388.5869 2112.1495,-383.0666 2101.6376,-381.7428 2103.1065,-388.5869"/>
+<path fill="none" stroke="#191970" d="M1725.5406,-434.1968C1834.9967,-421.9945 2075.7161,-395.1589 2197.0464,-381.6329"/>
+<polygon fill="#191970" stroke="#191970" points="2197.7941,-385.0713 2207.3447,-380.4849 2197.0185,-378.1144 2197.7941,-385.0713"/>
 </g>
 <!-- Node40 -->
 <g id="node41" class="node">
 <title>Node40</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1776.5,-297 1776.5,-316 1841.5,-316 1841.5,-297 1776.5,-297"/>
-<text text-anchor="middle" x="1809" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">functional</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2176.5,-297 2176.5,-316 2241.5,-316 2241.5,-297 2176.5,-297"/>
+<text text-anchor="middle" x="2209" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">functional</text>
 </g>
 <!-- Node34&#45;&gt;Node40 -->
 <g id="edge91" class="edge">
 <title>Node34&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M1849.8126,-425.389C1841.4283,-400.9649 1824.9068,-352.8371 1815.663,-325.9095"/>
-<polygon fill="#191970" stroke="#191970" points="1818.8542,-324.426 1812.297,-316.1042 1812.2335,-326.6988 1818.8542,-324.426"/>
+<path fill="none" stroke="#191970" d="M1725.6165,-433.6421C1796.918,-424.4324 1914.9525,-407.1192 1955,-389 1975.1734,-379.8727 1974.0947,-367.6979 1994,-358 2050.0201,-330.707 2121.4583,-317.3187 2166.2272,-311.1759"/>
+<polygon fill="#191970" stroke="#191970" points="2166.7241,-314.6407 2176.1836,-309.8691 2165.8131,-307.7003 2166.7241,-314.6407"/>
 </g>
 <!-- Node35&#45;&gt;Node8 -->
 <g id="edge81" class="edge">
 <title>Node35&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M2195.0787,-363.9086C2246.8578,-350.688 2333.5947,-327.8336 2338,-322 2376.3006,-271.2815 2356.11,-239.9208 2338,-179 2334.9674,-168.7984 2328.8756,-158.7475 2322.9691,-150.6555"/>
-<polygon fill="#191970" stroke="#191970" points="2325.6964,-148.4613 2316.7861,-142.7291 2320.177,-152.7667 2325.6964,-148.4613"/>
+<path fill="none" stroke="#191970" d="M2332.5285,-366.5677C2387.3457,-359.0495 2461.0228,-344.9448 2479,-322 2487.4974,-311.1546 2485.2138,-303.297 2479,-291 2427.0634,-188.2179 2285.7332,-152.1922 2199.6894,-139.6391"/>
+<polygon fill="#191970" stroke="#191970" points="2200.1246,-136.166 2189.7379,-138.2557 2199.1608,-143.0993 2200.1246,-136.166"/>
 </g>
 <!-- Node35&#45;&gt;Node9 -->
 <g id="edge73" class="edge">
 <title>Node35&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M2194.2227,-363.9791C2204.1663,-361.7205 2214.9442,-359.5269 2225,-358 2429.9361,-326.8826 2496.5712,-396.5145 2690,-322 2823.2011,-270.687 2946.7441,-145.7982 2993.8587,-94.2899"/>
-<polygon fill="#191970" stroke="#191970" points="2996.6358,-96.4375 3000.7539,-86.6757 2991.4471,-91.7388 2996.6358,-96.4375"/>
+<path fill="none" stroke="#191970" d="M2310.9566,-363.9932C2319.8626,-361.9738 2329.2401,-359.8839 2338,-358 2416.9087,-341.0299 2438.2632,-343.7153 2516,-322 2671.5756,-278.5409 2709.6521,-262.9168 2858,-199 2936.8948,-165.0076 3025.8372,-117.8219 3074.1187,-91.4245"/>
+<polygon fill="#191970" stroke="#191970" points="3075.8495,-94.4671 3082.9335,-86.5888 3072.4827,-88.3299 3075.8495,-94.4671"/>
 </g>
 <!-- Node35&#45;&gt;Node16 -->
 <g id="edge89" class="edge">
 <title>Node35&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M2094.1054,-364.9681C2044.3864,-356.7826 1980.8068,-342.6054 1965,-322 1956.614,-311.0683 1958.9653,-303.3859 1965,-291 1976.371,-267.6617 1999.629,-278.3383 2011,-255 2014.8934,-247.0091 2016.3918,-242.0668 2011,-235 1896.6773,-85.1624 1786.4506,-161.7162 1602,-123 1486.6924,-98.7969 1347.6084,-81.8878 1285.593,-74.9774"/>
-<polygon fill="#191970" stroke="#191970" points="1285.9465,-71.4953 1275.6233,-73.879 1285.1799,-78.4532 1285.9465,-71.4953"/>
+<path fill="none" stroke="#191970" d="M2273.8765,-363.9371C2279.943,-347.2572 2289.3881,-312.5685 2273,-291 2251.9285,-263.2677 1702.9606,-130.7306 1669,-123 1576.7577,-102.0026 1466.3382,-84.3786 1412.5999,-76.2756"/>
+<polygon fill="#191970" stroke="#191970" points="1413.0381,-72.8022 1402.6302,-74.7837 1412.0021,-79.7252 1413.0381,-72.8022"/>
 </g>
 <!-- Node35&#45;&gt;Node17 -->
 <g id="edge87" class="edge">
 <title>Node35&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M2194.582,-363.9232C2204.4265,-361.6928 2215.0667,-359.5268 2225,-358 2273.9207,-350.4808 2635.4456,-358.3852 2669,-322 2721.6903,-264.8646 2625.6261,-264.5769 2577,-235 2486.8257,-180.1514 2379.6145,-115.0081 2332.3907,-86.3176"/>
-<polygon fill="#191970" stroke="#191970" points="2334.1323,-83.2804 2323.7686,-81.0794 2330.4977,-89.2629 2334.1323,-83.2804"/>
+<path fill="none" stroke="#191970" d="M2311.7523,-363.9856C2376.7621,-349.1656 2494.819,-322.2271 2495,-322 2556.5703,-244.7447 2443.0016,-130.4111 2395.4856,-88.0621"/>
+<polygon fill="#191970" stroke="#191970" points="2397.5217,-85.1927 2387.6934,-81.2362 2392.9092,-90.4582 2397.5217,-85.1927"/>
 </g>
 <!-- Node35&#45;&gt;Node18 -->
 <g id="edge90" class="edge">
 <title>Node35&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M2195.7637,-363.9646C2242.0809,-352.1842 2314.3326,-332.4253 2322,-322 2330.163,-310.9008 2327.5364,-303.6165 2322,-291 2316.6677,-278.8487 2306.3661,-268.4938 2296.4924,-260.7031"/>
-<polygon fill="#191970" stroke="#191970" points="2298.5509,-257.8723 2288.4177,-254.7788 2294.41,-263.5162 2298.5509,-257.8723"/>
+<path fill="none" stroke="#191970" d="M2270.895,-363.9725C2271.9418,-346.7112 2271.4117,-310.2731 2251,-291 2181.8293,-225.6878 2132.9799,-275.125 2040,-255 2038.5415,-254.6843 2037.0548,-254.3496 2035.5553,-254.0013"/>
+<polygon fill="#191970" stroke="#191970" points="2036.185,-250.552 2025.6389,-251.566 2034.5155,-257.35 2036.185,-250.552"/>
 </g>
 <!-- Node35&#45;&gt;Node20 -->
 <g id="edge74" class="edge">
 <title>Node35&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M2096.0173,-363.9679C2080.0949,-361.737 2062.9311,-359.5594 2047,-358 1761.5461,-330.0587 1684.4324,-359.9413 1396.4516,-322.0503"/>
-<polygon fill="#191970" stroke="#191970" points="1396.4922,-318.5249 1386.1175,-320.6736 1395.5677,-325.4636 1396.4922,-318.5249"/>
+<path fill="none" stroke="#191970" d="M2207.3648,-368.4083C2164.0408,-365.0379 2105.0495,-360.7485 2053,-358 1585.8217,-333.33 1468.0242,-349.4338 1001,-322 963.9162,-319.8216 922.7457,-316.4859 888.5853,-313.4663"/>
+<polygon fill="#191970" stroke="#191970" points="888.4928,-309.9442 878.2212,-312.5409 887.8703,-316.9165 888.4928,-309.9442"/>
 </g>
 <!-- Node35&#45;&gt;Node26 -->
 <g id="edge79" class="edge">
 <title>Node35&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M2094.2474,-364.0896C2078.8183,-361.9327 2062.3281,-359.7593 2047,-358 1865.1225,-337.1252 1650.3211,-320.0124 1540.1933,-311.7854"/>
-<polygon fill="#191970" stroke="#191970" points="1540.4216,-308.2928 1530.1894,-311.0411 1539.9021,-315.2735 1540.4216,-308.2928"/>
+<path fill="none" stroke="#191970" d="M2207.3498,-368.6729C2164.0191,-365.4208 2105.0259,-361.1638 2053,-358 1734.5203,-338.6326 1654.5941,-339.3861 1336,-322 1271.9892,-318.5069 1199.2367,-314.1926 1146.501,-311.0034"/>
+<polygon fill="#191970" stroke="#191970" points="1146.4226,-307.4923 1136.2293,-310.3811 1145.9993,-314.4795 1146.4226,-307.4923"/>
 </g>
 <!-- Node35&#45;&gt;Node33 -->
 <g id="edge80" class="edge">
 <title>Node35&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M2199.1932,-363.9585C2210.4525,-361.7002 2222.6458,-359.5117 2234,-358 2474.1871,-326.0214 2536.8264,-345.4049 2778,-322 2791.7396,-320.6666 2806.3266,-319.0074 2820.4389,-317.2748"/>
-<polygon fill="#191970" stroke="#191970" points="2821.1231,-320.7166 2830.612,-316.0038 2820.2552,-313.7706 2821.1231,-320.7166"/>
+<path fill="none" stroke="#191970" d="M2332.774,-367.3287C2417.0015,-358.7488 2571.1507,-341.995 2702,-322 2710.0355,-320.7721 2718.4843,-319.3489 2726.7903,-317.8726"/>
+<polygon fill="#191970" stroke="#191970" points="2727.5985,-321.2832 2736.8136,-316.055 2726.3495,-314.3955 2727.5985,-321.2832"/>
 </g>
 <!-- Node36 -->
 <g id="node37" class="node">
 <title>Node36</title>
 <g id="a_node37"><a xlink:href="shape__tuple_8h.html" target="_top" xlink:title="Runtime ShapeTuple container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1974,-291.5 1974,-321.5 2100,-321.5 2100,-291.5 1974,-291.5"/>
-<text text-anchor="start" x="1982" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="2037" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/shape_tuple.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1624,-291.5 1624,-321.5 1750,-321.5 1750,-291.5 1624,-291.5"/>
+<text text-anchor="start" x="1632" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="1687" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/shape_tuple.h</text>
 </a>
 </g>
 </g>
 <!-- Node35&#45;&gt;Node36 -->
 <g id="edge75" class="edge">
 <title>Node35&#45;&gt;Node36</title>
-<path fill="none" stroke="#191970" d="M2139.8069,-363.9005C2122.3774,-354.1691 2094.892,-338.823 2072.7243,-326.4461"/>
-<polygon fill="#191970" stroke="#191970" points="2074.3422,-323.3408 2063.9047,-321.5218 2070.9297,-329.4527 2074.3422,-323.3408"/>
+<path fill="none" stroke="#191970" d="M2207.3321,-366.298C2098.7086,-353.8147 1876.0213,-328.2229 1760.3679,-314.9317"/>
+<polygon fill="#191970" stroke="#191970" points="1760.5291,-311.4272 1750.1949,-313.7625 1759.7299,-318.3814 1760.5291,-311.4272"/>
 </g>
 <!-- Node37 -->
 <g id="node38" class="node">
 <title>Node37</title>
 <g id="a_node38"><a xlink:href="serializer_8h.html" target="_top" xlink:title="Serializer extension to support TVM data types Include this file to enable serialization of DLDataTyp...">
-<polygon fill="#ffffff" stroke="#000000" points="2526,-297 2526,-316 2660,-316 2660,-297 2526,-297"/>
-<text text-anchor="middle" x="2593" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/serializer.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2336,-297 2336,-316 2470,-316 2470,-297 2336,-297"/>
+<text text-anchor="middle" x="2403" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/serializer.h</text>
 </a>
 </g>
 </g>
 <!-- Node35&#45;&gt;Node37 -->
 <g id="edge82" class="edge">
 <title>Node35&#45;&gt;Node37</title>
-<path fill="none" stroke="#191970" d="M2193.3601,-363.9773C2203.5635,-361.8946 2214.6525,-359.7822 2225,-358 2278.8278,-348.7289 2424.5852,-328.3701 2515.7455,-316.2105"/>
-<polygon fill="#191970" stroke="#191970" points="2516.3085,-319.6666 2525.7597,-314.8786 2515.3855,-312.7277 2516.3085,-319.6666"/>
+<path fill="none" stroke="#191970" d="M2284.1551,-363.9005C2304.5649,-352.5072 2342.2269,-333.4178 2369.7966,-320.4075"/>
+<polygon fill="#191970" stroke="#191970" points="2371.4958,-323.4771 2379.0826,-316.0817 2368.5399,-317.1318 2371.4958,-323.4771"/>
 </g>
 <!-- Node35&#45;&gt;Node40 -->
 <g id="edge88" class="edge">
 <title>Node35&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M2107.5097,-363.9717C2038.9332,-350.7688 1916.172,-327.1337 1851.514,-314.6852"/>
-<polygon fill="#191970" stroke="#191970" points="1852.1342,-311.2404 1841.6528,-312.7866 1850.8107,-318.1141 1852.1342,-311.2404"/>
+<path fill="none" stroke="#191970" d="M2261.2602,-363.9005C2251.7478,-353.4525 2236.343,-336.5325 2224.7175,-323.7635"/>
+<polygon fill="#191970" stroke="#191970" points="2227.0439,-321.1198 2217.7236,-316.0817 2221.8678,-325.8324 2227.0439,-321.1198"/>
 </g>
 <!-- Node36&#45;&gt;Node16 -->
 <g id="edge76" class="edge">
 <title>Node36&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M2057.2632,-291.4814C2073.8714,-277.2315 2092.9844,-255.0715 2082,-235 2037.6684,-153.9943 1994.5398,-152.3939 1907,-123 1789.8663,-83.6692 1401.4789,-74.0133 1285.7921,-71.9835"/>
-<polygon fill="#191970" stroke="#191970" points="1285.8287,-68.4837 1275.7712,-71.815 1285.7109,-75.4827 1285.8287,-68.4837"/>
+<path fill="none" stroke="#191970" d="M1716.849,-291.377C1738.0249,-278.3601 1761.1849,-258.067 1752,-235 1725.6067,-168.716 1700.7322,-155.0683 1637,-123 1597.9821,-103.3673 1472.9602,-84.2188 1412.8641,-75.8687"/>
+<polygon fill="#191970" stroke="#191970" points="1413.1573,-72.3762 1402.7742,-74.4836 1412.2053,-79.3111 1413.1573,-72.3762"/>
 </g>
 <!-- Node36&#45;&gt;Node18 -->
 <g id="edge77" class="edge">
 <title>Node36&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M2094.7611,-291.4264C2134.0287,-281.1724 2187.1541,-267.2872 2234,-255 2235.4435,-254.6214 2236.9177,-254.2345 2238.4069,-253.8434"/>
-<polygon fill="#191970" stroke="#191970" points="2239.5031,-257.1743 2248.2849,-251.2472 2237.7236,-250.4042 2239.5031,-257.1743"/>
+<path fill="none" stroke="#191970" d="M1750.0114,-293.7062C1754.7429,-292.7792 1759.4457,-291.8682 1764,-291 1852.7198,-274.0875 1875.8145,-274.5079 1964,-255 1965.4571,-254.6777 1966.9426,-254.3374 1968.441,-253.9847"/>
+<polygon fill="#191970" stroke="#191970" points="1969.4869,-257.3315 1978.3538,-251.5324 1967.8059,-250.5363 1969.4869,-257.3315"/>
 </g>
 <!-- Node36&#45;&gt;Node21 -->
 <g id="edge78" class="edge">
 <title>Node36&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1973.9579,-301.0042C1848.7554,-290.038 1572.6768,-265.5859 1478,-255 1465.6226,-253.6161 1452.138,-251.9076 1440.0099,-250.2968"/>
-<polygon fill="#191970" stroke="#191970" points="1440.1407,-246.7829 1429.7631,-248.917 1439.2065,-253.7202 1440.1407,-246.7829"/>
+<path fill="none" stroke="#191970" d="M1623.9514,-294.5693C1557.3593,-281.968 1454.5625,-262.5157 1399.6394,-252.1225"/>
+<polygon fill="#191970" stroke="#191970" points="1400.1156,-248.6506 1389.6392,-250.2302 1398.814,-255.5285 1400.1156,-248.6506"/>
 </g>
 <!-- Node37&#45;&gt;Node9 -->
 <g id="edge85" class="edge">
 <title>Node37&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M2600.2683,-296.9236C2611.5733,-282.4224 2634.5213,-254.5183 2658,-235 2730.7456,-174.5251 2752.6281,-161.5881 2839,-123 2870.8321,-108.7785 2907.6481,-97.2648 2939.2752,-88.7598"/>
-<polygon fill="#191970" stroke="#191970" points="2940.5709,-92.0379 2949.3485,-86.1046 2938.7867,-85.2691 2940.5709,-92.0379"/>
+<path fill="none" stroke="#191970" d="M2421.1714,-296.9215C2479.138,-266.7573 2665.5046,-172.7849 2830,-123 2898.169,-102.3685 2978.3102,-88.6461 3035.3471,-80.5916"/>
+<polygon fill="#191970" stroke="#191970" points="3035.9393,-84.0431 3045.3634,-79.2019 3034.9772,-77.1095 3035.9393,-84.0431"/>
 </g>
 <!-- Node37&#45;&gt;Node35 -->
 <g id="edge86" class="edge">
 <title>Node37&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M2529.6216,-316.0003C2444.2751,-328.1341 2297.1393,-348.6752 2243,-358 2235.8052,-359.2392 2228.252,-360.638 2220.7226,-362.0755"/>
-<polygon fill="#191970" stroke="#191970" points="2220.0257,-358.6453 2210.8703,-363.9773 2221.3525,-365.5184 2220.0257,-358.6453"/>
+<path fill="none" stroke="#191970" d="M2388.8768,-316.0817C2368.485,-327.467 2330.8267,-346.5555 2303.2466,-359.5722"/>
+<polygon fill="#191970" stroke="#191970" points="2301.5426,-356.5048 2293.9562,-363.9005 2304.4989,-362.8499 2301.5426,-356.5048"/>
 </g>
 <!-- Node38 -->
 <g id="node39" class="node">
 <title>Node38</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2390,-235.5 2390,-254.5 2452,-254.5 2452,-235.5 2390,-235.5"/>
-<text text-anchor="middle" x="2421" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/io.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2203,-235.5 2203,-254.5 2265,-254.5 2265,-235.5 2203,-235.5"/>
+<text text-anchor="middle" x="2234" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/io.h</text>
 </g>
 <!-- Node37&#45;&gt;Node38 -->
 <g id="edge83" class="edge">
 <title>Node37&#45;&gt;Node38</title>
-<path fill="none" stroke="#191970" d="M2566.125,-296.8906C2536.8414,-286.42 2489.831,-269.6111 2457.2863,-257.9745"/>
-<polygon fill="#191970" stroke="#191970" points="2458.2809,-254.6131 2447.6863,-254.5419 2455.9241,-261.2045 2458.2809,-254.6131"/>
+<path fill="none" stroke="#191970" d="M2376.5938,-296.8906C2347.8209,-286.42 2301.6304,-269.6111 2269.6534,-257.9745"/>
+<polygon fill="#191970" stroke="#191970" points="2270.8149,-254.6726 2260.2208,-254.5419 2268.421,-261.2506 2270.8149,-254.6726"/>
 </g>
 <!-- Node39 -->
 <g id="node40" class="node">
 <title>Node39</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2470.5,-235.5 2470.5,-254.5 2567.5,-254.5 2567.5,-235.5 2470.5,-235.5"/>
-<text text-anchor="middle" x="2519" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/serializer.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2296.5,-235.5 2296.5,-254.5 2393.5,-254.5 2393.5,-235.5 2296.5,-235.5"/>
+<text text-anchor="middle" x="2345" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/serializer.h</text>
 </g>
 <!-- Node37&#45;&gt;Node39 -->
 <g id="edge84" class="edge">
 <title>Node37&#45;&gt;Node39</title>
-<path fill="none" stroke="#191970" d="M2581.4375,-296.8906C2569.9921,-287.3786 2552.2527,-272.6357 2538.603,-261.2917"/>
-<polygon fill="#191970" stroke="#191970" points="2540.6533,-258.4447 2530.7255,-254.7449 2536.1792,-263.8283 2540.6533,-258.4447"/>
+<path fill="none" stroke="#191970" d="M2393.9375,-296.8906C2385.2207,-287.6478 2371.846,-273.466 2361.2804,-262.2628"/>
+<polygon fill="#191970" stroke="#191970" points="2363.5976,-259.6186 2354.1903,-254.7449 2358.505,-264.4213 2363.5976,-259.6186"/>
 </g>
 <!-- Node41&#45;&gt;Node8 -->
 <g id="edge122" class="edge">
 <title>Node41&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M2046.1547,-434.7529C2203.7525,-418.5846 2629.8634,-370.7014 2669,-322 2717.7901,-261.2859 2612.0757,-252.1434 2577,-235 2498.5895,-196.6765 2401.8924,-163.1479 2348.4043,-145.7235"/>
-<polygon fill="#191970" stroke="#191970" points="2349.2092,-142.3054 2338.6174,-142.5582 2347.0551,-148.9657 2349.2092,-142.3054"/>
+<path fill="none" stroke="#191970" d="M2105.1594,-434.5581C2216.4315,-421.7794 2452.2416,-387.4027 2495,-322 2570.277,-206.8573 2325.1976,-157.9524 2199.5591,-140.8199"/>
+<polygon fill="#191970" stroke="#191970" points="2199.9978,-137.3475 2189.6233,-139.4972 2199.074,-144.2863 2199.9978,-137.3475"/>
 </g>
 <!-- Node41&#45;&gt;Node9 -->
 <g id="edge99" class="edge">
 <title>Node41&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M2046.0281,-438.9207C2233.2411,-433.5874 2813.7548,-415.1075 2894,-389 2946.2861,-371.9889 2967.8397,-367.9735 2998,-322 3044.2244,-251.5399 3029.745,-144.5952 3019.8947,-96.4882"/>
-<polygon fill="#191970" stroke="#191970" points="3023.2969,-95.6615 3017.7674,-86.6241 3016.4542,-97.1372 3023.2969,-95.6615"/>
+<path fill="none" stroke="#191970" d="M2105.0508,-437.9511C2243.2892,-431.5563 2588.8597,-413.5691 2702,-389 2744.5242,-379.7656 2847.7058,-342.6672 2886,-322 2996.6266,-262.2955 3053.9109,-257.8598 3105,-143 3111.4075,-128.5944 3112.6972,-110.9339 3112.3655,-96.7691"/>
+<polygon fill="#191970" stroke="#191970" points="3115.8584,-96.5392 3111.8537,-86.7304 3108.8675,-96.8957 3115.8584,-96.5392"/>
 </g>
 <!-- Node41&#45;&gt;Node13 -->
 <g id="edge108" class="edge">
 <title>Node41&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M2046.2165,-439.4258C2209.7532,-436.006 2670.9394,-423.4932 2818,-389 2892.6582,-371.4889 2934.5913,-385.8905 2977,-322 3098.2254,-139.369 2664.7351,-88.6141 2486.8383,-75.6282"/>
-<polygon fill="#191970" stroke="#191970" points="2486.9955,-72.1306 2476.7728,-74.9139 2486.5,-79.113 2486.9955,-72.1306"/>
+<path fill="none" stroke="#191970" d="M2055.0663,-425.2101C2059.8738,-415.2121 2065.5108,-401.697 2068,-389 2070.6506,-375.4796 2069.511,-371.6947 2068,-358 2056.7435,-255.9774 2023.5888,-137.1638 2009.957,-91.1192"/>
+<polygon fill="#191970" stroke="#191970" points="2013.2276,-89.84 2007.0064,-81.264 2006.5217,-91.8478 2013.2276,-89.84"/>
 </g>
 <!-- Node41&#45;&gt;Node14 -->
 <g id="edge126" class="edge">
 <title>Node41&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1929.6565,-426.2987C1926.7385,-425.8097 1923.8412,-425.3716 1921,-425 1678.7101,-393.3127 1056.6093,-457.3152 822,-389 597.586,-323.6535 369.9109,-142.8461 303.9564,-87.6867"/>
-<polygon fill="#191970" stroke="#191970" points="305.9684,-84.8052 296.0657,-81.0388 301.4582,-90.1586 305.9684,-84.8052"/>
+<path fill="none" stroke="#191970" d="M1988.9368,-437.2868C1926.2928,-433.8969 1823.6001,-428.5624 1735,-425 1669.9663,-422.3851 621.8858,-418.7566 564,-389 497.8681,-355.0044 408.0447,-180.5841 361,-123 351.4926,-111.3627 340.3871,-98.6446 331.5874,-88.7587"/>
+<polygon fill="#191970" stroke="#191970" points="334.1025,-86.3207 324.8237,-81.2065 328.888,-90.9908 334.1025,-86.3207"/>
 </g>
 <!-- Node41&#45;&gt;Node15 -->
 <g id="edge128" class="edge">
 <title>Node41&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M1929.6552,-426.3088C1926.7376,-425.8171 1923.8407,-425.3757 1921,-425 1698.3516,-395.5549 1127.6171,-448.2987 911,-389 850.9583,-372.5636 828.1673,-369.5579 788,-322 730.152,-253.5081 736.9675,-210.82 755,-123 757.3105,-111.7475 762.0088,-99.8313 766.3766,-90.2984"/>
-<polygon fill="#191970" stroke="#191970" points="769.6543,-91.5601 770.8578,-81.0338 763.3527,-88.5121 769.6543,-91.5601"/>
+<path fill="none" stroke="#191970" d="M2105.0042,-438.7879C2209.2609,-434.9397 2434.9021,-423.0933 2622,-389 2649.3431,-384.0175 2843.6366,-341.9381 2863,-322 2887.5575,-296.7137 2882,-280.2487 2882,-245 2882,-245 2882,-245 2882,-189 2882,-139.7128 2730.3547,-98.7289 2652.6948,-80.9719"/>
+<polygon fill="#191970" stroke="#191970" points="2653.2269,-77.5042 2642.7023,-78.722 2651.6892,-84.3332 2653.2269,-77.5042"/>
 </g>
 <!-- Node41&#45;&gt;Node16 -->
 <g id="edge129" class="edge">
 <title>Node41&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1929.6518,-426.3345C1926.735,-425.8361 1923.8393,-425.3861 1921,-425 1552.0521,-374.8256 1451.2504,-450.3769 1084,-389 980.6677,-371.7305 940.0173,-387.1841 858,-322 824.9677,-295.7472 806.772,-275.067 820,-235 839.4237,-176.1669 849.8454,-154.8309 903,-123 956.3451,-91.0549 1144.2527,-77.4257 1220.4947,-73.1231"/>
-<polygon fill="#191970" stroke="#191970" points="1220.692,-76.6176 1230.4861,-72.5769 1220.3099,-69.628 1220.692,-76.6176"/>
+<path fill="none" stroke="#191970" d="M1988.9363,-437.2989C1926.2919,-433.9192 1823.5989,-428.5933 1735,-425 1671.4097,-422.421 634.2893,-434.7037 590,-389 503.5353,-299.774 565.3823,-179.5787 676,-123 736.2243,-92.1965 1216.2416,-76.2186 1347.1337,-72.4064"/>
+<polygon fill="#191970" stroke="#191970" points="1347.4326,-75.8994 1357.328,-72.1137 1347.2316,-68.9023 1347.4326,-75.8994"/>
 </g>
 <!-- Node41&#45;&gt;Node18 -->
 <g id="edge130" class="edge">
 <title>Node41&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M2005.3581,-425.4853C2032.2373,-402.2931 2081.3417,-360.1796 2086,-358 2168.9948,-319.1682 2230.1359,-392.2215 2289,-322 2302.6742,-305.6874 2293.467,-280.7858 2284.1287,-263.7459"/>
-<polygon fill="#191970" stroke="#191970" points="2286.9009,-261.5591 2278.7872,-254.7459 2280.8812,-265.1318 2286.9009,-261.5591"/>
+<path fill="none" stroke="#191970" d="M2050.6253,-425.4188C2054.0517,-408.741 2057.9853,-381.1648 2053,-358 2045.4209,-322.7829 2025.9532,-285.315 2013.3814,-263.5921"/>
+<polygon fill="#191970" stroke="#191970" points="2016.2692,-261.5999 2008.1579,-254.7839 2010.2482,-265.1704 2016.2692,-261.5999"/>
 </g>
 <!-- Node41&#45;&gt;Node29 -->
 <g id="edge125" class="edge">
 <title>Node41&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M1943.6075,-425.4714C1918.6627,-416.3011 1887.3438,-403.5555 1861,-389 1816.4108,-364.3635 1791.2185,-367.3438 1768,-322 1761.7204,-309.7365 1760.7314,-302.7044 1768,-291 1779.8691,-271.8877 1802.2936,-260.4751 1822.1486,-253.7985"/>
-<polygon fill="#191970" stroke="#191970" points="1823.3907,-257.0787 1831.9288,-250.8057 1821.3424,-250.3851 1823.3907,-257.0787"/>
+<path fill="none" stroke="#191970" d="M1988.9053,-436.0167C1866.5957,-425.2406 1589.1673,-393.3123 1533,-322 1524.475,-311.1763 1525.02,-302.2315 1533,-291 1538.6371,-283.066 1589.0417,-267.0126 1625.8947,-256.1311"/>
+<polygon fill="#191970" stroke="#191970" points="1627.266,-259.3767 1635.8813,-253.2101 1625.3008,-252.6582 1627.266,-259.3767"/>
 </g>
 <!-- Node41&#45;&gt;Node32 -->
 <g id="edge100" class="edge">
 <title>Node41&#45;&gt;Node32</title>
-<path fill="none" stroke="#191970" d="M1929.6474,-426.3657C1926.7319,-425.859 1923.8375,-425.3988 1921,-425 1618.8668,-382.5391 1535.5178,-428.5738 1229.175,-389.0049"/>
-<polygon fill="#191970" stroke="#191970" points="1229.4863,-385.5159 1219.1159,-387.6854 1228.5758,-392.4564 1229.4863,-385.5159"/>
+<path fill="none" stroke="#191970" d="M1988.7224,-436.078C1833.2243,-424.2792 1408.6905,-392.0666 1237.2544,-379.0584"/>
+<polygon fill="#191970" stroke="#191970" points="1237.3054,-375.5523 1227.0692,-378.2855 1236.7757,-382.5322 1237.3054,-375.5523"/>
 </g>
 <!-- Node41&#45;&gt;Node33 -->
 <g id="edge107" class="edge">
 <title>Node41&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M2046.3022,-438.5454C2217.8649,-432.5388 2713.2504,-413.2779 2782,-389 2792.6652,-385.2337 2847.3191,-345.1111 2878.0121,-322.2394"/>
-<polygon fill="#191970" stroke="#191970" points="2880.4185,-324.8106 2886.3357,-316.0221 2876.2294,-319.2024 2880.4185,-324.8106"/>
+<path fill="none" stroke="#191970" d="M2105.1534,-436.6988C2221.954,-428.7446 2481.29,-409.3866 2568,-389 2586.4599,-384.6599 2695.0569,-342.1135 2751.2843,-319.8817"/>
+<polygon fill="#191970" stroke="#191970" points="2752.8049,-323.0441 2760.8151,-316.1096 2750.2288,-316.5354 2752.8049,-323.0441"/>
 </g>
 <!-- Node41&#45;&gt;Node35 -->
 <g id="edge121" class="edge">
 <title>Node41&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M2025.9269,-425.4639C2055.177,-413.8677 2095.2547,-397.9789 2123.3676,-386.8335"/>
-<polygon fill="#191970" stroke="#191970" points="2124.769,-390.0431 2132.7752,-383.1039 2122.1892,-383.5358 2124.769,-390.0431"/>
+<path fill="none" stroke="#191970" d="M2097.0456,-425.4639C2136.602,-413.5792 2191.1652,-397.1858 2228.3597,-386.0108"/>
+<polygon fill="#191970" stroke="#191970" points="2229.793,-389.2348 2238.363,-383.0053 2227.7788,-382.5308 2229.793,-389.2348"/>
 </g>
 <!-- Node41&#45;&gt;Node40 -->
 <g id="edge123" class="edge">
 <title>Node41&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M1960.4209,-425.4339C1943.3941,-415.7362 1921.3692,-402.4647 1903,-389 1874.601,-368.1834 1844.4621,-340.6353 1826.1831,-323.2368"/>
-<polygon fill="#191970" stroke="#191970" points="1828.3044,-320.4213 1818.6681,-316.0177 1823.4551,-325.4695 1828.3044,-320.4213"/>
+<path fill="none" stroke="#191970" d="M2072.0772,-425.352C2087.5368,-415.6235 2107.4928,-402.3483 2124,-389 2149.5604,-368.3309 2176.3398,-341.3093 2192.8509,-323.9262"/>
+<polygon fill="#191970" stroke="#191970" points="2195.7806,-325.9197 2200.0812,-316.237 2190.681,-321.1245 2195.7806,-325.9197"/>
 </g>
 <!-- Node42 -->
 <g id="node43" class="node">
 <title>Node42</title>
 <g id="a_node43"><a xlink:href="map_8h.html" target="_top" xlink:title="Runtime Map container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1237,-358.5 1237,-388.5 1363,-388.5 1363,-358.5 1237,-358.5"/>
-<text text-anchor="start" x="1245" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="1300" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/map.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="599,-358.5 599,-388.5 725,-388.5 725,-358.5 599,-358.5"/>
+<text text-anchor="start" x="607" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="662" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/map.h</text>
 </a>
 </g>
 </g>
 <!-- Node41&#45;&gt;Node42 -->
 <g id="edge101" class="edge">
 <title>Node41&#45;&gt;Node42</title>
-<path fill="none" stroke="#191970" d="M1929.6406,-426.4131C1926.7268,-425.8939 1923.8347,-425.418 1921,-425 1682.3995,-389.8143 1615.9819,-421.9186 1373.3162,-389.0412"/>
-<polygon fill="#191970" stroke="#191970" points="1373.5069,-385.5345 1363.1226,-387.6363 1372.5511,-392.469 1373.5069,-385.5345"/>
+<path fill="none" stroke="#191970" d="M1988.933,-437.3785C1926.2858,-434.0661 1823.5904,-428.7966 1735,-425 1291.1192,-405.9771 1177.0265,-442.7369 736,-389 735.7801,-388.9732 735.5599,-388.9461 735.3394,-388.9187"/>
+<polygon fill="#191970" stroke="#191970" points="735.6512,-385.428 725.259,-387.4901 734.6689,-392.3587 735.6512,-385.428"/>
 </g>
 <!-- Node43 -->
 <g id="node44" class="node">
 <title>Node43</title>
 <g id="a_node44"><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="#ffffff" stroke="#000000" points="1912,-364 1912,-383 2038,-383 2038,-364 1912,-364"/>
-<text text-anchor="middle" x="1975" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/module.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1820,-364 1820,-383 1946,-383 1946,-364 1820,-364"/>
+<text text-anchor="middle" x="1883" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/module.h</text>
 </a>
 </g>
 </g>
 <!-- Node41&#45;&gt;Node43 -->
 <g id="edge109" class="edge">
 <title>Node41&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M1979.2893,-425.2967C1976.2928,-415.7699 1973.743,-403.3954 1972.6019,-393.1306"/>
-<polygon fill="#191970" stroke="#191970" points="1976.0888,-392.813 1971.962,-383.055 1969.1029,-393.2567 1976.0888,-392.813"/>
+<path fill="none" stroke="#191970" d="M2004.4547,-425.4639C1974.9135,-413.969 1936.5131,-398.2561 1910.7967,-387.1266"/>
+<polygon fill="#191970" stroke="#191970" points="1912.171,-383.9076 1901.6067,-383.1039 1909.364,-390.3202 1912.171,-383.9076"/>
 </g>
 <!-- Node41&#45;&gt;Node45 -->
 <g id="edge124" class="edge">
 <title>Node41&#45;&gt;Node45</title>
-<path fill="none" stroke="#191970" d="M1929.6575,-426.2914C1926.7392,-425.8044 1923.8416,-425.3686 1921,-425 1403.7558,-357.8964 1268.8494,-416.574 748,-389 686.5202,-385.7452 614.8661,-379.8861 574.3257,-376.3787"/>
-<polygon fill="#191970" stroke="#191970" points="574.4987,-372.8806 564.2323,-375.4984 573.8903,-379.8541 574.4987,-372.8806"/>
+<path fill="none" stroke="#191970" d="M2105.2336,-439.0289C2257.5743,-434.7765 2665.1241,-420.696 2796,-389 2798.4883,-388.3974 2801.0229,-387.6371 2803.5363,-386.7784"/>
+<polygon fill="#191970" stroke="#191970" points="2804.9311,-389.9914 2812.9829,-383.1053 2802.3943,-383.4673 2804.9311,-389.9914"/>
 </g>
 <!-- Node46 -->
 <g id="node47" class="node">
 <title>Node46</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2314.5,-364 2314.5,-383 2355.5,-383 2355.5,-364 2314.5,-364"/>
-<text text-anchor="middle" x="2335" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tuple</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2002.5,-364 2002.5,-383 2043.5,-383 2043.5,-364 2002.5,-364"/>
+<text text-anchor="middle" x="2023" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tuple</text>
 </g>
 <!-- Node41&#45;&gt;Node46 -->
 <g id="edge127" class="edge">
 <title>Node41&#45;&gt;Node46</title>
-<path fill="none" stroke="#191970" d="M2046.2076,-435.3406C2109.6324,-428.6978 2213.5989,-414.8061 2300,-389 2302.1212,-388.3664 2304.283,-387.6353 2306.439,-386.8427"/>
-<polygon fill="#191970" stroke="#191970" points="2307.7554,-390.0858 2315.7091,-383.0865 2305.1266,-383.5981 2307.7554,-390.0858"/>
+<path fill="none" stroke="#191970" d="M2041.554,-425.2967C2038.0688,-415.5672 2033.5197,-402.8675 2029.7982,-392.4784"/>
+<polygon fill="#191970" stroke="#191970" points="2033.09,-391.2889 2026.4227,-383.055 2026.5,-393.6495 2033.09,-391.2889"/>
 </g>
 <!-- Node42&#45;&gt;Node16 -->
 <g id="edge104" class="edge">
 <title>Node42&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1274.0687,-358.3533C1261.5846,-349.5052 1247.8633,-337.1011 1241,-322 1204.9615,-242.7061 1232.574,-134.3732 1246.366,-90.8052"/>
-<polygon fill="#191970" stroke="#191970" points="1249.7317,-91.774 1249.5275,-81.1811 1243.0813,-89.5893 1249.7317,-91.774"/>
+<path fill="none" stroke="#191970" d="M654.6318,-358.444C638.8285,-323.7882 605.9251,-236.9135 642,-179 671.8463,-131.0858 701.5875,-138.0284 756,-123 869.1774,-91.7411 1235.7032,-76.5651 1347.3943,-72.5882"/>
+<polygon fill="#191970" stroke="#191970" points="1347.5191,-76.0861 1357.3905,-72.2381 1347.2741,-69.0904 1347.5191,-76.0861"/>
 </g>
 <!-- Node42&#45;&gt;Node20 -->
 <g id="edge106" class="edge">
 <title>Node42&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M1305.2191,-358.2967C1307.9539,-350.3299 1311.3724,-340.3718 1314.4793,-331.3213"/>
-<polygon fill="#191970" stroke="#191970" points="1317.8651,-332.2378 1317.8016,-321.6432 1311.2443,-329.965 1317.8651,-332.2378"/>
+<path fill="none" stroke="#191970" d="M696.3362,-358.4639C718.5034,-348.7567 747.5396,-336.0415 771.3408,-325.6188"/>
+<polygon fill="#191970" stroke="#191970" points="772.7578,-328.8191 780.5141,-321.6017 769.9499,-322.407 772.7578,-328.8191"/>
 </g>
 <!-- Node42&#45;&gt;Node21 -->
 <g id="edge105" class="edge">
 <title>Node42&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1279.9864,-358.3189C1260.0296,-341.3132 1234.5399,-313.2212 1251,-291 1264.5427,-272.7173 1324.0436,-258.7991 1364.1867,-251.2753"/>
-<polygon fill="#191970" stroke="#191970" points="1364.9742,-254.6896 1374.1868,-249.4572 1363.722,-247.8025 1364.9742,-254.6896"/>
+<path fill="none" stroke="#191970" d="M671.6257,-358.3885C684.9844,-338.907 711.1355,-305.7828 743,-291 749.6326,-287.923 1190.2717,-256.9768 1323.9625,-247.6479"/>
+<polygon fill="#191970" stroke="#191970" points="1324.4017,-251.1258 1334.134,-246.9385 1323.9147,-244.1428 1324.4017,-251.1258"/>
 </g>
 <!-- Node42&#45;&gt;Node24 -->
 <g id="edge102" class="edge">
 <title>Node42&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1237.1569,-358.4934C1184.4789,-345.6656 1115.9855,-328.3108 1104,-322 1073.6146,-306.0009 1000.5634,-237.5966 967.174,-205.6105"/>
-<polygon fill="#191970" stroke="#191970" points="969.5852,-203.0734 959.9508,-198.6656 964.7336,-208.1194 969.5852,-203.0734"/>
+<path fill="none" stroke="#191970" d="M659.7486,-358.217C658.3585,-347.9922 656.7095,-334.2214 656,-322 655.2015,-308.2454 653.4404,-304.5379 656,-291 661.7437,-260.6211 676.3187,-227.7001 686.1953,-207.7114"/>
+<polygon fill="#191970" stroke="#191970" points="689.3322,-209.264 690.7336,-198.7622 683.0891,-206.0979 689.3322,-209.264"/>
 </g>
 <!-- Node42&#45;&gt;Node31 -->
 <g id="edge103" class="edge">
 <title>Node42&#45;&gt;Node31</title>
-<path fill="none" stroke="#191970" d="M1363.191,-359.7695C1366.1671,-359.1628 1369.1149,-358.57 1372,-358 1460.6045,-340.4935 1484.7655,-345.396 1572,-322 1611.2428,-311.4752 1618.6047,-300.9387 1658,-291 1759.9329,-265.2843 1790.3559,-272.0809 1898.2786,-255.0559"/>
-<polygon fill="#191970" stroke="#191970" points="1898.9497,-258.493 1908.2661,-253.4478 1897.8369,-251.582 1898.9497,-258.493"/>
+<path fill="none" stroke="#191970" d="M659.3818,-358.2615C657.1803,-340.1557 656.5062,-310.0138 672,-291 682.8549,-277.6789 721.3169,-265.4434 754.7347,-256.9456"/>
+<polygon fill="#191970" stroke="#191970" points="755.5856,-260.3407 764.452,-254.5409 753.9041,-253.5457 755.5856,-260.3407"/>
 </g>
 <!-- Node43&#45;&gt;Node8 -->
 <g id="edge114" class="edge">
 <title>Node43&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M2038.0746,-364.0356C2079.7208,-356.2676 2134.749,-343.0485 2180,-322 2201.3618,-312.0635 2202.5446,-302.6892 2223,-291 2257.5575,-271.2521 2282.8278,-288.0543 2305,-255 2325.7576,-224.0546 2319.4097,-178.0467 2313.4027,-152.2783"/>
-<polygon fill="#191970" stroke="#191970" points="2316.7913,-151.4021 2310.9291,-142.5768 2310.0083,-153.1316 2316.7913,-151.4021"/>
+<path fill="none" stroke="#191970" d="M1915.3383,-363.976C1939.9908,-355.6291 1973.8676,-341.7271 1999,-322 2060.1437,-274.0067 2104.0552,-189.6957 2121.58,-152.0677"/>
+<polygon fill="#191970" stroke="#191970" points="2124.8585,-153.3132 2125.8155,-142.7616 2118.4874,-150.4134 2124.8585,-153.3132"/>
 </g>
 <!-- Node43&#45;&gt;Node9 -->
 <g id="edge111" class="edge">
 <title>Node43&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M2037.1279,-363.9643C2053.0308,-361.7601 2070.1246,-359.5962 2086,-358 2215.1512,-345.0147 2549.848,-373.4921 2669,-322 2687.472,-314.0173 2686.3988,-303.7099 2702,-291 2799.234,-211.7862 2923.3389,-129.6567 2981.3552,-92.2701"/>
-<polygon fill="#191970" stroke="#191970" points="2983.5636,-95.0114 2990.0847,-86.6613 2979.7797,-89.1222 2983.5636,-95.0114"/>
+<path fill="none" stroke="#191970" d="M1946.016,-363.9798C1961.6695,-361.8138 1978.4251,-359.6637 1994,-358 2101.4629,-346.5208 2380.0614,-365.4879 2479,-322 2497.4221,-313.9027 2494.8759,-301.569 2512,-291 2684.8313,-184.3278 2917.4387,-117.7432 3035.1156,-88.6267"/>
+<polygon fill="#191970" stroke="#191970" points="3036.2291,-91.9574 3045.1077,-86.1762 3034.5618,-85.1588 3036.2291,-91.9574"/>
 </g>
 <!-- Node43&#45;&gt;Node14 -->
 <g id="edge117" class="edge">
 <title>Node43&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1911.7385,-371.0414C1679.1006,-361.9425 883.1852,-330.2784 858,-322 820.0001,-309.5093 595.1196,-137.9046 558,-123 475.0902,-89.7094 369.2284,-77.6318 317.04,-73.4986"/>
-<polygon fill="#191970" stroke="#191970" points="317.2756,-70.0065 307.043,-72.7531 316.755,-76.9871 317.2756,-70.0065"/>
+<path fill="none" stroke="#191970" d="M1819.8347,-372.3801C1624.2744,-368.581 1037.1611,-354.562 958,-322 938.7824,-314.0951 941.5569,-300.3511 923,-291 854.0307,-256.2454 807.5782,-309.643 753,-255 728.6064,-230.5775 761.3789,-203.4371 737,-179 682.7616,-124.6321 642.5369,-161.4913 568,-143 488.224,-123.209 395.4841,-95.7242 347.8498,-81.2741"/>
+<polygon fill="#191970" stroke="#191970" points="348.7015,-77.8749 338.1157,-78.312 346.6636,-84.5717 348.7015,-77.8749"/>
 </g>
 <!-- Node43&#45;&gt;Node18 -->
 <g id="edge119" class="edge">
 <title>Node43&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M2017.0101,-363.955C2051.511,-355.3193 2101.165,-341.0393 2142,-322 2165.0168,-311.2684 2168.2485,-304.1076 2190,-291 2208.2319,-280.0133 2229.1672,-268.2834 2245.3207,-259.4184"/>
-<polygon fill="#191970" stroke="#191970" points="2247.1234,-262.4219 2254.2224,-254.5571 2243.7683,-256.2782 2247.1234,-262.4219"/>
+<path fill="none" stroke="#191970" d="M1912.7321,-363.892C1933.4472,-355.777 1960.2632,-342.2061 1977,-322 1990.5493,-305.6421 1996.8137,-281.7635 1999.6724,-264.9442"/>
+<polygon fill="#191970" stroke="#191970" points="2003.1998,-265.0028 2001.1551,-254.6071 1996.2707,-264.0089 2003.1998,-265.0028"/>
 </g>
 <!-- Node43&#45;&gt;Node22 -->
 <g id="edge113" class="edge">
 <title>Node43&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M1911.9524,-371.8423C1746.564,-367.0974 1308.9802,-351.8462 1251,-322 1201.4526,-296.4947 1165.8411,-237.855 1150.0666,-207.684"/>
-<polygon fill="#191970" stroke="#191970" points="1153.1242,-205.9746 1145.4859,-198.6324 1146.8784,-209.1354 1153.1242,-205.9746"/>
+<path fill="none" stroke="#191970" d="M1836.1911,-363.9813C1826.2301,-361.9827 1815.7706,-359.9041 1806,-358 1763.6058,-349.7381 1642.5681,-355.2496 1615,-322 1559.1848,-254.6819 1683.2419,-325.7403 1736,-255 1755.1945,-229.2632 1718.1812,-211.6678 1681.8378,-201.1587"/>
+<polygon fill="#191970" stroke="#191970" points="1682.7203,-197.7716 1672.1513,-198.5104 1680.8742,-204.5238 1682.7203,-197.7716"/>
 </g>
 <!-- Node43&#45;&gt;Node26 -->
 <g id="edge112" class="edge">
 <title>Node43&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M1911.9444,-365.1836C1817.6639,-352.749 1640.3734,-329.3662 1540.4019,-316.181"/>
-<polygon fill="#191970" stroke="#191970" points="1540.7537,-312.6971 1530.3819,-314.8594 1539.8384,-319.637 1540.7537,-312.6971"/>
+<path fill="none" stroke="#191970" d="M1819.778,-368.2705C1671.7694,-356.0278 1303.4243,-325.5598 1146.1072,-312.5471"/>
+<polygon fill="#191970" stroke="#191970" points="1146.3092,-309.052 1136.0547,-311.7156 1145.7321,-316.0282 1146.3092,-309.052"/>
 </g>
 <!-- Node43&#45;&gt;Node29 -->
 <g id="edge115" class="edge">
 <title>Node43&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M1965.1845,-363.8421C1954.9318,-353.6506 1938.4934,-337.016 1925,-322 1907.1584,-302.1451 1887.6927,-278.4038 1874.9713,-262.5829"/>
-<polygon fill="#191970" stroke="#191970" points="1877.6312,-260.305 1868.6508,-254.6834 1872.1654,-264.6783 1877.6312,-260.305"/>
+<path fill="none" stroke="#191970" d="M1837.8925,-363.9323C1827.4438,-361.8517 1816.3528,-359.7515 1806,-358 1748.0542,-348.1965 1582.6243,-366.2944 1544,-322 1534.945,-311.6157 1536.1779,-302.342 1544,-291 1553.671,-276.9771 1594.3179,-263.4317 1625.8639,-254.7154"/>
+<polygon fill="#191970" stroke="#191970" points="1626.9876,-258.0377 1635.7356,-252.0607 1625.1697,-251.2778 1626.9876,-258.0377"/>
 </g>
 <!-- Node43&#45;&gt;Node31 -->
 <g id="edge118" class="edge">
 <title>Node43&#45;&gt;Node31</title>
-<path fill="none" stroke="#191970" d="M1963.2775,-363.8841C1952.8065,-354.4695 1938.1939,-339.0823 1932,-322 1924.8322,-302.2316 1934.0767,-279.0505 1942.8927,-263.3272"/>
-<polygon fill="#191970" stroke="#191970" points="1945.9922,-264.9656 1948.1759,-254.5982 1940.0036,-261.341 1945.9922,-264.9656"/>
+<path fill="none" stroke="#191970" d="M1819.9115,-371.8531C1630.8918,-366.6353 1077.5102,-349.1919 1001,-322 978.8006,-314.1103 979.0894,-301.5023 958,-291 927.8674,-275.9943 891.8556,-264.7134 862.7842,-257.0791"/>
+<polygon fill="#191970" stroke="#191970" points="863.367,-253.6156 852.8118,-254.5307 861.6339,-260.3977 863.367,-253.6156"/>
 </g>
 <!-- Node43&#45;&gt;Node38 -->
 <g id="edge110" class="edge">
 <title>Node43&#45;&gt;Node38</title>
-<path fill="none" stroke="#191970" d="M2038.2445,-364.388C2123.0979,-351.9689 2265.8684,-330.3212 2289,-322 2331.0223,-306.8832 2374.8526,-278.3551 2399.9449,-260.5882"/>
-<polygon fill="#191970" stroke="#191970" points="2402.2305,-263.2556 2408.3036,-254.5742 2398.1422,-257.5735 2402.2305,-263.2556"/>
+<path fill="none" stroke="#191970" d="M1916.7929,-363.9205C1950.3533,-354.1808 2003.1384,-338.2497 2048,-322 2103.4167,-301.927 2166.5393,-274.8848 2203.1655,-258.7668"/>
+<polygon fill="#191970" stroke="#191970" points="2205.0326,-261.7683 2212.7649,-254.5252 2202.2035,-255.3655 2205.0326,-261.7683"/>
 </g>
 <!-- Node43&#45;&gt;Node41 -->
 <g id="edge120" class="edge">
 <title>Node43&#45;&gt;Node41</title>
-<path fill="none" stroke="#191970" d="M1981.7459,-383.055C1984.9893,-391.4031 1987.975,-403.9072 1989.6461,-415.1199"/>
-<polygon fill="#191970" stroke="#191970" points="1986.1964,-415.7596 1990.8109,-425.2967 1993.151,-414.9635 1986.1964,-415.7596"/>
+<path fill="none" stroke="#191970" d="M1911.1489,-383.0053C1937.5228,-392.9835 1976.9999,-408.9384 2006.6746,-421.5122"/>
+<polygon fill="#191970" stroke="#191970" points="2005.3644,-424.7584 2015.9357,-425.4639 2008.1117,-418.32 2005.3644,-424.7584"/>
 </g>
 <!-- Node44 -->
 <g id="node45" class="node">
 <title>Node44</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2232,-297 2232,-316 2280,-316 2280,-297 2232,-297"/>
-<text text-anchor="middle" x="2256" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mutex</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1920,-297 1920,-316 1968,-316 1968,-297 1920,-297"/>
+<text text-anchor="middle" x="1944" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mutex</text>
 </g>
 <!-- Node43&#45;&gt;Node44 -->
 <g id="edge116" class="edge">
 <title>Node43&#45;&gt;Node44</title>
-<path fill="none" stroke="#191970" d="M2022.1739,-363.9745C2087.4751,-350.7162 2199.5012,-327.6832 2218,-322 2220.2986,-321.2938 2222.6516,-320.5044 2225.0048,-319.666"/>
-<polygon fill="#191970" stroke="#191970" points="2226.442,-322.8639 2234.5394,-316.0314 2223.9486,-316.323 2226.442,-322.8639"/>
+<path fill="none" stroke="#191970" d="M1891.7398,-363.9005C1901.2522,-353.4525 1916.657,-336.5325 1928.2825,-323.7635"/>
+<polygon fill="#191970" stroke="#191970" points="1931.1322,-325.8324 1935.2764,-316.0817 1925.9561,-321.1198 1931.1322,-325.8324"/>
 </g>
 <!-- Node47&#45;&gt;Node6 -->
 <g id="edge135" class="edge">
 <title>Node47&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M463.7109,-364.3581C479.214,-362.2369 495.6862,-360.012 511,-358 632.9276,-341.9806 775.4001,-324.3235 856.2351,-314.4045"/>
-<polygon fill="#191970" stroke="#191970" points="856.7626,-317.8661 866.2623,-313.175 855.9106,-310.9182 856.7626,-317.8661"/>
+<path fill="none" stroke="#191970" d="M311.7073,-369.82C460.2083,-361.4845 833.0761,-340.4517 1145,-322 1209.1587,-318.2047 1282.4232,-313.7175 1333.7254,-310.5503"/>
+<polygon fill="#191970" stroke="#191970" points="1334.2405,-314.0253 1344.0056,-309.9152 1333.8088,-307.0386 1334.2405,-314.0253"/>
 </g>
 <!-- Node47&#45;&gt;Node14 -->
 <g id="edge137" class="edge">
 <title>Node47&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M376.3217,-363.9987C359.2935,-355.4303 336.3053,-341.2207 323,-322 302.9375,-293.0179 304,-280.2487 304,-245 304,-245 304,-245 304,-189 304,-154.1936 295.7747,-114.3226 290.1479,-91.1197"/>
-<polygon fill="#191970" stroke="#191970" points="293.477,-90.0065 287.6419,-81.1633 286.6887,-91.7152 293.477,-90.0065"/>
+<path fill="none" stroke="#191970" d="M237.4074,-363.9522C228.99,-354.112 216.3825,-337.9931 209,-322 194.2271,-289.9964 190,-280.2487 190,-245 190,-245 190,-245 190,-189 190,-137.518 246.9572,-102.148 284.2824,-84.4965"/>
+<polygon fill="#191970" stroke="#191970" points="286.1064,-87.5122 293.7638,-80.19 283.2115,-81.1388 286.1064,-87.5122"/>
 </g>
 <!-- Node48 -->
 <g id="node49" class="node">
 <title>Node48</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="332,-297 332,-316 392,-316 392,-297 332,-297"/>
-<text text-anchor="middle" x="362" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">iostream</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="218,-297 218,-316 278,-316 278,-297 218,-297"/>
+<text text-anchor="middle" x="248" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">iostream</text>
 </g>
 <!-- Node47&#45;&gt;Node48 -->
 <g id="edge136" class="edge">
 <title>Node47&#45;&gt;Node48</title>
-<path fill="none" stroke="#191970" d="M392.8421,-363.9005C387.4421,-353.8505 378.8245,-337.8122 372.0694,-325.2403"/>
-<polygon fill="#191970" stroke="#191970" points="374.9647,-323.234 367.1484,-316.0817 368.7984,-326.5472 374.9647,-323.234"/>
+<path fill="none" stroke="#191970" d="M246.2866,-363.9005C246.5776,-354.149 247.037,-338.7597 247.4069,-326.3695"/>
+<polygon fill="#191970" stroke="#191970" points="250.914,-326.1817 247.714,-316.0817 243.9171,-325.9727 250.914,-326.1817"/>
 </g>
 <!-- Node49&#45;&gt;Node2 -->
 <g id="edge150" class="edge">
 <title>Node49&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M1043.9811,-660.2455C1033.7902,-651.9746 1018.9638,-639.9416 1006.9893,-630.2232"/>
-<polygon fill="#191970" stroke="#191970" points="1008.8514,-627.2268 998.8812,-623.6427 1004.4402,-632.662 1008.8514,-627.2268"/>
+<path fill="none" stroke="#191970" d="M1271.8447,-660.2455C1281.888,-651.9746 1296.4995,-639.9416 1308.3004,-630.2232"/>
+<polygon fill="#191970" stroke="#191970" points="1310.7967,-632.7015 1316.291,-623.6427 1306.3467,-627.298 1310.7967,-632.7015"/>
 </g>
 <!-- Node49&#45;&gt;Node3 -->
 <g id="edge151" class="edge">
 <title>Node49&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M1054.2948,-660.4509C1051.0181,-642.1013 1043.7841,-601.5908 1039.4588,-577.3693"/>
-<polygon fill="#191970" stroke="#191970" points="1042.9044,-576.7539 1037.7009,-567.5249 1036.0134,-577.9845 1042.9044,-576.7539"/>
+<path fill="none" stroke="#191970" d="M1262.7863,-660.1465C1266.449,-647.2346 1273.1096,-623.8935 1279,-604 1281.6037,-595.2065 1284.5509,-585.489 1287.0674,-577.2598"/>
+<polygon fill="#191970" stroke="#191970" points="1290.474,-578.089 1290.0622,-567.5021 1283.782,-576.0351 1290.474,-578.089"/>
 </g>
 <!-- Node49&#45;&gt;Node8 -->
 <g id="edge154" class="edge">
 <title>Node49&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1096.3852,-666.1174C1387.0163,-638.1123 3148,-467.3178 3148,-440.5 3148,-440.5 3148,-440.5 3148,-373.5 3148,-213.7762 2579.5809,-154.0898 2377.9187,-137.9404"/>
-<polygon fill="#191970" stroke="#191970" points="2377.9816,-134.4346 2367.7373,-137.1372 2377.4311,-141.4129 2377.9816,-134.4346"/>
+<path fill="none" stroke="#191970" d="M1300.0967,-669.8564C1484.2476,-668.9885 2249.9872,-663.0544 2486,-624 2743.2016,-581.4393 2892.2783,-665.0808 3048,-456 3122.5088,-355.9603 2991.0262,-280.7976 2875,-235 2772.7151,-194.6263 2742.5661,-196.4831 2634,-179 2480.0521,-154.2088 2297.3367,-141.6833 2199.7239,-136.3316"/>
+<polygon fill="#191970" stroke="#191970" points="2199.8594,-132.8339 2189.6853,-135.7902 2199.4823,-139.8238 2199.8594,-132.8339"/>
 </g>
 <!-- Node49&#45;&gt;Node14 -->
 <g id="edge155" class="edge">
 <title>Node49&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1015.7796,-665.3152C827.0042,-642.7979 38,-542.5789 38,-440.5 38,-440.5 38,-440.5 38,-189 38,-151.6561 58.7806,-143.4919 90,-123 140.6521,-89.7529 211.9209,-77.9218 252.7939,-73.7453"/>
-<polygon fill="#191970" stroke="#191970" points="253.3531,-77.2085 262.9868,-72.7992 252.7061,-70.2385 253.3531,-77.2085"/>
+<path fill="none" stroke="#191970" d="M1219.819,-666.0874C1057.9511,-649.9371 453.9493,-585.8262 278,-512 159.9047,-462.4486 76,-434.5696 76,-306.5 76,-306.5 76,-306.5 76,-189 76,-151.6561 96.8749,-143.6348 128,-123 176.3152,-90.9689 244.1448,-78.7454 283.7421,-74.1632"/>
+<polygon fill="#191970" stroke="#191970" points="284.3102,-77.6227 293.8847,-73.0862 283.571,-70.6618 284.3102,-77.6227"/>
 </g>
 <!-- Node49&#45;&gt;Node32 -->
 <g id="edge152" class="edge">
 <title>Node49&#45;&gt;Node32</title>
-<path fill="none" stroke="#191970" d="M1065.0625,-660.3829C1081.375,-642.0212 1114,-600.0423 1114,-558 1114,-558 1114,-558 1114,-502 1114,-464.2896 1130.5443,-423.2974 1142.8657,-397.9975"/>
-<polygon fill="#191970" stroke="#191970" points="1146.1277,-399.3017 1147.5007,-388.7962 1139.876,-396.1525 1146.1277,-399.3017"/>
+<path fill="none" stroke="#191970" d="M1252.0909,-660.1121C1229.386,-631.0111 1164.2117,-542.2826 1142,-456 1136.981,-436.5036 1143.4792,-414.474 1150.6871,-398.0863"/>
+<polygon fill="#191970" stroke="#191970" points="1154.0251,-399.2176 1155.1701,-388.6848 1147.7067,-396.2047 1154.0251,-399.2176"/>
 </g>
 <!-- Node49&#45;&gt;Node33 -->
 <g id="edge153" class="edge">
 <title>Node49&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M1096.1897,-665.2017C1234.9394,-648.3527 1706.4142,-588.7379 2091,-512 2196.7174,-490.9058 2222.3999,-482.076 2327,-456 2523.707,-406.9625 2757.3685,-344.6024 2853.872,-318.6667"/>
-<polygon fill="#191970" stroke="#191970" points="2854.8465,-322.0291 2863.5945,-316.0522 2853.0287,-315.2692 2854.8465,-322.0291"/>
+<path fill="none" stroke="#191970" d="M1300.0774,-669.13C1536.9986,-663.7306 2744,-632.5644 2744,-558 2744,-558 2744,-558 2744,-440.5 2744,-397.9489 2763.1379,-350.9923 2775.2633,-325.5119"/>
+<polygon fill="#191970" stroke="#191970" points="2778.5355,-326.789 2779.8073,-316.2707 2772.2538,-323.7001 2778.5355,-326.789"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/doc_8h_source.html b/docs/reference/api/doxygen/doc_8h_source.html
index beb307bc46..f57bc68862 100644
--- a/docs/reference/api/doxygen/doc_8h_source.html
+++ b/docs/reference/api/doxygen/doc_8h_source.html
@@ -66,149 +66,150 @@ $(function() {
 <div class="title">doc.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="doc_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 contrib [...]
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LambdaDocNode_html_a20ede40f26f74d23ea009eaf5fbf1d32"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LambdaDocNode.html#a20ede40f26f74d23ea009eaf5fbf1d32">tvm::script::printer::LambdaDocNode::args</a></div><div class="ttdeci">Array&lt; IdDoc &gt; args</div><div class="ttdoc">The arguments of this anonymous function. </div><div class="ttdef"><b>Definition:</b> doc.h:544</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDoc_html_a612be10bd4d4ae8cf2db2882783a4ce3"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDoc.html#a612be10bd4d4ae8cf2db2882783a4ce3">tvm::script::printer::IdDoc::IdDoc</a></div><div class="ttdeci">IdDoc(std::nullptr_t)</div><div class="ttdef"><b>Definition:</b> doc.h:316</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html_a88ad8d893ca3475f1a5cd7fa5e8ce0c2"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#a88ad8d893ca3475f1a5cd7fa5e8ce0c2">tvm::script::printer::FunctionDocNode::args</a></div><div class="ttdeci">Array&lt; AssignDoc &gt; args</div><div class="ttdoc">The arguments of function. </div><div class="ttdef"><b>Definition:</b> doc.h:1090</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDoc.html">tvm::script::printer::IfDoc</a></div><div class="ttdoc">Reference type of IfDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:817</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtDocNode_html_ac2bf61995021ab93ee6a7381c68b491f"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtDocNode.html#ac2bf61995021ab93ee6a7381c68b491f">tvm::script::printer::StmtDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:156</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDocNode_html_a4b1920c995c6e358dcd788d76c668aa8"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html#a4b1920c995c6e358dcd788d76c668aa8">tvm::script::printer::ClassDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of class. </div><div class="ttdef"><b>Definition:</b> doc.h:1143</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDocNode.html">tvm::script::printer::DictDocNode</a></div><div class="ttdoc">Doc that represents dictionary literal. </div><div class="ttdef"><b>Definition:</b> doc.h:655</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html_a71eafec33566f09b9ce23e4daf4910fc"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html#a71eafec33566f09b9ce23e4daf4910fc">tvm::script::printer::SliceDocNode::step</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; step</div><div class="ttdoc">The step of slice. </div><div class="ttdef"><b>Definition:</b> doc.h:711</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDocNode_html_ae198909f8e613a84bcd4f74603f31894"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html#ae198909f8e613a84bcd4f74603f31894">tvm::script::printer::ClassDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:1145</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDocNode_html_a06eb9b7f49f298978f33012b6d44ddb8"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDocNode.html#a06eb9b7f49f298978f33012b6d44ddb8">tvm::script::printer::TupleDocNode::elements</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; elements</div><div class="ttdoc">Elements of tuple. </div><div class="ttdef"><b>Definition:</b> doc.h:582</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html">tvm::script::printer::AssignDocNode</a></div><div class="ttdoc">Doc that represents assign statement. </div><div class="ttdef"><b>Definition:</b> doc.h:746</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDoc.html">tvm::script::printer::IdDoc</a></div><div class="ttdoc">Reference type of IdDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:309</div></div>
+<a href="doc_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 contrib [...]
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LambdaDocNode_html_a20ede40f26f74d23ea009eaf5fbf1d32"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LambdaDocNode.html#a20ede40f26f74d23ea009eaf5fbf1d32">tvm::script::printer::LambdaDocNode::args</a></div><div class="ttdeci">Array&lt; IdDoc &gt; args</div><div class="ttdoc">The arguments of this anonymous function. </div><div class="ttdef"><b>Definition:</b> doc.h:560</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_a8423a0ede5a29b24f6db5d9f6574a200"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a8423a0ede5a29b24f6db5d9f6574a200">tvm::script::printer::LiteralDoc::Str</a></div><div class="ttdeci">static LiteralDoc Str(const String &amp;v, const Optional&lt; ObjectPath &gt; &amp;p)</div><div class="ttdoc">Create a LiteralDoc to represent string. </div><div class="ttdef"><b>Definition:</b> doc.h:287</d [...]
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDoc_html_a612be10bd4d4ae8cf2db2882783a4ce3"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDoc.html#a612be10bd4d4ae8cf2db2882783a4ce3">tvm::script::printer::IdDoc::IdDoc</a></div><div class="ttdeci">IdDoc(std::nullptr_t)</div><div class="ttdef"><b>Definition:</b> doc.h:332</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html_a88ad8d893ca3475f1a5cd7fa5e8ce0c2"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#a88ad8d893ca3475f1a5cd7fa5e8ce0c2">tvm::script::printer::FunctionDocNode::args</a></div><div class="ttdeci">Array&lt; AssignDoc &gt; args</div><div class="ttdoc">The arguments of function. </div><div class="ttdef"><b>Definition:</b> doc.h:1106</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDoc.html">tvm::script::printer::IfDoc</a></div><div class="ttdoc">Reference type of IfDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:833</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtDocNode_html_ac2bf61995021ab93ee6a7381c68b491f"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtDocNode.html#ac2bf61995021ab93ee6a7381c68b491f">tvm::script::printer::StmtDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:158</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDocNode_html_a4b1920c995c6e358dcd788d76c668aa8"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html#a4b1920c995c6e358dcd788d76c668aa8">tvm::script::printer::ClassDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of class. </div><div class="ttdef"><b>Definition:</b> doc.h:1159</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDocNode.html">tvm::script::printer::DictDocNode</a></div><div class="ttdoc">Doc that represents dictionary literal. </div><div class="ttdef"><b>Definition:</b> doc.h:671</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html_a71eafec33566f09b9ce23e4daf4910fc"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html#a71eafec33566f09b9ce23e4daf4910fc">tvm::script::printer::SliceDocNode::step</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; step</div><div class="ttdoc">The step of slice. </div><div class="ttdef"><b>Definition:</b> doc.h:727</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDocNode_html_ae198909f8e613a84bcd4f74603f31894"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html#ae198909f8e613a84bcd4f74603f31894">tvm::script::printer::ClassDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:1161</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDocNode_html_a06eb9b7f49f298978f33012b6d44ddb8"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDocNode.html#a06eb9b7f49f298978f33012b6d44ddb8">tvm::script::printer::TupleDocNode::elements</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; elements</div><div class="ttdoc">Elements of tuple. </div><div class="ttdef"><b>Definition:</b> doc.h:598</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html">tvm::script::printer::AssignDocNode</a></div><div class="ttdoc">Doc that represents assign statement. </div><div class="ttdef"><b>Definition:</b> doc.h:762</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDoc.html">tvm::script::printer::IdDoc</a></div><div class="ttdoc">Reference type of IdDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:325</div></div>
 <div class="ttc" id="node_8h_html"><div class="ttname"><a href="node_8h.html">node.h</a></div><div class="ttdoc">Definitions and helper macros for IR/AST nodes. </div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode.html">tvm::script::printer::StmtBlockDocNode</a></div><div class="ttdoc">The container doc that holds a list of StmtDoc. </div><div class="ttdef"><b>Definition:</b> doc.h:184</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtDoc.html">tvm::script::printer::StmtDoc</a></div><div class="ttdoc">Reference type of StmtDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:170</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode.html">tvm::script::printer::StmtBlockDocNode</a></div><div class="ttdoc">The container doc that holds a list of StmtDoc. </div><div class="ttdef"><b>Definition:</b> doc.h:186</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtDoc.html">tvm::script::printer::StmtDoc</a></div><div class="ttdoc">Reference type of StmtDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:172</div></div>
 <div class="ttc" id="namespacetvm_1_1runtime_html_ac360f2d9815036ab1b4d84d9cfb46b4f"><div class="ttname"><a href="namespacetvm_1_1runtime.html#ac360f2d9815036ab1b4d84d9cfb46b4f">tvm::runtime::DLDataType2String</a></div><div class="ttdeci">std::string DLDataType2String(DLDataType t)</div><div class="ttdoc">convert a TVM type to string. </div><div class="ttdef"><b>Definition:</b> data_type.h:341</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDocNode_html_a4b5e2a6863460473dca71c989ee3fb8c"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDocNode.html#a4b5e2a6863460473dca71c989ee3fb8c">tvm::script::printer::ListDocNode::elements</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; elements</div><div class="ttdoc">Elements of list. </div><div class="ttdef"><b>Definition:</b> doc.h:620</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html_a5cf20bfaa5aee424f69882287ba646b0"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html#a5cf20bfaa5aee424f69882287ba646b0">tvm::script::printer::OperationDocNode::operands</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; operands</div><div class="ttdoc">Operands of this expression. </div><div class="ttdef"><b>Definition:</b> doc.h:505</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDocNode_html_a77b63c411fa93643fc1e92e5599dae1a"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html#a77b63c411fa93643fc1e92e5599dae1a">tvm::script::printer::LiteralDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:230</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html_a5bfd7179298fe5bcbc9527af2b3b98e0"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#a5bfd7179298fe5bcbc9527af2b3b98e0">tvm::script::printer::FunctionDocNode::decorators</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; decorators</div><div class="ttdoc">Decorators of function. </div><div class="ttdef"><b>Definition:</b> doc.h:1092</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDocNode_html_a4b5e2a6863460473dca71c989ee3fb8c"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDocNode.html#a4b5e2a6863460473dca71c989ee3fb8c">tvm::script::printer::ListDocNode::elements</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; elements</div><div class="ttdoc">Elements of list. </div><div class="ttdef"><b>Definition:</b> doc.h:636</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html_a5cf20bfaa5aee424f69882287ba646b0"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html#a5cf20bfaa5aee424f69882287ba646b0">tvm::script::printer::OperationDocNode::operands</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; operands</div><div class="ttdoc">Operands of this expression. </div><div class="ttdef"><b>Definition:</b> doc.h:521</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDocNode_html_a77b63c411fa93643fc1e92e5599dae1a"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html#a77b63c411fa93643fc1e92e5599dae1a">tvm::script::printer::LiteralDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:232</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html_a5bfd7179298fe5bcbc9527af2b3b98e0"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#a5bfd7179298fe5bcbc9527af2b3b98e0">tvm::script::printer::FunctionDocNode::decorators</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; decorators</div><div class="ttdoc">Decorators of function. </div><div class="ttdef"><b>Definition:</b> doc.h:1108</div></div>
 <div class="ttc" id="ir_2expr_8h_html"><div class="ttname"><a href="ir_2expr_8h.html">expr.h</a></div><div class="ttdoc">Base expr nodes in TVM. </div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html_af314e162f31c64a459652dba771778c5"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html#af314e162f31c64a459652dba771778c5">tvm::script::printer::DocNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> doc.h:56</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html_af314e162f31c64a459652dba771778c5"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html#af314e162f31c64a459652dba771778c5">tvm::script::printer::DocNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> doc.h:58</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_ab0a0ccbeb39cc510cb3bf37acdc2e0bc"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ab0a0ccbeb39cc510cb3bf37acdc2e0bc">tvm::script::printer::LiteralDoc::Boolean</a></div><div class="ttdeci">static LiteralDoc Boolean(bool v, const Optional&lt; ObjectPath &gt; &amp;p)</div><div class="ttdoc">Create a LiteralDoc to represent boolean. </div><div class="ttdef"><b>Definition:</b> doc.h:271</div></div>
 <div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html_a6202cee16104155937f3e64c703f6885"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html#a6202cee16104155937f3e64c703f6885">tvm::script::printer::DocNode::~DocNode</a></div><div class="ttdeci">virtual ~DocNode()=default</div></div>
 <div class="ttc" id="namespacetvm_1_1runtime_html_a5ca61f3e3dd7af5ee94ed7886f638ee5"><div class="ttname"><a href="namespacetvm_1_1runtime.html#a5ca61f3e3dd7af5ee94ed7886f638ee5">tvm::runtime::make_object</a></div><div class="ttdeci">ObjectPtr&lt; ArrayNode &gt; make_object()</div><div class="ttdef"><b>Definition:</b> array.h:849</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html_a5ddbff022bf8ac02261df5462aac3b5a"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#a5ddbff022bf8ac02261df5462aac3b5a">tvm::script::printer::FunctionDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of function. </div><div class="ttdef"><b>Definition:</b> doc.h:1096</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html_a5ddbff022bf8ac02261df5462aac3b5a"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#a5ddbff022bf8ac02261df5462aac3b5a">tvm::script::printer::FunctionDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of function. </div><div class="ttdef"><b>Definition:</b> doc.h:1112</div></div>
 <div class="ttc" id="namespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">runtime implementation for LibTorch/TorchScript. </div><div class="ttdef"><b>Definition:</b> analyzer.h:36</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html">tvm::script::printer::LiteralDocNode</a></div><div class="ttdoc">Doc that represents literal value. </div><div class="ttdef"><b>Definition:</b> doc.h:217</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ForDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ForDoc.html">tvm::script::printer::ForDoc</a></div><div class="ttdoc">Reference type of ForDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:901</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1Doc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1Doc.html">tvm::script::printer::Doc</a></div><div class="ttdoc">Reference type of DocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:68</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDocNode_html_a34352823497468261204f4faab74a80f"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html#a34352823497468261204f4faab74a80f">tvm::script::printer::LiteralDocNode::value</a></div><div class="ttdeci">ObjectRef value</div><div class="ttdoc">the internal representation of the literal value. </div><div class="ttdef"><b>Definition:</b> doc.h:228</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDocNode_html_a42c294b30207934d9d25c936207dd735"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDocNode.html#a42c294b30207934d9d25c936207dd735">tvm::script::printer::ListDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:622</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprDocNode.html">tvm::script::printer::ExprDocNode</a></div><div class="ttdoc">The base class of expression doc. </div><div class="ttdef"><b>Definition:</b> doc.h:84</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ForDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ForDocNode.html">tvm::script::printer::ForDocNode</a></div><div class="ttdoc">Doc that represents for statement. </div><div class="ttdef"><b>Definition:</b> doc.h:876</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtDocNode.html">tvm::script::printer::StmtDocNode</a></div><div class="ttdoc">The base class of statement doc. </div><div class="ttdef"><b>Definition:</b> doc.h:144</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1WhileDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1WhileDoc.html">tvm::script::printer::WhileDoc</a></div><div class="ttdoc">Reference type of WhileDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:856</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode.html">tvm::script::printer::ExprStmtDocNode</a></div><div class="ttdoc">Doc that represents an expression as statement. </div><div class="ttdef"><b>Definition:</b> doc.h:973</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ScopeDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ScopeDocNode.html">tvm::script::printer::ScopeDocNode</a></div><div class="ttdoc">Doc that represents special scopes. </div><div class="ttdef"><b>Definition:</b> doc.h:923</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ScopeDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ScopeDoc.html">tvm::script::printer::ScopeDoc</a></div><div class="ttdoc">Reference type of ScopeDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:948</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDocNode_html_adacd976d06e1e1fc8357133efbadb554"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html#adacd976d06e1e1fc8357133efbadb554">tvm::script::printer::AssignDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:759</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDocNode_html_a86e7966602f58b018ed2ba3f902e2749"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDocNode.html#a86e7966602f58b018ed2ba3f902e2749">tvm::script::printer::IdDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:295</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AttrAccessDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AttrAccessDoc.html">tvm::script::printer::AttrAccessDoc</a></div><div class="ttdoc">Reference type of AttrAccessDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:347</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDoc.html">tvm::script::printer::ClassDoc</a></div><div class="ttdoc">Reference type of ClassDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1161</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html_a684ebfc74875affa31b198c75296fdc1"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html#a684ebfc74875affa31b198c75296fdc1">tvm::script::printer::OperationDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:507</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode_html_ae24f82a9e9af72bdda822dce009bd7de"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode.html#ae24f82a9e9af72bdda822dce009bd7de">tvm::script::printer::ExprStmtDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:978</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDocNode_html_aba631f46a162ffe0d89ee50d2c38dcc5"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDocNode.html#aba631f46a162ffe0d89ee50d2c38dcc5">tvm::script::printer::DictDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:667</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDocNode_html_a436fcace00d445213fc367ece59c4067"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html#a436fcace00d445213fc367ece59c4067">tvm::script::printer::AssignDocNode::rhs</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; rhs</div><div class="ttdoc">The right hand side of the assignment. </div><div class="ttdef"><b>Definition:</b> doc.h:755</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html">tvm::script::printer::LiteralDocNode</a></div><div class="ttdoc">Doc that represents literal value. </div><div class="ttdef"><b>Definition:</b> doc.h:219</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ForDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ForDoc.html">tvm::script::printer::ForDoc</a></div><div class="ttdoc">Reference type of ForDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:917</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1Doc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1Doc.html">tvm::script::printer::Doc</a></div><div class="ttdoc">Reference type of DocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:70</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDocNode_html_a34352823497468261204f4faab74a80f"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html#a34352823497468261204f4faab74a80f">tvm::script::printer::LiteralDocNode::value</a></div><div class="ttdeci">ObjectRef value</div><div class="ttdoc">the internal representation of the literal value. </div><div class="ttdef"><b>Definition:</b> doc.h:230</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDocNode_html_a42c294b30207934d9d25c936207dd735"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDocNode.html#a42c294b30207934d9d25c936207dd735">tvm::script::printer::ListDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:638</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_a1a90c18a43f22d5c2eefe5be0c48b91b"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a1a90c18a43f22d5c2eefe5be0c48b91b">tvm::script::printer::LiteralDoc::Float</a></div><div class="ttdeci">static LiteralDoc Float(double v, const Optional&lt; ObjectPath &gt; &amp;p)</div><div class="ttdoc">Create a LiteralDoc to represent float. </div><div class="ttdef"><b>Definition:</b> doc.h:279</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprDocNode.html">tvm::script::printer::ExprDocNode</a></div><div class="ttdoc">The base class of expression doc. </div><div class="ttdef"><b>Definition:</b> doc.h:86</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ForDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ForDocNode.html">tvm::script::printer::ForDocNode</a></div><div class="ttdoc">Doc that represents for statement. </div><div class="ttdef"><b>Definition:</b> doc.h:892</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtDocNode.html">tvm::script::printer::StmtDocNode</a></div><div class="ttdoc">The base class of statement doc. </div><div class="ttdef"><b>Definition:</b> doc.h:146</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_a3b88804f3208f2a7abc8641ee978776e"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a3b88804f3208f2a7abc8641ee978776e">tvm::script::printer::LiteralDoc::Int</a></div><div class="ttdeci">static LiteralDoc Int(int64_t v, const Optional&lt; ObjectPath &gt; &amp;p)</div><div class="ttdoc">Create a LiteralDoc to represent integer. </div><div class="ttdef"><b>Definition:</b> doc.h:263</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1WhileDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1WhileDoc.html">tvm::script::printer::WhileDoc</a></div><div class="ttdoc">Reference type of WhileDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:872</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode.html">tvm::script::printer::ExprStmtDocNode</a></div><div class="ttdoc">Doc that represents an expression as statement. </div><div class="ttdef"><b>Definition:</b> doc.h:989</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ScopeDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ScopeDocNode.html">tvm::script::printer::ScopeDocNode</a></div><div class="ttdoc">Doc that represents special scopes. </div><div class="ttdef"><b>Definition:</b> doc.h:939</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ScopeDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ScopeDoc.html">tvm::script::printer::ScopeDoc</a></div><div class="ttdoc">Reference type of ScopeDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:964</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDocNode_html_adacd976d06e1e1fc8357133efbadb554"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html#adacd976d06e1e1fc8357133efbadb554">tvm::script::printer::AssignDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:775</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDocNode_html_a86e7966602f58b018ed2ba3f902e2749"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDocNode.html#a86e7966602f58b018ed2ba3f902e2749">tvm::script::printer::IdDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:311</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AttrAccessDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AttrAccessDoc.html">tvm::script::printer::AttrAccessDoc</a></div><div class="ttdoc">Reference type of AttrAccessDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:363</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDoc.html">tvm::script::printer::ClassDoc</a></div><div class="ttdoc">Reference type of ClassDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1177</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html_a684ebfc74875affa31b198c75296fdc1"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html#a684ebfc74875affa31b198c75296fdc1">tvm::script::printer::OperationDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:523</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode_html_ae24f82a9e9af72bdda822dce009bd7de"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode.html#ae24f82a9e9af72bdda822dce009bd7de">tvm::script::printer::ExprStmtDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:994</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDocNode_html_aba631f46a162ffe0d89ee50d2c38dcc5"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDocNode.html#aba631f46a162ffe0d89ee50d2c38dcc5">tvm::script::printer::DictDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:683</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDocNode_html_a436fcace00d445213fc367ece59c4067"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html#a436fcace00d445213fc367ece59c4067">tvm::script::printer::AssignDocNode::rhs</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; rhs</div><div class="ttdoc">The right hand side of the assignment. </div><div class="ttdef"><b>Definition:</b> doc.h:771</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1Object_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></div><div class="ttdoc">base class of all object containers. </div><div class="ttdef"><b>Definition:</b> object.h:167</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDoc.html">tvm::script::printer::OperationDoc</a></div><div class="ttdoc">Reference type of OperationDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:522</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ScopeDocNode_html_ac331908e771044ca4089771a0ffeafc1"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ScopeDocNode.html#ac331908e771044ca4089771a0ffeafc1">tvm::script::printer::ScopeDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of the scope doc. </div><div class="ttdef"><b>Definition:</b> doc.h:930</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_aad7a2c38982b0a9d5f874eaf3e4676ba"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aad7a2c38982b0a9d5f874eaf3e4676ba">tvm::script::printer::LiteralDoc::Float</a></div><div class="ttdeci">static LiteralDoc Float(double v)</div><div class="ttdoc">Create a LiteralDoc to represent float. </div><div class="ttdef"><b>Definition:</b> doc.h:268</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode_html_a67040f2d50d56e161b1f7aa3876e3e20"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode.html#a67040f2d50d56e161b1f7aa3876e3e20">tvm::script::printer::AttrAccessDocNode::name</a></div><div class="ttdeci">String name</div><div class="ttdoc">The attribute to be accessed. </div><div class="ttdef"><b>Definition:</b> doc.h:330</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IndexDocNode_html_ad761986f917adb9725ee1280ad032880"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IndexDocNode.html#ad761986f917adb9725ee1280ad032880">tvm::script::printer::IndexDocNode::indices</a></div><div class="ttdeci">Array&lt; Doc &gt; indices</div><div class="ttdoc">The indices to access. </div><div class="ttdef"><b>Definition:</b> doc.h:374</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_ad7b614de314ca220044ccfd78e4a9640"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad7b614de314ca220044ccfd78e4a9640">tvm::script::printer::LiteralDoc::None</a></div><div class="ttdeci">static LiteralDoc None()</div><div class="ttdoc">Create a LiteralDoc to represent None/null/empty value. </div><div class="ttdef"><b>Definition:</b> doc.h:253</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode_html_a5c61272c44976dd9df6daf34cb26fb81"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode.html#a5c61272c44976dd9df6daf34cb26fb81">tvm::script::printer::AttrAccessDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:332</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDoc.html">tvm::script::printer::OperationDoc</a></div><div class="ttdoc">Reference type of OperationDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:538</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ScopeDocNode_html_ac331908e771044ca4089771a0ffeafc1"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ScopeDocNode.html#ac331908e771044ca4089771a0ffeafc1">tvm::script::printer::ScopeDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of the scope doc. </div><div class="ttdef"><b>Definition:</b> doc.h:946</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode_html_a67040f2d50d56e161b1f7aa3876e3e20"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode.html#a67040f2d50d56e161b1f7aa3876e3e20">tvm::script::printer::AttrAccessDocNode::name</a></div><div class="ttdeci">String name</div><div class="ttdoc">The attribute to be accessed. </div><div class="ttdef"><b>Definition:</b> doc.h:346</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IndexDocNode_html_ad761986f917adb9725ee1280ad032880"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IndexDocNode.html#ad761986f917adb9725ee1280ad032880">tvm::script::printer::IndexDocNode::indices</a></div><div class="ttdeci">Array&lt; Doc &gt; indices</div><div class="ttdoc">The indices to access. </div><div class="ttdef"><b>Definition:</b> doc.h:390</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode_html_a5c61272c44976dd9df6daf34cb26fb81"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode.html#a5c61272c44976dd9df6daf34cb26fb81">tvm::script::printer::AttrAccessDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:348</div></div>
 <div class="ttc" id="classtvm_1_1FloatImm_html"><div class="ttname"><a href="classtvm_1_1FloatImm.html">tvm::FloatImm</a></div><div class="ttdoc">Managed reference class to FloatImmNode. </div><div class="ttdef"><b>Definition:</b> expr.h:576</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprDocNode_html_af03dd1b2e3d5695c273e01d4c4d40c33"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprDocNode.html#af03dd1b2e3d5695c273e01d4c4d40c33">tvm::script::printer::ExprDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:114</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html">tvm::script::printer::FunctionDocNode</a></div><div class="ttdoc">Doc that represents function definition. </div><div class="ttdef"><b>Definition:</b> doc.h:1079</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprDocNode_html_af03dd1b2e3d5695c273e01d4c4d40c33"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprDocNode.html#af03dd1b2e3d5695c273e01d4c4d40c33">tvm::script::printer::ExprDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:116</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html">tvm::script::printer::FunctionDocNode</a></div><div class="ttdoc">Doc that represents function definition. </div><div class="ttdef"><b>Definition:</b> doc.h:1095</div></div>
 <div class="ttc" id="classtvm_1_1AttrVisitor_html"><div class="ttname"><a href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a></div><div class="ttdoc">Visitor class to get the attributes of an AST/IR node. The content is going to be called for each fie...</div><div class="ttdef"><b>Definition:</b> reflection.h:52</div></div>
 <div class="ttc" id="namespacetvm_1_1script_1_1ir__builder_1_1tir_html_a7a8f20d29de99ce15b603c5e6ace3ca0"><div class="ttname"><a href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html#a7a8f20d29de99ce15b603c5e6ace3ca0">tvm::script::ir_builder::tir::Attr</a></div><div class="ttdeci">AttrFrame Attr(ObjectRef node, String attr_key, PrimExpr value)</div><div class="ttdoc">Create an attribute. </div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></div><div class="ttdoc">Reference type of LiteralDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:244</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDocNode_html_a8433d901c80f64cc87f5c36b7f21bb00"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDocNode.html#a8433d901c80f64cc87f5c36b7f21bb00">tvm::script::printer::IfDocNode::else_branch</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; else_branch</div><div class="ttdoc">The else branch of the if-then-else statement. </div><div class="ttdef"><b>Definition:</b> doc.h:799</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html_a2e02a9e2b7d03c975c0a7286219efa17"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html#a2e02a9e2b7d03c975c0a7286219efa17">tvm::script::printer::CallDocNode::kwargs_values</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; kwargs_values</div><div class="ttdoc">The values of keyword arguments. </div><div class="ttdef"><b>Definition:</b> doc.h:421</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html_a7ea3837303b6d2ef65e6b7653af62ef6"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html#a7ea3837303b6d2ef65e6b7653af62ef6">tvm::script::printer::DocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:54</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html">tvm::script::printer::DocNode</a></div><div class="ttdoc">The base class of all Doc. </div><div class="ttdef"><b>Definition:</b> doc.h:43</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">tvm::script::printer::LiteralDoc</a></div><div class="ttdoc">Reference type of LiteralDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:246</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDocNode_html_a8433d901c80f64cc87f5c36b7f21bb00"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDocNode.html#a8433d901c80f64cc87f5c36b7f21bb00">tvm::script::printer::IfDocNode::else_branch</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; else_branch</div><div class="ttdoc">The else branch of the if-then-else statement. </div><div class="ttdef"><b>Definition:</b> doc.h:815</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html_a2e02a9e2b7d03c975c0a7286219efa17"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html#a2e02a9e2b7d03c975c0a7286219efa17">tvm::script::printer::CallDocNode::kwargs_values</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; kwargs_values</div><div class="ttdoc">The values of keyword arguments. </div><div class="ttdef"><b>Definition:</b> doc.h:437</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html_a7ea3837303b6d2ef65e6b7653af62ef6"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html#a7ea3837303b6d2ef65e6b7653af62ef6">tvm::script::printer::DocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:56</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html">tvm::script::printer::DocNode</a></div><div class="ttdoc">The base class of all Doc. </div><div class="ttdef"><b>Definition:</b> doc.h:45</div></div>
 <div class="ttc" id="namespacetvm_1_1arith_html_ac6a38da661cd3681eb85abe1cd810422aad0250170b362173e1e2a2e3a6f13d20"><div class="ttname"><a href="namespacetvm_1_1arith.html#ac6a38da661cd3681eb85abe1cd810422aad0250170b362173e1e2a2e3a6f13d20">tvm::arith::kFloorDiv</a></div><div class="ttdoc">Floor division. </div><div class="ttdef"><b>Definition:</b> analyzer.h:59</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssertDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssertDocNode.html">tvm::script::printer::AssertDocNode</a></div><div class="ttdoc">Doc that represents assert statement. </div><div class="ttdef"><b>Definition:</b> doc.h:1007</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDoc.html">tvm::script::printer::DictDoc</a></div><div class="ttdoc">Reference type of DictDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:682</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_a789d7d73bd4d94612fa2a84c16b26b89"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a789d7d73bd4d94612fa2a84c16b26b89">tvm::script::printer::LiteralDoc::Str</a></div><div class="ttdeci">static LiteralDoc Str(const String &amp;v)</div><div class="ttdoc">Create a LiteralDoc to represent string. </div><div class="ttdef"><b>Definition:</b> doc.h:273</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html">tvm::script::printer::OperationDocNode</a></div><div class="ttdoc">Doc that represents operation. </div><div class="ttdef"><b>Definition:</b> doc.h:462</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssertDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssertDocNode.html">tvm::script::printer::AssertDocNode</a></div><div class="ttdoc">Doc that represents assert statement. </div><div class="ttdef"><b>Definition:</b> doc.h:1023</div></div>
+<div class="ttc" id="classtvm_1_1runtime_1_1DataType_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></div><div class="ttdoc">Runtime primitive data type. </div><div class="ttdef"><b>Definition:</b> data_type.h:41</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDoc.html">tvm::script::printer::DictDoc</a></div><div class="ttdoc">Reference type of DictDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:698</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html">tvm::script::printer::OperationDocNode</a></div><div class="ttdoc">Doc that represents operation. </div><div class="ttdef"><b>Definition:</b> doc.h:478</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1DataType_html_a237a714a6a16e14aa01fa4ac52426551"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#a237a714a6a16e14aa01fa4ac52426551">tvm::runtime::DataType::Float</a></div><div class="ttdeci">static DataType Float(int bits, int lanes=1)</div><div class="ttdoc">Construct an float type. </div><div class="ttdef"><b>Definition:</b> data_type.h:178</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_adf4d8759e01746a0da3b03146b7baf00"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#adf4d8759e01746a0da3b03146b7baf00">tvm::script::printer::LiteralDoc::DataType</a></div><div class="ttdeci">static LiteralDoc DataType(const runtime::DataType &amp;v, const Optional&lt; ObjectPath &gt; &amp;p)</div><div class="ttdoc">Create a LiteralDoc to represent string. </div><div class="ttdef"><b>Definit [...]
 <div class="ttc" id="classtvm_1_1runtime_1_1Array_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array</a></div><div class="ttdoc">Array, container representing a contiguous sequence of ObjectRefs. </div><div class="ttdef"><b>Definition:</b> array.h:289</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ScopeDocNode_html_a001030671efb796c6bfa0d4af5ac7b69"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ScopeDocNode.html#a001030671efb796c6bfa0d4af5ac7b69">tvm::script::printer::ScopeDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:932</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ScopeDocNode_html_a001030671efb796c6bfa0d4af5ac7b69"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ScopeDocNode.html#a001030671efb796c6bfa0d4af5ac7b69">tvm::script::printer::ScopeDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:948</div></div>
 <div class="ttc" id="classtvm_1_1IntImm_html"><div class="ttname"><a href="classtvm_1_1IntImm.html">tvm::IntImm</a></div><div class="ttdoc">Managed reference class to IntImmNode. </div><div class="ttdef"><b>Definition:</b> expr.h:529</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDoc.html">tvm::script::printer::CallDoc</a></div><div class="ttdoc">Reference type of CallDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:440</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LambdaDocNode_html_a57c4675d44c2525190aaea4aa9ad934c"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LambdaDocNode.html#a57c4675d44c2525190aaea4aa9ad934c">tvm::script::printer::LambdaDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:548</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html_a16de0189a979a6cf9d8f14b39cb5fb54"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html#a16de0189a979a6cf9d8f14b39cb5fb54">tvm::script::printer::SliceDocNode::start</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; start</div><div class="ttdoc">The start of slice. </div><div class="ttdef"><b>Definition:</b> doc.h:707</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDoc.html">tvm::script::printer::CallDoc</a></div><div class="ttdoc">Reference type of CallDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:456</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LambdaDocNode_html_a57c4675d44c2525190aaea4aa9ad934c"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LambdaDocNode.html#a57c4675d44c2525190aaea4aa9ad934c">tvm::script::printer::LambdaDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:564</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html_a16de0189a979a6cf9d8f14b39cb5fb54"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html#a16de0189a979a6cf9d8f14b39cb5fb54">tvm::script::printer::SliceDocNode::start</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; start</div><div class="ttdoc">The start of slice. </div><div class="ttdef"><b>Definition:</b> doc.h:723</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1String_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1String.html">tvm::runtime::String</a></div><div class="ttdoc">Reference to string objects. </div><div class="ttdef"><b>Definition:</b> string.h:97</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html_a29e21c8f39639d1d30697971267847a8"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html#a29e21c8f39639d1d30697971267847a8">tvm::script::printer::DocNode::source_paths</a></div><div class="ttdeci">Array&lt; ObjectPath &gt; source_paths</div><div class="ttdoc">The list of object paths of the source IR node. </div><div class="ttdef"><b>Definition:</b> doc.h:52</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html_a62fc9e7341b5bc727b64a61f69634944"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#a62fc9e7341b5bc727b64a61f69634944">tvm::script::printer::FunctionDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:1098</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1WhileDocNode_html_a6e850c4d876a4833700749ea90a311ef"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1WhileDocNode.html#a6e850c4d876a4833700749ea90a311ef">tvm::script::printer::WhileDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:841</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html_a29e21c8f39639d1d30697971267847a8"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html#a29e21c8f39639d1d30697971267847a8">tvm::script::printer::DocNode::source_paths</a></div><div class="ttdeci">Array&lt; ObjectPath &gt; source_paths</div><div class="ttdoc">The list of object paths of the source IR node. </div><div class="ttdef"><b>Definition:</b> doc.h:54</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDocNode_html_a62fc9e7341b5bc727b64a61f69634944"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#a62fc9e7341b5bc727b64a61f69634944">tvm::script::printer::FunctionDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:1114</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1WhileDocNode_html_a6e850c4d876a4833700749ea90a311ef"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1WhileDocNode.html#a6e850c4d876a4833700749ea90a311ef">tvm::script::printer::WhileDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:857</div></div>
 <div class="ttc" id="classtvm_1_1script_1_1printer_1_1DocNode_html_a78585f033948da5d1a4121aa7b969c47"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DocNode.html#a78585f033948da5d1a4121aa7b969c47">tvm::script::printer::DocNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(DocNode, Object)</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDoc_html_a8cedc24d34db6c6a185912bb41df562d"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDoc.html#a8cedc24d34db6c6a185912bb41df562d">tvm::script::printer::DictDoc::DictDoc</a></div><div class="ttdeci">DictDoc()</div><div class="ttdoc">Create an empty dictionary. </div><div class="ttdef"><b>Definition:</b> doc.h:687</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html_a4249199a2f3d5441eec11473be7873f5"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html#a4249199a2f3d5441eec11473be7873f5">tvm::script::printer::CallDocNode::args</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; args</div><div class="ttdoc">The positional arguments. </div><div class="ttdef"><b>Definition:</b> doc.h:412</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LambdaDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LambdaDocNode.html">tvm::script::printer::LambdaDocNode</a></div><div class="ttdoc">Doc that represents anonymous function. </div><div class="ttdef"><b>Definition:</b> doc.h:541</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html_a6754bea55b2973ee06141454881521a0"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html#a6754bea55b2973ee06141454881521a0">tvm::script::printer::CallDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:423</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html_a29219a3b147231db0a17b5ad0b528dcd"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html#a29219a3b147231db0a17b5ad0b528dcd">tvm::script::printer::SliceDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:713</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDocNode.html">tvm::script::printer::IfDocNode</a></div><div class="ttdoc">Doc that represent if-then-else statement. </div><div class="ttdef"><b>Definition:</b> doc.h:792</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1WhileDocNode_html_a942cea5820d5170596d979ed148ed69f"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1WhileDocNode.html#a942cea5820d5170596d979ed148ed69f">tvm::script::printer::WhileDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of the while statement. </div><div class="ttdef"><b>Definition:</b> doc.h:839</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssertDocNode_html_aa56a6f1036cf00b3b77e1b4f1eec3e88"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssertDocNode.html#aa56a6f1036cf00b3b77e1b4f1eec3e88">tvm::script::printer::AssertDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:1014</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDocNode_html_a1cc91ce9cb679b1ee30d3a72fd607280"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDocNode.html#a1cc91ce9cb679b1ee30d3a72fd607280">tvm::script::printer::IfDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:801</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IndexDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IndexDoc.html">tvm::script::printer::IndexDoc</a></div><div class="ttdoc">Reference type of IndexDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:391</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprStmtDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprStmtDoc.html">tvm::script::printer::ExprStmtDoc</a></div><div class="ttdoc">Reference type of ExprStmtDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:992</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html_a9b996402fa4a7202d749c56ac044e810"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html#a9b996402fa4a7202d749c56ac044e810">tvm::script::printer::OperationDocNode::kind</a></div><div class="ttdeci">Kind kind</div><div class="ttdoc">The kind of operation (operator) </div><div class="ttdef"><b>Definition:</b> doc.h:503</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDoc.html">tvm::script::printer::SliceDoc</a></div><div class="ttdoc">Reference type of SliceDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:729</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDoc_html_a8cedc24d34db6c6a185912bb41df562d"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDoc.html#a8cedc24d34db6c6a185912bb41df562d">tvm::script::printer::DictDoc::DictDoc</a></div><div class="ttdeci">DictDoc()</div><div class="ttdoc">Create an empty dictionary. </div><div class="ttdef"><b>Definition:</b> doc.h:703</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html_a4249199a2f3d5441eec11473be7873f5"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html#a4249199a2f3d5441eec11473be7873f5">tvm::script::printer::CallDocNode::args</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; args</div><div class="ttdoc">The positional arguments. </div><div class="ttdef"><b>Definition:</b> doc.h:428</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LambdaDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LambdaDocNode.html">tvm::script::printer::LambdaDocNode</a></div><div class="ttdoc">Doc that represents anonymous function. </div><div class="ttdef"><b>Definition:</b> doc.h:557</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html_a6754bea55b2973ee06141454881521a0"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html#a6754bea55b2973ee06141454881521a0">tvm::script::printer::CallDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:439</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html_a29219a3b147231db0a17b5ad0b528dcd"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html#a29219a3b147231db0a17b5ad0b528dcd">tvm::script::printer::SliceDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:729</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDocNode.html">tvm::script::printer::IfDocNode</a></div><div class="ttdoc">Doc that represent if-then-else statement. </div><div class="ttdef"><b>Definition:</b> doc.h:808</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1WhileDocNode_html_a942cea5820d5170596d979ed148ed69f"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1WhileDocNode.html#a942cea5820d5170596d979ed148ed69f">tvm::script::printer::WhileDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of the while statement. </div><div class="ttdef"><b>Definition:</b> doc.h:855</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssertDocNode_html_aa56a6f1036cf00b3b77e1b4f1eec3e88"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssertDocNode.html#aa56a6f1036cf00b3b77e1b4f1eec3e88">tvm::script::printer::AssertDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:1030</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDocNode_html_a1cc91ce9cb679b1ee30d3a72fd607280"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDocNode.html#a1cc91ce9cb679b1ee30d3a72fd607280">tvm::script::printer::IfDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:817</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IndexDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IndexDoc.html">tvm::script::printer::IndexDoc</a></div><div class="ttdoc">Reference type of IndexDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:407</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprStmtDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprStmtDoc.html">tvm::script::printer::ExprStmtDoc</a></div><div class="ttdoc">Reference type of ExprStmtDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1008</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html_a9b996402fa4a7202d749c56ac044e810"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html#a9b996402fa4a7202d749c56ac044e810">tvm::script::printer::OperationDocNode::kind</a></div><div class="ttdeci">Kind kind</div><div class="ttdoc">The kind of operation (operator) </div><div class="ttdef"><b>Definition:</b> doc.h:519</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDoc.html">tvm::script::printer::SliceDoc</a></div><div class="ttdoc">Reference type of SliceDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:745</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1ObjectRef_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></div><div class="ttdoc">Base class of all object reference. </div><div class="ttdef"><b>Definition:</b> object.h:511</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode_html_a6e657ac6d7579ff0bf1d02e715edf3db"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode.html#a6e657ac6d7579ff0bf1d02e715edf3db">tvm::script::printer::StmtBlockDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:189</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDoc.html">tvm::script::printer::ListDoc</a></div><div class="ttdoc">Reference type of ListDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:636</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html">tvm::script::printer::CallDocNode</a></div><div class="ttdoc">Doc that represents function call. </div><div class="ttdef"><b>Definition:</b> doc.h:407</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html_ab096bbea749ee994d75230cd8136afc2"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html#ab096bbea749ee994d75230cd8136afc2">tvm::script::printer::OperationDocNode::Kind</a></div><div class="ttdeci">Kind</div><div class="ttdef"><b>Definition:</b> doc.h:464</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssertDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssertDoc.html">tvm::script::printer::AssertDoc</a></div><div class="ttdoc">Reference type of AssertDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1029</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode_html_a6e657ac6d7579ff0bf1d02e715edf3db"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode.html#a6e657ac6d7579ff0bf1d02e715edf3db">tvm::script::printer::StmtBlockDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:191</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDoc.html">tvm::script::printer::ListDoc</a></div><div class="ttdoc">Reference type of ListDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:652</div></div>
+<div class="ttc" id="classtvm_1_1runtime_1_1DataType_html_af630b65babe38dc86eaee56f29c5429e"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#af630b65babe38dc86eaee56f29c5429e">tvm::runtime::DataType::is_void</a></div><div class="ttdeci">bool is_void() const</div><div class="ttdef"><b>Definition:</b> data_type.h:109</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html">tvm::script::printer::CallDocNode</a></div><div class="ttdoc">Doc that represents function call. </div><div class="ttdef"><b>Definition:</b> doc.h:423</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1OperationDocNode_html_ab096bbea749ee994d75230cd8136afc2"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html#ab096bbea749ee994d75230cd8136afc2">tvm::script::printer::OperationDocNode::Kind</a></div><div class="ttdeci">Kind</div><div class="ttdef"><b>Definition:</b> doc.h:480</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssertDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssertDoc.html">tvm::script::printer::AssertDoc</a></div><div class="ttdoc">Reference type of AssertDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1045</div></div>
 <div class="ttc" id="object_8h_html_a3aea9b3f65aeb9150c0fa7800e5573c6"><div class="ttname"><a href="object_8h.html#a3aea9b3f65aeb9150c0fa7800e5573c6">TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">#define TVM_DECLARE_FINAL_OBJECT_INFO(TypeName, ParentType)</div><div class="ttdoc">helper macro to declare type information in a final class. </div><div class="ttdef"><b>Definition:</b> object.h:671</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDocNode_html_a6d33e5d566bc775f7cb43acc731a60e1"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDocNode.html#a6d33e5d566bc775f7cb43acc731a60e1">tvm::script::printer::IdDocNode::name</a></div><div class="ttdeci">String name</div><div class="ttdoc">The name of the identifier. </div><div class="ttdef"><b>Definition:</b> doc.h:293</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDocNode_html_a6d33e5d566bc775f7cb43acc731a60e1"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDocNode.html#a6d33e5d566bc775f7cb43acc731a60e1">tvm::script::printer::IdDocNode::name</a></div><div class="ttdeci">String name</div><div class="ttdoc">The name of the identifier. </div><div class="ttdef"><b>Definition:</b> doc.h:309</div></div>
 <div class="ttc" id="data__type_8h_html"><div class="ttname"><a href="data__type_8h.html">data_type.h</a></div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDocNode.html">tvm::script::printer::IdDocNode</a></div><div class="ttdoc">Doc that represents identifier. </div><div class="ttdef"><b>Definition:</b> doc.h:290</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDocNode_html_aadde19053de1e9adc6423537d27e4c00"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDocNode.html#aadde19053de1e9adc6423537d27e4c00">tvm::script::printer::TupleDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:584</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IdDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IdDocNode.html">tvm::script::printer::IdDocNode</a></div><div class="ttdoc">Doc that represents identifier. </div><div class="ttdef"><b>Definition:</b> doc.h:306</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDocNode_html_aadde19053de1e9adc6423537d27e4c00"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDocNode.html#aadde19053de1e9adc6423537d27e4c00">tvm::script::printer::TupleDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:600</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1DataType_html_a43941f847c40049ef292dc2873483e0d"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#a43941f847c40049ef292dc2873483e0d">tvm::runtime::DataType::Bool</a></div><div class="ttdeci">static DataType Bool(int lanes=1)</div><div class="ttdoc">Construct a bool type. </div><div class="ttdef"><b>Definition:</b> data_type.h:191</div></div>
-<div class="ttc" id="classtvm_1_1ObjectPath_html"><div class="ttname"><a href="classtvm_1_1ObjectPath.html">tvm::ObjectPath</a></div><div class="ttdef"><b>Definition:</b> object_path.h:122</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDoc_html_a312edc2fe47a5d3839393ff21f9300b4"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDoc.html#a312edc2fe47a5d3839393ff21f9300b4">tvm::script::printer::ListDoc::ListDoc</a></div><div class="ttdeci">ListDoc()</div><div class="ttdoc">Create an empty ListDoc. </div><div class="ttdef"><b>Definition:</b> doc.h:641</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_ad2304f112248c0076f6cc12f3ebe69da"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad2304f112248c0076f6cc12f3ebe69da">tvm::script::printer::LiteralDoc::Boolean</a></div><div class="ttdeci">static LiteralDoc Boolean(bool v)</div><div class="ttdoc">Create a LiteralDoc to represent boolean. </div><div class="ttdef"><b>Definition:</b> doc.h:263</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_a157fb6ccc8acfcdd964482a502521ebd"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a157fb6ccc8acfcdd964482a502521ebd">tvm::script::printer::LiteralDoc::DataType</a></div><div class="ttdeci">static LiteralDoc DataType(const DLDataType &amp;v)</div><div class="ttdoc">Create a LiteralDoc to represent string. </div><div class="ttdef"><b>Definition:</b> doc.h:278</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode_html_a17862bcb50fd1ef49cd9a47f065e612c"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode.html#a17862bcb50fd1ef49cd9a47f065e612c">tvm::script::printer::StmtBlockDocNode::stmts</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; stmts</div><div class="ttdoc">The list of statements. </div><div class="ttdef"><b>Definition:</b> doc.h:187</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDoc_html_a312edc2fe47a5d3839393ff21f9300b4"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDoc.html#a312edc2fe47a5d3839393ff21f9300b4">tvm::script::printer::ListDoc::ListDoc</a></div><div class="ttdeci">ListDoc()</div><div class="ttdoc">Create an empty ListDoc. </div><div class="ttdef"><b>Definition:</b> doc.h:657</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode_html_a17862bcb50fd1ef49cd9a47f065e612c"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtBlockDocNode.html#a17862bcb50fd1ef49cd9a47f065e612c">tvm::script::printer::StmtBlockDocNode::stmts</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; stmts</div><div class="ttdoc">The list of statements. </div><div class="ttdef"><b>Definition:</b> doc.h:189</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1Optional_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Optional.html">tvm::runtime::Optional</a></div><div class="ttdoc">Optional container that to represent to a Nullable variant of T. </div><div class="ttdef"><b>Definition:</b> optional.h:51</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html">tvm::script::printer::ClassDocNode</a></div><div class="ttdoc">Doc that represents class definition. </div><div class="ttdef"><b>Definition:</b> doc.h:1136</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ReturnDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ReturnDoc.html">tvm::script::printer::ReturnDoc</a></div><div class="ttdoc">Reference type of ReturnDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1064</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IndexDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IndexDocNode.html">tvm::script::printer::IndexDocNode</a></div><div class="ttdoc">Doc that represents index access on another expression. </div><div class="ttdef"><b>Definition:</b> doc.h:363</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDocNode_html_a74d56d2c98118826ae483f01fc80cad8"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDocNode.html#a74d56d2c98118826ae483f01fc80cad8">tvm::script::printer::DictDocNode::keys</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; keys</div><div class="ttdoc">keys of dictionary </div><div class="ttdef"><b>Definition:</b> doc.h:658</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">tvm::script::printer::ExprDoc</a></div><div class="ttdoc">Reference type of ExprDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:125</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDocNode_html_a08d71431d889cd4588d57c06c12140c4"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDocNode.html#a08d71431d889cd4588d57c06c12140c4">tvm::script::printer::DictDocNode::values</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; values</div><div class="ttdoc">Values of dictionary. </div><div class="ttdef"><b>Definition:</b> doc.h:665</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtBlockDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtBlockDoc.html">tvm::script::printer::StmtBlockDoc</a></div><div class="ttdoc">Reference type of StmtBlockDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:202</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_aea849aacf9a86be23f9d3e51d7ed77b0"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aea849aacf9a86be23f9d3e51d7ed77b0">tvm::script::printer::LiteralDoc::Int</a></div><div class="ttdeci">static LiteralDoc Int(int64_t v)</div><div class="ttdoc">Create a LiteralDoc to represent integer. </div><div class="ttdef"><b>Definition:</b> doc.h:258</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDocNode_html_a9b27f10e02e7a3ed7b7e549cd013f01d"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDocNode.html#a9b27f10e02e7a3ed7b7e549cd013f01d">tvm::script::printer::IfDocNode::then_branch</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; then_branch</div><div class="ttdoc">The then branch of the if-then-else statement. </div><div class="ttdef"><b>Definition:</b> doc.h:797</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ForDocNode_html_aeb8d5417da24488043d11d330e599f8f"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ForDocNode.html#aeb8d5417da24488043d11d330e599f8f">tvm::script::printer::ForDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of the for statement. </div><div class="ttdef"><b>Definition:</b> doc.h:883</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1WhileDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1WhileDocNode.html">tvm::script::printer::WhileDocNode</a></div><div class="ttdoc">Doc that represents while statement. </div><div class="ttdef"><b>Definition:</b> doc.h:834</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html_a5a959af4b85068d5fb066f367e914e55"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html#a5a959af4b85068d5fb066f367e914e55">tvm::script::printer::CallDocNode::kwargs_keys</a></div><div class="ttdeci">Array&lt; String &gt; kwargs_keys</div><div class="ttdoc">The keys of keyword arguments. </div><div class="ttdef"><b>Definition:</b> doc.h:414</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html">tvm::script::printer::ClassDocNode</a></div><div class="ttdoc">Doc that represents class definition. </div><div class="ttdef"><b>Definition:</b> doc.h:1152</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ReturnDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ReturnDoc.html">tvm::script::printer::ReturnDoc</a></div><div class="ttdoc">Reference type of ReturnDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1080</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IndexDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IndexDocNode.html">tvm::script::printer::IndexDocNode</a></div><div class="ttdoc">Doc that represents index access on another expression. </div><div class="ttdef"><b>Definition:</b> doc.h:379</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDocNode_html_a74d56d2c98118826ae483f01fc80cad8"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDocNode.html#a74d56d2c98118826ae483f01fc80cad8">tvm::script::printer::DictDocNode::keys</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; keys</div><div class="ttdoc">keys of dictionary </div><div class="ttdef"><b>Definition:</b> doc.h:674</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ExprDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">tvm::script::printer::ExprDoc</a></div><div class="ttdoc">Reference type of ExprDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:127</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1DictDocNode_html_a08d71431d889cd4588d57c06c12140c4"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1DictDocNode.html#a08d71431d889cd4588d57c06c12140c4">tvm::script::printer::DictDocNode::values</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; values</div><div class="ttdoc">Values of dictionary. </div><div class="ttdef"><b>Definition:</b> doc.h:681</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1StmtBlockDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1StmtBlockDoc.html">tvm::script::printer::StmtBlockDoc</a></div><div class="ttdoc">Reference type of StmtBlockDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:204</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IfDocNode_html_a9b27f10e02e7a3ed7b7e549cd013f01d"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IfDocNode.html#a9b27f10e02e7a3ed7b7e549cd013f01d">tvm::script::printer::IfDocNode::then_branch</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; then_branch</div><div class="ttdoc">The then branch of the if-then-else statement. </div><div class="ttdef"><b>Definition:</b> doc.h:813</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ForDocNode_html_aeb8d5417da24488043d11d330e599f8f"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ForDocNode.html#aeb8d5417da24488043d11d330e599f8f">tvm::script::printer::ForDocNode::body</a></div><div class="ttdeci">Array&lt; StmtDoc &gt; body</div><div class="ttdoc">The body of the for statement. </div><div class="ttdef"><b>Definition:</b> doc.h:899</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1WhileDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1WhileDocNode.html">tvm::script::printer::WhileDocNode</a></div><div class="ttdoc">Doc that represents while statement. </div><div class="ttdef"><b>Definition:</b> doc.h:850</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1CallDocNode_html_a5a959af4b85068d5fb066f367e914e55"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1CallDocNode.html#a5a959af4b85068d5fb066f367e914e55">tvm::script::printer::CallDocNode::kwargs_keys</a></div><div class="ttdeci">Array&lt; String &gt; kwargs_keys</div><div class="ttdoc">The keys of keyword arguments. </div><div class="ttdef"><b>Definition:</b> doc.h:430</div></div>
 <div class="ttc" id="namespacetvm_html_aae7034e3e41c18e7fb78ff32bfc6a318"><div class="ttname"><a href="namespacetvm.html#aae7034e3e41c18e7fb78ff32bfc6a318">tvm::NullOpt</a></div><div class="ttdeci">constexpr runtime::NullOptType NullOpt</div><div class="ttdef"><b>Definition:</b> optional.h:160</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ReturnDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ReturnDocNode.html">tvm::script::printer::ReturnDocNode</a></div><div class="ttdoc">Doc that represents return statement. </div><div class="ttdef"><b>Definition:</b> doc.h:1045</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDoc.html">tvm::script::printer::FunctionDoc</a></div><div class="ttdoc">Reference type of FunctionDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1116</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDocNode_html_a253cf698eba7d39b7345553e646bc8b9"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html#a253cf698eba7d39b7345553e646bc8b9">tvm::script::printer::ClassDocNode::decorators</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; decorators</div><div class="ttdoc">Decorators of class. </div><div class="ttdef"><b>Definition:</b> doc.h:1141</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDoc_html_ac3ec09b672b619376fa70cead671de78"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDoc.html#ac3ec09b672b619376fa70cead671de78">tvm::script::printer::TupleDoc::TupleDoc</a></div><div class="ttdeci">TupleDoc()</div><div class="ttdoc">Create an empty TupleDoc. </div><div class="ttdef"><b>Definition:</b> doc.h:603</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDocNode_html_a12eb8131926502501e1088fb0d398850"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html#a12eb8131926502501e1088fb0d398850">tvm::script::printer::AssignDocNode::annotation</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; annotation</div><div class="ttdoc">The type annotation of this assignment. </div><div class="ttdef"><b>Definition:</b> doc.h:757</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IndexDocNode_html_a9aed13f06616cbd8ea54f362de81cb0e"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IndexDocNode.html#a9aed13f06616cbd8ea54f362de81cb0e">tvm::script::printer::IndexDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:376</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ReturnDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ReturnDocNode.html">tvm::script::printer::ReturnDocNode</a></div><div class="ttdoc">Doc that represents return statement. </div><div class="ttdef"><b>Definition:</b> doc.h:1061</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDoc.html">tvm::script::printer::FunctionDoc</a></div><div class="ttdoc">Reference type of FunctionDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1132</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDocNode_html_a253cf698eba7d39b7345553e646bc8b9"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html#a253cf698eba7d39b7345553e646bc8b9">tvm::script::printer::ClassDocNode::decorators</a></div><div class="ttdeci">Array&lt; ExprDoc &gt; decorators</div><div class="ttdoc">Decorators of class. </div><div class="ttdef"><b>Definition:</b> doc.h:1157</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDoc_html_ac3ec09b672b619376fa70cead671de78"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDoc.html#ac3ec09b672b619376fa70cead671de78">tvm::script::printer::TupleDoc::TupleDoc</a></div><div class="ttdeci">TupleDoc()</div><div class="ttdoc">Create an empty TupleDoc. </div><div class="ttdef"><b>Definition:</b> doc.h:619</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDocNode_html_a12eb8131926502501e1088fb0d398850"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html#a12eb8131926502501e1088fb0d398850">tvm::script::printer::AssignDocNode::annotation</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; annotation</div><div class="ttdoc">The type annotation of this assignment. </div><div class="ttdef"><b>Definition:</b> doc.h:773</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IndexDocNode_html_a9aed13f06616cbd8ea54f362de81cb0e"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IndexDocNode.html#a9aed13f06616cbd8ea54f362de81cb0e">tvm::script::printer::IndexDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:392</div></div>
 <div class="ttc" id="object_8h_html_a782d0de62fbf75736e29c1e79c22c7f1"><div class="ttname"><a href="object_8h.html#a782d0de62fbf75736e29c1e79c22c7f1">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:728</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html">tvm::script::printer::SliceDocNode</a></div><div class="ttdoc">Doc that represents slice in Index expression. </div><div class="ttdef"><b>Definition:</b> doc.h:704</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDoc.html">tvm::script::printer::AssignDoc</a></div><div class="ttdoc">Reference type of AssignDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:775</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LambdaDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LambdaDoc.html">tvm::script::printer::LambdaDoc</a></div><div class="ttdoc">Reference type of LambdaDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:563</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDocNode.html">tvm::script::printer::ListDocNode</a></div><div class="ttdoc">Doc that represents list literal. </div><div class="ttdef"><b>Definition:</b> doc.h:617</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ForDocNode_html_a7f6e685691fcd1d827cbe6d7521e6674"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ForDocNode.html#a7f6e685691fcd1d827cbe6d7521e6674">tvm::script::printer::ForDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:885</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode.html">tvm::script::printer::AttrAccessDocNode</a></div><div class="ttdoc">Doc that represents attribute access on another expression. </div><div class="ttdef"><b>Definition:</b> doc.h:325</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDocNode.html">tvm::script::printer::TupleDocNode</a></div><div class="ttdoc">Doc that represents tuple literal. </div><div class="ttdef"><b>Definition:</b> doc.h:579</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html">tvm::script::printer::SliceDocNode</a></div><div class="ttdoc">Doc that represents slice in Index expression. </div><div class="ttdef"><b>Definition:</b> doc.h:720</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDoc.html">tvm::script::printer::AssignDoc</a></div><div class="ttdoc">Reference type of AssignDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:791</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LambdaDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LambdaDoc.html">tvm::script::printer::LambdaDoc</a></div><div class="ttdoc">Reference type of LambdaDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:579</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ListDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ListDocNode.html">tvm::script::printer::ListDocNode</a></div><div class="ttdoc">Doc that represents list literal. </div><div class="ttdef"><b>Definition:</b> doc.h:633</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ForDocNode_html_a7f6e685691fcd1d827cbe6d7521e6674"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ForDocNode.html#a7f6e685691fcd1d827cbe6d7521e6674">tvm::script::printer::ForDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:901</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode.html">tvm::script::printer::AttrAccessDocNode</a></div><div class="ttdoc">Doc that represents attribute access on another expression. </div><div class="ttdef"><b>Definition:</b> doc.h:341</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDocNode_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDocNode.html">tvm::script::printer::TupleDocNode</a></div><div class="ttdoc">Doc that represents tuple literal. </div><div class="ttdef"><b>Definition:</b> doc.h:595</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1DataType_html_ab45f13dd70d982d9f977c79b6f7fac98"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#ab45f13dd70d982d9f977c79b6f7fac98">tvm::runtime::DataType::Int</a></div><div class="ttdeci">static DataType Int(int bits, int lanes=1)</div><div class="ttdoc">Construct an int type. </div><div class="ttdef"><b>Definition:</b> data_type.h:164</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDoc.html">tvm::script::printer::TupleDoc</a></div><div class="ttdoc">Reference type of TupleDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:598</div></div>
-<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html_aaeb98937e7617cb76fb9662616b89e81"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html#aaeb98937e7617cb76fb9662616b89e81">tvm::script::printer::SliceDocNode::stop</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; stop</div><div class="ttdoc">The exclusive end of slice. </div><div class="ttdef"><b>Definition:</b> doc.h:709</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1LiteralDoc_html_aec73b3eb7dc65adb78911fb334f1ae85"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aec73b3eb7dc65adb78911fb334f1ae85">tvm::script::printer::LiteralDoc::None</a></div><div class="ttdeci">static LiteralDoc None(const Optional&lt; ObjectPath &gt; &amp;p)</div><div class="ttdoc">Create a LiteralDoc to represent None/null/empty value. </div><div class="ttdef"><b>Definition:</b> doc.h:255</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDoc.html">tvm::script::printer::TupleDoc</a></div><div class="ttdoc">Reference type of TupleDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:614</div></div>
+<div class="ttc" id="classtvm_1_1script_1_1printer_1_1SliceDocNode_html_aaeb98937e7617cb76fb9662616b89e81"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1SliceDocNode.html#aaeb98937e7617cb76fb9662616b89e81">tvm::script::printer::SliceDocNode::stop</a></div><div class="ttdeci">Optional&lt; ExprDoc &gt; stop</div><div class="ttdoc">The exclusive end of slice. </div><div class="ttdef"><b>Definition:</b> doc.h:725</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/functions_b.html b/docs/reference/api/doxygen/functions_b.html
index ec0eb10cf5..16417b5015 100644
--- a/docs/reference/api/doxygen/functions_b.html
+++ b/docs/reference/api/doxygen/functions_b.html
@@ -218,7 +218,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a43941f847c40049ef292dc2873483e0d">tvm::runtime::DataType</a>
 </li>
 <li>Boolean()
-: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad2304f112248c0076f6cc12f3ebe69da">tvm::script::printer::LiteralDoc</a>
+: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ab0a0ccbeb39cc510cb3bf37acdc2e0bc">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>BoundMapType
 : <a class="el" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a14736850005ba70395b09c2fb9113770">tvm::arith::ConstIntBoundAnalyzer</a>
diff --git a/docs/reference/api/doxygen/functions_d.html b/docs/reference/api/doxygen/functions_d.html
index 6e5369a734..6a472d5fba 100644
--- a/docs/reference/api/doxygen/functions_d.html
+++ b/docs/reference/api/doxygen/functions_d.html
@@ -121,7 +121,7 @@ $(function() {
 <li>DataType()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a6db427a47b8d503b10cd2aee6a39d3a9">tvm::runtime::DataType</a>
 , <a class="el" href="classtvm_1_1runtime_1_1NDArray.html#a87d9cadd0c232324c101f7ed231aa193">tvm::runtime::NDArray</a>
-, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a157fb6ccc8acfcdd964482a502521ebd">tvm::script::printer::LiteralDoc</a>
+, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#adf4d8759e01746a0da3b03146b7baf00">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>datatype_fields
 : <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a25adb383014a74a9c4ac805beefe86b6">tvm::runtime::vm::Instruction</a>
diff --git a/docs/reference/api/doxygen/functions_f.html b/docs/reference/api/doxygen/functions_f.html
index 8504efa6eb..e45016280b 100644
--- a/docs/reference/api/doxygen/functions_f.html
+++ b/docs/reference/api/doxygen/functions_f.html
@@ -389,7 +389,7 @@ $(function() {
 </li>
 <li>Float()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a237a714a6a16e14aa01fa4ac52426551">tvm::runtime::DataType</a>
-, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aad7a2c38982b0a9d5f874eaf3e4676ba">tvm::script::printer::LiteralDoc</a>
+, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a1a90c18a43f22d5c2eefe5be0c48b91b">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>float_dtype
 : <a class="el" href="structtvm_1_1script_1_1printer_1_1Default.html#ad0c9fb7133aed43e8631f992bfbba638">tvm::script::printer::Default</a>
diff --git a/docs/reference/api/doxygen/functions_func_b.html b/docs/reference/api/doxygen/functions_func_b.html
index 92f9c4d8ee..f346a3f2cc 100644
--- a/docs/reference/api/doxygen/functions_func_b.html
+++ b/docs/reference/api/doxygen/functions_func_b.html
@@ -128,7 +128,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a43941f847c40049ef292dc2873483e0d">tvm::runtime::DataType</a>
 </li>
 <li>Boolean()
-: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad2304f112248c0076f6cc12f3ebe69da">tvm::script::printer::LiteralDoc</a>
+: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ab0a0ccbeb39cc510cb3bf37acdc2e0bc">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>Broadcast()
 : <a class="el" href="classtvm_1_1tir_1_1Broadcast.html#a8d75100fc3b889b0719b23bbd8e1aa23">tvm::tir::Broadcast</a>
diff --git a/docs/reference/api/doxygen/functions_func_d.html b/docs/reference/api/doxygen/functions_func_d.html
index d188e0a442..e7c0fc1c11 100644
--- a/docs/reference/api/doxygen/functions_func_d.html
+++ b/docs/reference/api/doxygen/functions_func_d.html
@@ -74,7 +74,7 @@ $(function() {
 <li>DataType()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#aa27f63a2395ce1ac52e4d7740a31383b">tvm::runtime::DataType</a>
 , <a class="el" href="classtvm_1_1runtime_1_1NDArray.html#a87d9cadd0c232324c101f7ed231aa193">tvm::runtime::NDArray</a>
-, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a157fb6ccc8acfcdd964482a502521ebd">tvm::script::printer::LiteralDoc</a>
+, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#adf4d8759e01746a0da3b03146b7baf00">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>DataTypePattern()
 : <a class="el" href="classtvm_1_1relay_1_1DataTypePattern.html#a1af68239730a8b75bfb35cfce320b653">tvm::relay::DataTypePattern</a>
diff --git a/docs/reference/api/doxygen/functions_func_f.html b/docs/reference/api/doxygen/functions_func_f.html
index 6f19d45cae..2ade7957d0 100644
--- a/docs/reference/api/doxygen/functions_func_f.html
+++ b/docs/reference/api/doxygen/functions_func_f.html
@@ -114,7 +114,7 @@ $(function() {
 </li>
 <li>Float()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a237a714a6a16e14aa01fa4ac52426551">tvm::runtime::DataType</a>
-, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aad7a2c38982b0a9d5f874eaf3e4676ba">tvm::script::printer::LiteralDoc</a>
+, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a1a90c18a43f22d5c2eefe5be0c48b91b">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>FloatDType()
 : <a class="el" href="structtvm_1_1script_1_1printer_1_1Default.html#a3cebbdcac3472e9f97790e558abc5309">tvm::script::printer::Default</a>
diff --git a/docs/reference/api/doxygen/functions_func_i.html b/docs/reference/api/doxygen/functions_func_i.html
index c780fe2077..f3599cc972 100644
--- a/docs/reference/api/doxygen/functions_func_i.html
+++ b/docs/reference/api/doxygen/functions_func_i.html
@@ -204,7 +204,7 @@ $(function() {
 </li>
 <li>Int()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#ab45f13dd70d982d9f977c79b6f7fac98">tvm::runtime::DataType</a>
-, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aea849aacf9a86be23f9d3e51d7ed77b0">tvm::script::printer::LiteralDoc</a>
+, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a3b88804f3208f2a7abc8641ee978776e">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>IntConstraints()
 : <a class="el" href="classtvm_1_1arith_1_1IntConstraints.html#a951a0b7df214bbf90f03b88ae9b9eb48">tvm::arith::IntConstraints</a>
diff --git a/docs/reference/api/doxygen/functions_func_l.html b/docs/reference/api/doxygen/functions_func_l.html
index 8f7b734cfa..93996005c6 100644
--- a/docs/reference/api/doxygen/functions_func_l.html
+++ b/docs/reference/api/doxygen/functions_func_l.html
@@ -151,7 +151,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1TargetKindRegEntry.html#a94f787f1d83ecf0e01d62340772482aa">tvm::TargetKindRegEntry</a>
 </li>
 <li>LiteralDoc()
-: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a6d030ebf49c3993e09da67aa6ebfb8ba">tvm::script::printer::LiteralDoc</a>
+: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a964b5256fc9ed898b54bfa9b8f4c8de1">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>Load()
 : <a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html#af41795941e68bb03438d2fbf60c313e3">tvm::meta_schedule::CostModelNode</a>
@@ -191,7 +191,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunner.html#aa2b7cb576f9a7d5e900bc3159a07a7e9">tvm::auto_scheduler::LocalRunner</a>
 </li>
 <li>Lookup()
-: <a class="el" href="classtvm_1_1IRModuleNode.html#a8430de337205d25778704d558f892ecb">tvm::IRModuleNode</a>
+: <a class="el" href="classtvm_1_1IRModuleNode.html#a8fb3c0a0e2c0a679753e6f8f45f54860">tvm::IRModuleNode</a>
 </li>
 <li>LookupHashedValue()
 : <a class="el" href="classtvm_1_1SHashHandlerDefault.html#a8d6338386dbf200ee7f73bee47c046b4">tvm::SHashHandlerDefault</a>
@@ -201,7 +201,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1IRModuleNode.html#ae078ad8def39579701d144578c787bcf">tvm::IRModuleNode</a>
 </li>
 <li>LookupTypeDef()
-: <a class="el" href="classtvm_1_1IRModuleNode.html#a23f3769fe60b3b06c9d163650ea7caaf">tvm::IRModuleNode</a>
+: <a class="el" href="classtvm_1_1IRModuleNode.html#ae095c1fd87642bd417224668c5b4d910">tvm::IRModuleNode</a>
 </li>
 <li>LoopRV()
 : <a class="el" href="classtvm_1_1tir_1_1LoopRV.html#ad47c4e83701875b84c9efd36ee3dc323">tvm::tir::LoopRV</a>
diff --git a/docs/reference/api/doxygen/functions_func_n.html b/docs/reference/api/doxygen/functions_func_n.html
index c4c472cac9..6cd88a06bb 100644
--- a/docs/reference/api/doxygen/functions_func_n.html
+++ b/docs/reference/api/doxygen/functions_func_n.html
@@ -120,7 +120,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1relay_1_1FeatureSet.html#a68c408c752ef58b2c27802491165adbb">tvm::relay::FeatureSet</a>
 </li>
 <li>None()
-: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad7b614de314ca220044ccfd78e4a9640">tvm::script::printer::LiteralDoc</a>
+: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aec73b3eb7dc65adb78911fb334f1ae85">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>NonSurjectiveInverse()
 : <a class="el" href="classtvm_1_1tir_1_1IndexMap.html#a85bd2f88a27665c60e3a9f3ca2aeb1e0">tvm::tir::IndexMap</a>
diff --git a/docs/reference/api/doxygen/functions_func_s.html b/docs/reference/api/doxygen/functions_func_s.html
index 7150d8200a..c47c0b43d7 100644
--- a/docs/reference/api/doxygen/functions_func_s.html
+++ b/docs/reference/api/doxygen/functions_func_s.html
@@ -763,7 +763,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1tir_1_1Store.html#a2c4278b8bcdae57ada2022ecc7c290c3">tvm::tir::Store</a>
 </li>
 <li>Str()
-: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a789d7d73bd4d94612fa2a84c16b26b89">tvm::script::printer::LiteralDoc</a>
+: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a8423a0ede5a29b24f6db5d9f6574a200">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>str()
 : <a class="el" href="classtvm_1_1TargetNode.html#a30cd67db46a9c4b098a8ba38fff22e26">tvm::TargetNode</a>
diff --git a/docs/reference/api/doxygen/functions_i.html b/docs/reference/api/doxygen/functions_i.html
index 70558915ed..c301a49f8d 100644
--- a/docs/reference/api/doxygen/functions_i.html
+++ b/docs/reference/api/doxygen/functions_i.html
@@ -329,7 +329,7 @@ $(function() {
 </li>
 <li>Int()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#ab45f13dd70d982d9f977c79b6f7fac98">tvm::runtime::DataType</a>
-, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aea849aacf9a86be23f9d3e51d7ed77b0">tvm::script::printer::LiteralDoc</a>
+, <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a3b88804f3208f2a7abc8641ee978776e">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>int_dtype
 : <a class="el" href="structtvm_1_1script_1_1printer_1_1Default.html#a31d65d3078054e6c0ce9d87a967a5cf1">tvm::script::printer::Default</a>
diff --git a/docs/reference/api/doxygen/functions_l.html b/docs/reference/api/doxygen/functions_l.html
index cb5d79f984..575b7f95da 100644
--- a/docs/reference/api/doxygen/functions_l.html
+++ b/docs/reference/api/doxygen/functions_l.html
@@ -235,7 +235,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1TargetKindRegEntry.html#a94f787f1d83ecf0e01d62340772482aa">tvm::TargetKindRegEntry</a>
 </li>
 <li>LiteralDoc()
-: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a3d925b6bd457b43db5c9990a5faf9ad6">tvm::script::printer::LiteralDoc</a>
+: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a964b5256fc9ed898b54bfa9b8f4c8de1">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>Load()
 : <a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html#af41795941e68bb03438d2fbf60c313e3">tvm::meta_schedule::CostModelNode</a>
@@ -292,7 +292,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1IRModuleNode.html#ae078ad8def39579701d144578c787bcf">tvm::IRModuleNode</a>
 </li>
 <li>LookupTypeDef()
-: <a class="el" href="classtvm_1_1IRModuleNode.html#a23f3769fe60b3b06c9d163650ea7caaf">tvm::IRModuleNode</a>
+: <a class="el" href="classtvm_1_1IRModuleNode.html#ae095c1fd87642bd417224668c5b4d910">tvm::IRModuleNode</a>
 </li>
 <li>loop_var
 : <a class="el" href="classtvm_1_1tir_1_1ForNode.html#a7dbf66bdcf8ed397321517f0915a0946">tvm::tir::ForNode</a>
diff --git a/docs/reference/api/doxygen/functions_n.html b/docs/reference/api/doxygen/functions_n.html
index da8eaf55e4..8d04ae1c86 100644
--- a/docs/reference/api/doxygen/functions_n.html
+++ b/docs/reference/api/doxygen/functions_n.html
@@ -205,7 +205,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html#a7dbc9628c9f3f35deaccf0526be4f699">tvm::tir::AttrStmtNode</a>
 </li>
 <li>None()
-: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#ad7b614de314ca220044ccfd78e4a9640">tvm::script::printer::LiteralDoc</a>
+: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#aec73b3eb7dc65adb78911fb334f1ae85">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>NonSurjectiveInverse()
 : <a class="el" href="classtvm_1_1tir_1_1IndexMap.html#a85bd2f88a27665c60e3a9f3ca2aeb1e0">tvm::tir::IndexMap</a>
diff --git a/docs/reference/api/doxygen/functions_s.html b/docs/reference/api/doxygen/functions_s.html
index 15c2a5f5eb..fbdf9d00de 100644
--- a/docs/reference/api/doxygen/functions_s.html
+++ b/docs/reference/api/doxygen/functions_s.html
@@ -1095,7 +1095,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1te_1_1StageNode.html#a8f4ba7f2931b3541c12734af511600a7">tvm::te::StageNode</a>
 </li>
 <li>Str()
-: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a789d7d73bd4d94612fa2a84c16b26b89">tvm::script::printer::LiteralDoc</a>
+: <a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a8423a0ede5a29b24f6db5d9f6574a200">tvm::script::printer::LiteralDoc</a>
 </li>
 <li>str()
 : <a class="el" href="classtvm_1_1TargetNode.html#a30cd67db46a9c4b098a8ba38fff22e26">tvm::TargetNode</a>
diff --git a/docs/reference/api/doxygen/ir__docsifier_8h.html b/docs/reference/api/doxygen/ir__docsifier_8h.html
index d21b952969..e44ab2f256 100644
--- a/docs/reference/api/doxygen/ir__docsifier_8h.html
+++ b/docs/reference/api/doxygen/ir__docsifier_8h.html
@@ -80,7 +80,7 @@ $(function() {
 </div><div class="textblock"><div class="dynheader">
 Include dependency graph for ir_docsifier.h:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="ir__docsifier_8h__incl.svg" width="5231" height="1335"><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="ir__docsifier_8h__incl.svg" width="5174" height="1335"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 </div><div class="textblock"><div class="dynheader">
diff --git a/docs/reference/api/doxygen/ir__docsifier_8h__incl.svg b/docs/reference/api/doxygen/ir__docsifier_8h__incl.svg
index e1783dcabc..e5692220d4 100644
--- a/docs/reference/api/doxygen/ir__docsifier_8h__incl.svg
+++ b/docs/reference/api/doxygen/ir__docsifier_8h__incl.svg
@@ -4,1648 +4,1654 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: include/tvm/script/printer/ir_docsifier.h Pages: 1 -->
-<svg width="3923pt" height="1001pt"
- viewBox="0.00 0.00 3923.00 1001.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="3880pt" height="1001pt"
+ viewBox="0.00 0.00 3880.00 1001.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 997)">
 <title>include/tvm/script/printer/ir_docsifier.h</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-997 3919,-997 3919,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-997 3876,-997 3876,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="2715,-962.5 2715,-992.5 2831,-992.5 2831,-962.5 2715,-962.5"/>
-<text text-anchor="start" x="2723" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/script</text>
-<text text-anchor="middle" x="2773" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/printer/ir_docsifier.h</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="3450,-962.5 3450,-992.5 3566,-992.5 3566,-962.5 3450,-962.5"/>
+<text text-anchor="start" x="3458" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/script</text>
+<text text-anchor="middle" x="3508" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/printer/ir_docsifier.h</text>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="ir_2module_8h.html" target="_top" xlink:title="IRModule that holds the functions and type definitions. ">
-<polygon fill="#ffffff" stroke="#000000" points="3009.5,-906.5 3009.5,-925.5 3104.5,-925.5 3104.5,-906.5 3009.5,-906.5"/>
-<text text-anchor="middle" x="3057" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/module.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1600.5,-906.5 1600.5,-925.5 1695.5,-925.5 1695.5,-906.5 1600.5,-906.5"/>
+<text text-anchor="middle" x="1648" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/module.h</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node0&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M2831.157,-964.9062C2881.5617,-953.991 2953.925,-938.3208 3003.055,-927.6817"/>
-<polygon fill="#191970" stroke="#191970" points="3003.831,-931.0949 3012.8636,-925.5577 3002.3494,-924.2535 3003.831,-931.0949"/>
+<path fill="none" stroke="#191970" d="M3449.7791,-975.575C3171.9841,-966.3898 1983.2838,-927.086 1705.9913,-917.9175"/>
+<polygon fill="#191970" stroke="#191970" points="1705.8607,-914.4113 1695.7505,-917.5788 1705.6293,-921.4075 1705.8607,-914.4113"/>
 </g>
 <!-- Node5 -->
 <g id="node6" class="node">
 <title>Node5</title>
 <g id="a_node6"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="933.5,-548.5 933.5,-567.5 1032.5,-567.5 1032.5,-548.5 933.5,-548.5"/>
-<text text-anchor="middle" x="983" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/node.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2333.5,-548.5 2333.5,-567.5 2432.5,-567.5 2432.5,-548.5 2333.5,-548.5"/>
+<text text-anchor="middle" x="2383" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/node.h</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node5 -->
 <g id="edge189" class="edge">
 <title>Node0&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M2714.9737,-974.5793C2578.5189,-967.4332 2240.4065,-948.0337 2129,-926 1675.0248,-836.214 1148.8852,-626.3788 1015.1667,-571.3875"/>
-<polygon fill="#191970" stroke="#191970" points="1016.4514,-568.1314 1005.8723,-567.5542 1013.7824,-574.6027 1016.4514,-568.1314"/>
+<path fill="none" stroke="#191970" d="M3507.9827,-962.1276C3507.0884,-935.4313 3501.2857,-880.4454 3470,-850 3318.5988,-702.6653 2647.4913,-595.9049 2442.6033,-566.2864"/>
+<polygon fill="#191970" stroke="#191970" points="2443.0264,-562.8114 2432.63,-564.8525 2442.0301,-569.7401 2443.0264,-562.8114"/>
 </g>
 <!-- Node18 -->
 <g id="node17" class="node">
 <title>Node18</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="3184.5,-62 3184.5,-81 3229.5,-81 3229.5,-62 3184.5,-62"/>
-<text text-anchor="middle" x="3207" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">utility</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="419.5,-62 419.5,-81 464.5,-81 464.5,-62 419.5,-62"/>
+<text text-anchor="middle" x="442" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">utility</text>
 </g>
 <!-- Node0&#45;&gt;Node18 -->
-<g id="edge205" class="edge">
+<g id="edge206" class="edge">
 <title>Node0&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M2831.182,-976.6281C2965.8049,-974.0046 3308.9782,-963.839 3593,-926 3737.807,-906.708 3915,-1006.0864 3915,-860 3915,-860 3915,-860 3915,-189 3915,-130.8389 3857.4333,-140.603 3802,-123 3695.7232,-89.2514 3348.0129,-75.8585 3239.5894,-72.4397"/>
-<polygon fill="#191970" stroke="#191970" points="3239.6749,-68.9408 3229.5718,-72.131 3239.4592,-75.9375 3239.6749,-68.9408"/>
+<path fill="none" stroke="#191970" d="M3449.6768,-977.124C2992.3499,-973.9907 0,-950.0486 0,-860 0,-860 0,-860 0,-189 0,-143.9267 35.9253,-141.56 77,-123 136.1798,-96.2591 330.9334,-79.5495 409.1024,-73.7728"/>
+<polygon fill="#191970" stroke="#191970" points="409.612,-77.2451 419.3324,-73.0304 409.1053,-70.2635 409.612,-77.2451"/>
 </g>
 <!-- Node20 -->
 <g id="node18" class="node">
 <title>Node20</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2236.5,-235.5 2236.5,-254.5 2283.5,-254.5 2283.5,-235.5 2236.5,-235.5"/>
-<text text-anchor="middle" x="2260" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">vector</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2196.5,-235.5 2196.5,-254.5 2243.5,-254.5 2243.5,-235.5 2196.5,-235.5"/>
+<text text-anchor="middle" x="2220" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">vector</text>
 </g>
 <!-- Node0&#45;&gt;Node20 -->
-<g id="edge206" class="edge">
+<g id="edge207" class="edge">
 <title>Node0&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M2714.7996,-971.8519C2567.4006,-956.7676 2191,-913.0541 2191,-860 2191,-860 2191,-860 2191,-558 2191,-444.1886 2235.0442,-312.4419 2252.7543,-264.0669"/>
-<polygon fill="#191970" stroke="#191970" points="2256.0826,-265.1584 2256.2903,-254.5656 2249.5222,-262.7169 2256.0826,-265.1584"/>
+<path fill="none" stroke="#191970" d="M3566.2811,-966.0404C3650.4355,-947.798 3796,-909.1411 3796,-860 3796,-860 3796,-860 3796,-619.5 3796,-290.7575 2481.6087,-250.1209 2253.5317,-245.5442"/>
+<polygon fill="#191970" stroke="#191970" points="2253.5667,-242.0443 2243.5016,-245.3525 2253.4328,-249.043 2253.5667,-242.0443"/>
 </g>
 <!-- Node33 -->
 <g id="node30" class="node">
 <title>Node33</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="3564.5,-235.5 3564.5,-254.5 3657.5,-254.5 3657.5,-235.5 3564.5,-235.5"/>
-<text text-anchor="middle" x="3611" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_map</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="3522.5,-235.5 3522.5,-254.5 3615.5,-254.5 3615.5,-235.5 3522.5,-235.5"/>
+<text text-anchor="middle" x="3569" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_map</text>
 </g>
 <!-- Node0&#45;&gt;Node33 -->
-<g id="edge203" class="edge">
+<g id="edge204" class="edge">
 <title>Node0&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M2831.3334,-975.4548C3030.4412,-967.8771 3674.2377,-938.2381 3734,-870 3842.6325,-745.9607 3687,-666.8841 3687,-502 3687,-502 3687,-502 3687,-373.5 3687,-328.2888 3651.7147,-285.0297 3629.2296,-262.0531"/>
-<polygon fill="#191970" stroke="#191970" points="3631.4629,-259.3396 3621.8889,-254.8019 3626.5436,-264.3196 3631.4629,-259.3396"/>
+<path fill="none" stroke="#191970" d="M3566.2039,-974.4304C3643.3266,-969.2338 3773.8611,-956.1603 3810,-926 3833.9636,-906.0008 3834,-891.2125 3834,-860 3834,-860 3834,-860 3834,-502 3834,-374.683 3674.423,-290.2026 3602.9328,-258.7438"/>
+<polygon fill="#191970" stroke="#191970" points="3604.0242,-255.4029 3593.4556,-254.6577 3601.2527,-261.8309 3604.0242,-255.4029"/>
 </g>
 <!-- Node59 -->
 <g id="node48" class="node">
 <title>Node59</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="3639,-850.5 3639,-869.5 3725,-869.5 3725,-850.5 3639,-850.5"/>
-<text text-anchor="middle" x="3682" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_set</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="3375,-850.5 3375,-869.5 3461,-869.5 3461,-850.5 3375,-850.5"/>
+<text text-anchor="middle" x="3418" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_set</text>
 </g>
 <!-- Node0&#45;&gt;Node59 -->
-<g id="edge204" class="edge">
+<g id="edge205" class="edge">
 <title>Node0&#45;&gt;Node59</title>
-<path fill="none" stroke="#191970" d="M2831.2404,-971.1311C2969.3383,-955.8159 3327.387,-914.8553 3625,-870 3626.2574,-869.8105 3627.5297,-869.6153 3628.8125,-869.4154"/>
-<polygon fill="#191970" stroke="#191970" points="3629.4607,-872.8562 3638.7758,-867.8084 3628.346,-865.9455 3629.4607,-872.8562"/>
+<path fill="none" stroke="#191970" d="M3496.2341,-962.1389C3479.5768,-940.3919 3449.1927,-900.7238 3431.593,-877.7465"/>
+<polygon fill="#191970" stroke="#191970" points="3434.1815,-875.37 3425.3222,-869.5595 3428.6244,-879.6266 3434.1815,-875.37"/>
 </g>
 <!-- Node60 -->
 <g id="node49" class="node">
 <title>Node60</title>
 <g id="a_node49"><a xlink:href="doc_8h.html" target="_top" xlink:title="tvm/script/printer\l/doc.h">
-<polygon fill="#ffffff" stroke="#000000" points="344.5,-783.5 344.5,-813.5 445.5,-813.5 445.5,-783.5 344.5,-783.5"/>
-<text text-anchor="start" x="352.5" y="-801.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/script/printer</text>
-<text text-anchor="middle" x="395" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/doc.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="3514.5,-783.5 3514.5,-813.5 3615.5,-813.5 3615.5,-783.5 3514.5,-783.5"/>
+<text text-anchor="start" x="3522.5" y="-801.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/script/printer</text>
+<text text-anchor="middle" x="3565" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/doc.h</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node60 -->
 <g id="edge190" class="edge">
 <title>Node0&#45;&gt;Node60</title>
-<path fill="none" stroke="#191970" d="M2714.9673,-977.2635C2356.4998,-975.6783 457.3962,-965.4268 413,-926 384.5661,-900.7488 385.9724,-852.7587 390.1168,-823.3989"/>
-<polygon fill="#191970" stroke="#191970" points="393.576,-823.9321 391.7174,-813.5016 386.6657,-822.8146 393.576,-823.9321"/>
+<path fill="none" stroke="#191970" d="M3520.086,-962.1264C3527.2153,-952.3129 3535.8273,-939.0278 3541,-926 3554.4551,-892.1125 3560.4902,-850.1019 3563.1092,-823.7905"/>
+<polygon fill="#191970" stroke="#191970" points="3566.6208,-823.819 3564.0342,-813.5448 3559.6492,-823.1896 3566.6208,-823.819"/>
 </g>
 <!-- Node61 -->
 <g id="node50" class="node">
 <title>Node61</title>
 <g id="a_node50"><a xlink:href="ir__docsifier__functor_8h.html" target="_top" xlink:title="tvm/script/printer\l/ir_docsifier_functor.h">
-<polygon fill="#ffffff" stroke="#000000" points="2041.5,-604.5 2041.5,-634.5 2162.5,-634.5 2162.5,-604.5 2041.5,-604.5"/>
-<text text-anchor="start" x="2049.5" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/script/printer</text>
-<text text-anchor="middle" x="2102" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/ir_docsifier_functor.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="3038.5,-604.5 3038.5,-634.5 3159.5,-634.5 3159.5,-604.5 3038.5,-604.5"/>
+<text text-anchor="start" x="3046.5" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/script/printer</text>
+<text text-anchor="middle" x="3099" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/ir_docsifier_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node61 -->
-<g id="edge194" class="edge">
+<g id="edge195" class="edge">
 <title>Node0&#45;&gt;Node61</title>
-<path fill="none" stroke="#191970" d="M2714.9621,-974.6131C2574.737,-967.336 2225.4615,-947.2979 2177,-926 2137.2584,-908.5344 2105,-903.4102 2105,-860 2105,-860 2105,-860 2105,-737 2105,-705.2911 2103.8947,-668.7844 2103.0259,-644.9874"/>
-<polygon fill="#191970" stroke="#191970" points="2106.5126,-644.5672 2102.6362,-634.707 2099.5176,-644.8324 2106.5126,-644.5672"/>
+<path fill="none" stroke="#191970" d="M3508.7721,-962.4323C3509.6984,-938.4221 3510.3163,-890.0985 3503,-850 3492.6568,-793.3121 3503.4296,-767.051 3462,-727 3440.6989,-706.4077 3269.3281,-661.4946 3169.8507,-636.7357"/>
+<polygon fill="#191970" stroke="#191970" points="3170.4135,-633.2693 3159.8649,-634.2579 3168.7276,-640.0632 3170.4135,-633.2693"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="ir_2adt_8h.html" target="_top" xlink:title="Algebraic data type definitions. ">
-<polygon fill="#ffffff" stroke="#000000" points="656,-789 656,-808 730,-808 730,-789 656,-789"/>
-<text text-anchor="middle" x="693" y="-796" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/adt.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1644,-789 1644,-808 1718,-808 1718,-789 1644,-789"/>
+<text text-anchor="middle" x="1681" y="-796" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge2" class="edge">
 <title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M3009.4094,-915.5122C2698.8831,-912.2654 970.5311,-893.2003 862,-870 808.6386,-858.5931 751.0289,-830.4431 718.743,-813.0609"/>
-<polygon fill="#191970" stroke="#191970" points="720.0219,-809.771 709.569,-808.0425 716.6625,-815.9123 720.0219,-809.771"/>
+<path fill="none" stroke="#191970" d="M1650.7005,-906.3845C1656.1151,-887.1053 1668.3908,-843.3963 1675.5447,-817.9241"/>
+<polygon fill="#191970" stroke="#191970" points="1678.9278,-818.8223 1678.2622,-808.2484 1672.1886,-816.9295 1678.9278,-818.8223"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
-<polygon fill="#ffffff" stroke="#000000" points="821.5,-727.5 821.5,-746.5 900.5,-746.5 900.5,-727.5 821.5,-727.5"/>
-<text text-anchor="middle" x="861" y="-734.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/expr.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1576.5,-727.5 1576.5,-746.5 1655.5,-746.5 1655.5,-727.5 1576.5,-727.5"/>
+<text text-anchor="middle" x="1616" y="-734.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node3 -->
 <g id="edge148" class="edge">
 <title>Node1&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M3009.3096,-913.4421C2823.9058,-903.3487 2133.2817,-864.3624 1566,-814 1319.8179,-792.1443 1026.2464,-757.221 910.9647,-743.1607"/>
-<polygon fill="#191970" stroke="#191970" points="911.0467,-739.6448 900.696,-741.906 910.1976,-746.5931 911.0467,-739.6448"/>
+<path fill="none" stroke="#191970" d="M1646.2795,-906.3762C1641.2225,-878.0883 1626.3327,-794.7987 1619.4997,-756.5767"/>
+<polygon fill="#191970" stroke="#191970" points="1622.9342,-755.8994 1617.729,-746.6714 1616.0435,-757.1313 1622.9342,-755.8994"/>
 </g>
 <!-- Node16 -->
 <g id="node15" class="node">
 <title>Node16</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="510,-62 510,-81 554,-81 554,-62 510,-62"/>
-<text text-anchor="middle" x="532" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="3168,-62 3168,-81 3212,-81 3212,-62 3168,-62"/>
+<text text-anchor="middle" x="3190" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string</text>
 </g>
 <!-- Node1&#45;&gt;Node16 -->
 <g id="edge184" class="edge">
 <title>Node1&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M3009.2804,-915.6643C2671.9107,-913.2271 652.0045,-897.56 381,-870 209.5948,-852.5688 0,-970.7893 0,-798.5 0,-798.5 0,-798.5 0,-189 0,-148.4482 26.6457,-140.9669 63,-123 67.9309,-120.5631 394.9897,-85.9358 499.954,-74.8721"/>
-<polygon fill="#191970" stroke="#191970" points="500.3824,-78.3465 509.9606,-73.8179 499.6489,-71.385 500.3824,-78.3465"/>
+<path fill="none" stroke="#191970" d="M1695.6691,-915.0318C1917.7485,-910.4448 2852.3785,-890.2774 3144,-870 3172.7655,-867.9998 3634.1393,-826.7547 3660,-814 3725.8511,-781.5217 3758,-754.4249 3758,-681 3758,-681 3758,-681 3758,-619.5 3758,-471.4493 3872,-454.5507 3872,-306.5 3872,-306.5 3872,-306.5 3872,-189 3872,-58.6274 3613.2467,-135.2441 3263,-87 3249.5634,-85.1492 3234.9085,-82.2201 3222.2788,-79.4041"/>
+<polygon fill="#191970" stroke="#191970" points="3222.7472,-75.9205 3212.2173,-77.0914 3221.1791,-82.7426 3222.7472,-75.9205"/>
 </g>
 <!-- Node1&#45;&gt;Node18 -->
 <g id="edge187" class="edge">
 <title>Node1&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M3104.843,-912.799C3221.5925,-904.8169 3514.6452,-883.6899 3557,-870 3635.5851,-844.5998 3877,-763.5881 3877,-681 3877,-681 3877,-681 3877,-189 3877,-115.3508 3796.2793,-141.5328 3725,-123 3632.381,-98.9188 3338.4918,-79.4353 3239.7327,-73.4232"/>
-<polygon fill="#191970" stroke="#191970" points="3239.9262,-69.9286 3229.7335,-72.8201 3239.5046,-76.9159 3239.9262,-69.9286"/>
+<path fill="none" stroke="#191970" d="M1600.4992,-914.9475C1409.0247,-910.581 693.3691,-893.0375 468,-870 275.2692,-850.2988 38,-992.2351 38,-798.5 38,-798.5 38,-798.5 38,-189 38,-111.8176 313.3056,-81.993 409.3875,-73.9344"/>
+<polygon fill="#191970" stroke="#191970" points="409.7304,-77.4181 419.4135,-73.1185 409.1626,-70.4412 409.7304,-77.4181"/>
 </g>
 <!-- Node1&#45;&gt;Node20 -->
 <g id="edge188" class="edge">
 <title>Node1&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M3104.5058,-913.3801C3218.2801,-905.8109 3497,-879.0482 3497,-798.5 3497,-798.5 3497,-798.5 3497,-737 3497,-605.7195 3433.2483,-575.5665 3332,-492 3081.0865,-284.9055 2940.2443,-379.3525 2620,-322 2566.6252,-312.4411 2554.8889,-302.9589 2502,-291 2428.1238,-274.2956 2340.6412,-258.6878 2293.7366,-250.6543"/>
-<polygon fill="#191970" stroke="#191970" points="2294.2598,-247.1931 2283.8141,-248.9643 2293.0845,-254.0937 2294.2598,-247.1931"/>
+<path fill="none" stroke="#191970" d="M1695.8709,-911.0532C1796.3422,-899.3413 2020,-865.7205 2020,-798.5 2020,-798.5 2020,-798.5 2020,-440.5 2020,-367.726 2074.9742,-365.9211 2133,-322 2158.4307,-302.7509 2185.638,-277.9039 2202.7249,-261.7184"/>
+<polygon fill="#191970" stroke="#191970" points="2205.4351,-263.9697 2210.2479,-254.531 2200.5995,-258.9083 2205.4351,-263.9697"/>
 </g>
 <!-- Node28 -->
 <g id="node25" class="node">
 <title>Node28</title>
 <g id="a_node25"><a xlink:href="string_8h.html" target="_top" xlink:title="Runtime String container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1551,-291.5 1551,-321.5 1677,-321.5 1677,-291.5 1551,-291.5"/>
-<text text-anchor="start" x="1559" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="1614" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/string.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1160,-291.5 1160,-321.5 1286,-321.5 1286,-291.5 1160,-291.5"/>
+<text text-anchor="start" x="1168" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="1223" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/string.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node28 -->
 <g id="edge183" class="edge">
 <title>Node1&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M3009.2555,-915.9456C2717.2041,-915.4808 1168.7625,-911.0865 696,-870 534.2463,-855.9424 456.6651,-921.515 335,-814 -20.176,-500.1321 506.1857,-455.6671 817,-358 884.9148,-336.6591 1356.7753,-316.4154 1540.771,-309.2424"/>
-<polygon fill="#191970" stroke="#191970" points="1541.0365,-312.7348 1550.8932,-308.8497 1540.765,-305.7401 1541.0365,-312.7348"/>
+<path fill="none" stroke="#191970" d="M1600.4667,-913.2383C1440.5512,-903.3216 932,-866.4441 932,-798.5 932,-798.5 932,-798.5 932,-619.5 932,-489.9056 962.7338,-442.4895 1061,-358 1085.8297,-336.6514 1119.5687,-324.1342 1149.8295,-316.8034"/>
+<polygon fill="#191970" stroke="#191970" points="1150.9621,-320.1355 1159.9407,-314.5108 1149.4142,-313.3087 1150.9621,-320.1355"/>
 </g>
 <!-- Node1&#45;&gt;Node33 -->
 <g id="edge185" class="edge">
 <title>Node1&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M3104.6301,-912.8423C3221.9711,-904.8701 3516.6718,-883.598 3533,-870 3721.1543,-713.3068 3639.8296,-352.5462 3616.4953,-264.5987"/>
-<polygon fill="#191970" stroke="#191970" points="3619.8456,-263.5805 3613.8452,-254.8487 3613.0907,-265.4166 3619.8456,-263.5805"/>
+<path fill="none" stroke="#191970" d="M1695.9719,-914.6817C1989.8596,-906.4615 3537.3209,-861.0549 3625,-814 3662.5172,-793.8656 3682,-779.5786 3682,-737 3682,-737 3682,-737 3682,-619.5 3682,-477.2244 3606.3239,-317.0093 3578.8311,-263.4982"/>
+<polygon fill="#191970" stroke="#191970" points="3581.8747,-261.7651 3574.149,-254.515 3575.6673,-265.0005 3581.8747,-261.7651"/>
 </g>
 <!-- Node34 -->
 <g id="node31" class="node">
 <title>Node34</title>
 <g id="a_node31"><a xlink:href="array_8h.html" target="_top" xlink:title="Runtime Array container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="2853,-358.5 2853,-388.5 2979,-388.5 2979,-358.5 2853,-358.5"/>
-<text text-anchor="start" x="2861" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="2916" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/array.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="596,-358.5 596,-388.5 722,-388.5 722,-358.5 596,-358.5"/>
+<text text-anchor="start" x="604" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="659" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/array.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node34 -->
 <g id="edge181" class="edge">
 <title>Node1&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M3104.5866,-910.7625C3203.2532,-898.5782 3421,-864.2413 3421,-798.5 3421,-798.5 3421,-798.5 3421,-681 3421,-481.3415 3129.4696,-407.5659 2989.4153,-383.6433"/>
-<polygon fill="#191970" stroke="#191970" points="2989.6315,-380.1312 2979.1922,-381.9398 2988.4809,-387.036 2989.6315,-380.1312"/>
+<path fill="none" stroke="#191970" d="M1600.1644,-915.8453C1398.7424,-914.9505 625.3359,-908.984 524,-870 477.6077,-852.1529 438,-848.2068 438,-798.5 438,-798.5 438,-798.5 438,-502 438,-432.1718 521.4742,-399.638 585.819,-384.9326"/>
+<polygon fill="#191970" stroke="#191970" points="586.94,-388.2706 595.966,-382.7226 585.4502,-381.431 586.94,-388.2706"/>
 </g>
 <!-- Node44 -->
 <g id="node37" class="node">
 <title>Node44</title>
 <g id="a_node37"><a xlink:href="map_8h.html" target="_top" xlink:title="Runtime Map container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="3191,-358.5 3191,-388.5 3317,-388.5 3317,-358.5 3191,-358.5"/>
-<text text-anchor="start" x="3199" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="3254" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/map.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="816,-358.5 816,-388.5 942,-388.5 942,-358.5 816,-358.5"/>
+<text text-anchor="start" x="824" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="879" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/map.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node44 -->
 <g id="edge182" class="edge">
 <title>Node1&#45;&gt;Node44</title>
-<path fill="none" stroke="#191970" d="M3104.8814,-912.5456C3218.3403,-904.1727 3495.2732,-882.5614 3511,-870 3537.1912,-849.0805 3535,-832.0202 3535,-798.5 3535,-798.5 3535,-798.5 3535,-558 3535,-458.4566 3410.2578,-409.6561 3326.9986,-388.1705"/>
-<polygon fill="#191970" stroke="#191970" points="3327.6124,-384.7163 3317.0619,-385.6842 3325.9132,-391.5069 3327.6124,-384.7163"/>
+<path fill="none" stroke="#191970" d="M1600.2563,-914.6359C1444.7465,-910.0018 953.7949,-893.8154 797,-870 668.741,-850.5189 514,-928.23 514,-798.5 514,-798.5 514,-798.5 514,-558 514,-428.5127 699.2279,-389.8827 805.7814,-378.3731"/>
+<polygon fill="#191970" stroke="#191970" points="806.2478,-381.8437 815.8385,-377.3418 805.5336,-374.8802 806.2478,-381.8437"/>
 </g>
 <!-- Node51 -->
 <g id="node41" class="node">
 <title>Node51</title>
 <g id="a_node41"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM. ">
-<polygon fill="#ffffff" stroke="#000000" points="471,-671.5 471,-690.5 551,-690.5 551,-671.5 471,-671.5"/>
-<text text-anchor="middle" x="511" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/type.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2343,-671.5 2343,-690.5 2423,-690.5 2423,-671.5 2343,-671.5"/>
+<text text-anchor="middle" x="2383" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/type.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node51 -->
 <g id="edge167" class="edge">
 <title>Node1&#45;&gt;Node51</title>
-<path fill="none" stroke="#191970" d="M3009.269,-915.4867C2692.9783,-912.0284 908.4137,-891.6105 796,-870 672.4338,-846.2455 623.6737,-841.8575 541,-747 529.2699,-733.5412 521.3285,-714.7347 516.5785,-700.6385"/>
-<polygon fill="#191970" stroke="#191970" points="519.8743,-699.4502 513.5584,-690.9438 513.1911,-701.5322 519.8743,-699.4502"/>
+<path fill="none" stroke="#191970" d="M1695.6927,-912.5684C1784.543,-905.8046 1972.0087,-889.6848 2034,-870 2167.4754,-827.616 2308.9896,-733.4038 2361.6487,-696.3723"/>
+<polygon fill="#191970" stroke="#191970" points="2363.7421,-699.1786 2369.8769,-690.5406 2359.6944,-693.4675 2363.7421,-699.1786"/>
 </g>
 <!-- Node53 -->
 <g id="node43" class="node">
 <title>Node53</title>
 <g id="a_node43"><a xlink:href="ir_2function_8h.html" target="_top" xlink:title="Function nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="2671,-850.5 2671,-869.5 2769,-869.5 2769,-850.5 2671,-850.5"/>
-<text text-anchor="middle" x="2720" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/function.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="806,-850.5 806,-869.5 904,-869.5 904,-850.5 806,-850.5"/>
+<text text-anchor="middle" x="855" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/function.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node53 -->
 <g id="edge149" class="edge">
 <title>Node1&#45;&gt;Node53</title>
-<path fill="none" stroke="#191970" d="M3009.4309,-908.0953C2949.0675,-898.0646 2844.9413,-880.7618 2779.4154,-869.8732"/>
-<polygon fill="#191970" stroke="#191970" points="2779.6814,-866.3695 2769.243,-868.1828 2778.5339,-873.2748 2779.6814,-866.3695"/>
+<path fill="none" stroke="#191970" d="M1600.4656,-914.5603C1483.8763,-910.6911 1174.5372,-898.3786 918,-870 916.7307,-869.8596 915.448,-869.7115 914.1555,-869.5568"/>
+<polygon fill="#191970" stroke="#191970" points="914.4871,-866.0706 904.1202,-868.2563 913.5874,-873.0126 914.4871,-866.0706"/>
 </g>
 <!-- Node56 -->
 <g id="node45" class="node">
 <title>Node56</title>
 <g id="a_node45"><a xlink:href="source__map_8h.html" target="_top" xlink:title="A map from source names to source code. ">
-<polygon fill="#ffffff" stroke="#000000" points="2561.5,-671.5 2561.5,-690.5 2702.5,-690.5 2702.5,-671.5 2561.5,-671.5"/>
-<text text-anchor="middle" x="2632" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/parser/source_map.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1430.5,-671.5 1430.5,-690.5 1571.5,-690.5 1571.5,-671.5 1430.5,-671.5"/>
+<text text-anchor="middle" x="1501" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/parser/source_map.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node56 -->
 <g id="edge168" class="edge">
 <title>Node1&#45;&gt;Node56</title>
-<path fill="none" stroke="#191970" d="M3039.8131,-906.4967C2974.0035,-870.1078 2737.757,-739.4774 2658.2924,-695.5381"/>
-<polygon fill="#191970" stroke="#191970" points="2659.8457,-692.3976 2649.4008,-690.6216 2656.4584,-698.5235 2659.8457,-692.3976"/>
+<path fill="none" stroke="#191970" d="M1642.0554,-906.4967C1619.8944,-871.0693 1541.8565,-746.3149 1512.3843,-699.1994"/>
+<polygon fill="#191970" stroke="#191970" points="1515.2892,-697.2434 1507.0186,-690.6216 1509.3546,-700.9557 1515.2892,-697.2434"/>
 </g>
 <!-- Node1&#45;&gt;Node59 -->
 <g id="edge186" class="edge">
 <title>Node1&#45;&gt;Node59</title>
-<path fill="none" stroke="#191970" d="M3104.655,-913.6392C3202.4767,-908.4633 3432.9024,-894.5753 3625,-870 3626.2613,-869.8386 3627.5372,-869.6688 3628.8232,-869.4917"/>
-<polygon fill="#191970" stroke="#191970" points="3629.4254,-872.9408 3638.8042,-868.0124 3628.3991,-866.0164 3629.4254,-872.9408"/>
+<path fill="none" stroke="#191970" d="M1695.6335,-915.667C1936.8036,-913.8367 3024.8447,-903.816 3361,-870 3362.2652,-869.8727 3363.5446,-869.7336 3364.8337,-869.5841"/>
+<polygon fill="#191970" stroke="#191970" points="3365.3787,-873.0426 3374.8324,-868.2594 3364.4593,-866.1032 3365.3787,-873.0426"/>
 </g>
 <!-- Node2&#45;&gt;Node3 -->
 <g id="edge3" class="edge">
 <title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M719.25,-788.8906C747.7293,-778.4652 793.3743,-761.7559 825.1457,-750.1252"/>
-<polygon fill="#191970" stroke="#191970" points="826.7469,-753.2663 834.9343,-746.5419 824.3406,-746.6929 826.7469,-753.2663"/>
+<path fill="none" stroke="#191970" d="M1670.8438,-788.8906C1660.9801,-779.5581 1645.7945,-765.1902 1633.9013,-753.9374"/>
+<polygon fill="#191970" stroke="#191970" points="1635.9689,-751.0753 1626.2994,-746.7449 1631.1579,-756.1601 1635.9689,-751.0753"/>
 </g>
 <!-- Node2&#45;&gt;Node5 -->
 <g id="edge139" class="edge">
 <title>Node2&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M704.7275,-788.7742C749.1859,-751.9045 907.6383,-620.4983 963.4083,-574.2476"/>
-<polygon fill="#191970" stroke="#191970" points="965.9811,-576.661 971.4443,-567.5833 961.5126,-571.2728 965.9811,-576.661"/>
+<path fill="none" stroke="#191970" d="M1708.9524,-788.9237C1818.6936,-751.3272 2220.1515,-613.7907 2345.4102,-570.878"/>
+<polygon fill="#191970" stroke="#191970" points="2346.6418,-574.1558 2354.9677,-567.6037 2344.3731,-567.5336 2346.6418,-574.1558"/>
 </g>
 <!-- Node10 -->
 <g id="node11" class="node">
 <title>Node10</title>
 <g id="a_node11"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1283.5,-123.5 1283.5,-142.5 1402.5,-142.5 1402.5,-123.5 1283.5,-123.5"/>
-<text text-anchor="middle" x="1343" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/object.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="1899.5,-123.5 1899.5,-142.5 2018.5,-142.5 2018.5,-123.5 1899.5,-123.5"/>
+<text text-anchor="middle" x="1959" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/object.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node10 -->
 <g id="edge146" class="edge">
 <title>Node2&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M680.8452,-788.9963C669.2924,-779.4337 652.0819,-763.7396 641,-747 540.2184,-594.7653 418.6327,-516.6383 509,-358 537.8995,-307.2673 569.5955,-316.744 622,-291 743.0397,-231.5385 773.0483,-211.2169 904,-179 972.1447,-162.235 1167.4837,-145.9136 1273.1391,-137.9821"/>
-<polygon fill="#191970" stroke="#191970" points="1273.6756,-141.4519 1283.3876,-137.218 1273.155,-134.4713 1273.6756,-141.4519"/>
+<path fill="none" stroke="#191970" d="M1681.4171,-788.7532C1682.2415,-768.6243 1684,-720.9957 1684,-681 1684,-681 1684,-681 1684,-619.5 1684,-609.6345 1811.4834,-297.3898 1819,-291 1872.8839,-245.1939 1924.8554,-305.8575 1974,-255 1997.7165,-230.4569 1993.6826,-212.0069 1985,-179 1982.3888,-169.0734 1977.0933,-159.0366 1971.9588,-150.8822"/>
+<polygon fill="#191970" stroke="#191970" points="1974.864,-148.9303 1966.3819,-142.5817 1969.0537,-152.8342 1974.864,-148.9303"/>
 </g>
 <!-- Node2&#45;&gt;Node16 -->
 <g id="edge147" class="edge">
 <title>Node2&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M655.6938,-792.6332C572.3269,-778.0685 367.3153,-734.0443 228,-635 131.8859,-566.669 38,-345.2047 38,-306.5 38,-306.5 38,-306.5 38,-189 38,-118.1937 115.0864,-143.0318 183,-123 242.2101,-105.5354 424.5751,-83.642 499.4252,-75.124"/>
-<polygon fill="#191970" stroke="#191970" points="500.1178,-78.5681 509.6611,-73.9664 499.3311,-71.6124 500.1178,-78.5681"/>
+<path fill="none" stroke="#191970" d="M1718.3336,-789.9005C1730.5951,-787.3406 1744.328,-784.7539 1757,-783 2305.7246,-707.0522 2449.7988,-755.385 3000,-691 3156.0305,-672.7412 3204.9544,-697.688 3349,-635 3551.0638,-547.0626 3759.311,-421.55 3642,-235 3580.8354,-137.735 3517.3391,-161.2651 3409,-123 3391.4481,-116.8007 3278.595,-91.276 3222.109,-78.6455"/>
+<polygon fill="#191970" stroke="#191970" points="3222.776,-75.2083 3212.2535,-76.4448 3221.2504,-82.0401 3222.776,-75.2083"/>
 </g>
 <!-- Node2&#45;&gt;Node28 -->
 <g id="edge145" class="edge">
 <title>Node2&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M684.7642,-788.6734C660.4937,-758.4696 593.5378,-665.3332 636,-604 680.9036,-539.1403 1225.5912,-377.6165 1302,-358 1382.6336,-337.2989 1477.2115,-323.0524 1540.9232,-314.8772"/>
-<polygon fill="#191970" stroke="#191970" points="1541.3954,-318.3455 1550.8766,-313.6172 1540.5162,-311.4009 1541.3954,-318.3455"/>
+<path fill="none" stroke="#191970" d="M1643.968,-795.2918C1589.644,-789.7827 1485.7232,-776.1736 1402,-747 1232.8381,-688.0549 1046,-737.1376 1046,-558 1046,-558 1046,-558 1046,-440.5 1046,-381.2992 1109.7205,-344.8992 1160.6966,-325.2515"/>
+<polygon fill="#191970" stroke="#191970" points="1162.2163,-328.4208 1170.3734,-321.6598 1159.7804,-321.8583 1162.2163,-328.4208"/>
 </g>
 <!-- Node2&#45;&gt;Node34 -->
 <g id="edge144" class="edge">
 <title>Node2&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M730.1171,-798.2712C1024.4592,-796.2789 2972.1517,-779.7587 3055,-691 3135.6687,-604.5763 3122.5304,-522.0368 3055,-425 3046.3448,-412.563 3016.2418,-400.671 2986.2535,-391.4541"/>
-<polygon fill="#191970" stroke="#191970" points="2987.1317,-388.0638 2976.5485,-388.5583 2985.1302,-394.7715 2987.1317,-388.0638"/>
+<path fill="none" stroke="#191970" d="M1643.9485,-797.3349C1509.5478,-792.8892 1052.4884,-775.7783 994,-747 829.7799,-666.1982 709.4564,-466.4224 671.6005,-397.4065"/>
+<polygon fill="#191970" stroke="#191970" points="674.6503,-395.6882 666.8103,-388.5618 668.4951,-399.0219 674.6503,-395.6882"/>
 </g>
 <!-- Node2&#45;&gt;Node51 -->
 <g id="edge138" class="edge">
 <title>Node2&#45;&gt;Node51</title>
-<path fill="none" stroke="#191970" d="M655.7634,-788.9412C628.793,-780.7856 592.4079,-767.1433 565,-747 547.3853,-734.0542 532.1257,-714.0854 522.3644,-699.502"/>
-<polygon fill="#191970" stroke="#191970" points="525.1322,-697.3355 516.7744,-690.8242 519.2475,-701.1263 525.1322,-697.3355"/>
+<path fill="none" stroke="#191970" d="M1718.0523,-790.6367C1730.4182,-788.0942 1744.2846,-785.3316 1757,-783 1970.5658,-743.8387 2226.5296,-704.4904 2332.8721,-688.4769"/>
+<polygon fill="#191970" stroke="#191970" points="2333.6223,-691.9035 2342.9908,-686.9556 2332.5816,-684.9813 2333.6223,-691.9035"/>
 </g>
 <!-- Node52 -->
 <g id="node42" class="node">
 <title>Node52</title>
 <g id="a_node42"><a xlink:href="runtime_2container_2adt_8h.html" target="_top" xlink:title="Runtime ADT container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="2629,-291.5 2629,-321.5 2755,-321.5 2755,-291.5 2629,-291.5"/>
-<text text-anchor="start" x="2637" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="2692" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/adt.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1304,-291.5 1304,-321.5 1430,-321.5 1430,-291.5 1304,-291.5"/>
+<text text-anchor="start" x="1312" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="1367" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node52 -->
 <g id="edge140" class="edge">
 <title>Node2&#45;&gt;Node52</title>
-<path fill="none" stroke="#191970" d="M730.1014,-797.3643C1024.2489,-788.2911 2969.324,-726.9874 3017,-691 3043.754,-670.8052 3041,-653.0202 3041,-619.5 3041,-619.5 3041,-619.5 3041,-502 3041,-497.5615 2818.2668,-375.4457 2728.6731,-326.5046"/>
-<polygon fill="#191970" stroke="#191970" points="2730.1313,-323.3131 2719.6772,-321.5921 2726.7763,-329.4567 2730.1313,-323.3131"/>
+<path fill="none" stroke="#191970" d="M1643.7412,-795.2834C1577.6284,-787.8138 1438.4486,-763.9435 1350,-691 1231.9003,-593.6032 1181.0234,-487.9095 1262,-358 1270.8054,-343.8737 1284.7398,-333.5134 1299.615,-325.9559"/>
+<polygon fill="#191970" stroke="#191970" points="1301.3732,-328.9981 1308.961,-321.6038 1298.4182,-322.6523 1301.3732,-328.9981"/>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
 <title>Node4</title>
 <g id="a_node5"><a xlink:href="ir_2span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
-<polygon fill="#ffffff" stroke="#000000" points="645.5,-610 645.5,-629 726.5,-629 726.5,-610 645.5,-610"/>
-<text text-anchor="middle" x="686" y="-617" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/span.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1872.5,-610 1872.5,-629 1953.5,-629 1953.5,-610 1872.5,-610"/>
+<text text-anchor="middle" x="1913" y="-617" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/span.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M830.5868,-727.4154C808.4624,-719.6105 778.4089,-707.2328 755,-691 733.1116,-675.8216 712.5257,-652.9419 699.6338,-637.1728"/>
-<polygon fill="#191970" stroke="#191970" points="702.2761,-634.8725 693.3039,-629.2378 696.8039,-639.2378 702.2761,-634.8725"/>
+<path fill="none" stroke="#191970" d="M1633.9606,-727.4607C1659.9704,-713.8663 1709.8476,-688.6182 1754,-671 1792.1791,-655.7653 1836.7946,-641.6207 1869.0309,-632.0251"/>
+<polygon fill="#191970" stroke="#191970" points="1870.4367,-635.2596 1879.0383,-629.0739 1868.4567,-628.5455 1870.4367,-635.2596"/>
 </g>
 <!-- Node3&#45;&gt;Node5 -->
 <g id="edge131" class="edge">
 <title>Node3&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M867.5592,-727.3762C887.0875,-698.7241 945.0745,-613.6448 970.6481,-576.1229"/>
-<polygon fill="#191970" stroke="#191970" points="973.6685,-577.9059 976.4083,-567.6714 967.8842,-573.9635 973.6685,-577.9059"/>
+<path fill="none" stroke="#191970" d="M1646.0303,-727.3965C1687.3469,-714.2621 1764.1015,-690.1425 1830,-671 1888.3955,-654.037 1904.161,-653.773 1962,-635 1999.0587,-622.9717 2006.2317,-613.5697 2044,-604 2140.1089,-579.6481 2255.0203,-567.4955 2323.3475,-561.9869"/>
+<polygon fill="#191970" stroke="#191970" points="2323.7977,-565.4624 2333.4931,-561.1903 2323.2498,-558.4839 2323.7977,-565.4624"/>
 </g>
 <!-- Node3&#45;&gt;Node10 -->
 <g id="edge133" class="edge">
 <title>Node3&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M852.0784,-727.2264C825.7322,-697.6152 748.4659,-605.1966 722,-512 693.5178,-411.7031 694.0012,-419.1624 855,-291 980.6244,-190.9973 1171.3727,-153.4837 1273.1886,-140.0427"/>
-<polygon fill="#191970" stroke="#191970" points="1273.8829,-143.4825 1283.3578,-138.7415 1272.9944,-136.5391 1273.8829,-143.4825"/>
+<path fill="none" stroke="#191970" d="M1614.8876,-727.2663C1612.6895,-707.1616 1608,-659.5752 1608,-619.5 1608,-619.5 1608,-619.5 1608,-558 1608,-438.4304 1551.7435,-370.5623 1641,-291 1682.2476,-254.2323 1709.5885,-277.6255 1760,-255 1828.5559,-224.231 1902.2045,-174.0275 1937.5995,-148.6869"/>
+<polygon fill="#191970" stroke="#191970" points="1940.0816,-151.2118 1946.141,-142.5208 1935.9844,-145.5362 1940.0816,-151.2118"/>
 </g>
 <!-- Node3&#45;&gt;Node16 -->
 <g id="edge136" class="edge">
 <title>Node3&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M821.3473,-734.1745C734.2694,-727.687 528.7821,-710.7541 462,-691 292.1376,-640.7547 152,-617.6379 152,-440.5 152,-440.5 152,-440.5 152,-306.5 152,-213.6204 176.7795,-177.4839 252,-123 291.2454,-94.5737 434.6421,-79.4796 499.6154,-73.9713"/>
-<polygon fill="#191970" stroke="#191970" points="500.0272,-77.4493 509.706,-73.1398 499.4523,-70.4729 500.0272,-77.4493"/>
+<path fill="none" stroke="#191970" d="M1655.6324,-736.2581C1895.896,-731.5436 3152.2686,-703.7322 3308,-635 3411.6354,-589.2604 3693.714,-324.288 3624,-235 3583.4014,-183.0023 3539.5441,-227.399 3480,-199 3429.294,-174.8162 3429.4486,-147.7161 3379,-123 3351.3167,-109.4372 3268.06,-89.2569 3221.8226,-78.6332"/>
+<polygon fill="#191970" stroke="#191970" points="3222.5351,-75.2059 3212.0071,-76.3938 3220.978,-82.0305 3222.5351,-75.2059"/>
 </g>
 <!-- Node17 -->
 <g id="node16" class="node">
 <title>Node17</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2273.5,-62 2273.5,-81 2342.5,-81 2342.5,-62 2273.5,-62"/>
-<text text-anchor="middle" x="2308" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">type_traits</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="884.5,-62 884.5,-81 953.5,-81 953.5,-62 884.5,-62"/>
+<text text-anchor="middle" x="919" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">type_traits</text>
 </g>
 <!-- Node3&#45;&gt;Node17 -->
 <g id="edge137" class="edge">
 <title>Node3&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M900.9221,-736.8677C1165.7614,-735.8866 2664.7017,-728.6918 2864,-691 3106.0569,-645.2216 3154.603,-582.4852 3366,-456 3410.9618,-429.098 3438.658,-435.3978 3463,-389 3557.296,-209.2643 3838.32,-534.6306 3091,-179 3038.2191,-153.8829 3028.5085,-137.9492 2972,-123 2854.58,-91.9367 2482.6752,-77.1734 2353.0701,-72.8776"/>
-<polygon fill="#191970" stroke="#191970" points="2352.8339,-69.3681 2342.725,-72.54 2352.6055,-76.3644 2352.8339,-69.3681"/>
+<path fill="none" stroke="#191970" d="M1576.4338,-734.5322C1505.3224,-729.6159 1351.4399,-716.7812 1224,-691 1136.4578,-673.2901 1112.0826,-672.4553 1031,-635 1008.2832,-624.5062 1006.4091,-615.1357 984,-604 940.9485,-582.6066 926.8856,-585.2162 882,-568 821.3509,-544.7375 804.9116,-541.4229 747,-512 653.2894,-464.3889 596.4897,-480.6368 545,-389 495.2582,-300.4739 558.4217,-245.6849 635,-179 705.2816,-117.7982 813.9181,-89.8606 874.4281,-78.4301"/>
+<polygon fill="#191970" stroke="#191970" points="875.2187,-81.8438 884.4299,-76.6088 873.9646,-74.957 875.2187,-81.8438"/>
 </g>
 <!-- Node26 -->
 <g id="node23" class="node">
 <title>Node26</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2956,-179.5 2956,-198.5 3020,-198.5 3020,-179.5 2956,-179.5"/>
-<text text-anchor="middle" x="2988" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">algorithm</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="728,-179.5 728,-198.5 792,-198.5 792,-179.5 728,-179.5"/>
+<text text-anchor="middle" x="760" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">algorithm</text>
 </g>
 <!-- Node3&#45;&gt;Node26 -->
 <g id="edge134" class="edge">
 <title>Node3&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M900.632,-736.527C1152.5526,-733.4526 2525.9925,-715.6578 2711,-691 2843.4406,-673.3483 3003,-753.1117 3003,-619.5 3003,-619.5 3003,-619.5 3003,-502 3003,-408.2212 3007.2243,-384.6332 3002,-291 3000.6055,-266.0075 2999.4796,-259.7883 2996,-235 2994.7915,-226.3907 2993.1914,-216.9214 2991.7401,-208.8237"/>
-<polygon fill="#191970" stroke="#191970" points="2995.1552,-208.0429 2989.9038,-198.8411 2988.2707,-209.3093 2995.1552,-208.0429"/>
+<path fill="none" stroke="#191970" d="M1576.4716,-734.7084C1514.1802,-730.3756 1389.7901,-718.7909 1288,-691 1203.6183,-667.962 609.5588,-461.7535 561,-389 529.1437,-341.2712 554.4964,-289.3808 615,-235 643.412,-209.4632 686.0096,-198.0986 717.6912,-193.0436"/>
+<polygon fill="#191970" stroke="#191970" points="718.5827,-196.4514 727.9807,-191.5599 717.5835,-189.5231 718.5827,-196.4514"/>
 </g>
 <!-- Node3&#45;&gt;Node28 -->
 <g id="edge132" class="edge">
 <title>Node3&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M861.5717,-727.4361C863.8614,-697.2637 874.8086,-602.8421 924,-548 945.8772,-523.6098 1161.2934,-436.428 1192,-425 1292.1845,-387.7144 1320.0561,-386.8049 1423,-358 1464.1147,-346.4957 1510.3375,-334.0204 1547.0126,-324.2299"/>
-<polygon fill="#191970" stroke="#191970" points="1548.3307,-327.5008 1557.0915,-321.5427 1546.5273,-320.7371 1548.3307,-327.5008"/>
+<path fill="none" stroke="#191970" d="M1576.3307,-735.0244C1465.3887,-727.1645 1160,-688.5831 1160,-502 1160,-502 1160,-502 1160,-440.5 1160,-398.6482 1185.4797,-355.8333 1204.0312,-330.2067"/>
+<polygon fill="#191970" stroke="#191970" points="1207.0654,-331.9935 1210.251,-321.8889 1201.4594,-327.8015 1207.0654,-331.9935"/>
 </g>
 <!-- Node47 -->
 <g id="node38" class="node">
 <title>Node47</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2486,-364 2486,-383 2530,-383 2530,-364 2486,-364"/>
-<text text-anchor="middle" x="2508" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">limits</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1304,-364 1304,-383 1348,-383 1348,-364 1304,-364"/>
+<text text-anchor="middle" x="1326" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">limits</text>
 </g>
 <!-- Node3&#45;&gt;Node47 -->
 <g id="edge135" class="edge">
 <title>Node3&#45;&gt;Node47</title>
-<path fill="none" stroke="#191970" d="M900.6951,-736.5325C1092.8176,-733.8734 1926.8462,-717.6835 2171,-635 2309.4806,-588.1031 2340.4959,-556.1653 2447,-456 2467.5829,-436.6421 2486.0787,-409.5986 2497.1711,-391.8262"/>
-<polygon fill="#191970" stroke="#191970" points="2500.3256,-393.3754 2502.5382,-383.0141 2494.3472,-389.7341 2500.3256,-393.3754"/>
+<path fill="none" stroke="#191970" d="M1576.2965,-734.8962C1514.255,-730.7636 1398.4591,-719.378 1370,-691 1287.4212,-608.6562 1310.5561,-448.3658 1321.6665,-392.923"/>
+<polygon fill="#191970" stroke="#191970" points="1325.1167,-393.5235 1323.7531,-383.0168 1318.267,-392.0807 1325.1167,-393.5235"/>
 </g>
 <!-- Node3&#45;&gt;Node51 -->
 <g id="edge124" class="edge">
 <title>Node3&#45;&gt;Node51</title>
-<path fill="none" stroke="#191970" d="M821.1913,-730.6306C757.0669,-720.3707 631.0224,-700.2036 560.9577,-688.9932"/>
-<polygon fill="#191970" stroke="#191970" points="561.4679,-685.5304 551.0405,-687.4065 560.3619,-692.4425 561.4679,-685.5304"/>
+<path fill="none" stroke="#191970" d="M1655.6221,-734.1071C1784.1581,-724.7225 2189.4764,-695.1295 2332.459,-684.6901"/>
+<polygon fill="#191970" stroke="#191970" points="2332.9735,-688.1619 2342.6921,-683.943 2332.4637,-681.1805 2332.9735,-688.1619"/>
 </g>
 <!-- Node4&#45;&gt;Node5 -->
 <g id="edge5" class="edge">
 <title>Node4&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M726.6738,-611.0776C778.6364,-600.3177 868.8149,-581.6444 927.177,-569.5593"/>
-<polygon fill="#191970" stroke="#191970" points="927.8905,-572.9859 936.973,-567.5308 926.471,-566.1313 927.8905,-572.9859"/>
+<path fill="none" stroke="#191970" d="M1943.332,-609.9901C1951.2953,-607.7589 1959.9181,-605.5756 1968,-604 2093.2058,-579.5901 2242.373,-567.0031 2323.398,-561.519"/>
+<polygon fill="#191970" stroke="#191970" points="2323.6671,-565.0089 2333.4132,-560.8539 2323.2032,-558.0243 2323.6671,-565.0089"/>
 </g>
 <!-- Node4&#45;&gt;Node10 -->
 <g id="edge122" class="edge">
 <title>Node4&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M676.3335,-609.7502C635.7949,-568.3369 483.1793,-406.9011 518,-358 546.3715,-318.1559 576.2148,-339.2108 622,-322 780.0628,-262.5835 810.597,-221.5867 974,-179 1076.0275,-152.4092 1198.0571,-141.0245 1273.0428,-136.2663"/>
-<polygon fill="#191970" stroke="#191970" points="1273.5371,-139.7427 1283.3045,-135.638 1273.1092,-132.7558 1273.5371,-139.7427"/>
+<path fill="none" stroke="#191970" d="M1882.904,-609.9058C1798.2185,-581.0897 1567.5533,-489.125 1623,-358 1639.6478,-318.6298 1654.1037,-310.7745 1692,-291 1766.6492,-252.0477 1807.9376,-301.7015 1878,-255 1916.0795,-229.6173 1940.6554,-179.6123 1951.8909,-152.1601"/>
+<polygon fill="#191970" stroke="#191970" points="1955.1527,-153.4291 1955.5441,-142.8415 1948.6356,-150.8741 1955.1527,-153.4291"/>
 </g>
 <!-- Node4&#45;&gt;Node16 -->
 <g id="edge123" class="edge">
 <title>Node4&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M645.415,-615.7061C546.2429,-603.8485 296.4545,-557.4894 252,-389 239.0374,-339.8697 277.5106,-170.2859 328,-123 352.7039,-99.8635 448.5438,-83.2364 499.5834,-75.8187"/>
-<polygon fill="#191970" stroke="#191970" points="500.3435,-79.246 509.753,-74.3766 499.3606,-72.3153 500.3435,-79.246"/>
+<path fill="none" stroke="#191970" d="M1953.569,-616.8879C2042.2925,-610.8809 2260.1133,-594.5294 2441,-568 2568.7224,-549.2678 2600.6431,-542.8148 2726,-512 2811.077,-491.0867 2833.6533,-488.5296 2915,-456 2975.7203,-431.7186 2995.5415,-430.5991 3046,-389 3104.3797,-340.8705 3111.9529,-319.8071 3151,-255 3182.7722,-202.2672 3194.7909,-184.5387 3193,-123 3192.6966,-112.5761 3192.0486,-100.9805 3191.4322,-91.4355"/>
+<polygon fill="#191970" stroke="#191970" points="3194.9179,-91.1042 3190.7457,-81.3654 3187.9341,-91.5804 3194.9179,-91.1042"/>
 </g>
 <!-- Node6 -->
 <g id="node7" class="node">
 <title>Node6</title>
 <g id="a_node7"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="1571.5,-492.5 1571.5,-511.5 1692.5,-511.5 1692.5,-492.5 1571.5,-492.5"/>
-<text text-anchor="middle" x="1632" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/reflection.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2206.5,-492.5 2206.5,-511.5 2327.5,-511.5 2327.5,-492.5 2206.5,-492.5"/>
+<text text-anchor="middle" x="2267" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/reflection.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node6 -->
 <g id="edge6" class="edge">
 <title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M1032.5804,-553.7219C1146.7972,-543.8665 1428.7771,-519.5354 1561.1842,-508.1105"/>
-<polygon fill="#191970" stroke="#191970" points="1561.5605,-511.5911 1571.2225,-507.2443 1560.9586,-504.617 1561.5605,-511.5911"/>
+<path fill="none" stroke="#191970" d="M2363.0589,-548.3733C2344.5214,-539.4241 2316.6972,-525.9917 2295.7587,-515.8835"/>
+<polygon fill="#191970" stroke="#191970" points="2297.2081,-512.6967 2286.6809,-511.5011 2294.1648,-519.0006 2297.2081,-512.6967"/>
 </g>
 <!-- Node7 -->
 <g id="node8" class="node">
 <title>Node7</title>
 <g id="a_node8"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
-<polygon fill="#ffffff" stroke="#000000" points="1201.5,-425.5 1201.5,-455.5 1314.5,-455.5 1314.5,-425.5 1201.5,-425.5"/>
-<text text-anchor="start" x="1209.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
-<text text-anchor="middle" x="1258" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2051.5,-425.5 2051.5,-455.5 2164.5,-455.5 2164.5,-425.5 2051.5,-425.5"/>
+<text text-anchor="start" x="2059.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
+<text text-anchor="middle" x="2108" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node7 -->
 <g id="edge113" class="edge">
 <title>Node5&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M1005.9867,-548.357C1028.0606,-539.0833 1062.3363,-524.6475 1092,-512 1133.3778,-494.358 1180.4659,-474.0545 1213.895,-459.6018"/>
-<polygon fill="#191970" stroke="#191970" points="1215.5877,-462.6831 1223.3767,-455.5011 1212.8089,-456.2583 1215.5877,-462.6831"/>
+<path fill="none" stroke="#191970" d="M2333.1986,-551.6882C2294.5306,-545.3946 2240.377,-533.4706 2197,-512 2171.8125,-499.5328 2147.2223,-478.9405 2130.2953,-463.0489"/>
+<polygon fill="#191970" stroke="#191970" points="2132.2667,-460.0891 2122.6322,-455.6814 2127.4152,-465.1352 2132.2667,-460.0891"/>
 </g>
 <!-- Node5&#45;&gt;Node10 -->
 <g id="edge117" class="edge">
 <title>Node5&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M982.3513,-548.3144C980.36,-510.9031 977.8766,-373.8039 1041,-291 1104.3408,-207.9109 1223.9701,-164.2759 1292.1107,-145.1967"/>
-<polygon fill="#191970" stroke="#191970" points="1293.0523,-148.5678 1301.7779,-142.5582 1291.2091,-141.8148 1293.0523,-148.5678"/>
+<path fill="none" stroke="#191970" d="M2421.1711,-548.4556C2443.3429,-541.3576 2470.6328,-529.7731 2490,-512 2510.8032,-492.9091 2513.1266,-483.386 2520,-456 2530.6029,-413.7547 2534.1141,-399.2053 2520,-358 2507.7854,-322.3399 2494.2656,-318.0363 2468,-291 2440.7188,-262.9184 2434.0189,-254.3792 2400,-235 2280.9963,-167.2085 2119.6318,-144.4461 2028.7403,-136.8217"/>
+<polygon fill="#191970" stroke="#191970" points="2028.7995,-133.3154 2018.552,-136.006 2028.2408,-140.293 2028.7995,-133.3154"/>
 </g>
 <!-- Node11 -->
 <g id="node12" class="node">
 <title>Node11</title>
 <g id="a_node12"><a xlink:href="c__runtime__api_8h.html" target="_top" xlink:title="tvm/runtime/c_runtime\l_api.h">
-<polygon fill="#ffffff" stroke="#ff0000" points="244.5,-56.5 244.5,-86.5 373.5,-86.5 373.5,-56.5 244.5,-56.5"/>
-<text text-anchor="start" x="252.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/c_runtime</text>
-<text text-anchor="middle" x="309" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_api.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="3272.5,-56.5 3272.5,-86.5 3401.5,-86.5 3401.5,-56.5 3272.5,-56.5"/>
+<text text-anchor="start" x="3280.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/c_runtime</text>
+<text text-anchor="middle" x="3337" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node11 -->
 <g id="edge115" class="edge">
 <title>Node5&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M933.3588,-555.0588C855.4641,-548.3442 702.4433,-526.5 596,-456 458.1458,-364.6957 415.2501,-338.829 327,-199 312.813,-176.5212 310.7428,-169.1548 306,-143 304.414,-134.2537 305.7414,-131.8851 306,-123 306.2464,-114.5344 306.7201,-105.2961 307.2195,-97.0109"/>
-<polygon fill="#191970" stroke="#191970" points="310.7262,-97.0171 307.874,-86.8134 303.7406,-96.5687 310.7262,-97.0171"/>
+<path fill="none" stroke="#191970" d="M2432.5888,-554.7914C2604.6614,-542.7956 3173.2746,-495.692 3316,-389 3421.7077,-309.98 3519.0191,-234.241 3448,-123 3438.8261,-108.6305 3424.4961,-98.2092 3409.1442,-90.6728"/>
+<polygon fill="#191970" stroke="#191970" points="3410.5734,-87.478 3400.0183,-86.5609 3407.6977,-93.86 3410.5734,-87.478"/>
 </g>
 <!-- Node5&#45;&gt;Node16 -->
 <g id="edge118" class="edge">
 <title>Node5&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M933.421,-550.4471C809.103,-528.4146 494,-452.1392 494,-245 494,-245 494,-245 494,-189 494,-152.7454 510.5805,-113.1181 521.837,-90.3929"/>
-<polygon fill="#191970" stroke="#191970" points="525.0965,-91.7076 526.5555,-81.2137 518.8708,-88.5073 525.0965,-91.7076"/>
+<path fill="none" stroke="#191970" d="M2432.8808,-553.1919C2543.2465,-540.772 2813.7119,-500.4102 3008,-389 3101.0942,-335.6172 3113.6007,-297.1465 3157,-199 3167.629,-174.9627 3169.2375,-168.3975 3176,-143 3180.5712,-125.8324 3184.3406,-105.9803 3186.812,-91.557"/>
+<polygon fill="#191970" stroke="#191970" points="3190.3283,-91.7458 3188.5064,-81.3088 3183.422,-90.6039 3190.3283,-91.7458"/>
 </g>
 <!-- Node5&#45;&gt;Node17 -->
 <g id="edge119" class="edge">
 <title>Node5&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M1032.7011,-557.6266C1183.0475,-556.1004 1631.305,-548.5251 1772,-512 1827.4121,-497.6148 1840.6064,-488.1136 1888,-456 1978.0459,-394.9854 2223.6218,-154.7615 2290.8099,-88.5041"/>
-<polygon fill="#191970" stroke="#191970" points="2293.4394,-90.8264 2298.0967,-81.3101 2288.5215,-85.845 2293.4394,-90.8264"/>
+<path fill="none" stroke="#191970" d="M2333.2985,-552.7619C2217.9737,-540.1766 1923.5285,-505.5632 1681,-456 1567.0349,-432.7101 1537.8438,-427.2729 1428,-389 1395.4849,-377.6708 1390.3789,-366.4516 1357,-358 1264.9023,-334.6808 996.943,-390.3908 931,-322 869.5881,-258.3086 898.1108,-137.893 912.4859,-90.9385"/>
+<polygon fill="#191970" stroke="#191970" points="915.9104,-91.7199 915.6168,-81.1291 909.2418,-89.5914 915.9104,-91.7199"/>
 </g>
 <!-- Node5&#45;&gt;Node18 -->
 <g id="edge120" class="edge">
 <title>Node5&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M1032.7635,-557.5686C1271.3739,-555.3517 2299.885,-544.0764 2619,-512 2952.6626,-478.4613 3345,-641.8439 3345,-306.5 3345,-306.5 3345,-306.5 3345,-189 3345,-133.7679 3280.1233,-99.0368 3239.3358,-82.6592"/>
-<polygon fill="#191970" stroke="#191970" points="3240.3776,-79.3099 3229.7879,-78.9813 3237.8613,-85.842 3240.3776,-79.3099"/>
+<path fill="none" stroke="#191970" d="M2333.3393,-557.5099C2180.8187,-555.6517 1705.7701,-547.2317 1314,-512 1030.7248,-486.5252 962.1964,-460.483 680,-425 540.1896,-407.4204 491.1356,-451.8158 365,-389 325.4629,-369.3104 228,-289.1686 228,-245 228,-245 228,-245 228,-189 228,-107.4327 348.934,-82.0994 408.9803,-74.5482"/>
+<polygon fill="#191970" stroke="#191970" points="409.5693,-78.0034 419.0983,-73.372 408.761,-71.0502 409.5693,-78.0034"/>
 </g>
 <!-- Node5&#45;&gt;Node20 -->
 <g id="edge121" class="edge">
 <title>Node5&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M1032.5041,-557.0624C1176.0015,-554.0059 1590.3149,-542.6955 1722,-512 1784.8619,-497.3471 1803.075,-492.9496 1856,-456 1938.0017,-398.7505 1921.339,-339.1385 2009,-291 2045.9991,-270.6822 2166.9918,-255.1243 2226.4328,-248.4979"/>
-<polygon fill="#191970" stroke="#191970" points="2226.8829,-251.9697 2236.4424,-247.4018 2226.1208,-245.0113 2226.8829,-251.9697"/>
+<path fill="none" stroke="#191970" d="M2406.4249,-548.3735C2442.1122,-531.9667 2506,-494.9863 2506,-440.5 2506,-440.5 2506,-440.5 2506,-373.5 2506,-328.6788 2485.5266,-315.5091 2448,-291 2416.3969,-270.3596 2309.3581,-255.3336 2253.9158,-248.7295"/>
+<polygon fill="#191970" stroke="#191970" points="2254.2113,-245.2403 2243.8732,-247.5583 2253.4004,-252.1932 2254.2113,-245.2403"/>
 </g>
 <!-- Node24 -->
 <g id="node22" class="node">
 <title>Node24</title>
 <g id="a_node22"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="2300.5,-179.5 2300.5,-198.5 2429.5,-198.5 2429.5,-179.5 2300.5,-179.5"/>
-<text text-anchor="middle" x="2365" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/memory.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="1040.5,-179.5 1040.5,-198.5 1169.5,-198.5 1169.5,-179.5 1040.5,-179.5"/>
+<text text-anchor="middle" x="1105" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/memory.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node24 -->
 <g id="edge116" class="edge">
 <title>Node5&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1032.8115,-557.422C1272.9546,-554.2446 2304.3973,-536.0006 2421,-456 2462.3653,-427.6195 2435.266,-385.8356 2477,-358 2530.4745,-322.3338 2721.4713,-370.1966 2764,-322 2829.0454,-248.2858 2749.3712,-267.597 2644,-235 2576.42,-214.0939 2496.5216,-202.1486 2439.5843,-195.7003"/>
-<polygon fill="#191970" stroke="#191970" points="2439.9079,-192.2148 2429.5845,-194.5975 2439.1405,-199.1726 2439.9079,-192.2148"/>
+<path fill="none" stroke="#191970" d="M2333.4081,-557.152C2160.9841,-553.971 1588.2592,-541.3952 1407,-512 1266.167,-489.1608 1237.8638,-453.1723 1098,-425 1034.1233,-412.1335 850.1538,-437.8214 807,-389 725.35,-296.6265 947.9438,-227.5667 1053.2479,-200.9657"/>
+<polygon fill="#191970" stroke="#191970" points="1054.1994,-204.3358 1063.0584,-198.5246 1052.5091,-197.5429 1054.1994,-204.3358"/>
 </g>
 <!-- Node36 -->
 <g id="node33" class="node">
 <title>Node36</title>
 <g id="a_node33"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="tvm/node/structural\l_hash.h">
-<polygon fill="#ffffff" stroke="#000000" points="1664.5,-425.5 1664.5,-455.5 1777.5,-455.5 1777.5,-425.5 1664.5,-425.5"/>
-<text text-anchor="start" x="1672.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
-<text text-anchor="middle" x="1721" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_hash.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2326.5,-425.5 2326.5,-455.5 2439.5,-455.5 2439.5,-425.5 2326.5,-425.5"/>
+<text text-anchor="start" x="2334.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
+<text text-anchor="middle" x="2383" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_hash.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node36 -->
 <g id="edge114" class="edge">
 <title>Node5&#45;&gt;Node36</title>
-<path fill="none" stroke="#191970" d="M1032.5406,-556.3905C1190.7497,-551.0469 1675.0403,-533.0362 1701,-512 1714.5883,-500.9888 1719.3909,-481.5636 1720.9037,-465.737"/>
-<polygon fill="#191970" stroke="#191970" points="1724.4122,-465.6875 1721.493,-455.5028 1717.4238,-465.285 1724.4122,-465.6875"/>
+<path fill="none" stroke="#191970" d="M2383,-548.3845C2383,-530.544 2383,-491.7839 2383,-465.9138"/>
+<polygon fill="#191970" stroke="#191970" points="2386.5001,-465.7143 2383,-455.7143 2379.5001,-465.7143 2386.5001,-465.7143"/>
 </g>
 <!-- Node49 -->
 <g id="node39" class="node">
 <title>Node49</title>
 <g id="a_node39"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="826.5,-364 826.5,-383 957.5,-383 957.5,-364 826.5,-364"/>
-<text text-anchor="middle" x="892" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/repr_printer.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2572.5,-364 2572.5,-383 2703.5,-383 2703.5,-364 2572.5,-364"/>
+<text text-anchor="middle" x="2638" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/repr_printer.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node49 -->
 <g id="edge109" class="edge">
 <title>Node5&#45;&gt;Node49</title>
-<path fill="none" stroke="#191970" d="M978.2356,-548.3402C963.8003,-519.0732 920.3675,-431.0142 901.2282,-392.2099"/>
-<polygon fill="#191970" stroke="#191970" points="904.2797,-390.4844 896.7173,-383.0641 898.0018,-393.5808 904.2797,-390.4844"/>
+<path fill="none" stroke="#191970" d="M2432.9186,-553.0639C2488.2015,-546.6152 2572.6298,-533.534 2596,-512 2629.753,-480.8991 2636.7217,-423.667 2637.9444,-393.4289"/>
+<polygon fill="#191970" stroke="#191970" points="2641.447,-393.3494 2638.1755,-383.2723 2634.4488,-393.1901 2641.447,-393.3494"/>
 </g>
 <!-- Node6&#45;&gt;Node7 -->
 <g id="edge7" class="edge">
 <title>Node6&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M1571.4452,-493.9741C1510.1439,-485.5754 1412.7126,-471.4755 1329,-456 1327.5267,-455.7276 1326.0374,-455.4472 1324.5366,-455.16"/>
-<polygon fill="#191970" stroke="#191970" points="1325.0037,-451.6847 1314.515,-453.1808 1323.6474,-458.5521 1325.0037,-451.6847"/>
+<path fill="none" stroke="#191970" d="M2242.1563,-492.3906C2219.2428,-483.5279 2184.5887,-470.1239 2156.2414,-459.1594"/>
+<polygon fill="#191970" stroke="#191970" points="2157.4851,-455.8878 2146.8958,-455.5446 2154.9598,-462.4165 2157.4851,-455.8878"/>
 </g>
 <!-- Node6&#45;&gt;Node10 -->
 <g id="edge85" class="edge">
 <title>Node6&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M1604.0031,-492.4154C1560.8813,-476.5294 1477.4999,-441.2278 1423,-389 1355.8096,-324.6107 1341.5971,-291.8279 1335,-199 1334.3699,-190.1335 1334.2357,-187.856 1335,-179 1335.7476,-170.3385 1337.2729,-160.8607 1338.793,-152.7708"/>
-<polygon fill="#191970" stroke="#191970" points="1342.2567,-153.2991 1340.7893,-142.8064 1335.3931,-151.924 1342.2567,-153.2991"/>
+<path fill="none" stroke="#191970" d="M2271.9466,-492.2922C2280.0437,-476.9586 2297.22,-446.6538 2317,-425 2373.1718,-363.5068 2493.9285,-360.4785 2448,-291 2400.8044,-219.6046 2149.6979,-166.4801 2026.8261,-144.3405"/>
+<polygon fill="#191970" stroke="#191970" points="2027.2341,-140.8581 2016.7748,-142.547 2026.0045,-147.7493 2027.2341,-140.8581"/>
 </g>
 <!-- Node6&#45;&gt;Node11 -->
 <g id="edge81" class="edge">
 <title>Node6&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M1571.312,-501.4132C1409.8821,-499.3895 972.7214,-490.766 833,-456 768.8156,-440.0294 464.9506,-292.7545 412,-255 358.1447,-216.6005 337.0936,-204.9807 314,-143 308.5492,-128.3707 307.2402,-110.9077 307.3225,-96.902"/>
-<polygon fill="#191970" stroke="#191970" points="310.8321,-96.6319 307.6343,-86.5312 303.8353,-96.4215 310.8321,-96.6319"/>
+<path fill="none" stroke="#191970" d="M2327.9573,-500.4775C2457.0874,-495.5935 2766.1747,-475.0756 3008,-389 3213.2504,-315.9429 3323.2682,-331.7922 3432,-143 3444.994,-120.4383 3422.1233,-102.7523 3395.574,-90.6142"/>
+<polygon fill="#191970" stroke="#191970" points="3396.6532,-87.2691 3386.0825,-86.5534 3393.8996,-93.7048 3396.6532,-87.2691"/>
 </g>
 <!-- Node6&#45;&gt;Node16 -->
 <g id="edge106" class="edge">
 <title>Node6&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1571.2851,-500.248C1393.6532,-494.2153 878.4172,-469.9925 734,-389 613.5523,-321.4502 554.2931,-148.9902 537.2939,-90.9201"/>
-<polygon fill="#191970" stroke="#191970" points="540.626,-89.841 534.5287,-81.1765 533.8919,-91.7522 540.626,-89.841"/>
+<path fill="none" stroke="#191970" d="M2317.7104,-492.4789C2365.5493,-483.411 2439.2369,-469.2217 2503,-456 2565.8269,-442.9725 2580.6875,-435.4144 2644,-425 2788.2726,-401.2682 2842.1391,-458.0843 2971,-389 3095.7466,-322.1214 3163.7956,-149.2242 3183.7284,-90.9813"/>
+<polygon fill="#191970" stroke="#191970" points="3187.1442,-91.8016 3186.9851,-81.2079 3180.5032,-89.5886 3187.1442,-91.8016"/>
 </g>
 <!-- Node6&#45;&gt;Node17 -->
 <g id="edge107" class="edge">
 <title>Node6&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M1629.2511,-492.4059C1622.1665,-468.5311 1601.8023,-404.99 1573,-358 1561.9657,-339.998 1549.3482,-341.7947 1542,-322 1528.3702,-285.2841 1529.6335,-263.9592 1556,-235 1652.6234,-128.8754 2116.7108,-85.7223 2263.433,-74.59"/>
-<polygon fill="#191970" stroke="#191970" points="2263.7273,-78.0779 2273.4391,-73.8434 2263.2063,-71.0973 2263.7273,-78.0779"/>
+<path fill="none" stroke="#191970" d="M2206.4762,-493.5164C2049.8115,-471.2751 1641.8549,-411.4514 1623,-389 1578.6832,-336.2301 1649.7064,-303.3582 1641,-235 1634.5035,-183.9927 1651.4663,-155.96 1612,-123 1562.3704,-81.5522 1109.858,-73.4072 964.05,-71.8544"/>
+<polygon fill="#191970" stroke="#191970" points="963.7256,-68.3511 953.6907,-71.7498 963.6549,-75.3507 963.7256,-68.3511"/>
 </g>
 <!-- Node6&#45;&gt;Node20 -->
 <g id="edge108" class="edge">
 <title>Node6&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M1683.8223,-492.4741C1714.8097,-485.3607 1754.2074,-473.7539 1786,-456 1882.1917,-402.2838 1871.4651,-338.2343 1971,-291 2015.6744,-269.7997 2159.5111,-254.2432 2225.8722,-248.0056"/>
-<polygon fill="#191970" stroke="#191970" points="2226.5688,-251.4563 2236.2044,-247.0511 2225.9248,-244.4859 2226.5688,-251.4563"/>
+<path fill="none" stroke="#191970" d="M2265.2149,-492.2391C2258.279,-454.3126 2233.0378,-316.2919 2223.5965,-264.6658"/>
+<polygon fill="#191970" stroke="#191970" points="2227.0288,-263.9778 2221.7868,-254.7706 2220.143,-265.2371 2227.0288,-263.9778"/>
 </g>
 <!-- Node6&#45;&gt;Node24 -->
 <g id="edge83" class="edge">
 <title>Node6&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1692.8282,-496.5916C1731.9451,-490.9461 1782.6294,-479.4355 1822,-456 1906.905,-405.46 1886.4965,-342.2086 1971,-291 2000.3569,-273.2099 2212.1727,-223.6546 2312.5273,-200.81"/>
-<polygon fill="#191970" stroke="#191970" points="2313.4845,-204.1818 2322.4606,-198.5532 2311.9336,-197.3558 2313.4845,-204.1818"/>
+<path fill="none" stroke="#191970" d="M2206.2519,-498.5011C2119.9099,-492.9053 1956.9659,-480.0421 1820,-456 1643.1202,-424.9517 1604.4497,-391.4061 1428,-358 1306.0204,-334.9064 1256.2182,-387.8898 1151,-322 1120.8067,-303.0923 1117.7213,-288.9734 1107,-255 1102.2563,-239.9683 1102.0314,-222.0438 1102.8396,-208.6705"/>
+<polygon fill="#191970" stroke="#191970" points="1106.3301,-208.9301 1103.685,-198.6707 1099.3549,-208.3403 1106.3301,-208.9301"/>
 </g>
 <!-- Node35 -->
 <g id="node32" class="node">
 <title>Node35</title>
 <g id="a_node32"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
-<polygon fill="#ffffff" stroke="#000000" points="1050,-297 1050,-316 1188,-316 1188,-297 1050,-297"/>
-<text text-anchor="middle" x="1119" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/data_type.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2802,-297 2802,-316 2940,-316 2940,-297 2802,-297"/>
+<text text-anchor="middle" x="2871" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/data_type.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node35 -->
 <g id="edge82" class="edge">
 <title>Node6&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M1571.44,-493.7444C1566.557,-493.1339 1561.6975,-492.5447 1557,-492 1476.0377,-482.6126 1258.9247,-502.5198 1192,-456 1147.6595,-425.1786 1129.149,-359.6408 1122.3898,-326.5316"/>
-<polygon fill="#191970" stroke="#191970" points="1125.7509,-325.4656 1120.4659,-316.283 1118.871,-326.7571 1125.7509,-325.4656"/>
+<path fill="none" stroke="#191970" d="M2310.1704,-492.4715C2347.0832,-483.9817 2401.4585,-470.6604 2448,-456 2485.1618,-444.2942 2492.0791,-433.9461 2530,-425 2606.5294,-406.9455 2829.3043,-447.3599 2882,-389 2897.5243,-371.8071 2889.2916,-343.7947 2880.9683,-325.2559"/>
+<polygon fill="#191970" stroke="#191970" points="2884.0135,-323.515 2876.4852,-316.06 2877.7214,-326.5825 2884.0135,-323.515"/>
 </g>
 <!-- Node6&#45;&gt;Node36 -->
 <g id="edge67" class="edge">
 <title>Node6&#45;&gt;Node36</title>
-<path fill="none" stroke="#191970" d="M1645.9063,-492.3906C1657.8398,-484.1444 1675.4626,-471.9669 1690.6377,-461.4807"/>
-<polygon fill="#191970" stroke="#191970" points="1692.9909,-464.1089 1699.2282,-455.5446 1689.0115,-458.3501 1692.9909,-464.1089"/>
+<path fill="none" stroke="#191970" d="M2285.125,-492.3906C2301.2603,-483.8361 2325.3755,-471.0509 2345.6309,-460.3121"/>
+<polygon fill="#191970" stroke="#191970" points="2347.4276,-463.3211 2354.6232,-455.5446 2344.1486,-457.1365 2347.4276,-463.3211"/>
 </g>
 <!-- Node37 -->
 <g id="node34" class="node">
 <title>Node37</title>
 <g id="a_node34"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device&#45;independent managed NDArray abstraction. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1658.5,-364 1658.5,-383 1783.5,-383 1783.5,-364 1658.5,-364"/>
-<text text-anchor="middle" x="1721" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/ndarray.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="2086.5,-364 2086.5,-383 2211.5,-383 2211.5,-364 2086.5,-364"/>
+<text text-anchor="middle" x="2149" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/ndarray.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node37 -->
 <g id="edge84" class="edge">
 <title>Node6&#45;&gt;Node37</title>
-<path fill="none" stroke="#191970" d="M1632.9988,-492.1841C1634.974,-476.7025 1640.5215,-446.1985 1655,-425 1665.2208,-410.0354 1681.1424,-397.4308 1694.7868,-388.4374"/>
-<polygon fill="#191970" stroke="#191970" points="1696.7375,-391.3453 1703.3415,-383.0605 1693.0124,-385.4188 1696.7375,-391.3453"/>
+<path fill="none" stroke="#191970" d="M2258.1308,-492.3416C2238.3129,-470.7602 2190.2041,-418.3706 2165.0015,-390.9254"/>
+<polygon fill="#191970" stroke="#191970" points="2167.3138,-388.2688 2157.9721,-383.2705 2162.1579,-393.0034 2167.3138,-388.2688"/>
 </g>
 <!-- Node43 -->
 <g id="node36" class="node">
 <title>Node43</title>
 <g id="a_node36"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="2296,-425.5 2296,-455.5 2412,-455.5 2412,-425.5 2296,-425.5"/>
-<text text-anchor="start" x="2304" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/packed</text>
-<text text-anchor="middle" x="2354" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_func.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="1388,-425.5 1388,-455.5 1504,-455.5 1504,-425.5 1388,-425.5"/>
+<text text-anchor="start" x="1396" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/packed</text>
+<text text-anchor="middle" x="1446" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node43 -->
 <g id="edge86" class="edge">
 <title>Node6&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M1692.6249,-496.836C1826.2468,-485.454 2145.3539,-458.2725 2285.7401,-446.3144"/>
-<polygon fill="#191970" stroke="#191970" points="2286.2713,-449.7819 2295.9382,-445.4457 2285.6772,-442.8072 2286.2713,-449.7819"/>
+<path fill="none" stroke="#191970" d="M2206.2965,-497.4528C2056.7419,-486.2499 1671.3236,-457.3787 1514.203,-445.609"/>
+<polygon fill="#191970" stroke="#191970" points="1514.4223,-442.1157 1504.1888,-444.8588 1513.8994,-449.0962 1514.4223,-442.1157"/>
 </g>
 <!-- Node8 -->
 <g id="node9" class="node">
 <title>Node8</title>
 <g id="a_node9"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures. ">
-<polygon fill="#ffffff" stroke="#000000" points="1695.5,-297 1695.5,-316 1804.5,-316 1804.5,-297 1695.5,-297"/>
-<text text-anchor="middle" x="1750" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/functor.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1828.5,-297 1828.5,-316 1937.5,-316 1937.5,-297 1828.5,-297"/>
+<text text-anchor="middle" x="1883" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node8 -->
 <g id="edge8" class="edge">
 <title>Node7&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1314.5422,-435.9585C1378.4249,-429.7539 1484.9654,-416.1465 1573,-389 1602.6058,-379.8707 1680.153,-341.7278 1722.0994,-320.6511"/>
-<polygon fill="#191970" stroke="#191970" points="1723.8588,-323.6839 1731.2141,-316.0583 1720.7088,-317.4327 1723.8588,-323.6839"/>
+<path fill="none" stroke="#191970" d="M2082.627,-425.389C2039.1559,-399.4995 1950.9641,-346.9764 1907.8527,-321.3012"/>
+<polygon fill="#191970" stroke="#191970" points="1909.5091,-318.214 1899.1264,-316.1042 1905.9272,-324.2282 1909.5091,-318.214"/>
 </g>
 <!-- Node7&#45;&gt;Node16 -->
 <g id="edge66" class="edge">
 <title>Node7&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1201.3932,-439.5345C1091.7936,-436.8299 855.139,-426.6753 784,-389 653.2881,-319.7748 677.4459,-237.6543 584,-123 573.7653,-110.4424 560.8266,-97.6187 550.4162,-87.9089"/>
-<polygon fill="#191970" stroke="#191970" points="552.7726,-85.321 543.0347,-81.1468 548.0441,-90.4826 552.7726,-85.321"/>
+<path fill="none" stroke="#191970" d="M2164.7642,-436.1887C2206.7955,-433.0211 2265.4634,-428.6515 2317,-425 2435.4175,-416.6099 2737.7375,-427.6034 2850,-389 2999.1769,-337.7029 2965.7436,-226.2621 3085,-123 3106.5634,-104.3286 3136.0805,-90.6408 3158.3281,-82.0896"/>
+<polygon fill="#191970" stroke="#191970" points="3159.8162,-85.2711 3167.9837,-78.5227 3157.3905,-78.7048 3159.8162,-85.2711"/>
 </g>
 <!-- Node21 -->
 <g id="node19" class="node">
 <title>Node21</title>
 <g id="a_node19"><a xlink:href="object__path_8h.html" target="_top" xlink:title="tvm/node/object_path.h">
-<polygon fill="#ffffff" stroke="#000000" points="1432,-364 1432,-383 1564,-383 1564,-364 1432,-364"/>
-<text text-anchor="middle" x="1498" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/object_path.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1632,-364 1632,-383 1764,-383 1764,-364 1632,-364"/>
+<text text-anchor="middle" x="1698" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/object_path.h</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node21 -->
 <g id="edge20" class="edge">
 <title>Node7&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1311.8607,-425.4639C1354.7965,-413.4776 1414.1604,-396.9052 1454.2077,-385.7254"/>
-<polygon fill="#191970" stroke="#191970" points="1455.2606,-389.0653 1463.9512,-383.0053 1453.3784,-382.3231 1455.2606,-389.0653"/>
+<path fill="none" stroke="#191970" d="M2051.4217,-431.2543C1976.9516,-419.0848 1846.1595,-397.7114 1766.2753,-384.6572"/>
+<polygon fill="#191970" stroke="#191970" points="1766.7467,-381.1879 1756.3131,-383.0292 1765.6177,-388.0962 1766.7467,-381.1879"/>
 </g>
 <!-- Node7&#45;&gt;Node34 -->
 <g id="edge53" class="edge">
 <title>Node7&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M1314.5048,-438.2467C1493.7343,-431.0954 2065.5836,-408.2484 2539,-389 2644.4896,-384.711 2766.5796,-379.6789 2842.5565,-376.5393"/>
-<polygon fill="#191970" stroke="#191970" points="2843.1176,-380.0192 2852.9645,-376.1092 2842.8285,-373.0252 2843.1176,-380.0192"/>
+<path fill="none" stroke="#191970" d="M2051.2898,-438.7455C1834.0189,-431.9474 1054.4423,-406.836 807,-389 782.6491,-387.2448 756.1089,-384.6733 732.3137,-382.1273"/>
+<polygon fill="#191970" stroke="#191970" points="732.6176,-378.6399 722.2983,-381.0402 731.8622,-385.599 732.6176,-378.6399"/>
 </g>
 <!-- Node7&#45;&gt;Node35 -->
 <g id="edge61" class="edge">
 <title>Node7&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M1240.4627,-425.4806C1228.81,-415.3671 1213.2702,-401.6213 1200,-389 1177.0015,-367.1262 1151.5109,-340.7986 1135.3812,-323.8645"/>
-<polygon fill="#191970" stroke="#191970" points="1137.689,-321.2118 1128.2669,-316.3667 1132.6111,-326.03 1137.689,-321.2118"/>
+<path fill="none" stroke="#191970" d="M2164.7683,-436.2458C2206.8016,-433.1066 2265.4703,-428.7475 2317,-425 2373.1053,-420.9198 2774.1311,-418.547 2822,-389 2844.9647,-374.8251 2858.4869,-345.553 2865.3209,-325.9675"/>
+<polygon fill="#191970" stroke="#191970" points="2868.7193,-326.832 2868.447,-316.2406 2862.0551,-324.6901 2868.7193,-326.832"/>
 </g>
 <!-- Node9 -->
 <g id="node10" class="node">
 <title>Node9</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1824.5,-179.5 1824.5,-198.5 1913.5,-198.5 1913.5,-179.5 1824.5,-179.5"/>
-<text text-anchor="middle" x="1869" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/logging.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1404.5,-179.5 1404.5,-198.5 1493.5,-198.5 1493.5,-179.5 1404.5,-179.5"/>
+<text text-anchor="middle" x="1449" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/logging.h</text>
 </g>
 <!-- Node8&#45;&gt;Node9 -->
 <g id="edge9" class="edge">
 <title>Node8&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M1786.5283,-296.9819C1821.0329,-287.1649 1869.0855,-271.0636 1880,-255 1889.351,-241.2376 1884.7945,-222.2142 1878.9659,-208.1253"/>
-<polygon fill="#191970" stroke="#191970" points="1882.0619,-206.482 1874.6776,-198.8843 1875.7122,-209.4286 1882.0619,-206.482"/>
+<path fill="none" stroke="#191970" d="M1847.8516,-296.984C1769.5273,-275.7787 1580.7451,-224.6683 1493.9856,-201.1793"/>
+<polygon fill="#191970" stroke="#191970" points="1494.7403,-197.7577 1484.1731,-198.5227 1492.911,-204.5144 1494.7403,-197.7577"/>
 </g>
 <!-- Node8&#45;&gt;Node10 -->
 <g id="edge10" class="edge">
 <title>Node8&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M1767.8386,-296.8059C1790.8263,-283.0764 1825.833,-257.1687 1808,-235 1759.1736,-174.3025 1530.125,-147.6886 1412.7421,-137.8743"/>
-<polygon fill="#191970" stroke="#191970" points="1413.0223,-134.3856 1402.7702,-137.0586 1412.4515,-141.3623 1413.0223,-134.3856"/>
+<path fill="none" stroke="#191970" d="M1916.49,-296.9866C1957.7301,-284.9384 2023.1948,-264.5948 2030,-255 2049.541,-227.4485 2046.1332,-208.6759 2030,-179 2022.3623,-164.9511 2008.3791,-154.5317 1994.8292,-147.1958"/>
+<polygon fill="#191970" stroke="#191970" points="1996.113,-143.9253 1985.601,-142.603 1992.9941,-150.1921 1996.113,-143.9253"/>
 </g>
 <!-- Node8&#45;&gt;Node17 -->
 <g id="edge17" class="edge">
 <title>Node8&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M1786.9291,-296.9434C1817.4626,-288.258 1861.4237,-273.9151 1897,-255 1946.9169,-228.4603 1950.0789,-207.3333 1999,-179 2053.0863,-147.6752 2069.1617,-144.086 2128,-123 2173.4493,-106.7122 2226.7548,-91.9878 2263.4995,-82.4959"/>
-<polygon fill="#191970" stroke="#191970" points="2264.5843,-85.8311 2273.4039,-79.9605 2262.8483,-79.0498 2264.5843,-85.8311"/>
+<path fill="none" stroke="#191970" d="M1917.7427,-296.9193C1965.4796,-283.5931 2045.9573,-260.4773 2050,-255 2085.364,-207.087 2075.4165,-157.6714 2027,-123 1983.1154,-91.5739 1165.9958,-75.6884 963.9095,-72.2303"/>
+<polygon fill="#191970" stroke="#191970" points="963.7185,-68.7267 953.6606,-72.0566 963.5998,-75.7257 963.7185,-68.7267"/>
 </g>
 <!-- Node8&#45;&gt;Node18 -->
 <g id="edge18" class="edge">
 <title>Node8&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M1786.1817,-296.9736C1794.9259,-294.8446 1804.2681,-292.7128 1813,-291 2088.5205,-236.9554 2162.3781,-252.5253 2438,-199 2578.9519,-171.6274 2610.6101,-148.012 2752,-123 2908.6863,-95.2821 3098.5031,-79.425 3173.8603,-73.8258"/>
-<polygon fill="#191970" stroke="#191970" points="3174.4127,-77.2949 3184.1304,-73.074 3173.9016,-70.3135 3174.4127,-77.2949"/>
+<path fill="none" stroke="#191970" d="M1860.3193,-296.8516C1802.0609,-272.5257 1641.9076,-208.531 1502,-179 1103.2802,-94.8402 605.7946,-75.9187 474.8196,-72.2784"/>
+<polygon fill="#191970" stroke="#191970" points="474.7428,-68.7752 464.6528,-72.0066 474.5556,-75.7727 474.7428,-68.7752"/>
 </g>
 <!-- Node8&#45;&gt;Node20 -->
 <g id="edge19" class="edge">
 <title>Node8&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M1804.6445,-298.0947C1821.42,-295.6462 1839.9509,-293.0745 1857,-291 2018.8158,-271.3101 2061.561,-283.8335 2222,-255 2223.4687,-254.736 2224.9639,-254.4442 2226.4704,-254.1311"/>
-<polygon fill="#191970" stroke="#191970" points="2227.4608,-257.4944 2236.4131,-251.8282 2225.8812,-250.675 2227.4608,-257.4944"/>
+<path fill="none" stroke="#191970" d="M1923.4065,-296.9563C1932.7703,-294.8746 1942.713,-292.7679 1952,-291 2053.6415,-271.6509 2080.727,-276.1934 2182,-255 2183.4606,-254.6943 2184.9491,-254.3679 2186.45,-254.0264"/>
+<polygon fill="#191970" stroke="#191970" points="2187.4805,-257.378 2196.372,-251.6168 2185.8284,-250.5757 2187.4805,-257.378"/>
 </g>
 <!-- Node10&#45;&gt;Node11 -->
 <g id="edge11" class="edge">
 <title>Node10&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M1283.2453,-130.2697C1145.3452,-123.8518 794.2245,-106.8422 501,-87 462.4329,-84.3902 419.5501,-80.9771 384.1116,-78.0183"/>
-<polygon fill="#191970" stroke="#191970" points="384.1036,-74.5054 373.8459,-77.1565 383.518,-81.4808 384.1036,-74.5054"/>
+<path fill="none" stroke="#191970" d="M2018.7979,-131.5865C2236.0154,-126.3326 2983.0173,-107.1896 3221,-87 3234.3096,-85.8709 3248.4333,-84.2994 3262.0753,-82.5874"/>
+<polygon fill="#191970" stroke="#191970" points="3262.9224,-86.0072 3272.392,-81.2557 3262.0262,-79.0648 3262.9224,-86.0072"/>
 </g>
 <!-- Node15 -->
 <g id="node14" class="node">
 <title>Node15</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1413.5,-62 1413.5,-81 1538.5,-81 1538.5,-62 1413.5,-62"/>
-<text text-anchor="middle" x="1476" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/logging.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1763.5,-62 1763.5,-81 1888.5,-81 1888.5,-62 1763.5,-62"/>
+<text text-anchor="middle" x="1826" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/logging.h</text>
 </g>
 <!-- Node10&#45;&gt;Node15 -->
 <g id="edge13" class="edge">
 <title>Node10&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M1363.7813,-123.3906C1385.8394,-113.1908 1420.905,-96.9763 1445.9669,-85.3875"/>
-<polygon fill="#191970" stroke="#191970" points="1447.7571,-88.4158 1455.3647,-81.0419 1444.8191,-82.0622 1447.7571,-88.4158"/>
+<path fill="none" stroke="#191970" d="M1938.2188,-123.3906C1916.1606,-113.1908 1881.095,-96.9763 1856.0331,-85.3875"/>
+<polygon fill="#191970" stroke="#191970" points="1857.1809,-82.0622 1846.6353,-81.0419 1854.2429,-88.4158 1857.1809,-82.0622"/>
 </g>
 <!-- Node10&#45;&gt;Node16 -->
 <g id="edge14" class="edge">
 <title>Node10&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1283.3652,-128.4778C1123.0444,-116.3203 686.6396,-83.2267 564.2802,-73.9479"/>
-<polygon fill="#191970" stroke="#191970" points="564.3118,-70.4403 554.0758,-73.1741 563.7825,-77.4203 564.3118,-70.4403"/>
+<path fill="none" stroke="#191970" d="M2018.7897,-130.0129C2237.8725,-119.0677 2992.5501,-81.3645 3157.8407,-73.1067"/>
+<polygon fill="#191970" stroke="#191970" points="3158.0509,-76.6006 3167.8638,-72.6059 3157.7016,-69.6093 3158.0509,-76.6006"/>
 </g>
 <!-- Node10&#45;&gt;Node17 -->
 <g id="edge15" class="edge">
 <title>Node10&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M1402.8604,-125.6747C1411.9448,-124.6919 1421.2149,-123.7619 1430,-123 1748.488,-95.3772 2133.2839,-78.4904 2262.9117,-73.2545"/>
-<polygon fill="#191970" stroke="#191970" points="2263.3804,-76.7386 2273.2321,-72.8406 2263.0998,-69.7442 2263.3804,-76.7386"/>
+<path fill="none" stroke="#191970" d="M1899.4591,-128.7053C1873.5205,-126.8757 1842.761,-124.7617 1815,-123 1488.3557,-102.2715 1094.487,-80.8854 963.6474,-73.8775"/>
+<polygon fill="#191970" stroke="#191970" points="963.7756,-70.3794 953.6028,-73.3401 963.4015,-77.3694 963.7756,-70.3794"/>
 </g>
 <!-- Node10&#45;&gt;Node18 -->
 <g id="edge16" class="edge">
 <title>Node10&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M1402.6459,-131.0321C1693.0716,-121.4499 2954.1214,-79.8434 3174.1819,-72.5828"/>
-<polygon fill="#191970" stroke="#191970" points="3174.5482,-76.0727 3184.4273,-72.2448 3174.3173,-69.0765 3174.5482,-76.0727"/>
+<path fill="none" stroke="#191970" d="M1899.0646,-130.5702C1645.6233,-120.2955 666.1721,-80.5881 474.6028,-72.8217"/>
+<polygon fill="#191970" stroke="#191970" points="474.7263,-69.324 464.5927,-72.4159 474.4427,-76.3182 474.7263,-69.324"/>
 </g>
 <!-- Node12 -->
 <g id="node13" class="node">
 <title>Node12</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="262.5,-.5 262.5,-19.5 355.5,-19.5 355.5,-.5 262.5,-.5"/>
-<text text-anchor="middle" x="309" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dlpack/dlpack.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="3290.5,-.5 3290.5,-19.5 3383.5,-19.5 3383.5,-.5 3290.5,-.5"/>
+<text text-anchor="middle" x="3337" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dlpack/dlpack.h</text>
 </g>
 <!-- Node11&#45;&gt;Node12 -->
 <g id="edge12" class="edge">
 <title>Node11&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M309,-56.2977C309,-48.3834 309,-38.6043 309,-30.0759"/>
-<polygon fill="#191970" stroke="#191970" points="312.5001,-29.8469 309,-19.8469 305.5001,-29.847 312.5001,-29.8469"/>
+<path fill="none" stroke="#191970" d="M3337,-56.2977C3337,-48.3834 3337,-38.6043 3337,-30.0759"/>
+<polygon fill="#191970" stroke="#191970" points="3340.5001,-29.8469 3337,-19.8469 3333.5001,-29.847 3340.5001,-29.8469"/>
 </g>
 <!-- Node21&#45;&gt;Node10 -->
 <g id="edge51" class="edge">
 <title>Node21&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M1483.5205,-363.7659C1450.102,-340.978 1369.2764,-283.9127 1354,-255 1336.7692,-222.3882 1337.8368,-177.9676 1340.3177,-152.7075"/>
-<polygon fill="#191970" stroke="#191970" points="1343.8191,-152.8981 1341.4964,-142.561 1336.8658,-152.0903 1343.8191,-152.8981"/>
+<path fill="none" stroke="#191970" d="M1696.1081,-363.7582C1693.3736,-346.4812 1690.5745,-310.4652 1710,-291 1787.4327,-213.409 1880.6837,-336.4918 1954,-255 1979.1717,-227.0214 1971.8344,-179.1728 1964.9724,-152.4709"/>
+<polygon fill="#191970" stroke="#191970" points="1968.3161,-151.4317 1962.2494,-142.7457 1961.5753,-153.3191 1968.3161,-151.4317"/>
 </g>
 <!-- Node21&#45;&gt;Node16 -->
 <g id="edge52" class="edge">
 <title>Node21&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1473.9395,-363.8169C1450.53,-354.1212 1414.178,-338.3314 1384,-322 1239.3515,-243.7206 1227.5209,-176.5174 1072,-123 977.0588,-90.3291 665.6382,-76.354 564.231,-72.5964"/>
-<polygon fill="#191970" stroke="#191970" points="564.1233,-69.0903 554.0032,-72.2259 563.8699,-76.0857 564.1233,-69.0903"/>
+<path fill="none" stroke="#191970" d="M1705.2457,-363.7566C1718.9157,-346.1443 1750.3597,-309.1568 1786,-291 1861.8037,-252.3822 1893.5896,-282.7794 1974,-255 2094.9954,-213.1996 2106.4506,-156.5069 2230,-123 2321.0443,-98.3086 2999.9608,-77.064 3157.4441,-72.4345"/>
+<polygon fill="#191970" stroke="#191970" points="3157.973,-75.9206 3167.8665,-72.1301 3157.7685,-68.9236 3157.973,-75.9206"/>
 </g>
 <!-- Node22 -->
 <g id="node20" class="node">
 <title>Node22</title>
 <g id="a_node20"><a xlink:href="optional_8h.html" target="_top" xlink:title="Runtime Optional container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="2849,-291.5 2849,-321.5 2975,-321.5 2975,-291.5 2849,-291.5"/>
-<text text-anchor="start" x="2857" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="2912" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/optional.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="940,-291.5 940,-321.5 1066,-321.5 1066,-291.5 940,-291.5"/>
+<text text-anchor="start" x="948" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="1003" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/optional.h</text>
 </a>
 </g>
 </g>
 <!-- Node21&#45;&gt;Node22 -->
 <g id="edge21" class="edge">
 <title>Node21&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M1564.0669,-365.706C1590.4501,-362.8583 1621.129,-359.8781 1649,-358 2143.6919,-324.6652 2269.3426,-355.844 2764,-322 2788.3571,-320.3335 2814.899,-317.7853 2838.6937,-315.2333"/>
-<polygon fill="#191970" stroke="#191970" points="2839.1469,-318.7047 2848.7088,-314.142 2838.3885,-311.7459 2839.1469,-318.7047"/>
+<path fill="none" stroke="#191970" d="M1631.8673,-370.5003C1518.4821,-364.7973 1279.8689,-350.3479 1080,-322 1078.8862,-321.842 1077.7641,-321.6781 1076.6356,-321.5089"/>
+<polygon fill="#191970" stroke="#191970" points="1076.7779,-317.9869 1066.3491,-319.8552 1075.6668,-324.8981 1076.7779,-317.9869"/>
 </g>
 <!-- Node21&#45;&gt;Node28 -->
 <g id="edge34" class="edge">
 <title>Node21&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M1514.62,-363.9005C1531.3936,-354.2123 1557.8017,-338.9593 1579.1805,-326.6113"/>
-<polygon fill="#191970" stroke="#191970" points="1581.0833,-329.5541 1587.9922,-321.5218 1577.5822,-323.4926 1581.0833,-329.5541"/>
+<path fill="none" stroke="#191970" d="M1631.8536,-364.7526C1614.9498,-362.5333 1596.804,-360.1649 1580,-358 1456.5885,-342.1003 1422.5695,-343.3767 1296.2224,-322.1264"/>
+<polygon fill="#191970" stroke="#191970" points="1296.6008,-318.6407 1286.1563,-320.419 1295.4302,-325.5421 1296.6008,-318.6407"/>
 </g>
 <!-- Node22&#45;&gt;Node18 -->
 <g id="edge22" class="edge">
 <title>Node22&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M2912.0506,-291.1384C2912.9503,-264.9468 2918.4372,-211.3487 2947,-179 3007.7442,-110.2045 3119.3789,-84.4856 3174.4805,-75.67"/>
-<polygon fill="#191970" stroke="#191970" points="3175.0371,-79.1257 3184.401,-74.1692 3173.99,-72.2045 3175.0371,-79.1257"/>
+<path fill="none" stroke="#191970" d="M967.4965,-291.3288C946.6754,-281.8876 920.187,-268.9194 898,-255 851.6065,-225.8942 849.9886,-203.4872 801,-179 745.8398,-151.428 726.1785,-160.3425 667,-143 597.9956,-122.778 517.9013,-96.6935 474.3234,-82.2785"/>
+<polygon fill="#191970" stroke="#191970" points="475.1646,-78.8702 464.5712,-79.0457 472.9619,-85.5146 475.1646,-78.8702"/>
 </g>
 <!-- Node23 -->
 <g id="node21" class="node">
 <title>Node23</title>
 <g id="a_node21"><a xlink:href="runtime_2container_2base_8h.html" target="_top" xlink:title="Base utilities for common POD(plain old data) container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="2580.5,-235.5 2580.5,-254.5 2635.5,-254.5 2635.5,-235.5 2580.5,-235.5"/>
-<text text-anchor="middle" x="2608" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">./base.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1400.5,-235.5 1400.5,-254.5 1455.5,-254.5 1455.5,-235.5 1400.5,-235.5"/>
+<text text-anchor="middle" x="1428" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">./base.h</text>
 </a>
 </g>
 </g>
 <!-- Node22&#45;&gt;Node23 -->
 <g id="edge23" class="edge">
 <title>Node22&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M2848.6417,-293.6824C2787.2678,-281.2663 2696.2567,-262.8546 2645.5652,-252.5995"/>
-<polygon fill="#191970" stroke="#191970" points="2646.1807,-249.1532 2635.6852,-250.6008 2644.7926,-256.0142 2646.1807,-249.1532"/>
+<path fill="none" stroke="#191970" d="M1066.1679,-297.3592C1155.8686,-284.379 1317.3533,-261.0112 1390.3536,-250.4476"/>
+<polygon fill="#191970" stroke="#191970" points="1391.0674,-253.8809 1400.4631,-248.9848 1390.0649,-246.9531 1391.0674,-253.8809"/>
 </g>
 <!-- Node23&#45;&gt;Node9 -->
 <g id="edge24" class="edge">
 <title>Node23&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M2580.1312,-242.6266C2555.61,-240.5551 2518.9419,-237.498 2487,-235 2270.1838,-218.0437 2215.8635,-215.3399 1999,-199 1974.2253,-197.1333 1946.798,-195.0291 1923.5467,-193.2341"/>
-<polygon fill="#191970" stroke="#191970" points="1923.7608,-189.7403 1913.5209,-192.4594 1923.2214,-196.7195 1923.7608,-189.7403"/>
+<path fill="none" stroke="#191970" d="M1431.6579,-235.2455C1434.4584,-227.7776 1438.409,-217.2427 1441.8324,-208.1137"/>
+<polygon fill="#191970" stroke="#191970" points="1445.1499,-209.2349 1445.384,-198.6427 1438.5955,-206.777 1445.1499,-209.2349"/>
 </g>
 <!-- Node23&#45;&gt;Node10 -->
 <g id="edge30" class="edge">
 <title>Node23&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M2580.4008,-241.3609C2477.9648,-227.8613 2124.2088,-181.3054 2100,-179 1847.7036,-154.9736 1546.8405,-141.0719 1413.0799,-135.6528"/>
-<polygon fill="#191970" stroke="#191970" points="1413.1023,-132.1509 1402.9698,-135.2465 1412.8211,-139.1453 1413.1023,-132.1509"/>
+<path fill="none" stroke="#191970" d="M1400.3467,-237.3612C1363.0098,-226.7728 1300.3781,-207.9329 1294,-199 1288.8348,-191.7658 1287.9354,-185.4986 1294,-179 1314.0838,-157.479 1722.4098,-141.1068 1889.0758,-135.2958"/>
+<polygon fill="#191970" stroke="#191970" points="1889.3478,-138.7886 1899.2207,-134.9447 1889.1056,-131.7928 1889.3478,-138.7886"/>
 </g>
 <!-- Node23&#45;&gt;Node15 -->
 <g id="edge25" class="edge">
 <title>Node23&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M2580.3352,-241.9559C2513.6234,-234.4592 2345.3961,-214.5838 2291,-199 2210.2666,-175.8708 2199.4327,-143.5319 2118,-123 2011.9857,-96.2702 1693.3106,-80.3259 1548.7377,-74.2869"/>
-<polygon fill="#191970" stroke="#191970" points="1548.7708,-70.7853 1538.6347,-73.8691 1548.4815,-77.7793 1548.7708,-70.7853"/>
+<path fill="none" stroke="#191970" d="M1400.3533,-237.9107C1361.0258,-227.5519 1292.8966,-208.4836 1286,-199 1280.7721,-191.811 1280.4154,-185.9155 1286,-179 1343.7263,-107.5165 1619.2694,-82.7721 1752.9399,-74.8807"/>
+<polygon fill="#191970" stroke="#191970" points="1753.309,-78.3654 1763.0919,-74.2977 1752.9077,-71.3769 1753.309,-78.3654"/>
 </g>
 <!-- Node23&#45;&gt;Node18 -->
 <g id="edge33" class="edge">
 <title>Node23&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M2619.1658,-235.3255C2647.2872,-211.57 2724.2071,-150.3202 2800,-123 2868.9938,-98.1306 3090.3748,-79.9455 3174.3142,-73.7846"/>
-<polygon fill="#191970" stroke="#191970" points="3174.5867,-77.2742 3184.3076,-73.0605 3174.0807,-70.2925 3174.5867,-77.2742"/>
+<path fill="none" stroke="#191970" d="M1400.4237,-236.9789C1354.5356,-223.7988 1259.4854,-197.2087 1178,-179 1043.4958,-148.9438 1009.2687,-143.6305 873,-123 724.8787,-100.575 546.9014,-81.9225 474.757,-74.7062"/>
+<polygon fill="#191970" stroke="#191970" points="474.7988,-71.1931 464.5015,-73.6863 474.106,-78.1588 474.7988,-71.1931"/>
 </g>
 <!-- Node23&#45;&gt;Node24 -->
... 6421 lines suppressed ...