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 2021/11/06 13:20:43 UTC

[tvm-site] branch asf-site updated: Docs build at Sat Nov 6 09:20:34 EDT 2021

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 c13b26b  Docs build at Sat Nov  6 09:20:34 EDT 2021
c13b26b is described below

commit c13b26b87b09ac61878ee2f5131c59630925e5a8
Author: tqchen <tq...@gmail.com>
AuthorDate: Sat Nov 6 09:20:35 2021 -0400

    Docs build at Sat Nov  6 09:20:34 EDT 2021
---
 .../micro_tflite.py                                |    7 +-
 .../micro_tflite.ipynb                             |    2 +-
 .../micro_autotune.py                              |   15 +-
 .../micro_autotune.ipynb                           |    6 +-
 .../how_to/pytest_target_parametrization.rst.txt   |   10 +-
 .../how_to/compile_models/from_darknet.rst.txt     |    2 +-
 .../how_to/compile_models/from_tensorflow.rst.txt  |    2 +-
 .../compile_models/sg_execution_times.rst.txt      |   22 +-
 .../_sources/how_to/deploy/arm_compute_lib.rst.txt |   27 +-
 .../deploy_models/deploy_model_on_android.rst.txt  |    2 +-
 .../deploy_object_detection_pytorch.rst.txt        |    2 +-
 .../deploy_models/deploy_prequantized.rst.txt      |    4 +-
 .../deploy_prequantized_tflite.rst.txt             |    4 +-
 .../deploy_models/deploy_ssd_gluoncv.rst.txt       |    2 +-
 .../deploy_models/sg_execution_times.rst.txt       |   18 +-
 .../how_to/extend_tvm/sg_execution_times.rst.txt   |   10 +-
 .../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 |    6 +-
 .../how_to/optimize_operators/opt_gemm.rst.txt     |   24 +-
 .../optimize_operators/sg_execution_times.rst.txt  |    8 +-
 .../sg_execution_times.rst.txt                     |   16 +-
 .../tune_conv2d_layer_cuda.rst.txt                 |    4 +-
 .../tune_network_cuda.rst.txt                      |    2 +-
 .../tune_network_x86.rst.txt                       |    2 +-
 .../tune_sparse_x86.rst.txt                        |   58 +-
 .../tune_with_autotvm/sg_execution_times.rst.txt   |   12 +-
 .../tune_with_autotvm/tune_conv2d_cuda.rst.txt     |   42 +-
 .../work_with_microtvm/micro_autotune.rst.txt      |   31 +-
 .../how_to/work_with_microtvm/micro_tflite.rst.txt |    9 +-
 .../work_with_microtvm/sg_execution_times.rst.txt  |    8 +-
 .../work_with_relay/sg_execution_times.rst.txt     |    6 +-
 .../how_to/work_with_schedules/scan.rst.txt        |   12 +-
 .../work_with_schedules/sg_execution_times.rst.txt |   18 +-
 .../how_to/work_with_schedules/tensorize.rst.txt   |    4 +-
 .../work_with_schedules/tuple_inputs.rst.txt       |   28 +-
 docs/_sources/install/from_source.rst.txt          |    3 +
 .../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 +-
 .../topic/vta/tutorials/vta_get_started.rst.txt    |    4 +-
 .../tutorial/auto_scheduler_matmul_x86.rst.txt     |    4 +-
 docs/_sources/tutorial/autotvm_relay_x86.rst.txt   |   56 +-
 .../tutorial/cross_compilation_and_rpc.rst.txt     |    2 +-
 docs/_sources/tutorial/intro_topi.rst.txt          |    2 +-
 docs/_sources/tutorial/sg_execution_times.rst.txt  |   18 +-
 .../tutorial/tensor_expr_get_started.rst.txt       |   50 +-
 docs/api/links.html                                |   10 +
 docs/api/python/auto_scheduler.html                |   10 +
 docs/api/python/autotvm.html                       |   10 +
 docs/api/python/contrib.html                       |   10 +
 docs/api/python/driver.html                        |   10 +
 docs/api/python/error.html                         |   10 +
 docs/api/python/graph_executor.html                |   10 +
 docs/api/python/index.html                         |   10 +
 docs/api/python/ir.html                            |   10 +
 docs/api/python/micro.html                         |   10 +
 docs/api/python/ndarray.html                       |   10 +
 docs/api/python/relay/analysis.html                |   10 +
 docs/api/python/relay/backend.html                 |   10 +
 docs/api/python/relay/dataflow_pattern.html        |   10 +
 docs/api/python/relay/frontend.html                |   10 +
 docs/api/python/relay/image.html                   |   10 +
 docs/api/python/relay/index.html                   |   10 +
 docs/api/python/relay/nn.html                      |   10 +
 docs/api/python/relay/testing.html                 |   10 +
 docs/api/python/relay/transform.html               |   10 +
 docs/api/python/relay/vision.html                  |   10 +
 docs/api/python/rpc.html                           |   10 +
 docs/api/python/runtime.html                       |   10 +
 docs/api/python/target.html                        |   10 +
 docs/api/python/te.html                            |   10 +
 docs/api/python/tir.html                           |   10 +
 docs/api/python/topi.html                          |   10 +
 docs/api/python/vta/index.html                     |   10 +
 docs/deploy/android.html                           |   10 +
 docs/deploy/arm_compute_lib.html                   |   10 +
 docs/deploy/bnns.html                              |   10 +
 docs/deploy/cpp_deploy.html                        |   10 +
 docs/deploy/hls.html                               |   10 +
 docs/deploy/index.html                             |   10 +
 docs/deploy/integrate.html                         |   10 +
 docs/deploy/tensorrt.html                          |   10 +
 docs/deploy/vitis_ai.html                          |   10 +
 docs/dev/benchmark.html                            |   10 +
 docs/dev/codebase_walkthrough.html                 |   10 +
 docs/dev/convert_layout.html                       |   10 +
 docs/dev/debugger.html                             |   10 +
 docs/dev/device_target_interactions.html           |   10 +
 docs/dev/frontend/tensorflow.html                  |   10 +
 docs/dev/how_to.html                               |   10 +
 docs/dev/how_to/pytest_target_parametrization.html |   10 +-
 docs/dev/hybrid_script.html                        |   10 +
 docs/dev/index.html                                |   10 +
 docs/dev/inferbound.html                           |   10 +
 docs/dev/introduction_to_module_serialization.html |   10 +
 docs/dev/microtvm_design.html                      |   10 +
 docs/dev/model_library_format.html                 |   10 +
 docs/dev/pass_infra.html                           |   10 +
 docs/dev/pytest_target_parametrization.html        |   10 +
 docs/dev/relay_add_op.html                         |   10 +
 docs/dev/relay_add_pass.html                       |   10 +
 docs/dev/relay_bring_your_own_codegen.html         |   10 +
 docs/dev/relay_intro.html                          |   10 +
 docs/dev/relay_op_strategy.html                    |   10 +
 docs/dev/runtime.html                              |   10 +
 docs/dev/runtimes/vulkan.html                      |   10 +
 docs/dev/security.html                             |   10 +
 docs/dev/virtual_machine.html                      |   10 +
 docs/genindex.html                                 |   32 +-
 docs/how_to/compile_models/from_darknet.html       |    2 +-
 docs/how_to/compile_models/from_tensorflow.html    |    2 +-
 docs/how_to/compile_models/sg_execution_times.html |   22 +-
 docs/how_to/deploy/arm_compute_lib.html            |   25 +-
 .../deploy_models/deploy_model_on_android.html     |    2 +-
 .../deploy_object_detection_pytorch.html           |    2 +-
 docs/how_to/deploy_models/deploy_prequantized.html |    4 +-
 .../deploy_models/deploy_prequantized_tflite.html  |    4 +-
 docs/how_to/deploy_models/deploy_ssd_gluoncv.html  |    2 +-
 docs/how_to/deploy_models/sg_execution_times.html  |   18 +-
 docs/how_to/extend_tvm/sg_execution_times.html     |   10 +-
 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    |    6 +-
 docs/how_to/optimize_operators/opt_gemm.html       |   24 +-
 .../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 |    2 +-
 .../tune_with_autoscheduler/tune_network_x86.html  |    2 +-
 .../tune_with_autoscheduler/tune_sparse_x86.html   |   58 +-
 .../tune_with_autotvm/sg_execution_times.html      |   12 +-
 .../how_to/tune_with_autotvm/tune_conv2d_cuda.html |   42 +-
 docs/how_to/work_with_microtvm/micro_autotune.html |   34 +-
 docs/how_to/work_with_microtvm/micro_tflite.html   |    9 +-
 .../work_with_microtvm/sg_execution_times.html     |    8 +-
 .../how_to/work_with_relay/sg_execution_times.html |    6 +-
 docs/how_to/work_with_schedules/scan.html          |   12 +-
 .../work_with_schedules/sg_execution_times.html    |   18 +-
 docs/how_to/work_with_schedules/tensorize.html     |    4 +-
 docs/how_to/work_with_schedules/tuple_inputs.html  |   28 +-
 docs/install/from_source.html                      |    2 +
 docs/langref/hybrid_script.html                    |   10 +
 docs/langref/index.html                            |   10 +
 docs/langref/relay_adt.html                        |   10 +
 docs/langref/relay_expr.html                       |   10 +
 docs/langref/relay_op.html                         |   10 +
 docs/langref/relay_pattern.html                    |   10 +
 docs/langref/relay_type.html                       |   10 +
 docs/microtvm/index.html                           |   10 +
 docs/objects.inv                                   |  Bin 20748 -> 20853 bytes
 docs/profiling/index.html                          |   10 +
 docs/profiling/papi.html                           |   10 +
 docs/reference/api/doxygen/annotated.html          |  305 +-
 docs/reference/api/doxygen/arg__info_8h.html       |    2 +-
 .../api/doxygen/arg__info_8h__dep__incl.svg        |  116 +-
 docs/reference/api/doxygen/array_8h.html           |    2 +-
 docs/reference/api/doxygen/array_8h__dep__incl.svg | 1914 +++--
 .../api/doxygen/attr__registry__map_8h.html        |    2 +-
 .../doxygen/attr__registry__map_8h__dep__incl.svg  |  750 +-
 docs/reference/api/doxygen/builder_8h_source.html  |    4 +-
 .../api/doxygen/c__runtime__api_8h__dep__incl.svg  |  600 +-
 docs/reference/api/doxygen/classes.html            |  399 +-
 .../api/doxygen/classtvm_1_1BaseAttrsNode.html     |   10 +-
 .../classtvm_1_1BaseAttrsNode__coll__graph.svg     |   16 +-
 .../classtvm_1_1CompilationConfig-members.html     |  101 +
 ...ler.html => classtvm_1_1CompilationConfig.html} |  154 +-
 ...classtvm_1_1CompilationConfigNode-members.html} |   40 +-
 ...html => classtvm_1_1CompilationConfigNode.html} |  355 +-
 ...sstvm_1_1CompilationConfigNode__coll__graph.svg |  288 +
 ...vm_1_1CompilationConfigNode__inherit__graph.svg |   82 +
 .../classtvm_1_1CompilationConfig__coll__graph.svg |   90 +
 ...asstvm_1_1CompilationConfig__inherit__graph.svg |   60 +
 .../api/doxygen/classtvm_1_1SEScope-members.html   |  111 +
 .../reference/api/doxygen/classtvm_1_1SEScope.html |  651 ++
 ....html => classtvm_1_1SEScopeCache-members.html} |   15 +-
 .../api/doxygen/classtvm_1_1SEScopeCache.html      |  173 +
 .../classtvm_1_1SEScopeCache__coll__graph.svg      |   24 +
 ...s.html => classtvm_1_1SEScopeNode-members.html} |   58 +-
 .../api/doxygen/classtvm_1_1SEScopeNode.html       |  535 ++
 .../classtvm_1_1SEScopeNode__coll__graph.svg       |  268 +
 .../classtvm_1_1SEScopeNode__inherit__graph.svg    |  134 +
 .../doxygen/classtvm_1_1SEScope__coll__graph.svg   |  100 +
 .../classtvm_1_1SEScope__inherit__graph.svg        |   70 +
 .../doxygen/classtvm_1_1TargetNode-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1TargetNode.html        |  102 +-
 .../classtvm_1_1TargetNode__coll__graph.svg        |  404 +-
 .../classtvm_1_1TargetNode__inherit__graph.svg     |  128 +-
 ...eta__schedule_1_1ApplyHistoryBest-members.html} |   38 +-
 ...tvm_1_1meta__schedule_1_1ApplyHistoryBest.html} |  175 +-
 ..._schedule_1_1ApplyHistoryBestNode-members.html} |   45 +-
 ...1_1meta__schedule_1_1ApplyHistoryBestNode.html} |  347 +-
 ...hedule_1_1ApplyHistoryBestNode__coll__graph.svg |  194 +
 ...ule_1_1ApplyHistoryBestNode__inherit__graph.svg |   99 +
 ...__schedule_1_1ApplyHistoryBest__coll__graph.svg |  120 +
 ...chedule_1_1ApplyHistoryBest__inherit__graph.svg |   90 +
 ...a__schedule_1_1DatabaseNode__inherit__graph.svg |   10 +-
 ..._1meta__schedule_1_1ExtractedTask-members.html} |   37 +-
 ...asstvm_1_1meta__schedule_1_1ExtractedTask.html} |  151 +-
 ...ta__schedule_1_1ExtractedTaskNode-members.html} |   38 +-
 ...vm_1_1meta__schedule_1_1ExtractedTaskNode.html} |  340 +-
 ..._schedule_1_1ExtractedTaskNode__coll__graph.svg |  250 +
 ...edule_1_1ExtractedTaskNode__inherit__graph.svg} |  117 +-
 ...eta__schedule_1_1ExtractedTask__coll__graph.svg |   91 +
 ...__schedule_1_1ExtractedTask__inherit__graph.svg |   61 +
 ...a__schedule_1_1MetaScheduleContext-members.html |  108 +
 ..._1_1meta__schedule_1_1MetaScheduleContext.html} |  293 +-
 ...hedule_1_1MetaScheduleContextNode-members.html} |   35 +-
 ...meta__schedule_1_1MetaScheduleContextNode.html} |  344 +-
 ...le_1_1MetaScheduleContextNode__coll__graph.svg} |  134 +-
 ..._1_1MetaScheduleContextNode__inherit__graph.svg |  122 +
 ...chedule_1_1MetaScheduleContext__coll__graph.svg |   97 +
 ...dule_1_1MetaScheduleContext__inherit__graph.svg |  113 +
 ...asstvm_1_1meta__schedule_1_1PyDatabaseNode.html |    4 +-
 ...ta__schedule_1_1PyDatabaseNode__coll__graph.svg |   10 +-
 ..._schedule_1_1PyDatabaseNode__inherit__graph.svg |   10 +-
 ...a__schedule_1_1PyTaskSchedulerNode-members.html |   67 +-
 ...m_1_1meta__schedule_1_1PyTaskSchedulerNode.html |   81 +-
 ...chedule_1_1PyTaskSchedulerNode__coll__graph.svg |  427 +-
 ...dule_1_1PyTaskSchedulerNode__inherit__graph.svg |  155 +-
 ...1meta__schedule_1_1TaskExtraction-members.html} |   38 +-
 ...sstvm_1_1meta__schedule_1_1TaskExtraction.html} |  186 +-
 ...a__schedule_1_1TaskExtractionNode-members.html} |   38 +-
 ...m_1_1meta__schedule_1_1TaskExtractionNode.html} |  347 +-
 ...schedule_1_1TaskExtractionNode__coll__graph.svg |  201 +
 ...edule_1_1TaskExtractionNode__inherit__graph.svg |   99 +
 ...ta__schedule_1_1TaskExtraction__coll__graph.svg |  120 +
 ..._schedule_1_1TaskExtraction__inherit__graph.svg |   90 +
 ...1_1meta__schedule_1_1TaskScheduler-members.html |    2 +-
 ...lasstvm_1_1meta__schedule_1_1TaskScheduler.html |   38 +-
 ...eta__schedule_1_1TaskSchedulerNode-members.html |   51 +-
 ...tvm_1_1meta__schedule_1_1TaskSchedulerNode.html |   43 +-
 ..._schedule_1_1TaskSchedulerNode__coll__graph.svg |  295 +-
 ...hedule_1_1TaskSchedulerNode__inherit__graph.svg |  155 +-
 ...vm_1_1runtime_1_1ModuleNode__inherit__graph.svg |   49 +-
 .../api/doxygen/classtvm_1_1runtime_1_1Object.html |    2 +-
 .../doxygen/classtvm_1_1runtime_1_1ObjectRef.html  |    2 +-
 ...asstvm_1_1runtime_1_1ObjectRef__coll__graph.svg |   12 +-
 .../classtvm_1_1runtime_1_1Object__coll__graph.svg |    8 +-
 ...tvm_1_1runtime_1_1vm_1_1Executable-members.html |   85 +-
 .../classtvm_1_1runtime_1_1vm_1_1Executable.html   |   26 +-
 ...1_1runtime_1_1vm_1_1Executable__coll__graph.svg |  155 +-
 ...runtime_1_1vm_1_1Executable__inherit__graph.svg |  151 +-
 ...untime_1_1vm_1_1VirtualMachine__coll__graph.svg |   53 +-
 .../classtvm_1_1tir_1_1ScheduleNode-members.html   |   35 +-
 .../doxygen/classtvm_1_1tir_1_1ScheduleNode.html   |  139 +
 ...lasstvm_1_1tir_1_1ScheduleNode__coll__graph.svg |    2 +-
 ...stvm_1_1tir_1_1ScheduleNode__inherit__graph.svg |    2 +-
 docs/reference/api/doxygen/codegen_8h_source.html  |    2 +-
 ...ry__map_8h.html => compilation__config_8h.html} |   34 +-
 .../api/doxygen/compilation__config_8h__incl.svg   | 1576 ++++
 .../api/doxygen/compilation__config_8h_source.html |  104 +
 .../api/doxygen/cuda_2dense_8h_source.html         |    2 +-
 .../api/doxygen/cuda_2injective_8h_source.html     |    2 +-
 .../api/doxygen/cuda_2pooling_8h_source.html       |    2 +-
 .../api/doxygen/cuda_2reduction_8h_source.html     |    2 +-
 .../api/doxygen/cuda_2softmax_8h_source.html       |    2 +-
 .../api/doxygen/data__type_8h__dep__incl.svg       |  672 +-
 docs/reference/api/doxygen/database_8h.html        |    2 +-
 .../api/doxygen/database_8h__dep__incl.svg         |   36 +-
 docs/reference/api/doxygen/database_8h_source.html |   12 +-
 docs/reference/api/doxygen/diagnostic_8h.html      |    2 +-
 .../api/doxygen/diagnostic_8h__dep__incl.svg       | 1331 ++--
 docs/reference/api/doxygen/dir_000014_000022.html  |    2 +-
 docs/reference/api/doxygen/dir_000023_000006.html  |    2 +-
 .../dir_02be2c9d68e402f80df60bd528724ee5_dep.svg   |    4 +-
 .../dir_4378f18824ae7d4ad48f8d7785cd7ac8.html      |    2 +
 .../dir_4378f18824ae7d4ad48f8d7785cd7ac8_dep.svg   |    8 +-
 .../dir_5da96592f3a7c442b838b075c58254c2.html      |    6 +
 .../dir_5da96592f3a7c442b838b075c58254c2_dep.svg   |    4 +-
 .../dir_63946bee875c6d52bce55e72a67a86ad_dep.svg   |    4 +-
 .../dir_8e4e25e66b8623d88c5b5dd2040bca97_dep.svg   |    4 +-
 .../dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg   |    8 +-
 docs/reference/api/doxygen/error_8h.html           |    2 +-
 docs/reference/api/doxygen/error_8h__dep__incl.svg | 1160 +--
 .../api/doxygen/executable_8h_source.html          |   17 +-
 docs/reference/api/doxygen/files.html              |   23 +-
 docs/reference/api/doxygen/functions_0x7e.html     |    6 +
 docs/reference/api/doxygen/functions__.html        |    7 +
 docs/reference/api/doxygen/functions_a.html        |    3 +
 docs/reference/api/doxygen/functions_c.html        |   18 +-
 docs/reference/api/doxygen/functions_d.html        |   18 +-
 docs/reference/api/doxygen/functions_e.html        |    9 +
 docs/reference/api/doxygen/functions_f.html        |   27 +-
 .../reference/api/doxygen/functions_func_0x7e.html |    6 +
 docs/reference/api/doxygen/functions_func_a.html   |    7 +-
 docs/reference/api/doxygen/functions_func_c.html   |   23 +-
 docs/reference/api/doxygen/functions_func_d.html   |    8 +-
 docs/reference/api/doxygen/functions_func_e.html   |   13 +-
 docs/reference/api/doxygen/functions_func_f.html   |   17 +-
 docs/reference/api/doxygen/functions_func_g.html   |    8 +-
 docs/reference/api/doxygen/functions_func_i.html   |   16 +-
 docs/reference/api/doxygen/functions_func_j.html   |    1 +
 docs/reference/api/doxygen/functions_func_m.html   |   10 +-
 docs/reference/api/doxygen/functions_func_p.html   |    2 +-
 ...functions_func_j.html => functions_func_q.html} |   16 +-
 docs/reference/api/doxygen/functions_func_s.html   |   24 +-
 docs/reference/api/doxygen/functions_func_t.html   |   23 +-
 docs/reference/api/doxygen/functions_func_u.html   |    5 +-
 docs/reference/api/doxygen/functions_func_v.html   |   30 +-
 docs/reference/api/doxygen/functions_g.html        |    8 +-
 docs/reference/api/doxygen/functions_h.html        |    6 +
 docs/reference/api/doxygen/functions_i.html        |   20 +-
 docs/reference/api/doxygen/functions_j.html        |    1 +
 docs/reference/api/doxygen/functions_l.html        |    3 +
 docs/reference/api/doxygen/functions_m.html        |   15 +-
 docs/reference/api/doxygen/functions_o.html        |    9 +-
 docs/reference/api/doxygen/functions_p.html        |    9 +-
 .../doxygen/{functions_j.html => functions_q.html} |   16 +-
 docs/reference/api/doxygen/functions_rela.html     |   15 +
 docs/reference/api/doxygen/functions_s.html        |   22 +-
 docs/reference/api/doxygen/functions_t.html        |   36 +-
 docs/reference/api/doxygen/functions_type.html     |    3 +
 docs/reference/api/doxygen/functions_u.html        |    3 +
 docs/reference/api/doxygen/functions_v.html        |   41 +-
 docs/reference/api/doxygen/functions_vars.html     |    7 +
 docs/reference/api/doxygen/functions_vars_d.html   |   12 +-
 docs/reference/api/doxygen/functions_vars_f.html   |    3 +
 docs/reference/api/doxygen/functions_vars_h.html   |    6 +
 docs/reference/api/doxygen/functions_vars_l.html   |    3 +
 docs/reference/api/doxygen/functions_vars_m.html   |    4 +
 docs/reference/api/doxygen/functions_vars_o.html   |    3 +
 docs/reference/api/doxygen/functions_vars_p.html   |    5 +-
 docs/reference/api/doxygen/functions_vars_t.html   |    7 +-
 docs/reference/api/doxygen/functions_vars_v.html   |    3 +
 docs/reference/api/doxygen/functions_w.html        |    3 +
 .../api/doxygen/functor_8h__dep__incl.svg          |  604 +-
 .../api/doxygen/generic_2default_8h_source.html    |    2 +-
 .../api/doxygen/generic_2extern_8h_source.html     |    2 +-
 .../api/doxygen/generic_2injective_8h_source.html  |    2 +-
 docs/reference/api/doxygen/hierarchy.html          | 1334 ++--
 docs/reference/api/doxygen/inherit_graph_10.svg    |   16 +-
 docs/reference/api/doxygen/inherit_graph_103.svg   | 7509 ++++++++++----------
 docs/reference/api/doxygen/inherit_graph_111.svg   | 5653 ++++++++-------
 docs/reference/api/doxygen/inherit_graph_166.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_167.svg   |   15 +-
 docs/reference/api/doxygen/inherit_graph_168.svg   |   14 +-
 docs/reference/api/doxygen/inherit_graph_169.svg   |   15 +-
 docs/reference/api/doxygen/inherit_graph_170.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_171.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_172.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_173.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_174.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_175.svg   |   15 +-
 docs/reference/api/doxygen/inherit_graph_176.svg   |   17 +-
 docs/reference/api/doxygen/inherit_graph_177.svg   |   17 +-
 docs/reference/api/doxygen/inherit_graph_178.svg   |   15 +-
 docs/reference/api/doxygen/inherit_graph_179.svg   |   15 +-
 docs/reference/api/doxygen/inherit_graph_180.svg   |   14 +-
 docs/reference/api/doxygen/inherit_graph_181.svg   |   17 +-
 docs/reference/api/doxygen/inherit_graph_182.svg   |   80 +-
 docs/reference/api/doxygen/inherit_graph_183.svg   |   70 +-
 docs/reference/api/doxygen/inherit_graph_184.svg   |   82 +-
 docs/reference/api/doxygen/inherit_graph_185.svg   |   19 +-
 docs/reference/api/doxygen/inherit_graph_186.svg   |   15 +-
 docs/reference/api/doxygen/inherit_graph_187.svg   |   15 +-
 docs/reference/api/doxygen/inherit_graph_188.svg   |   29 +-
 docs/reference/api/doxygen/inherit_graph_189.svg   |   24 +-
 docs/reference/api/doxygen/inherit_graph_190.svg   |   30 +-
 docs/reference/api/doxygen/inherit_graph_191.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_192.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_193.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_194.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_195.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_196.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_197.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_198.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_199.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_200.svg   |   12 +-
 docs/reference/api/doxygen/inherit_graph_201.svg   |   12 +-
 ...inherit_graph_201.svg => inherit_graph_202.svg} |    0
 docs/reference/api/doxygen/inherit_graph_39.svg    |   16 +-
 docs/reference/api/doxygen/inherit_graph_43.svg    |    8 +-
 docs/reference/api/doxygen/inherits.html           |   78 +-
 docs/reference/api/doxygen/instruction_8h.html     |    2 +-
 .../api/doxygen/instruction_8h__dep__incl.svg      |  148 +-
 docs/reference/api/doxygen/instrument_8h.html      |    2 +-
 .../api/doxygen/instrument_8h__dep__incl.svg       | 1193 ++--
 .../{database_8h.html => integration_8h.html}      |   56 +-
 .../reference/api/doxygen/integration_8h__incl.svg | 1695 +++++
 .../api/doxygen/integration_8h_source.html         |  108 +
 .../api/doxygen/interpreter_8h_source.html         |    2 +-
 docs/reference/api/doxygen/ir_2adt_8h.html         |    2 +-
 .../api/doxygen/ir_2adt_8h__dep__incl.svg          | 1372 ++--
 .../api/doxygen/ir_2attrs_8h__dep__incl.svg        |  552 +-
 .../reference/api/doxygen/ir_2attrs_8h_source.html |    2 +-
 .../api/doxygen/ir_2expr_8h__dep__incl.svg         |  440 +-
 docs/reference/api/doxygen/ir_2function_8h.html    |    2 +-
 .../api/doxygen/ir_2function_8h__dep__incl.svg     | 1540 ++--
 docs/reference/api/doxygen/ir_2module_8h.html      |    2 +-
 .../api/doxygen/ir_2module_8h__dep__incl.svg       | 1364 ++--
 docs/reference/api/doxygen/ir_2transform_8h.html   |    2 +-
 .../api/doxygen/ir_2transform_8h__dep__incl.svg    | 1255 ++--
 .../api/doxygen/ir_2type_8h__dep__incl.svg         |  652 +-
 docs/reference/api/doxygen/map_8h__dep__incl.svg   |  568 +-
 docs/reference/api/doxygen/menudata.js             |    2 +
 .../api/doxygen/namespacemembers_func_c.html       |    2 +-
 .../api/doxygen/namespacemembers_func_p.html       |    6 +-
 docs/reference/api/doxygen/namespacemembers_m.html |    7 +-
 docs/reference/api/doxygen/namespacemembers_p.html |    6 +-
 docs/reference/api/doxygen/namespacemembers_t.html |    3 +
 .../api/doxygen/namespacemembers_type.html         |    6 +
 docs/reference/api/doxygen/namespacetvm.html       |   79 +-
 .../doxygen/namespacetvm_1_1meta__schedule.html    |   24 +
 .../api/doxygen/ndarray_8h__dep__incl.svg          |  480 +-
 docs/reference/api/doxygen/node_8h__dep__incl.svg  |  624 +-
 .../reference/api/doxygen/object_8h__dep__incl.svg |  756 +-
 .../api/doxygen/op__strategy_8h_source.html        |    2 +-
 .../api/doxygen/optional_8h__dep__incl.svg         |  568 +-
 .../api/doxygen/packed__func_8h__dep__incl.svg     |  492 +-
 docs/reference/api/doxygen/reflection_8h.html      |    2 +-
 .../api/doxygen/reflection_8h__dep__incl.svg       | 1428 ++--
 .../api/doxygen/registry_8h__dep__incl.svg         |  256 +-
 .../doxygen/relay_2op__attr__types_8h_source.html  |    2 +-
 .../api/doxygen/relay_2transform_8h_source.html    |    2 +-
 .../api/doxygen/repr__printer_8h__dep__incl.svg    |  608 +-
 .../api/doxygen/rocm_2dense_8h_source.html         |    2 +-
 .../api/doxygen/rocm_2injective_8h_source.html     |    2 +-
 .../api/doxygen/rocm_2pooling_8h_source.html       |    2 +-
 .../api/doxygen/rocm_2reduction_8h_source.html     |    2 +-
 .../api/doxygen/rocm_2softmax_8h_source.html       |    2 +-
 docs/reference/api/doxygen/runner_8h_source.html   |    2 +-
 .../api/doxygen/runtime_2container_2adt_8h.html    |    2 +-
 .../runtime_2container_2adt_8h__dep__incl.svg      | 1443 ++--
 .../api/doxygen/runtime_2container_2base_8h.html   |    2 +-
 .../runtime_2container_2base_8h__dep__incl.svg     | 1675 +++--
 .../api/doxygen/runtime_2memory_8h__dep__incl.svg  |  628 +-
 .../api/doxygen/runtime_2module_8h__dep__incl.svg  |  480 +-
 .../api/doxygen/runtime_2vm_2vm_8h_source.html     |    6 +-
 .../doxygen/{error_8h.html => se__scope_8h.html}   |   47 +-
 .../api/doxygen/se__scope_8h__dep__incl.svg        |   36 +
 docs/reference/api/doxygen/se__scope_8h__incl.svg  | 1595 +++++
 .../reference/api/doxygen/se__scope_8h_source.html |  111 +
 docs/reference/api/doxygen/search/all_1.js         |    6 +-
 docs/reference/api/doxygen/search/all_10.js        |    3 +-
 docs/reference/api/doxygen/search/all_11.js        |    7 +-
 docs/reference/api/doxygen/search/all_12.js        |    4 +-
 docs/reference/api/doxygen/search/all_13.js        |    6 +-
 docs/reference/api/doxygen/search/all_14.js        |   23 +-
 docs/reference/api/doxygen/search/all_15.js        |   24 +-
 docs/reference/api/doxygen/search/all_16.js        |    6 +-
 docs/reference/api/doxygen/search/all_17.js        |    9 +-
 docs/reference/api/doxygen/search/all_18.js        |    1 +
 docs/reference/api/doxygen/search/all_1b.js        |    2 +
 docs/reference/api/doxygen/search/all_2.js         |    6 +
 docs/reference/api/doxygen/search/all_3.js         |    2 +-
 docs/reference/api/doxygen/search/all_4.js         |    8 +-
 docs/reference/api/doxygen/search/all_5.js         |    9 +-
 docs/reference/api/doxygen/search/all_6.js         |    6 +-
 docs/reference/api/doxygen/search/all_7.js         |    9 +-
 docs/reference/api/doxygen/search/all_8.js         |    2 +
 docs/reference/api/doxygen/search/all_9.js         |    2 +
 docs/reference/api/doxygen/search/all_a.js         |    6 +-
 docs/reference/api/doxygen/search/all_b.js         |    2 +-
 docs/reference/api/doxygen/search/all_d.js         |    3 +-
 docs/reference/api/doxygen/search/all_e.js         |   11 +-
 docs/reference/api/doxygen/search/classes_0.js     |    6 +
 docs/reference/api/doxygen/search/classes_10.js    |    7 +-
 docs/reference/api/doxygen/search/classes_11.js    |    4 +-
 docs/reference/api/doxygen/search/classes_2.js     |    2 +
 docs/reference/api/doxygen/search/classes_4.js     |    6 +-
 docs/reference/api/doxygen/search/classes_5.js     |    2 +-
 docs/reference/api/doxygen/search/classes_8.js     |    2 +-
 docs/reference/api/doxygen/search/classes_9.js     |    2 +-
 docs/reference/api/doxygen/search/classes_a.js     |    3 +
 docs/reference/api/doxygen/search/files_2.js       |    1 +
 docs/reference/api/doxygen/search/files_7.js       |    1 +
 docs/reference/api/doxygen/search/files_e.js       |    1 +
 docs/reference/api/doxygen/search/functions_1.js   |    1 +
 docs/reference/api/doxygen/search/functions_10.js  |    4 +-
 docs/reference/api/doxygen/search/functions_11.js  |    4 +-
 docs/reference/api/doxygen/search/functions_12.js  |    2 +-
 docs/reference/api/doxygen/search/functions_13.js  |    8 +-
 docs/reference/api/doxygen/search/functions_14.js  |   14 +-
 docs/reference/api/doxygen/search/functions_15.js  |    4 +-
 docs/reference/api/doxygen/search/functions_16.js  |    6 +-
 docs/reference/api/doxygen/search/functions_19.js  |    2 +
 docs/reference/api/doxygen/search/functions_3.js   |    6 +-
 docs/reference/api/doxygen/search/functions_4.js   |    3 +-
 docs/reference/api/doxygen/search/functions_5.js   |    3 +
 docs/reference/api/doxygen/search/functions_6.js   |    5 +
 docs/reference/api/doxygen/search/functions_7.js   |    2 +
 docs/reference/api/doxygen/search/functions_9.js   |    3 +
 docs/reference/api/doxygen/search/functions_a.js   |    2 +-
 docs/reference/api/doxygen/search/functions_d.js   |    6 +-
 docs/reference/api/doxygen/search/related_2.js     |    1 +
 docs/reference/api/doxygen/search/related_7.js     |    1 +
 docs/reference/api/doxygen/search/related_b.js     |    2 +
 docs/reference/api/doxygen/search/related_d.js     |    1 +
 docs/reference/api/doxygen/search/typedefs_5.js    |    1 +
 docs/reference/api/doxygen/search/typedefs_9.js    |    1 +
 docs/reference/api/doxygen/search/typedefs_e.js    |    1 +
 docs/reference/api/doxygen/search/variables_0.js   |    6 +-
 docs/reference/api/doxygen/search/variables_12.js  |    6 +-
 docs/reference/api/doxygen/search/variables_14.js  |    1 +
 docs/reference/api/doxygen/search/variables_4.js   |    5 +-
 docs/reference/api/doxygen/search/variables_6.js   |    1 +
 docs/reference/api/doxygen/search/variables_8.js   |    4 +-
 docs/reference/api/doxygen/search/variables_b.js   |    1 +
 docs/reference/api/doxygen/search/variables_c.js   |    3 +-
 docs/reference/api/doxygen/search/variables_e.js   |    1 +
 docs/reference/api/doxygen/search/variables_f.js   |    3 +-
 .../api/doxygen/search__strategy_8h_source.html    |   14 +-
 .../api/doxygen/search__task_8h_source.html        |    2 +-
 .../api/doxygen/serializer_8h__dep__incl.svg       |  468 +-
 docs/reference/api/doxygen/shape__tuple_8h.html    |    2 +-
 .../api/doxygen/shape__tuple_8h__dep__incl.svg     | 1435 ++--
 docs/reference/api/doxygen/source__map_8h.html     |    2 +-
 .../api/doxygen/source__map_8h__dep__incl.svg      | 1366 ++--
 .../api/doxygen/space__generator_8h_source.html    |    6 +-
 docs/reference/api/doxygen/span_8h.html            |    2 +-
 docs/reference/api/doxygen/span_8h__dep__incl.svg  | 1635 +++--
 docs/reference/api/doxygen/stmt_8h__dep__incl.svg  |  120 +-
 .../reference/api/doxygen/string_8h__dep__incl.svg |  612 +-
 ...tvm_1_1runtime_1_1vm_1_1VMFunction-members.html |    4 +-
 .../structtvm_1_1runtime_1_1vm_1_1VMFunction.html  |   22 +-
 .../doxygen/structural__equal_8h__dep__incl.svg    |  632 +-
 .../api/doxygen/structural__hash_8h__dep__incl.svg |  632 +-
 docs/reference/api/doxygen/tag_8h_source.html      |    2 +-
 docs/reference/api/doxygen/target_8h.html          |   20 +-
 .../reference/api/doxygen/target_8h__dep__incl.svg |  664 +-
 docs/reference/api/doxygen/target_8h_source.html   |   15 +-
 docs/reference/api/doxygen/target__kind_8h.html    |    2 +-
 .../api/doxygen/target__kind_8h__dep__incl.svg     |  674 +-
 .../api/doxygen/task__scheduler_8h_source.html     |   33 +-
 .../api/doxygen/tir_2expr_8h__dep__incl.svg        |   72 +-
 docs/reference/api/doxygen/tir_2function_8h.html   |    2 +-
 .../api/doxygen/tir_2function_8h__dep__incl.svg    | 1062 +--
 .../doxygen/tir_2schedule_2schedule_8h_source.html |    4 +-
 docs/reference/api/doxygen/trace_8h.html           |    2 +-
 docs/reference/api/doxygen/trace_8h__dep__incl.svg |  138 +-
 docs/reference/api/doxygen/trace_8h_source.html    |    2 +-
 docs/reference/api/doxygen/var_8h__dep__incl.svg   |   72 +-
 docs/reference/api/doxygen/with_8h.html            |    2 +-
 docs/reference/api/doxygen/with_8h__dep__incl.svg  | 1368 ++--
 docs/reference/api/doxygen/x86_2bnn_8h_source.html |    2 +-
 .../api/doxygen/x86_2default_8h_source.html        |    2 +-
 .../api/doxygen/x86_2injective_8h_source.html      |    2 +-
 docs/reference/api/python/auto_scheduler.html      |    4 +-
 docs/reference/api/python/ir.html                  |  129 +-
 docs/reference/api/python/micro.html               |   28 +-
 docs/reference/api/python/target.html              |   21 +-
 docs/reference/api/python/te.html                  |   22 +-
 docs/reference/api/python/tir.html                 |   49 +-
 .../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/topic/vta/tutorials/vta_get_started.html      |    4 +-
 docs/tutorial/auto_scheduler_matmul_x86.html       |    4 +-
 docs/tutorial/autotvm_relay_x86.html               |  170 +-
 docs/tutorial/cross_compilation_and_rpc.html       |    2 +-
 docs/tutorial/intro_topi.html                      |    2 +-
 docs/tutorial/sg_execution_times.html              |   18 +-
 docs/tutorial/tensor_expr_get_started.html         |   50 +-
 .../auto_scheduler/tune_conv2d_layer_cuda.html     |   10 +
 .../tutorials/auto_scheduler/tune_network_arm.html |   10 +
 .../auto_scheduler/tune_network_cuda.html          |   10 +
 .../auto_scheduler/tune_network_mali.html          |   10 +
 .../tutorials/auto_scheduler/tune_network_x86.html |   10 +
 docs/tutorials/auto_scheduler/tune_sparse_x86.html |   10 +
 docs/tutorials/autotvm/tune_conv2d_cuda.html       |   10 +
 docs/tutorials/autotvm/tune_relay_arm.html         |   10 +
 docs/tutorials/autotvm/tune_relay_cuda.html        |   10 +
 docs/tutorials/autotvm/tune_relay_mobile_gpu.html  |   10 +
 docs/tutorials/autotvm/tune_relay_x86.html         |   10 +
 docs/tutorials/dev/bring_your_own_datatypes.html   |   10 +
 docs/tutorials/dev/low_level_custom_pass.html      |   10 +
 docs/tutorials/dev/use_pass_infra.html             |   10 +
 docs/tutorials/dev/use_pass_instrument.html        |   10 +
 docs/tutorials/frontend/build_gcn.html             |   10 +
 .../frontend/deploy_model_on_android.html          |   10 +
 docs/tutorials/frontend/deploy_model_on_rasp.html  |   10 +
 .../frontend/deploy_object_detection_pytorch.html  |   10 +
 docs/tutorials/frontend/deploy_prequantized.html   |   10 +
 .../frontend/deploy_prequantized_tflite.html       |   10 +
 docs/tutorials/frontend/deploy_quantized.html      |   10 +
 docs/tutorials/frontend/deploy_sparse.html         |   10 +
 docs/tutorials/frontend/deploy_ssd_gluoncv.html    |   10 +
 docs/tutorials/frontend/from_caffe2.html           |   10 +
 docs/tutorials/frontend/from_coreml.html           |   10 +
 docs/tutorials/frontend/from_darknet.html          |   10 +
 docs/tutorials/frontend/from_keras.html            |   10 +
 docs/tutorials/frontend/from_mxnet.html            |   10 +
 docs/tutorials/frontend/from_onnx.html             |   10 +
 docs/tutorials/frontend/from_paddle.html           |   10 +
 docs/tutorials/frontend/from_pytorch.html          |   10 +
 docs/tutorials/frontend/from_tensorflow.html       |   10 +
 docs/tutorials/frontend/from_tflite.html           |   10 +
 docs/tutorials/frontend/using_external_lib.html    |   10 +
 .../get_started/auto_scheduler_matmul_x86.html     |   10 +
 docs/tutorials/get_started/autotvm_matmul_x86.html |   10 +
 docs/tutorials/get_started/autotvm_relay_x86.html  |   10 +
 .../get_started/cross_compilation_and_rpc.html     |   10 +
 docs/tutorials/get_started/install.html            |   10 +
 docs/tutorials/get_started/introduction.html       |   10 +
 docs/tutorials/get_started/relay_quick_start.html  |   10 +
 .../get_started/tensor_expr_get_started.html       |   10 +
 .../get_started/tvmc_command_line_driver.html      |   10 +
 docs/tutorials/language/extern_op.html             |   10 +
 docs/tutorials/language/intrin_math.html           |   10 +
 docs/tutorials/language/reduction.html             |   10 +
 docs/tutorials/language/scan.html                  |   10 +
 docs/tutorials/language/schedule_primitives.html   |   10 +
 docs/tutorials/language/tedd.html                  |   10 +
 docs/tutorials/language/tensorize.html             |   10 +
 docs/tutorials/language/tuple_inputs.html          |   10 +
 docs/tutorials/micro/micro_autotune.html           |   10 +
 docs/tutorials/micro/micro_reference_vm.html       |   10 +
 docs/tutorials/micro/micro_tflite.html             |   10 +
 docs/tutorials/optimize/opt_conv_cuda.html         |   10 +
 docs/tutorials/optimize/opt_conv_tensorcore.html   |   10 +
 docs/tutorials/optimize/opt_gemm.html              |   10 +
 docs/tutorials/topi/intro_topi.html                |   10 +
 docs/vta/dev/config.html                           |   10 +
 docs/vta/dev/hardware.html                         |   10 +
 docs/vta/dev/index.html                            |   10 +
 docs/vta/index.html                                |   10 +
 docs/vta/install.html                              |   10 +
 649 files changed, 42443 insertions(+), 30934 deletions(-)

diff --git a/docs/_downloads/2fb9ae7bf124f72614a43137cf2919cb/micro_tflite.py b/docs/_downloads/2fb9ae7bf124f72614a43137cf2919cb/micro_tflite.py
index cab105c..35b08d8 100644
--- a/docs/_downloads/2fb9ae7bf124f72614a43137cf2919cb/micro_tflite.py
+++ b/docs/_downloads/2fb9ae7bf124f72614a43137cf2919cb/micro_tflite.py
@@ -269,10 +269,7 @@ os.unlink(model_library_format_tar_path)
 import subprocess
 import pathlib
 
-repo_root = pathlib.Path(
-    subprocess.check_output(["git", "rev-parse", "--show-toplevel"], encoding="utf-8").strip()
-)
-template_project_path = repo_root / "src" / "runtime" / "crt" / "host"
+template_project_path = pathlib.Path(tvm.micro.get_microtvm_template_projects("crt"))
 project_options = {}  # You can use options to provide platform-specific options through TVM.
 
 # Compiling for physical hardware (or an emulated board, like the mps_an521)
@@ -280,7 +277,7 @@ project_options = {}  # You can use options to provide platform-specific options
 #  For physical hardware, you can try out the Zephyr platform by using a different template project
 #  and options:
 #
-#     template_project_path = repo_root / "apps" / "microtvm" / "zephyr" / "template_project"
+#     template_project_path = pathlib.Path(tvm.micro.get_microtvm_template_projects("zephyr"))
 #     project_options = {"project_type": "host_driven", zephyr_board": "nucleo_f746zg"}}
 
 # Create a temporary directory
diff --git a/docs/_downloads/5b279d8a8718816263fa65b0eef1a5c0/micro_tflite.ipynb b/docs/_downloads/5b279d8a8718816263fa65b0eef1a5c0/micro_tflite.ipynb
index 788fa2f..5ef732c 100644
--- a/docs/_downloads/5b279d8a8718816263fa65b0eef1a5c0/micro_tflite.ipynb
+++ b/docs/_downloads/5b279d8a8718816263fa65b0eef1a5c0/micro_tflite.ipynb
@@ -123,7 +123,7 @@
       },
       "outputs": [],
       "source": [
-        "with tvm.transform.PassContext(\n    opt_level=3, config={\"tir.disable_vectorize\": True}, disabled_pass=[\"AlterOpLayout\"]\n):\n    module = relay.build(mod, target=TARGET, params=params)\n\n\n# Inspecting the compilation output\n# ---------------------------------\n#\n# The compilation process has produced some C code implementing the operators in this graph. We\n# can inspect it by printing the CSourceModule contents (for the purposes of this tutorial, let's\n# just print t [...]
+        "with tvm.transform.PassContext(\n    opt_level=3, config={\"tir.disable_vectorize\": True}, disabled_pass=[\"AlterOpLayout\"]\n):\n    module = relay.build(mod, target=TARGET, params=params)\n\n\n# Inspecting the compilation output\n# ---------------------------------\n#\n# The compilation process has produced some C code implementing the operators in this graph. We\n# can inspect it by printing the CSourceModule contents (for the purposes of this tutorial, let's\n# just print t [...]
       ]
     },
     {
diff --git a/docs/_downloads/9ccca8fd489a1486ac71b55a55c320c5/micro_autotune.py b/docs/_downloads/9ccca8fd489a1486ac71b55a55c320c5/micro_autotune.py
index e7a1fa8..d310671 100644
--- a/docs/_downloads/9ccca8fd489a1486ac71b55a55c320c5/micro_autotune.py
+++ b/docs/_downloads/9ccca8fd489a1486ac71b55a55c320c5/micro_autotune.py
@@ -113,12 +113,9 @@ assert len(tasks) > 0
 # choose other options by choosing from `PLATFORM` list.
 #
 
-repo_root = pathlib.Path(
-    subprocess.check_output(["git", "rev-parse", "--show-toplevel"], encoding="utf-8").strip()
-)
 
 module_loader = tvm.micro.AutoTvmModuleLoader(
-    template_project_dir=repo_root / "src" / "runtime" / "crt" / "host",
+    template_project_dir=pathlib.Path(tvm.micro.get_microtvm_template_projects("crt")),
     project_options={"verbose": False},
 )
 builder = tvm.autotvm.LocalBuilder(
@@ -134,7 +131,7 @@ measure_option = tvm.autotvm.measure_option(builder=builder, runner=runner)
 # Compiling for physical hardware
 # --------------------------------------------------------------------------
 #    module_loader = tvm.micro.AutoTvmModuleLoader(
-#        template_project_dir=repo_root / "apps" / "microtvm" / "zephyr" / "template_project",
+#        template_project_dir=pathlib.Path(tvm.micro.get_microtvm_template_projects("zephyr")),
 #        project_options={
 #            "zephyr_board": BOARD,
 #            "west_cmd": "west",
@@ -183,7 +180,7 @@ with pass_context:
 temp_dir = tvm.contrib.utils.tempdir()
 
 project = tvm.micro.generate_project(
-    str(repo_root / "src" / "runtime" / "crt" / "host"),
+    str(tvm.micro.get_microtvm_template_projects("crt")),
     lowered,
     temp_dir / "project",
     {"verbose": False},
@@ -192,7 +189,7 @@ project = tvm.micro.generate_project(
 # Compiling for physical hardware
 # --------------------------------------------------------------------------
 #    project = tvm.micro.generate_project(
-#        str(repo_root / "apps" / "microtvm" / "zephyr" / "template_project"),
+#        str(tvm.micro.get_microtvm_template_projects("zephyr")),
 #        lowered,
 #        temp_dir / "project",
 #        {
@@ -226,7 +223,7 @@ with tvm.autotvm.apply_history_best("microtvm_autotune.log.txt"):
 temp_dir = tvm.contrib.utils.tempdir()
 
 project = tvm.micro.generate_project(
-    str(repo_root / "src" / "runtime" / "crt" / "host"),
+    str(tvm.micro.get_microtvm_template_projects("crt")),
     lowered_tuned,
     temp_dir / "project",
     {"verbose": False},
@@ -235,7 +232,7 @@ project = tvm.micro.generate_project(
 # Compiling for physical hardware
 # --------------------------------------------------------------------------
 #    project = tvm.micro.generate_project(
-#        str(repo_root / "apps" / "microtvm" / "zephyr" / "template_project"),
+#        str(tvm.micro.get_microtvm_template_projects("zephyr")),
 #        lowered_tuned,
 #        temp_dir / "project",
 #        {
diff --git a/docs/_downloads/f83ba3df2d52f9b54cf141114359481a/micro_autotune.ipynb b/docs/_downloads/f83ba3df2d52f9b54cf141114359481a/micro_autotune.ipynb
index 86f7b55..8f83c5b 100644
--- a/docs/_downloads/f83ba3df2d52f9b54cf141114359481a/micro_autotune.ipynb
+++ b/docs/_downloads/f83ba3df2d52f9b54cf141114359481a/micro_autotune.ipynb
@@ -98,7 +98,7 @@
       },
       "outputs": [],
       "source": [
-        "repo_root = pathlib.Path(\n    subprocess.check_output([\"git\", \"rev-parse\", \"--show-toplevel\"], encoding=\"utf-8\").strip()\n)\n\nmodule_loader = tvm.micro.AutoTvmModuleLoader(\n    template_project_dir=repo_root / \"src\" / \"runtime\" / \"crt\" / \"host\",\n    project_options={\"verbose\": False},\n)\nbuilder = tvm.autotvm.LocalBuilder(\n    n_parallel=1,\n    build_kwargs={\"build_option\": {\"tir.disable_vectorize\": True}},\n    do_fork=True,\n    build_func=tvm.micr [...]
+        "module_loader = tvm.micro.AutoTvmModuleLoader(\n    template_project_dir=pathlib.Path(tvm.micro.get_microtvm_template_projects(\"crt\")),\n    project_options={\"verbose\": False},\n)\nbuilder = tvm.autotvm.LocalBuilder(\n    n_parallel=1,\n    build_kwargs={\"build_option\": {\"tir.disable_vectorize\": True}},\n    do_fork=True,\n    build_func=tvm.micro.autotvm_build_func,\n)\nrunner = tvm.autotvm.LocalRunner(number=1, repeat=1, timeout=100, module_loader=module_loader)\n\nmea [...]
       ]
     },
     {
@@ -116,7 +116,7 @@
       },
       "outputs": [],
       "source": [
-        "with pass_context:\n    lowered = tvm.relay.build(relay_mod, target=TARGET, params=params)\n\ntemp_dir = tvm.contrib.utils.tempdir()\n\nproject = tvm.micro.generate_project(\n    str(repo_root / \"src\" / \"runtime\" / \"crt\" / \"host\"),\n    lowered,\n    temp_dir / \"project\",\n    {\"verbose\": False},\n)\n\n# Compiling for physical hardware\n# --------------------------------------------------------------------------\n#    project = tvm.micro.generate_project(\n#        s [...]
+        "with pass_context:\n    lowered = tvm.relay.build(relay_mod, target=TARGET, params=params)\n\ntemp_dir = tvm.contrib.utils.tempdir()\n\nproject = tvm.micro.generate_project(\n    str(tvm.micro.get_microtvm_template_projects(\"crt\")),\n    lowered,\n    temp_dir / \"project\",\n    {\"verbose\": False},\n)\n\n# Compiling for physical hardware\n# --------------------------------------------------------------------------\n#    project = tvm.micro.generate_project(\n#        str(tv [...]
       ]
     },
     {
@@ -134,7 +134,7 @@
       },
       "outputs": [],
       "source": [
-        "with tvm.autotvm.apply_history_best(\"microtvm_autotune.log.txt\"):\n    with pass_context:\n        lowered_tuned = tvm.relay.build(relay_mod, target=TARGET, params=params)\n\ntemp_dir = tvm.contrib.utils.tempdir()\n\nproject = tvm.micro.generate_project(\n    str(repo_root / \"src\" / \"runtime\" / \"crt\" / \"host\"),\n    lowered_tuned,\n    temp_dir / \"project\",\n    {\"verbose\": False},\n)\n\n# Compiling for physical hardware\n# ----------------------------------------- [...]
+        "with tvm.autotvm.apply_history_best(\"microtvm_autotune.log.txt\"):\n    with pass_context:\n        lowered_tuned = tvm.relay.build(relay_mod, target=TARGET, params=params)\n\ntemp_dir = tvm.contrib.utils.tempdir()\n\nproject = tvm.micro.generate_project(\n    str(tvm.micro.get_microtvm_template_projects(\"crt\")),\n    lowered_tuned,\n    temp_dir / \"project\",\n    {\"verbose\": False},\n)\n\n# Compiling for physical hardware\n# ---------------------------------------------- [...]
       ]
     }
   ],
diff --git a/docs/_sources/dev/how_to/pytest_target_parametrization.rst.txt b/docs/_sources/dev/how_to/pytest_target_parametrization.rst.txt
index 6dfcaf3..3fbb694 100644
--- a/docs/_sources/dev/how_to/pytest_target_parametrization.rst.txt
+++ b/docs/_sources/dev/how_to/pytest_target_parametrization.rst.txt
@@ -21,7 +21,7 @@ Python Target Parametrization
 Summary
 -------
 
-For any supported runtime, TVM should should produce numerically
+For any supported runtime, TVM should produce numerically
 correct results.  Therefore, when writing unit tests that validate
 the numeric output, these unit tests should be run on all supported
 runtimes.  Since this is a very common use case, TVM has helper
@@ -29,7 +29,7 @@ functions to parametrize unit tests such that they will run on all
 targets that are enabled and have a compatible device.
 
 A single python function in the test suite can expand to several
-parametrized unit tests, each of which tests a single target device.
+parameterized unit tests, each of which tests a single target device.
 In order for a test to be run, all of the following must be true.
 
 - The test exists in a file or directory that has been passed to
@@ -129,11 +129,11 @@ marks are as follows.
 - ``@pytest.mark.gpu`` - Tags a function as using GPU
   capabilities. This has no effect on its own, but can be paired with
   command-line arguments ``-m gpu`` or ``-m 'not gpu'`` to restrict
-  which tests pytest will executed.  This should not be called on its
+  which tests pytest will execute.  This should not be called on its
   own, but is part of other marks used in unit-tests.
 
 - ``@tvm.testing.uses_gpu`` - Applies ``@pytest.mark.gpu``.  This
-  should be used to mark a unit tests that may use the GPU, if one is
+  should be used to mark unit tests that may use the GPU, if one is
   present.  This decorator is only needed for tests that explicitly
   loop over ``tvm.testing.enabled_targets()``, but that is no longer
   the preferred style of writing unit tests (see below).  When using
@@ -161,7 +161,7 @@ There also exists a ``tvm.testing.enabled_targets()`` that returns
 all targets that are enabled and runnable on the current machine,
 based on the environment variable ``TVM_TEST_TARGETS``, the build
 configuration, and the physical hardware present.  Most current tests
-explictly loop over the targets returned from ``enabled_targets()``,
+explicitly loop over the targets returned from ``enabled_targets()``,
 but it should not be used for new tests.  The pytest output for this
 style silently skips runtimes that are disabled in ``config.cmake``,
 or do not have a device on which they can run.  In addition, the test
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 bb7136d..dfb46d7 100644
--- a/docs/_sources/how_to/compile_models/from_darknet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
@@ -287,7 +287,7 @@ The process is no different from other examples.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  9.553 seconds)
+   **Total running time of the script:** ( 1 minutes  11.483 seconds)
 
 
 .. _sphx_glr_download_how_to_compile_models_from_darknet.py:
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 6236b14..fcfa7bd 100644
--- a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
@@ -380,7 +380,7 @@ Run the corresponding model on tensorflow
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  19.648 seconds)
+   **Total running time of the script:** ( 1 minutes  21.217 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 702352d..1a734b4 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,15 +5,15 @@
 
 Computation times
 =================
-**06:12.390** total execution time for **how_to_compile_models** files:
+**06:21.665** total execution time for **how_to_compile_models** files:
 
-- **01:19.648**: :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``)
-- **01:09.553**: :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)
-- **00:54.464**: :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)
-- **00:51.984**: :ref:`sphx_glr_how_to_compile_models_from_caffe2.py` (``from_caffe2.py``)
-- **00:29.934**: :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)
-- **00:26.303**: :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)
-- **00:24.457**: :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)
-- **00:23.142**: :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)
-- **00:11.155**: :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)
-- **00:01.750**: :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)
+- **01:21.217**: :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``)
+- **01:11.483**: :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)
+- **00:55.783**: :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)
+- **00:53.696**: :ref:`sphx_glr_how_to_compile_models_from_caffe2.py` (``from_caffe2.py``)
+- **00:30.687**: :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)
+- **00:26.879**: :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)
+- **00:25.078**: :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)
+- **00:23.661**: :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)
+- **00:11.349**: :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)
+- **00:01.831**: :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)
diff --git a/docs/_sources/how_to/deploy/arm_compute_lib.rst.txt b/docs/_sources/how_to/deploy/arm_compute_lib.rst.txt
index 8314382..a7ec8b9 100644
--- a/docs/_sources/how_to/deploy/arm_compute_lib.rst.txt
+++ b/docs/_sources/how_to/deploy/arm_compute_lib.rst.txt
@@ -34,32 +34,31 @@ Before installing Arm Compute Library, it is important to know what architecture
 to determine this is to use `lscpu` and look for the "Model name" of the CPU. You can then use this to
 determine the architecture by looking online.
 
-We recommend two different ways to build and install ACL:
-
-* Use the script located at `docker/install/ubuntu_install_arm_compute_lib.sh`. You can use this
-  script for building ACL from source natively or for cross-compiling the library on an x86 machine.
-  You may need to change the architecture of the device you wish to compile for by altering the
-  `target_arch` variable. Binaries will be built from source and installed to the location denoted by
-  `install_path`.
-* Alternatively, you can download and use pre-built binaries from:
+TVM only supports a single version of ACL, currently this is v21.08, there are two recommended ways to build and install 
+the required libraries:
+
+* Use the script located at `docker/install/ubuntu_download_arm_compute_lib_binaries.sh`. You can use this
+  script for downloading ACL binaries for the architecture and extensions specified in `target_lib`, these
+  will be installed to the location denoted by `install_path`.
+* Alternatively, you can download the pre-built binaries from:
   https://github.com/ARM-software/ComputeLibrary/releases. When using this package, you will need to
-  select the binaries for the architecture you require and make sure they are visible to cmake. This
-  can be done like so:
+  select the binaries for the architecture and extensions you require, then make sure they are visible
+  to CMake:
 
   .. code:: bash
 
       cd <acl-prebuilt-package>/lib
-      mv ./linux-<architecture-to-build-for>-neon/* .
+      mv ./<architecture-and-extensions-required>/* .
 
 
 In both cases you will need to set USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR to the path where the ACL package
-is located. Cmake will look in /path-to-acl/ along with /path-to-acl/lib and /path-to-acl/build for the
+is located. CMake will look in /path-to-acl/ along with /path-to-acl/lib and /path-to-acl/build for the
 required binaries. See the section below for more information on how to use these configuration options.
 
 Building with ACL support
 -------------------------
 
-The current implementation has two separate build options in cmake. The reason for this split is
+The current implementation has two separate build options in CMake. The reason for this split is
 because ACL cannot be used on an x86 machine. However, we still want to be able compile an ACL
 runtime module on an x86 machine.
 
@@ -73,7 +72,7 @@ need to use USE_ARM_COMPUTE_LIB=ON on the x86 machine and USE_ARM_COMPUTE_LIB_GR
 AArch64 device.
 
 By default both options are set to OFF. Using USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR=ON will mean that ACL
-binaries are searched for by cmake in the default locations
+binaries are searched for by CMake in the default locations
 (see https://cmake.org/cmake/help/v3.4/command/find_library.html). In addition to this,
 /path-to-tvm-project/acl/ will also be searched. It is likely that you will need to set your own path to
 locate ACL. This can be done by specifying a path in the place of ON.
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 6da1833..1b4ed65 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
@@ -393,7 +393,7 @@ Execute on TVM
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      10.2961      10.1803      11.3268      10.0611       0.3590   
+      11.9578      11.6688      13.6466      11.5382       0.6720   
                
 
 
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 00d7cbd..ccb5ef2 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
@@ -247,7 +247,7 @@ Get boxes with score larger than 0.9
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  18.454 seconds)
+   **Total running time of the script:** ( 2 minutes  24.172 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 4e2745c..a7cf31d 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
@@ -334,7 +334,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)  
-      43.7388      43.2618      61.3751      42.8861       1.8866   
+      45.2401      44.8524      49.7695      44.4672       0.8217   
                
 
 
@@ -374,7 +374,7 @@ TODO
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  36.296 seconds)
+   **Total running time of the script:** ( 1 minutes  38.539 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 b66a3ed..1220c88 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
@@ -352,7 +352,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)  
-      67.6108      67.1922      75.4519      66.3023       1.4117   
+      69.3439      69.0170      86.3369      68.2516       1.8214   
                
 
 
@@ -386,7 +386,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  18.311 seconds)
+   **Total running time of the script:** ( 2 minutes  22.142 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_prequantized_tflite.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 43b5bb0..9d0e16e 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
@@ -200,7 +200,7 @@ Display result
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 3 minutes  9.856 seconds)
+   **Total running time of the script:** ( 3 minutes  12.207 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 aba299a..f787cb8 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,13 +5,13 @@
 
 Computation times
 =================
-**11:28.760** total execution time for **how_to_deploy_models** files:
+**11:47.973** total execution time for **how_to_deploy_models** files:
 
-- **03:09.856**: :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
-- **02:18.454**: :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
-- **02:18.311**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
-- **01:36.296**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)
-- **00:55.890**: :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)
-- **00:40.856**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)
-- **00:28.940**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
-- **00:00.156**: :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``)
+- **03:12.207**: :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **02:24.172**: :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
+- **02:22.142**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
+- **01:38.539**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)
+- **00:58.984**: :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)
+- **00:42.210**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:29.565**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:00.154**: :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``)
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 1e876bc..03172ff 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,9 +5,9 @@
 
 Computation times
 =================
-**00:34.477** total execution time for **how_to_extend_tvm** files:
+**00:35.149** total execution time for **how_to_extend_tvm** files:
 
-- **00:31.129**: :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
-- **00:02.109**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)
-- **00:01.078**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)
-- **00:00.161**: :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``)
+- **00:31.761**: :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
+- **00:02.150**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)
+- **00:01.081**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)
+- **00:00.158**: :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``)
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 70e220e..f3e5344 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
@@ -199,10 +199,10 @@ profile the execution time of each passes.
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 5337us [5337us] (45.74%; 45.74%)
-    FoldScaleAxis: 6330us [2us] (54.26%; 54.26%)
-            FoldConstant: 6328us [1368us] (54.24%; 99.97%)
-                    InferType: 4960us [4960us] (42.51%; 78.38%)
+    InferType: 5431us [5431us] (46.27%; 46.27%)
+    FoldScaleAxis: 6306us [2us] (53.73%; 53.73%)
+            FoldConstant: 6304us [1297us] (53.71%; 99.97%)
+                    InferType: 5007us [5007us] (42.66%; 79.42%)
 
 
 
@@ -239,10 +239,10 @@ Refer to following sections and :py:func:`tvm.instrument.pass_instrument` for th
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 4949us [4949us] (43.04%; 43.04%)
-    FoldScaleAxis: 6549us [2us] (56.96%; 56.96%)
-            FoldConstant: 6548us [1335us] (56.95%; 99.97%)
-                    InferType: 5212us [5212us] (45.33%; 79.61%)
+    InferType: 5082us [5082us] (44.55%; 44.55%)
+    FoldScaleAxis: 6326us [2us] (55.45%; 55.45%)
+            FoldConstant: 6325us [1337us] (55.44%; 99.97%)
+                    InferType: 4988us [4988us] (43.72%; 78.86%)
 
 
 
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 1d08a27..9e1aea7 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
@@ -296,7 +296,7 @@ latency of convolution.
 
  .. code-block:: none
 
-    Convolution: 41.937872 ms
+    Convolution: 54.269562 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 ec4f9b9..978d8d6 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
@@ -518,8 +518,8 @@ by mapping the 2D convolution to tensor intrinsics
 
     primfn(A_1: handle, W_1: handle, Conv_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
-      buffers = {A: Buffer(A_2: Pointer(float16), float16, [16, 14, 14, 16, 16, 16], []),
-                 Conv: Buffer(Conv_2: Pointer(float32), float32, [16, 14, 14, 32, 16, 16], []),
+      buffers = {Conv: Buffer(Conv_2: Pointer(float32), float32, [16, 14, 14, 32, 16, 16], []),
+                 A: Buffer(A_2: Pointer(float16), float16, [16, 14, 14, 16, 16, 16], []),
                  W: Buffer(W_2: Pointer(float16), float16, [3, 3, 16, 32, 16, 16], [])}
       buffer_map = {A_1: A, W_1: W, Conv_1: Conv} {
       attr [IterVar(blockIdx.z: int32, (nullptr), "ThreadIndex", "blockIdx.z")] "thread_extent" = 196;
@@ -614,7 +614,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 7.033960 ms
+    conv2d with tensor core: 7.699643 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 2964a0f..037ec96 100644
--- a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
@@ -118,8 +118,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 
  .. code-block:: none
 
-    Numpy running time: 0.007397
-    Baseline: 3.271150
+    Numpy running time: 0.009229
+    Baseline: 3.340634
 
 
 
@@ -207,7 +207,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.285778
+    Opt1: 0.295032
 
 
 
@@ -302,7 +302,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.321452
+    Opt2: 0.331193
 
 
 
@@ -390,7 +390,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.112634
+    Opt3: 0.113024
 
 
 
@@ -505,7 +505,7 @@ flattening.
 
  .. code-block:: none
 
-    Opt4: 0.218060
+    Opt4: 0.232269
 
 
 
@@ -619,7 +619,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.200839
+    Opt5: 0.225938
 
 
 
@@ -643,8 +643,8 @@ Here is the generated IR after blocking.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
-      buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
-                 C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
+      buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
+                 A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
                  B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       allocate(packedB: Pointer(global float32x32), float32x32, [32768]), storage_scope = global;
@@ -733,7 +733,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
 
  .. code-block:: none
 
-    Opt6: 0.059074
+    Opt6: 0.068730
 
 
 
@@ -757,8 +757,8 @@ Here is the generated IR after parallelization.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
-                 A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
+      buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
+                 C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
                  B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       allocate(packedB: Pointer(global float32x32), float32x32, [32768]), storage_scope = global {
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 4031949..24c3bee 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,8 +5,8 @@
 
 Computation times
 =================
-**00:30.629** total execution time for **how_to_optimize_operators** files:
+**00:32.374** total execution time for **how_to_optimize_operators** files:
 
-- **00:28.400**: :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)
-- **00:01.166**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
-- **00:01.062**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:29.986**: :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)
+- **00:01.281**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:01.107**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)
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 e855fff..9f8196d 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,11 +5,11 @@
 
 Computation times
 =================
-**04:10.173** total execution time for **how_to_tune_with_autoscheduler** files:
-
-- **02:10.891**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
-- **00:54.964**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)
-- **00:31.129**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)
-- **00:18.318**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)
-- **00:07.574**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)
-- **00:07.298**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)
+**04:13.504** total execution time for **how_to_tune_with_autoscheduler** files:
+
+- **02:13.406**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
+- **00:55.457**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)
+- **00:31.830**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)
+- **00:17.732**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)
+- **00:07.667**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)
+- **00:07.412**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)
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 b3d152f..797f6b8 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
@@ -746,7 +746,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 0.359 ms
+    Execution time of this operator: 0.362 ms
 
 
 
@@ -1346,7 +1346,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:** ( 2 minutes  10.891 seconds)
+   **Total running time of the script:** ( 2 minutes  13.406 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 03eb579..4c4a3ee 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
@@ -614,7 +614,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)  
-       3.1213       3.1261       3.1348       3.1030       0.0134   
+       3.1554       3.1548       3.1623       3.1491       0.0054   
                
 
 
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 2ad4508..0d96b60 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
@@ -633,7 +633,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)  
-      542.5096     542.6023     542.7230     542.2034      0.2220   
+      571.8012     571.6694     572.2598     571.4744      0.3339   
                
 
 
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 ad596ee..c1d22c2 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
@@ -356,34 +356,58 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
     primfn(placeholder_5: handle, placeholder_6: handle, placeholder_7: handle, placeholder_8: handle, placeholder_9: handle, compute_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {compute: Buffer(compute_2: Pointer(float32), float32, [128, 512], []),
-                 placeholder_4: Buffer(placeholder_10: Pointer(float32), float32, [128, 256], []),
+                 placeholder_4: Buffer(placeholder_10: Pointer(float32), float32, [128, 512], []),
                  placeholder_3: Buffer(placeholder_11: Pointer(int32), int32, [33], []),
-                 placeholder_2: Buffer(placeholder_12: Pointer(float32), float32, [128, 512], []),
+                 placeholder_2: Buffer(placeholder_12: Pointer(int32), int32, [4916], []),
                  placeholder: Buffer(placeholder_13: Pointer(float32), float32, [4916, 16, 1], []),
-                 placeholder_1: Buffer(placeholder_14: Pointer(int32), int32, [4916], [])}
-      buffer_map = {placeholder_6: placeholder, placeholder_7: placeholder_1, placeholder_9: placeholder_2, placeholder_8: placeholder_3, compute_1: compute, placeholder_5: placeholder_4} {
+                 placeholder_1: Buffer(placeholder_14: Pointer(float32), float32, [128, 256], [])}
+      buffer_map = {placeholder_6: placeholder, placeholder_5: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute} {
       for (i0.outer.i1.outer.fused: int32, 0, 16) "parallel" {
         allocate(compute_3: Pointer(global float32), float32, [4096]), storage_scope = global {
-          for (i.outer.inner: int32, 0, 2) {
+          for (i.outer.inner: int32, 0, 16) {
             for (nb_j.inner: int32, 0, 2) {
-              for (i.inner.init: int32, 0, 64) {
-                for (j.init: int32, 0, 16) {
-                  compute_3[((((i.outer.inner*2048) + (i.inner.init*32)) + (nb_j.inner*16)) + j.init)] = 0f32
-                }
+              for (i.inner.init: int32, 0, 8) {
+                compute_3[(((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16))] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 1)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 2)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 3)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 4)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 5)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 6)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 7)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 8)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 9)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 10)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 11)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 12)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 13)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 14)] = 0f32
+                compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 15)] = 0f32
               }
               for (elem_idx: int32, 0, ((int32*)placeholder_11[(((i0.outer.i1.outer.fused*2) + nb_j.inner) + 1)] - (int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)])) {
-                for (i.inner: int32, 0, 64) {
-                  for (j: int32, 0, 16) {
-                    compute_3[((((i.outer.inner*2048) + (i.inner*32)) + (nb_j.inner*16)) + j)] = ((float32*)compute_3[((((i.outer.inner*2048) + (i.inner*32)) + (nb_j.inner*16)) + j)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + j)]*max((float32*)placeholder_10[(((i.outer.inner*16384) + (i.inner*256)) + (int32*)placeholder_14[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
-                  }
+                for (i.inner: int32, 0, 8) {
+                  compute_3[(((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16))] = ((float32*)compute_3[(((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16))] + ((float32*)placeholder_13[(((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16))]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 1)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 1)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 1)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 2)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 2)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 2)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 3)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 3)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 3)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 4)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 4)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 4)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 5)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 5)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 5)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 6)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 6)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 6)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 7)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 7)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 7)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 8)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 8)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 8)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 9)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 9)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 9)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 10)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 10)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 10)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 11)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 11)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 11)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 12)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 12)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 12)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 13)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 13)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 13)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 14)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 14)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 14)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+                  compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 15)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 15)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 15)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
                 }
               }
             }
           }
           for (i0.inner: int32, 0, 128) {
-            for (i1.inner: int32, 0, 32) {
-              compute_2[(((i0.inner*512) + (i0.outer.i1.outer.fused*32)) + i1.inner)] = max(((float32*)compute_3[((i0.inner*32) + i1.inner)] + (float32*)placeholder_12[(((i0.inner*512) + (i0.outer.i1.outer.fused*32)) + i1.inner)]), 0f32)
-            }
+            compute_2[ramp(((i0.inner*512) + (i0.outer.i1.outer.fused*32)), 1, 32)] = max(((float32x32*)compute_3[ramp((i0.inner*32), 1, 32)] + (float32x32*)placeholder_10[ramp(((i0.inner*512) + (i0.outer.i1.outer.fused*32)), 1, 32)]), broadcast(0f32, 32))
           }
         }
       }
@@ -437,7 +461,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 1.577 ms
+    Execution time of this operator: 1.847 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 98b237f..80e03ba 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:38.221** total execution time for **how_to_tune_with_autotvm** files:
+**00:40.937** total execution time for **how_to_tune_with_autotvm** files:
 
-- **00:37.517**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
-- **00:00.184**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
-- **00:00.177**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
-- **00:00.172**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
-- **00:00.171**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+- **00:40.250**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:00.186**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.169**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
+- **00:00.167**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+- **00:00.166**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
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 285289d..425b590 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
@@ -242,26 +242,26 @@ for this template
        7 unroll_explicit: OtherOption([0, 1]) len=2
     )
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 6   GFLOPS: 87.21/87.21     result: MeasureResult(costs=(0.0026544224565217393,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.523228645324707, timestamp=1635354481.0967414)       [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3754080
-    No: 7   GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 8   GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 9   GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 10  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(TimeoutError(),), error_no=MeasureErrorNo.BUILD_TIMEOUT, all_cost=10, timestamp=1635354492.052086) [('tile_f', [-1, 32, 2, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4691833
-    No: 11  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 12  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 13  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 14  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 15  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 16  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 17  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 18  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
-    No: 19  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  60: 0xffffffffffffffff\n  59: _start\n  58: __libc_start_main\n  57: main\n  56: Py_Main\n  55: 0x000000000063886a\n  54: PyObject_Call\n  53: 0x000000000058945c\n  52: 0x0000000000507cd3\n  51: _PyEval_EvalFrameDefault\n  50: 0x000000000050a3fc\n  49: 0x00000000005099ff\n  48: 0x0000000000507cd3\n  47: _PyEval_EvalFrameDefault\n  46: 0x000000000050a22e\n  45: 0x0000000000 [...]
-    No: 20  GFLOPS: 143.62/143.62   result: MeasureResult(costs=(0.00161187607,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.2787423133850098, timestamp=1635354501.6196096)      [('tile_f', [-1, 1, 4, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9881539
+    No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 6   GFLOPS: 60.26/60.26     result: MeasureResult(costs=(0.003841781068965517,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.627082109451294, timestamp=1636191415.8784292)        [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3754080
+    No: 7   GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 8   GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 9   GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 10  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(TimeoutError(),), error_no=MeasureErrorNo.BUILD_TIMEOUT, all_cost=10, timestamp=1636191426.8456671)        [('tile_f', [-1, 32, 2, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4691833
+    No: 11  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 12  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 13  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 14  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 15  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 16  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 17  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 18  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRet [...]
+    No: 19  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  60: 0xffffffffffffffff\n  59: _start\n  58: __libc_start_main\n  57: main\n  56: Py_Main\n  55: 0x000000000063886a\n  54: PyObject_Call\n  53: 0x000000000058945c\n  52: 0x0000000000507cd3\n  51: _PyEval_EvalFrameDefault\n  50: 0x000000000050a3fc\n  49: 0x00000000005099ff\n  48: 0x0000000000507cd3\n  47: _PyEval_EvalFrameDefault\n  46: 0x000000000050a22e\n  45: 0x0000000000 [...]
+    No: 20  GFLOPS: 144.48/144.48   result: MeasureResult(costs=(0.001602333111111111,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.0883064270019531, timestamp=1636191436.3377938)       [('tile_f', [-1, 1, 4, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9881539
 
 
 
@@ -314,7 +314,7 @@ and measure running time.
 
     Best config:
     [('tile_f', [-1, 1, 4, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9881539
-    Time cost of this operator: 0.001986
+    Time cost of this operator: 0.001954
 
 
 
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 64fb1b4..c234b2f 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
@@ -143,12 +143,9 @@ Configuring microTVM
 .. code-block:: default
 
 
-    repo_root = pathlib.Path(
-        subprocess.check_output(["git", "rev-parse", "--show-toplevel"], encoding="utf-8").strip()
-    )
 
     module_loader = tvm.micro.AutoTvmModuleLoader(
-        template_project_dir=repo_root / "src" / "runtime" / "crt" / "host",
+        template_project_dir=pathlib.Path(tvm.micro.get_microtvm_template_projects("crt")),
         project_options={"verbose": False},
     )
     builder = tvm.autotvm.LocalBuilder(
@@ -164,7 +161,7 @@ Configuring microTVM
     # Compiling for physical hardware
     # --------------------------------------------------------------------------
     #    module_loader = tvm.micro.AutoTvmModuleLoader(
-    #        template_project_dir=repo_root / "apps" / "microtvm" / "zephyr" / "template_project",
+    #        template_project_dir=pathlib.Path(tvm.micro.get_microtvm_template_projects("zephyr")),
     #        project_options={
     #            "zephyr_board": BOARD,
     #            "west_cmd": "west",
@@ -222,7 +219,7 @@ Timing the untuned program
     temp_dir = tvm.contrib.utils.tempdir()
 
     project = tvm.micro.generate_project(
-        str(repo_root / "src" / "runtime" / "crt" / "host"),
+        str(tvm.micro.get_microtvm_template_projects("crt")),
         lowered,
         temp_dir / "project",
         {"verbose": False},
@@ -231,7 +228,7 @@ Timing the untuned program
     # Compiling for physical hardware
     # --------------------------------------------------------------------------
     #    project = tvm.micro.generate_project(
-    #        str(repo_root / "apps" / "microtvm" / "zephyr" / "template_project"),
+    #        str(tvm.micro.get_microtvm_template_projects("zephyr")),
     #        lowered,
     #        temp_dir / "project",
     #        {
@@ -266,10 +263,10 @@ Timing the untuned program
     ########## Build without Autotuning ##########
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  
     ---------                                     ---                                           --------  -------  -----              ------  -------  
-    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  299.0     98.716   (1, 2, 10, 10, 3)  2       1        
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         2.971     0.981    (1, 6, 10, 10)     1       1        
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       0.919     0.303    (1, 1, 10, 10, 3)  1       1        
-    Total_time                                    -                                             302.89    -        -                  -       -        
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  309.9     98.726   (1, 2, 10, 10, 3)  2       1        
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         3.076     0.98     (1, 6, 10, 10)     1       1        
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       0.922     0.294    (1, 1, 10, 10, 3)  1       1        
+    Total_time                                    -                                             313.898   -        -                  -       -        
 
 
 
@@ -288,7 +285,7 @@ Timing the tuned program
     temp_dir = tvm.contrib.utils.tempdir()
 
     project = tvm.micro.generate_project(
-        str(repo_root / "src" / "runtime" / "crt" / "host"),
+        str(tvm.micro.get_microtvm_template_projects("crt")),
         lowered_tuned,
         temp_dir / "project",
         {"verbose": False},
@@ -297,7 +294,7 @@ Timing the tuned program
     # Compiling for physical hardware
     # --------------------------------------------------------------------------
     #    project = tvm.micro.generate_project(
-    #        str(repo_root / "apps" / "microtvm" / "zephyr" / "template_project"),
+    #        str(tvm.micro.get_microtvm_template_projects("zephyr")),
     #        lowered_tuned,
     #        temp_dir / "project",
     #        {
@@ -331,10 +328,10 @@ Timing the tuned program
     ########## Build with Autotuning ##########
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  
     ---------                                     ---                                           --------  -------  -----              ------  -------  
-    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  173.6     98.47    (1, 1, 10, 10, 6)  2       1        
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         1.891     1.072    (1, 6, 10, 10)     1       1        
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       0.806     0.457    (1, 3, 10, 10, 1)  1       1        
-    Total_time                                    -                                             176.297   -        -                  -       -        
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  177.6     98.456   (1, 1, 10, 10, 6)  2       1        
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         1.952     1.082    (1, 6, 10, 10)     1       1        
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       0.833     0.462    (1, 3, 10, 10, 1)  1       1        
+    Total_time                                    -                                             180.385   -        -                  -       -        
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_tflite.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_tflite.rst.txt
index 8c73602..c79b0b6 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_tflite.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_tflite.rst.txt
@@ -316,10 +316,7 @@ Now, compile the model for the target:
     import subprocess
     import pathlib
 
-    repo_root = pathlib.Path(
-        subprocess.check_output(["git", "rev-parse", "--show-toplevel"], encoding="utf-8").strip()
-    )
-    template_project_path = repo_root / "src" / "runtime" / "crt" / "host"
+    template_project_path = pathlib.Path(tvm.micro.get_microtvm_template_projects("crt"))
     project_options = {}  # You can use options to provide platform-specific options through TVM.
 
     # Compiling for physical hardware (or an emulated board, like the mps_an521)
@@ -327,7 +324,7 @@ Now, compile the model for the target:
     #  For physical hardware, you can try out the Zephyr platform by using a different template project
     #  and options:
     #
-    #     template_project_path = repo_root / "apps" / "microtvm" / "zephyr" / "template_project"
+    #     template_project_path = pathlib.Path(tvm.micro.get_microtvm_template_projects("zephyr"))
     #     project_options = {"project_type": "host_driven", zephyr_board": "nucleo_f746zg"}}
 
     # Create a temporary directory
@@ -362,7 +359,7 @@ Now, compile the model for the target:
     #ifdef __cplusplus
     extern "C"
     #endif
-    TVM_DLL int32_t tvmgen_default_fused_nn_dense_add_nn_relu(void* args, void* arg_type_ids, int32_t num_args, void* out_ret_value, void* out_ret_tcode, void* resource_handle) {
+    TVM_DLL int32_t tvmgen_default_fused_nn_dense_add_nn_relu_1(void* args, void* arg_type_ids, int32_t num_args, void* out_ret_value, void* out_ret_tcode, void* resource_handle) {
       void* arg0 = (((TVMValue*)args)[0].v_handle);
      - .
      - ./codegen
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 e272fb9..1bf361b 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,8 +5,8 @@
 
 Computation times
 =================
-**00:44.423** total execution time for **how_to_work_with_microtvm** files:
+**00:45.172** total execution time for **how_to_work_with_microtvm** files:
 
-- **00:40.952**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)
-- **00:03.314**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)
-- **00:00.157**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``)
+- **00:41.823**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)
+- **00:03.195**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)
+- **00:00.154**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``)
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 2b0b39c..84533cf 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,7 +5,7 @@
 
 Computation times
 =================
-**00:03.987** total execution time for **how_to_work_with_relay** files:
+**00:04.310** total execution time for **how_to_work_with_relay** files:
 
-- **00:02.454**: :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)
-- **00:01.532**: :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)
+- **00:02.640**: :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)
+- **00:01.670**: :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)
diff --git a/docs/_sources/how_to/work_with_schedules/scan.rst.txt b/docs/_sources/how_to/work_with_schedules/scan.rst.txt
index 83a4bb5..6ab2fc5 100644
--- a/docs/_sources/how_to/work_with_schedules/scan.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/scan.rst.txt
@@ -266,22 +266,22 @@ The following example demonstrates how we can build recurrence with two states.
 
     primfn(X_1: handle, scan_2: handle, scan_3: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
-      buffers = {X: Buffer(X_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 scan_1: Buffer(scan_4: Pointer(float32), float32, [m, l: int32], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {scan_1: Buffer(scan_4: Pointer(float32), float32, [m: int32, l: int32], [stride: int32, stride_1: int32], type="auto"),
+                 X: Buffer(X_2: Pointer(float32), float32, [m, n: int32], [stride_2: int32, stride_3: int32], type="auto"),
                  scan: Buffer(scan_5: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {X_1: X, scan_2: scan, scan_3: scan_1} {
       for (i: int32, 0, n) {
-        scan_5[(i*stride_5)] = (float32*)X_2[(i*stride_1)]
+        scan_5[(i*stride_5)] = (float32*)X_2[(i*stride_3)]
       }
       for (i_1: int32, 0, l) {
-        scan_4[(i_1*stride_3)] = 0f32
+        scan_4[(i_1*stride_1)] = 0f32
       }
       for (scan.idx: int32, 0, (m - 1)) {
         for (i_2: int32, 0, n) {
-          scan_5[(((scan.idx + 1)*stride_4) + (i_2*stride_5))] = ((float32*)scan_5[((scan.idx*stride_4) + (i_2*stride_5))] + (float32*)X_2[(((scan.idx + 1)*stride) + (i_2*stride_1))])
+          scan_5[(((scan.idx + 1)*stride_4) + (i_2*stride_5))] = ((float32*)scan_5[((scan.idx*stride_4) + (i_2*stride_5))] + (float32*)X_2[(((scan.idx + 1)*stride_2) + (i_2*stride_3))])
         }
         for (i_3: int32, 0, l) {
-          scan_4[(((scan.idx + 1)*stride_2) + (i_3*stride_3))] = ((float32*)scan_4[((scan.idx*stride_2) + (i_3*stride_3))] + (float32*)scan_5[(scan.idx*stride_4)])
+          scan_4[(((scan.idx + 1)*stride) + (i_3*stride_1))] = ((float32*)scan_4[((scan.idx*stride) + (i_3*stride_1))] + (float32*)scan_5[(scan.idx*stride_4)])
         }
       }
     }
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 4dfcf7f..2a89a5d 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,13 +5,13 @@
 
 Computation times
 =================
-**00:04.941** total execution time for **how_to_work_with_schedules** files:
+**00:05.020** total execution time for **how_to_work_with_schedules** files:
 
-- **00:01.757**: :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)
-- **00:01.128**: :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)
-- **00:00.598**: :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)
-- **00:00.595**: :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)
-- **00:00.296**: :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)
-- **00:00.195**: :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``)
-- **00:00.188**: :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)
-- **00:00.185**: :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)
+- **00:01.792**: :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)
+- **00:01.068**: :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)
+- **00:00.669**: :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)
+- **00:00.657**: :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)
+- **00:00.288**: :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)
+- **00:00.186**: :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.185**: :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)
+- **00:00.175**: :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)
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 24c6a98..7db62e2 100644
--- a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
@@ -313,8 +313,8 @@ The importing needs to happen before the tensorized GEMV being executed.
                  A: Buffer(A_2: Pointer(float32), float32, [1024, 64], []),
                  B: Buffer(B_2: Pointer(float32), float32, [512, 64], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
-      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmp0um40v6k/input0.cc'
-    source_filename = "/tmp/tmp0um40v6k/input0.cc"
+      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpdl6d2pzt/input0.cc'
+    source_filename = "/tmp/tmpdl6d2pzt/input0.cc"
     target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
     target triple = "x86_64-pc-linux-gnu"
 
diff --git a/docs/_sources/how_to/work_with_schedules/tuple_inputs.rst.txt b/docs/_sources/how_to/work_with_schedules/tuple_inputs.rst.txt
index c874b0c..27234d0 100644
--- a/docs/_sources/how_to/work_with_schedules/tuple_inputs.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/tuple_inputs.rst.txt
@@ -64,15 +64,15 @@ together in the next schedule procedure.
 
     primfn(A0_1: handle, A1_1: handle, B_2: handle, B_3: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_4: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 A0: Buffer(A0_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
-                 B_1: Buffer(B_5: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type="auto"),
+      buffers = {B_1: Buffer(B_4: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 B: Buffer(B_5: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+                 A0: Buffer(A0_2: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type="auto"),
                  A1: Buffer(A1_2: Pointer(float32), float32, [m, n], [stride_6: int32, stride_7: int32], type="auto")}
       buffer_map = {A0_1: A0, A1_1: A1, B_2: B, B_3: B_1} {
       for (i: int32, 0, m) {
         for (j: int32, 0, n) {
-          B_4[((i*stride) + (j*stride_1))] = ((float32*)A0_2[((i*stride_2) + (j*stride_3))] + 2f32)
-          B_5[((i*stride_4) + (j*stride_5))] = ((float32*)A1_2[((i*stride_6) + (j*stride_7))]*3f32)
+          B_5[((i*stride_2) + (j*stride_3))] = ((float32*)A0_2[((i*stride_4) + (j*stride_5))] + 2f32)
+          B_4[((i*stride) + (j*stride_1))] = ((float32*)A1_2[((i*stride_6) + (j*stride_7))]*3f32)
         }
       }
     }
@@ -136,15 +136,15 @@ with :py:func:`te.comm_reducer` as below:
     primfn(idx_1: handle, val_1: handle, T_2: handle, T_3: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {T_1: Buffer(T_4: Pointer(int32), int32, [m: int32], [stride: int32], type="auto"),
-                 idx: Buffer(idx_2: Pointer(int32), int32, [m, n: int32], [stride_1: int32, stride_2: int32], type="auto"),
-                 T: Buffer(T_5: Pointer(int32), int32, [m], [stride_3: int32], type="auto"),
+                 T: Buffer(T_5: Pointer(int32), int32, [m], [stride_1: int32], type="auto"),
+                 idx: Buffer(idx_2: Pointer(int32), int32, [m, n: int32], [stride_2: int32, stride_3: int32], type="auto"),
                  val: Buffer(val_2: Pointer(int32), int32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {idx_1: idx, val_1: val, T_2: T, T_3: T_1} {
       for (i: int32, 0, m) {
-        T_5[(i*stride_3)] = -1
+        T_5[(i*stride_1)] = -1
         T_4[(i*stride)] = -2147483648
         for (k: int32, 0, n) {
-          T_5[(i*stride_3)] = @tir.if_then_else(((int32*)val_2[((i*stride_4) + (k*stride_5))] <= (int32*)T_4[(i*stride)]), (int32*)T_5[(i*stride_3)], (int32*)idx_2[((i*stride_1) + (k*stride_2))], dtype=int32)
+          T_5[(i*stride_1)] = @tir.if_then_else(((int32*)val_2[((i*stride_4) + (k*stride_5))] <= (int32*)T_4[(i*stride)]), (int32*)T_5[(i*stride_1)], (int32*)idx_2[((i*stride_2) + (k*stride_3))], dtype=int32)
           T_4[(i*stride)] = @tir.if_then_else(((int32*)val_2[((i*stride_4) + (k*stride_5))] <= (int32*)T_4[(i*stride)]), (int32*)T_4[(i*stride)], (int32*)val_2[((i*stride_4) + (k*stride_5))], dtype=int32)
         }
       }
@@ -193,19 +193,19 @@ in terms of operation.
 
     primfn(A0_1: handle, A1_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
-      buffers = {A0: Buffer(A0_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 C: Buffer(C_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {C: Buffer(C_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 A0: Buffer(A0_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
                  A1: Buffer(A1_2: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {A0_1: A0, A1_1: A1, C_1: C} {
       allocate(B.v0: Pointer(global float32), float32, [n]), storage_scope = global;
       allocate(B.v1: Pointer(global float32), float32, [n]), storage_scope = global;
       for (i: int32, 0, m) {
         for (j: int32, 0, n) {
-          B.v0[j] = ((float32*)A0_2[((i*stride) + (j*stride_1))] + 2f32)
-          B.v1[j] = ((float32*)A0_2[((i*stride) + (j*stride_1))]*3f32)
+          B.v0[j] = ((float32*)A0_2[((i*stride_2) + (j*stride_3))] + 2f32)
+          B.v1[j] = ((float32*)A0_2[((i*stride_2) + (j*stride_3))]*3f32)
         }
         for (j_1: int32, 0, n) {
-          C_2[((i*stride_2) + (j_1*stride_3))] = ((float32*)A1_2[((i*stride_4) + (j_1*stride_5))] + (float32*)B.v0[j_1])
+          C_2[((i*stride) + (j_1*stride_1))] = ((float32*)A1_2[((i*stride_4) + (j_1*stride_5))] + (float32*)B.v0[j_1])
         }
       }
     }
diff --git a/docs/_sources/install/from_source.rst.txt b/docs/_sources/install/from_source.rst.txt
index 23be319..4fad42b 100644
--- a/docs/_sources/install/from_source.rst.txt
+++ b/docs/_sources/install/from_source.rst.txt
@@ -123,6 +123,9 @@ The configuration of TVM can be modified by editing `config.cmake` and/or by pas
     - Note that apt-package append ``llvm-config`` with version number.
       For example, set ``set(USE_LLVM llvm-config-10)`` if you installed LLVM 10 package
 
+  - If you are a PyTorch user, it is recommended to set ``(USE_LLVM "/path/to/llvm-config --link-static")`` and ``set(HIDE_PRIVATE_SYMBOLS ON)``
+    to avoid potential symbol conflicts between different versions LLVM used by TVM and PyTorch.
+
 - We can then build tvm and related libraries.
 
   .. code:: bash
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 df4090c..53b55ca 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,7 +5,7 @@
 
 Computation times
 =================
-**00:17.877** total execution time for **topic_vta_tutorials_autotvm** files:
+**00:18.065** total execution time for **topic_vta_tutorials_autotvm** files:
 
-- **00:17.709**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
-- **00:00.168**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)
+- **00:17.906**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:00.160**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)
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 a684af5..04c74e9 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -263,7 +263,7 @@ The compilation steps are:
       DeprecationWarning,
     /workspace/vta/tutorials/frontend/deploy_classification.py:211: 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=target, params=params, target_host=env.target_host
-    resnet18_v1 inference graph built in 18.41s!
+    resnet18_v1 inference graph built in 18.69s!
 
 
 
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 38340c8..c4b20e8 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -299,7 +299,7 @@ The compilation steps are:
 
     /workspace/python/tvm/relay/build_module.py:333: DeprecationWarning: Please use input parameter mod (tvm.IRModule) instead of deprecated parameter mod (tvm.relay.function.Function)
       DeprecationWarning,
-    yolov3-tiny inference graph built in 13.01s!
+    yolov3-tiny inference graph built in 13.15s!
 
 
 
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 8e8d42d..7e8542f 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,7 +5,7 @@
 
 Computation times
 =================
-**01:20.124** total execution time for **topic_vta_tutorials_frontend** files:
+**01:21.716** total execution time for **topic_vta_tutorials_frontend** files:
 
-- **00:42.705**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
-- **00:37.419**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
+- **00:43.603**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
+- **00:38.113**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
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 51d9878..d5e5bca 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,7 +5,7 @@
 
 Computation times
 =================
-**00:03.410** total execution time for **topic_vta_tutorials_optimize** files:
+**00:03.426** total execution time for **topic_vta_tutorials_optimize** files:
 
-- **00:02.931**: :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
-- **00:00.480**: :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
+- **00:02.948**: :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.478**: :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
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 ebf3ba3..a93b04e 100644
--- a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:00.872** total execution time for **topic_vta_tutorials** files:
+**00:00.880** total execution time for **topic_vta_tutorials** files:
 
-- **00:00.448**: :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
-- **00:00.424**: :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
+- **00:00.452**: :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.428**: :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
diff --git a/docs/_sources/topic/vta/tutorials/vta_get_started.rst.txt b/docs/_sources/topic/vta/tutorials/vta_get_started.rst.txt
index a9873b2..e26c238 100644
--- a/docs/_sources/topic/vta/tutorials/vta_get_started.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/vta_get_started.rst.txt
@@ -425,8 +425,8 @@ with an :code:`env.alu` pragma.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
-      buffers = {A: Buffer(A_2: Pointer(int32), int32, [1, 64, 1, 16], []),
-                 C: Buffer(C_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+      buffers = {C: Buffer(C_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+                 A: Buffer(A_2: Pointer(int32), int32, [1, 64, 1, 16], []),
                  B: Buffer(B_2: Pointer(int32), int32, [1, 64, 1, 16], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [IterVar(vta: int32, (nullptr), "ThreadIndex", "vta")] "coproc_scope" = 2 {
diff --git a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
index 560cd0b..5d61362 100644
--- a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
@@ -215,8 +215,8 @@ operator fusion.
     primfn(A_1: handle, B_1: handle, C_1: handle, out_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {out: Buffer(out_2: Pointer(float32), float32, [1024, 1024], []),
-                 C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
                  A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
+                 C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
                  B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C, out_1: out} {
       allocate(auto_scheduler_layout_transform: Pointer(global float32), float32, [1048576]), storage_scope = global {
@@ -298,7 +298,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 44.309 ms
+    Execution time of this operator: 45.418 ms
 
 
 
diff --git a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
index c0adac9..f607aa8 100644
--- a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
@@ -270,7 +270,7 @@ standard deviation.
 
  .. code-block:: none
 
-    {'mean': 229.1864895541221, 'median': 228.7280524149537, 'std': 1.0664440211813757}
+    {'mean': 249.92160882335156, 'median': 249.40169705078006, 'std': 1.3641753266557834}
 
 
 
@@ -484,31 +484,31 @@ the tuning data to.
 
  .. code-block:: none
 
-
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  1/25]  Current/Best:   33.79/  49.04 GFLOPS | Progress: (4/10) | 5.66 s
    [Task  1/25]  Current/Best:   41.38/  49.04 GFLOPS | Progress: (8/10) | 9.03 s
    [Task  1/25]  Current/Best:   45.56/  49.04 GFLOPS | Progress: (10/10) | 9.93 s Done.
-
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  2/25]  Current/Best:   20.37/  37.69 GFLOPS | Progress: (4/10) | 2.48 s
    [Task  2/25]  Current/Best:   26.74/  42.40 GFLOPS | Progress: (8/10) | 4.67 s
    [Task  2/25]  Current/Best:   28.10/  42.40 GFLOPS | Progress: (10/10) | 5.96 s Done.
-
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  3/25]  Current/Best:   15.73/  46.67 GFLOPS | Progress: (4/10) | 2.94 s
    [Task  3/25]  Current/Best:   13.60/  46.95 GFLOPS | Progress: (8/10) | 4.71 s
    [Task  3/25]  Current/Best:   14.43/  46.95 GFLOPS | Progress: (10/10) | 5.63 s Done.
-
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  4/25]  Current/Best:   46.48/  46.48 GFLOPS | Progress: (4/10) | 6.34 s
    [Task  4/25]  Current/Best:   47.44/  47.44 GFLOPS | Progress: (8/10) | 9.82 s
    [Task  4/25]  Current/Best:   27.66/  47.44 GFLOPS | Progress: (10/10) | 12.63 s Done.
-
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  5/25]  Current/Best:   36.66/  41.53 GFLOPS | Progress: (4/10) | 2.66 s
    [Task  5/25]  Current/Best:   30.33/  41.53 GFLOPS | Progress: (8/10) | 4.14 s
    [Task  5/25]  Current/Best:   38.20/  41.53 GFLOPS | Progress: (10/10) | 4.86 s Done.
-
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  6/25]  Current/Best:   43.09/  43.09 GFLOPS | Progress: (4/10) | 4.14 s
    [Task  6/25]  Current/Best:   12.39/  43.09 GFLOPS | Progress: (8/10) | 7.72 s
    [Task  6/25]  Current/Best:   29.24/  43.90 GFLOPS | Progress: (10/10) | 8.57 s Done.
-
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  7/25]  Current/Best:   22.33/  32.23 GFLOPS | Progress: (4/10) | 3.38 s
    [Task  7/25]  Current/Best:   37.92/  38.76 GFLOPS | Progress: (8/10) | 5.64 s
    [Task  7/25]  Current/Best:   33.23/  38.76 GFLOPS | Progress: (10/10) | 6.57 s Done.
-
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  8/25]  Current/Best:   18.19/  32.72 GFLOPS | Progress: (4/10) | 3.28 s
    [Task  8/25]  Current/Best:   35.54/  36.48 GFLOPS | Progress: (8/10) | 4.82 s
    [Task  8/25]  Current/Best:    4.93/  36.48 GFLOPS | Progress: (10/10) | 5.94 s Done.
-
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  9/25]  Current/Best:   12.76/  28.64 GFLOPS | Progress: (4/10) | 31.94 s
    [Task  9/25]  Current/Best:   32.23/  37.06 GFLOPS | Progress: (8/10) | 33.68 s
    [Task  9/25]  Current/Best:   27.35/  37.06 GFLOPS | Progress: (10/10) | 34.87 s
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 10/25]  Current/Best:   12.10/  35.24 GFLOPS | Progress: (4/10) | 3.50 s
    [Task 10/25]  Current/Best:   13.59/  35.24 GFLOPS | Progress: (8/10) | 5.57 s
    [Task 10/25]  Current/Best:   27.16/  37.43 GFLOPS | Progress: (10/10) | 6.27 s Done.
-
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 11/25]  Current/Best:   36.83/  40.62 GFLOPS | Progress: (4/10) | 2.95 s Done.
-
    [Task 11/25]  Current/Best:   37.60/  48.82 GFLOPS | Progress: (8/10) | 4.87 s
    [Task 11/25]  Current/Best:    9.21/  48.82 GFLOPS | Progress: (10/10) | 6.12 s Done.
-
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 12/25]  Current/Best:   29.49/  29.49 GFLOPS | Progress: (4/10) | 4.97 s
    [Task 12/25]  Current/Best:   36.71/  37.16 GFLOPS | Progress: (8/10) | 6.89 s
    [Task 12/25]  Current/Best:   19.92/  37.16 GFLOPS | Progress: (10/10) | 12.15 s Done.
-
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 13/25]  Current/Best:   40.66/  40.66 GFLOPS | Progress: (4/10) | 3.22 s
    [Task 13/25]  Current/Best:   29.30/  45.89 GFLOPS | Progress: (8/10) | 6.02 s
    [Task 13/25]  Current/Best:   43.25/  45.89 GFLOPS | Progress: (10/10) | 6.90 s Done.
-
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 14/25]  Current/Best:   21.98/  35.60 GFLOPS | Progress: (4/10) | 30.11 s
    [Task 14/25]  Current/Best:   44.27/  44.27 GFLOPS | Progress: (8/10) | 58.72 s
    [Task 14/25]  Current/Best:   46.79/  46.79 GFLOPS | Progress: (10/10) | 59.30 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 15/25]  Current/Best:   25.75/  31.30 GFLOPS | Progress: (4/10) | 6.38 s
    [Task 15/25]  Current/Best:   36.74/  36.74 GFLOPS | Progress: (8/10) | 35.10 s
    [Task 15/25]  Current/Best:   25.52/  36.74 GFLOPS | Progress: (10/10) | 65.02 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 16/25]  Current/Best:   36.12/  36.42 GFLOPS | Progress: (4/10) | 2.97 s Done.
+
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  1/25]  Current/Best:   27.96/  47.74 GFLOPS | Progress: (4/10) | 5.20 s
    [Task  1/25]  Current/Best:   26.59/  47.74 GFLOPS | Progress: (8/10) | 8.44 s
    [Task  1/25]  Current/Best:   17.16/  47.74 GFLOPS | Progress: (10/10) | 9.28 s Done.
+
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  2/25]  Current/Best:   29.33/  32.17 GFLOPS | Progress: (4/10) | 3.06 s
    [Task  2/25]  Current/Best:   31.85/  32.17 GFLOPS | Progress: (8/10) | 4.49 s
    [Task  2/25]  Current/Best:   10.57/  32.17 GFLOPS | Progress: (10/10) | 5.58 s Done.
+
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  3/25]  Current/Best:   18.36/  38.70 GFLOPS | Progress: (4/10) | 3.51 s
    [Task  3/25]  Current/Best:   26.54/  44.18 GFLOPS | Progress: (8/10) | 5.79 s
    [Task  3/25]  Current/Best:   14.14/  44.18 GFLOPS | Progress: (10/10) | 6.75 s Done.
+
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  4/25]  Current/Best:   11.31/  27.21 GFLOPS | Progress: (4/10) | 7.73 s
    [Task  4/25]  Current/Best:   25.66/  45.19 GFLOPS | Progress: (8/10) | 9.26 s
    [Task  4/25]  Current/Best:   25.89/  45.19 GFLOPS | Progress: (10/10) | 10.03 s Done.
+
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  5/25]  Current/Best:   19.03/  31.94 GFLOPS | Progress: (4/10) | 3.27 s
    [Task  5/25]  Current/Best:   16.94/  40.84 GFLOPS | Progress: (8/10) | 5.33 s
    [Task  5/25]  Current/Best:   40.34/  40.84 GFLOPS | Progress: (10/10) | 8.19 s Done.
+
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  6/25]  Current/Best:   39.55/  39.55 GFLOPS | Progress: (4/10) | 2.86 s
    [Task  6/25]  Current/Best:   11.95/  39.55 GFLOPS | Progress: (8/10) | 7.35 s
    [Task  6/25]  Current/Best:   15.50/  39.55 GFLOPS | Progress: (10/10) | 8.12 s Done.
+
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  7/25]  Current/Best:   32.12/  39.22 GFLOPS | Progress: (4/10) | 2.84 s
    [Task  7/25]  Current/Best:   27.27/  39.22 GFLOPS | Progress: (8/10) | 4.52 s
    [Task  7/25]  Current/Best:   36.51/  39.22 GFLOPS | Progress: (10/10) | 5.26 s Done.
+
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  8/25]  Current/Best:   34.94/  34.94 GFLOPS | Progress: (4/10) | 2.89 s
    [Task  8/25]  Current/Best:   27.22/  34.94 GFLOPS | Progress: (8/10) | 8.62 s
    [Task  8/25]  Current/Best:   25.95/  34.94 GFLOPS | Progress: (10/10) | 13.54 s Done.
+
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  9/25]  Current/Best:   13.86/  40.39 GFLOPS | Progress: (4/10) | 2.99 s
    [Task  9/25]  Current/Best:   29.43/  44.64 GFLOPS | Progress: (8/10) | 4.89 s
    [Task  9/25]  Current/Best:   24.71/  44.64 GFLOPS | Progress: (10/10) | 9.93 s Done.
+
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 10/25]  Current/Best:   30.89/  30.89 GFLOPS | Progress: (4/10) | 3.55 s
    [Task 10/25]  Current/Best:   34.88/  35.31 GFLOPS | Progress: (8/10) | 4.77 s
    [Task 10/25]  Current/Best:   13.51/  35.31 GFLOPS | Progress: (10/10) | 5.48 s Done.
+
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 11/25]  Current/Best:   45.68/  45.68 GFLOPS | Progress: (4/10) | 3.83 s
    [Task 11/25]  Current/Best:   38.01/  45.68 GFLOPS | Progress: (8/10) | 5.52 s
    [Task 11/25]  Current/Best:   42.91/  45.68 GFLOPS | Progress: (10/10) | 6.50 s Done.
+
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 12/25]  Current/Best:   36.63/  39.58 GFLOPS | Progress: (4/10) | 2.90 s
    [Task 12/25]  Current/Best:   19.09/  40.93 GFLOPS | Progress: (8/10) | 8.30 s
    [Task 12/25]  Current/Best:   16.65/  40.93 GFLOPS | Progress: (10/10) | 12.88 s Done.
+
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 13/25]  Current/Best:   33.60/  33.83 GFLOPS | Progress: (4/10) | 4.37 s
    [Task 13/25]  Current/Best:   37.78/  37.78 GFLOPS | Progress: (8/10) | 6.84 s
    [Task 13/25]  Current/Best:   34.23/  39.28 GFLOPS | Progress: (10/10) | 7.96 s Done.
+
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 14/25]  Current/Best:   20.18/  30.45 GFLOPS | Progress: (4/10) | 13.40 s
    [Task 14/25]  Current/Best:   33.35/  33.35 GFLOPS | Progress: (8/10) | 15.68 s
    [Task 14/25]  Current/Best:   22.92/  33.35 GFLOPS | Progress: (10/10) | 18.02 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s Done.
+
    [Task 15/25]  Current/Best:   25.40/  25.40 GFLOPS | Progress: (4/10) | 31.76 s
    [Task 15/25]  Current/Best:   27.29/  46.30 GFLOPS | Progress: (8/10) | 61.34 s
    [Task 15/25]  Current/Best:   21.78/  46.30 GFLOPS | Progress: (10/10) | 61.92 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 16/25]  Current/Best:   25.67/  32.52 GFLOPS | Progress: (4/10) | 3.33 s
    [Task 16/25]  Current/Best:   35.96/  39.86 GFLOPS | Progress: (8/10) | 8.51 s
    [Task 16/25]  Current/Best:   18.22/  39.86 GFLOPS | Progress: (10/10) | 9.20 s Done.
+
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 17/25]  Current/Best:   26.28/  46.08 GFLOPS | Progress: (4/10) | 5.39 s
    [Task 17/25]  Current/Best:   43.30/  46.08 GFLOPS | Progress: (8/10) | 9.06 s
    [Task 17/25]  Current/Best:   28.79/  46.08 GFLOPS | Progress: (10/10) | 10.36 s Done.
+
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 18/25]  Current/Best:   13.36/  22.38 GFLOPS | Progress: (4/10) | 12.55 s
    [Task 18/25]  Current/Best:   23.44/  29.70 GFLOPS | Progress: (8/10) | 23.53 s
    [Task 18/25]  Current/Best:   14.78/  29.70 GFLOPS | Progress: (10/10) | 32.30 s Done.
+
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 19/25]  Current/Best:   27.90/  31.95 GFLOPS | Progress: (4/10) | 9.07 s
    [Task 19/25]  Current/Best:   17.73/  37.48 GFLOPS | Progress: (8/10) | 16.89 s
    [Task 19/25]  Current/Best:   10.19/  38.22 GFLOPS | Progress: (10/10) | 19.03 s Done.
+
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 20/25]  Current/Best:   11.49/  22.93 GFLOPS | Progress: (4/10) | 32.03 s
    [Task 20/25]  Current/Best:    0.00/  22.93 GFLOPS | Progress: (8/10) | 219.53 s
    [Task 20/25]  Current/Best:   38.14/  38.14 GFLOPS | Progress: (10/10) | 394.85 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s Done.
+
    [Task 21/25]  Current/Best:   10.31/  29.05 GFLOPS | Progress: (4/10) | 177.84 s
    [Task 21/25]  Current/Best:   34.68/  34.68 GFLOPS | Progress: (8/10) | 180.43 s
    [Task 21/25]  Current/Best:   15.44/  34.68 GFLOPS | Progress: (10/10) | 188.06 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 22/25]  Current/Best:   21.00/  21.00 GFLOPS | Progress: (4/10) | 5.05 s
    [Task 22/25]  Current/Best:   29.20/  38.97 GFLOPS | Progress: (8/10) | 6.32 s
    [Task 22/25]  Current/Best:   23.48/  38.97 GFLOPS | Progress: (10/10) | 7.92 s Done.
+
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 23/25]  Current/Best:   41.08/  41.08 GFLOPS | Progress: (4/10) | 10.63 s
    [Task 23/25]  Current/Best:   42.96/  42.96 GFLOPS | Progress: (8/10) | 19.45 s
    [Task 23/25]  Current/Best:   16.44/  42.96 GFLOPS | Progress: (10/10) | 26.36 s Done.
+
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 24/25]  Current/Best:    1.84/   7.02 GFLOPS | Progress: (4/10) | 89.42 s
    [Task 24/25]  Current/Best:    6.55/   7.85 GFLOPS | Progress: (8/10) | 111.82 s
    [Task 24/25]  Current/Best:    7.87/  10.83 GFLOPS | Progress: (10/10) | 119.60 s
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s Done.
      Done.
-
    [Task 16/25]  Current/Best:   35.04/  36.42 GFLOPS | Progress: (8/10) | 4.19 s
    [Task 16/25]  Current/Best:   26.84/  36.42 GFLOPS | Progress: (10/10) | 5.15 s Done.
-
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 17/25]  Current/Best:   35.83/  36.08 GFLOPS | Progress: (4/10) | 4.96 s
    [Task 17/25]  Current/Best:   21.70/  36.08 GFLOPS | Progress: (8/10) | 7.76 s
    [Task 17/25]  Current/Best:   40.24/  40.24 GFLOPS | Progress: (10/10) | 8.92 s Done.
-
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 18/25]  Current/Best:   18.77/  40.79 GFLOPS | Progress: (4/10) | 9.51 s
    [Task 18/25]  Current/Best:   40.74/  40.79 GFLOPS | Progress: (8/10) | 11.68 s
    [Task 18/25]  Current/Best:   17.90/  40.79 GFLOPS | Progress: (10/10) | 13.33 s Done.
-
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 19/25]  Current/Best:   12.25/  22.47 GFLOPS | Progress: (4/10) | 5.81 s
    [Task 19/25]  Current/Best:    9.31/  24.96 GFLOPS | Progress: (8/10) | 14.89 s
    [Task 19/25]  Current/Best:   36.87/  36.87 GFLOPS | Progress: (10/10) | 16.84 s Done.
-
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 20/25]  Current/Best:   19.62/  19.62 GFLOPS | Progress: (4/10) | 11.52 s
    [Task 20/25]  Current/Best:   19.99/  19.99 GFLOPS | Progress: (8/10) | 187.76 s
    [Task 20/25]  Current/Best:   17.08/  32.58 GFLOPS | Progress: (10/10) | 188.56 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 21/25]  Current/Best:   34.90/  34.90 GFLOPS | Progress: (4/10) | 32.08 s
    [Task 21/25]  Current/Best:   25.95/  34.90 GFLOPS | Progress: (8/10) | 34.98 s
    [Task 21/25]  Current/Best:   36.41/  36.41 GFLOPS | Progress: (10/10) | 35.62 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 22/25]  Current/Best:   36.05/  36.05 GFLOPS | Progress: (4/10) | 12.12 s
    [Task 22/25]  Current/Best:    9.91/  36.44 GFLOPS | Progress: (8/10) | 13.40 s
    [Task 22/25]  Current/Best:   24.79/  36.44 GFLOPS | Progress: (10/
 10) | 14.32 s Done.
-
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 23/25]  Current/Best:   17.40/  23.26 GFLOPS | Progress: (4/10) | 4.70 s
    [Task 23/25]  Current/Best:   43.82/  43.82 GFLOPS | Progress: (8/10) | 6.41 s
    [Task 23/25]  Current/Best:   26.00/  43.82 GFLOPS | Progress: (10/10) | 7.45 s Done.
-
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 24/25]  Current/Best:    9.45/   9.45 GFLOPS | Progress: (4/10) | 6.93 s
    [Task 24/25]  Current/Best:    9.61/   9.61 GFLOPS | Progress: (8/10) | 52.66 s
    [Task 24/25]  Current/Best:   12.27/  12.27 GFLOPS | Progress: (10/10) | 53.69 s
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s Done.
      Done.
-     Done.
-
    [Task 25/25]  Current/Best:    3.13/   3.13 GFLOPS | Progress: (4/10) | 3.17 s
    [Task 25/25]  Current/Best:    2.48/   3.13 GFLOPS | Progress: (8/10) | 15.43 s
    [Task 25/25]  Current/Best:    0.00/   3.13 GFLOPS | Progress: (10/10) | 45.72 s
+
    [Task 25/25]  Current/Best:    2.16/   2.16 GFLOPS | Progress: (4/10) | 13.41 s
    [Task 25/25]  Current/Best:    2.96/   2.96 GFLOPS | Progress: (8/10) | 25.92 s
    [Task 25/25]  Current/Best:    2.06/   2.96 GFLOPS | Progress: (10/10) | 26.51 s
 
 
 The output from this tuning process will look something like this:
@@ -597,7 +597,7 @@ Verify that the optimized model runs and produces the same results:
  .. code-block:: none
 
     class='n02123045 tabby, tabby cat' with probability=0.610552
-    class='n02123159 tiger cat' with probability=0.367180
+    class='n02123159 tiger cat' with probability=0.367179
     class='n02124075 Egyptian cat' with probability=0.019365
     class='n02129604 tiger, Panthera tigris' with probability=0.001273
     class='n04040759 radiator' with probability=0.000261
@@ -650,8 +650,8 @@ improvement in comparing the optimized model to the unoptimized model.
 
  .. code-block:: none
 
-    optimized: {'mean': 211.9480087934062, 'median': 211.2688914872706, 'std': 1.1843122740378864}
-    unoptimized: {'mean': 229.1864895541221, 'median': 228.7280524149537, 'std': 1.0664440211813757}
+    optimized: {'mean': 208.14901499077678, 'median': 207.8273080289364, 'std': 1.5755151130274634}
+    unoptimized: {'mean': 249.92160882335156, 'median': 249.40169705078006, 'std': 1.3641753266557834}
 
 
 
@@ -671,7 +671,7 @@ profiling/benchmarking.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 13 minutes  32.640 seconds)
+   **Total running time of the script:** ( 19 minutes  58.259 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 a8dba25..56b12c5 100644
--- a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
@@ -235,7 +235,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.178e-07 secs/op
+    1.33e-07 secs/op
 
 
 
diff --git a/docs/_sources/tutorial/intro_topi.rst.txt b/docs/_sources/tutorial/intro_topi.rst.txt
index aeace81..7751ce0 100644
--- a/docs/_sources/tutorial/intro_topi.rst.txt
+++ b/docs/_sources/tutorial/intro_topi.rst.txt
@@ -228,7 +228,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, placeholder(a, 0xa34f3b0)), stage(b, placeholder(b, 0x217ec360)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min [...]
+    [stage(a, placeholder(a, 0x4d31620)), stage(b, placeholder(b, 0x11fa0220)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min [...]
 
 
 
diff --git a/docs/_sources/tutorial/sg_execution_times.rst.txt b/docs/_sources/tutorial/sg_execution_times.rst.txt
index 43bc00b..4d26b63 100644
--- a/docs/_sources/tutorial/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorial/sg_execution_times.rst.txt
@@ -5,16 +5,16 @@
 
 Computation times
 =================
-**15:54.673** total execution time for **tutorial** files:
+**22:31.223** total execution time for **tutorial** files:
 
-- **13:32.640**: :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)
-- **00:58.936**: :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
-- **00:36.634**: :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``)
-- **00:29.982**: :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)
-- **00:15.214**: :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)
-- **00:00.545**: :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)
-- **00:00.480**: :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)
+- **19:58.259**: :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)
+- **00:58.153**: :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:39.625**: :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``)
+- **00:30.904**: :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:22.489**: :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)
+- **00:00.999**: :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)
+- **00:00.552**: :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)
 - **00:00.164**: :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
 - **00:00.028**: :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)
-- **00:00.026**: :ref:`sphx_glr_tutorial_install.py` (``install.py``)
+- **00:00.025**: :ref:`sphx_glr_tutorial_install.py` (``install.py``)
 - **00:00.025**: :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)
diff --git a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
index a84bb42..c8d1523 100644
--- a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
@@ -233,7 +233,7 @@ helper function to run a profile of the TVM generated code.
 
  .. code-block:: none
 
-    Numpy running time: 0.000007
+    Numpy running time: 0.000008
     naive: 0.000006
 
 
@@ -380,14 +380,14 @@ factor to be the number of threads on your CPU.
     vector: 0.000016
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: Pointer(float32), float32, [n: int32], [stride: int32], type="auto"),
-                 A: Buffer(A_2: Pointer(float32), float32, [n], [stride_1: int32], type="auto"),
+      buffers = {A: Buffer(A_2: Pointer(float32), float32, [n: int32], [stride: int32], type="auto"),
+                 C: Buffer(C_2: Pointer(float32), float32, [n], [stride_1: int32], type="auto"),
                  B: Buffer(B_2: Pointer(float32), float32, [n], [stride_2: int32], type="auto")}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i.outer: int32, 0, floordiv((n + 3), 4)) "parallel" {
         for (i.inner.s: int32, 0, 4) {
           if @tir.likely((((i.outer*4) + i.inner.s) < n), dtype=bool) {
-            C_2[(((i.outer*4) + i.inner.s)*stride)] = ((float32*)A_2[(((i.outer*4) + i.inner.s)*stride_1)] + (float32*)B_2[(((i.outer*4) + i.inner.s)*stride_2)])
+            C_2[(((i.outer*4) + i.inner.s)*stride_1)] = ((float32*)A_2[(((i.outer*4) + i.inner.s)*stride)] + (float32*)B_2[(((i.outer*4) + i.inner.s)*stride_2)])
           }
         }
       }
@@ -425,10 +425,10 @@ We can now compare the different schedules
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                   numpy    6.94196205586195e-06                     1.0
-                   naive    5.6450999999999995e-06    0.8131850843571162
-                parallel              5.1746e-06      0.7454088567986987
-                  vector             1.58908e-05       2.289093468406594
+                   numpy    7.98278022557497e-06                     1.0
+                   naive              5.9189e-06      0.7414584684465222
+                parallel    4.9771999999999995e-06    0.6234920490550659
+                  vector    1.6127399999999997e-05    2.0202735819196875
 
 
 
@@ -817,7 +817,7 @@ matrix multiplication.
 
  .. code-block:: none
 
-    Numpy running time: 0.007339
+    Numpy running time: 0.009308
 
 
 
@@ -873,7 +873,7 @@ optimizations.
 
  .. code-block:: none
 
-    none: 3.270636
+    none: 3.109406
 
 
 
@@ -969,7 +969,7 @@ schedule.
 
  .. code-block:: none
 
-    blocking: 0.283921
+    blocking: 0.291928
 
 
 
@@ -995,8 +995,8 @@ internal representation and compare it to the original:
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
-                 A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
+      buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
+                 C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
                  B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (x.outer: int32, 0, 32) {
@@ -1057,7 +1057,7 @@ already cache friendly from our previous optimizations.
 
  .. code-block:: none
 
-    vectorization: 0.321941
+    vectorization: 0.331263
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1125,7 +1125,7 @@ more cache friendly.
 
  .. code-block:: none
 
-    loop permutation: 0.110927
+    loop permutation: 0.113750
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1218,7 +1218,7 @@ optimized schedule.
 
  .. code-block:: none
 
-    array packing: 0.215637
+    array packing: 0.224114
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1305,7 +1305,7 @@ to `C` when all the block results are ready.
 
  .. code-block:: none
 
-    block caching: 0.199154
+    block caching: 0.224213
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1382,7 +1382,7 @@ of thread-level parallelization.
 
  .. code-block:: none
 
-    parallelization: 0.058826
+    parallelization: 0.067949
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1454,13 +1454,13 @@ working, we can compare the results.
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                    none      3.2706357621000004                     1.0
-                blocking            0.2839211449     0.08680916052776867
-           vectorization            0.3219410705     0.09843378899926447
-        loop permutation            0.1109266605    0.033915932121030966
-           array packing            0.2156372384       0.065931291065424
-           block caching     0.19915391919999997     0.06089150051735746
-         parallelization     0.05882565829999999    0.017986001064890633
+                    none            3.1094061458                     1.0
+                blocking     0.29192816779999997     0.09388550549895809
+           vectorization            0.3312631714     0.10653583220302389
+        loop permutation            0.1137497149    0.036582456445468314
+           array packing            0.2241142794     0.07207623221003798
+           block caching     0.22421289339999997     0.07210794694763607
+         parallelization            0.0679485881    0.021852593361526892
 
 
 
diff --git a/docs/api/links.html b/docs/api/links.html
new file mode 100644
index 0000000..dad4f93
--- /dev/null
+++ b/docs/api/links.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../reference/api/links.html" />
+    <script>
+      window.location.href = "../reference/api/links.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/auto_scheduler.html b/docs/api/python/auto_scheduler.html
new file mode 100644
index 0000000..f632fbb
--- /dev/null
+++ b/docs/api/python/auto_scheduler.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/auto_scheduler.html" />
+    <script>
+      window.location.href = "../../reference/api/python/auto_scheduler.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/autotvm.html b/docs/api/python/autotvm.html
new file mode 100644
index 0000000..f5609e4
--- /dev/null
+++ b/docs/api/python/autotvm.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/autotvm.html" />
+    <script>
+      window.location.href = "../../reference/api/python/autotvm.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/contrib.html b/docs/api/python/contrib.html
new file mode 100644
index 0000000..d1f8a2e
--- /dev/null
+++ b/docs/api/python/contrib.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/contrib.html" />
+    <script>
+      window.location.href = "../../reference/api/python/contrib.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/driver.html b/docs/api/python/driver.html
new file mode 100644
index 0000000..26f458b
--- /dev/null
+++ b/docs/api/python/driver.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/driver.html" />
+    <script>
+      window.location.href = "../../reference/api/python/driver.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/error.html b/docs/api/python/error.html
new file mode 100644
index 0000000..143dda4
--- /dev/null
+++ b/docs/api/python/error.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/error.html" />
+    <script>
+      window.location.href = "../../reference/api/python/error.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/graph_executor.html b/docs/api/python/graph_executor.html
new file mode 100644
index 0000000..7451482
--- /dev/null
+++ b/docs/api/python/graph_executor.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/graph_executor.html" />
+    <script>
+      window.location.href = "../../reference/api/python/graph_executor.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/index.html b/docs/api/python/index.html
new file mode 100644
index 0000000..4a98376
--- /dev/null
+++ b/docs/api/python/index.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/index.html" />
+    <script>
+      window.location.href = "../../reference/api/python/index.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/ir.html b/docs/api/python/ir.html
new file mode 100644
index 0000000..dccedbd
--- /dev/null
+++ b/docs/api/python/ir.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/ir.html" />
+    <script>
+      window.location.href = "../../reference/api/python/ir.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/micro.html b/docs/api/python/micro.html
new file mode 100644
index 0000000..c0b5c20
--- /dev/null
+++ b/docs/api/python/micro.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/micro.html" />
+    <script>
+      window.location.href = "../../reference/api/python/micro.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/ndarray.html b/docs/api/python/ndarray.html
new file mode 100644
index 0000000..0c7c4d3
--- /dev/null
+++ b/docs/api/python/ndarray.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/ndarray.html" />
+    <script>
+      window.location.href = "../../reference/api/python/ndarray.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/analysis.html b/docs/api/python/relay/analysis.html
new file mode 100644
index 0000000..7e921dd
--- /dev/null
+++ b/docs/api/python/relay/analysis.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/analysis.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/analysis.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/backend.html b/docs/api/python/relay/backend.html
new file mode 100644
index 0000000..0448c11
--- /dev/null
+++ b/docs/api/python/relay/backend.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/backend.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/backend.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/dataflow_pattern.html b/docs/api/python/relay/dataflow_pattern.html
new file mode 100644
index 0000000..8d96d34
--- /dev/null
+++ b/docs/api/python/relay/dataflow_pattern.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/dataflow_pattern.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/dataflow_pattern.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/frontend.html b/docs/api/python/relay/frontend.html
new file mode 100644
index 0000000..a1425d2
--- /dev/null
+++ b/docs/api/python/relay/frontend.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/frontend.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/frontend.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/image.html b/docs/api/python/relay/image.html
new file mode 100644
index 0000000..aeb4f67
--- /dev/null
+++ b/docs/api/python/relay/image.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/image.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/image.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/index.html b/docs/api/python/relay/index.html
new file mode 100644
index 0000000..2f3fb5e
--- /dev/null
+++ b/docs/api/python/relay/index.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/index.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/index.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/nn.html b/docs/api/python/relay/nn.html
new file mode 100644
index 0000000..d2e10d5
--- /dev/null
+++ b/docs/api/python/relay/nn.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/nn.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/nn.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/testing.html b/docs/api/python/relay/testing.html
new file mode 100644
index 0000000..3ce810a
--- /dev/null
+++ b/docs/api/python/relay/testing.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/testing.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/testing.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/transform.html b/docs/api/python/relay/transform.html
new file mode 100644
index 0000000..b50a68e
--- /dev/null
+++ b/docs/api/python/relay/transform.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/transform.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/transform.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/relay/vision.html b/docs/api/python/relay/vision.html
new file mode 100644
index 0000000..1335481
--- /dev/null
+++ b/docs/api/python/relay/vision.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/relay/vision.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/relay/vision.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/rpc.html b/docs/api/python/rpc.html
new file mode 100644
index 0000000..a67a107
--- /dev/null
+++ b/docs/api/python/rpc.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/rpc.html" />
+    <script>
+      window.location.href = "../../reference/api/python/rpc.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/runtime.html b/docs/api/python/runtime.html
new file mode 100644
index 0000000..e1b2f00
--- /dev/null
+++ b/docs/api/python/runtime.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/runtime.html" />
+    <script>
+      window.location.href = "../../reference/api/python/runtime.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/target.html b/docs/api/python/target.html
new file mode 100644
index 0000000..bb76c46
--- /dev/null
+++ b/docs/api/python/target.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/target.html" />
+    <script>
+      window.location.href = "../../reference/api/python/target.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/te.html b/docs/api/python/te.html
new file mode 100644
index 0000000..6b88c8c
--- /dev/null
+++ b/docs/api/python/te.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/te.html" />
+    <script>
+      window.location.href = "../../reference/api/python/te.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/tir.html b/docs/api/python/tir.html
new file mode 100644
index 0000000..fbbaeb9
--- /dev/null
+++ b/docs/api/python/tir.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/tir.html" />
+    <script>
+      window.location.href = "../../reference/api/python/tir.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/topi.html b/docs/api/python/topi.html
new file mode 100644
index 0000000..c9301fd
--- /dev/null
+++ b/docs/api/python/topi.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../reference/api/python/topi.html" />
+    <script>
+      window.location.href = "../../reference/api/python/topi.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/api/python/vta/index.html b/docs/api/python/vta/index.html
new file mode 100644
index 0000000..75c10bb
--- /dev/null
+++ b/docs/api/python/vta/index.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../../reference/api/python/vta/index.html" />
+    <script>
+      window.location.href = "../../../reference/api/python/vta/index.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/deploy/android.html b/docs/deploy/android.html
new file mode 100644
index 0000000..c568fad
--- /dev/null
+++ b/docs/deploy/android.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/deploy/android.html" />
+    <script>
+      window.location.href = "../how_to/deploy/android.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/deploy/arm_compute_lib.html b/docs/deploy/arm_compute_lib.html
new file mode 100644
index 0000000..f12a093
--- /dev/null
+++ b/docs/deploy/arm_compute_lib.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/deploy/arm_compute_lib.html" />
+    <script>
+      window.location.href = "../how_to/deploy/arm_compute_lib.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/deploy/bnns.html b/docs/deploy/bnns.html
new file mode 100644
index 0000000..d6a6756
--- /dev/null
+++ b/docs/deploy/bnns.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/deploy/bnns.html" />
+    <script>
+      window.location.href = "../how_to/deploy/bnns.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/deploy/cpp_deploy.html b/docs/deploy/cpp_deploy.html
new file mode 100644
index 0000000..475fde2
--- /dev/null
+++ b/docs/deploy/cpp_deploy.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/deploy/cpp_deploy.html" />
+    <script>
+      window.location.href = "../how_to/deploy/cpp_deploy.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/deploy/hls.html b/docs/deploy/hls.html
new file mode 100644
index 0000000..3956d49
--- /dev/null
+++ b/docs/deploy/hls.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/deploy/hls.html" />
+    <script>
+      window.location.href = "../how_to/deploy/hls.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/deploy/index.html b/docs/deploy/index.html
new file mode 100644
index 0000000..87d19c0
--- /dev/null
+++ b/docs/deploy/index.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/deploy/index.html" />
+    <script>
+      window.location.href = "../how_to/deploy/index.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/deploy/integrate.html b/docs/deploy/integrate.html
new file mode 100644
index 0000000..3e6c45a
--- /dev/null
+++ b/docs/deploy/integrate.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/deploy/integrate.html" />
+    <script>
+      window.location.href = "../how_to/deploy/integrate.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/deploy/tensorrt.html b/docs/deploy/tensorrt.html
new file mode 100644
index 0000000..0c11630
--- /dev/null
+++ b/docs/deploy/tensorrt.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/deploy/tensorrt.html" />
+    <script>
+      window.location.href = "../how_to/deploy/tensorrt.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/deploy/vitis_ai.html b/docs/deploy/vitis_ai.html
new file mode 100644
index 0000000..16595f9
--- /dev/null
+++ b/docs/deploy/vitis_ai.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/deploy/vitis_ai.html" />
+    <script>
+      window.location.href = "../how_to/deploy/vitis_ai.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/benchmark.html b/docs/dev/benchmark.html
new file mode 100644
index 0000000..31e687e
--- /dev/null
+++ b/docs/dev/benchmark.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/benchmark.html" />
+    <script>
+      window.location.href = "../arch/benchmark.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/codebase_walkthrough.html b/docs/dev/codebase_walkthrough.html
new file mode 100644
index 0000000..511e8f0
--- /dev/null
+++ b/docs/dev/codebase_walkthrough.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=tutorial/codebase_walkthrough.html" />
+    <script>
+      window.location.href = "tutorial/codebase_walkthrough.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/convert_layout.html b/docs/dev/convert_layout.html
new file mode 100644
index 0000000..d478a1b
--- /dev/null
+++ b/docs/dev/convert_layout.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/convert_layout.html" />
+    <script>
+      window.location.href = "../arch/convert_layout.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/debugger.html b/docs/dev/debugger.html
new file mode 100644
index 0000000..4cf2f9e
--- /dev/null
+++ b/docs/dev/debugger.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/debugger.html" />
+    <script>
+      window.location.href = "../arch/debugger.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/device_target_interactions.html b/docs/dev/device_target_interactions.html
new file mode 100644
index 0000000..a3ac67c
--- /dev/null
+++ b/docs/dev/device_target_interactions.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/device_target_interactions.html" />
+    <script>
+      window.location.href = "../arch/device_target_interactions.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/frontend/tensorflow.html b/docs/dev/frontend/tensorflow.html
new file mode 100644
index 0000000..8909baa
--- /dev/null
+++ b/docs/dev/frontend/tensorflow.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../arch/frontend/tensorflow.html" />
+    <script>
+      window.location.href = "../../arch/frontend/tensorflow.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/how_to.html b/docs/dev/how_to.html
new file mode 100644
index 0000000..f2e9c2e
--- /dev/null
+++ b/docs/dev/how_to.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=index.html" />
+    <script>
+      window.location.href = "index.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/how_to/pytest_target_parametrization.html b/docs/dev/how_to/pytest_target_parametrization.html
index c037ce6..c9a9b44 100644
--- a/docs/dev/how_to/pytest_target_parametrization.html
+++ b/docs/dev/how_to/pytest_target_parametrization.html
@@ -319,14 +319,14 @@
 <h1>Python Target Parametrization<a class="headerlink" href="#python-target-parametrization" title="Permalink to this headline">¶</a></h1>
 <div class="section" id="summary">
 <h2>Summary<a class="headerlink" href="#summary" title="Permalink to this headline">¶</a></h2>
-<p>For any supported runtime, TVM should should produce numerically
+<p>For any supported runtime, TVM should produce numerically
 correct results.  Therefore, when writing unit tests that validate
 the numeric output, these unit tests should be run on all supported
 runtimes.  Since this is a very common use case, TVM has helper
 functions to parametrize unit tests such that they will run on all
 targets that are enabled and have a compatible device.</p>
 <p>A single python function in the test suite can expand to several
-parametrized unit tests, each of which tests a single target device.
+parameterized unit tests, each of which tests a single target device.
 In order for a test to be run, all of the following must be true.</p>
 <ul class="simple">
 <li><p>The test exists in a file or directory that has been passed to
@@ -410,10 +410,10 @@ marks are as follows.</p>
 <li><p><code class="docutils literal notranslate"><span class="pre">&#64;pytest.mark.gpu</span></code> - Tags a function as using GPU
 capabilities. This has no effect on its own, but can be paired with
 command-line arguments <code class="docutils literal notranslate"><span class="pre">-m</span> <span class="pre">gpu</span></code> or <code class="docutils literal notranslate"><span class="pre">-m</span> <span class="pre">'not</span> <span class="pre">gpu'</span></code> to restrict
-which tests pytest will executed.  This should not be called on its
+which tests pytest will execute.  This should not be called on its
 own, but is part of other marks used in unit-tests.</p></li>
 <li><p><code class="docutils literal notranslate"><span class="pre">&#64;tvm.testing.uses_gpu</span></code> - Applies <code class="docutils literal notranslate"><span class="pre">&#64;pytest.mark.gpu</span></code>.  This
-should be used to mark a unit tests that may use the GPU, if one is
+should be used to mark unit tests that may use the GPU, if one is
 present.  This decorator is only needed for tests that explicitly
 loop over <code class="docutils literal notranslate"><span class="pre">tvm.testing.enabled_targets()</span></code>, but that is no longer
 the preferred style of writing unit tests (see below).  When using
@@ -438,7 +438,7 @@ listed as skipped.</p>
 all targets that are enabled and runnable on the current machine,
 based on the environment variable <code class="docutils literal notranslate"><span class="pre">TVM_TEST_TARGETS</span></code>, the build
 configuration, and the physical hardware present.  Most current tests
-explictly loop over the targets returned from <code class="docutils literal notranslate"><span class="pre">enabled_targets()</span></code>,
+explicitly loop over the targets returned from <code class="docutils literal notranslate"><span class="pre">enabled_targets()</span></code>,
 but it should not be used for new tests.  The pytest output for this
 style silently skips runtimes that are disabled in <code class="docutils literal notranslate"><span class="pre">config.cmake</span></code>,
 or do not have a device on which they can run.  In addition, the test
diff --git a/docs/dev/hybrid_script.html b/docs/dev/hybrid_script.html
new file mode 100644
index 0000000..b4043b5
--- /dev/null
+++ b/docs/dev/hybrid_script.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/hybrid_script.html" />
+    <script>
+      window.location.href = "../arch/hybrid_script.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/index.html b/docs/dev/index.html
new file mode 100644
index 0000000..f99695f
--- /dev/null
+++ b/docs/dev/index.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/index.html" />
+    <script>
+      window.location.href = "../arch/index.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/inferbound.html b/docs/dev/inferbound.html
new file mode 100644
index 0000000..2cec43e
--- /dev/null
+++ b/docs/dev/inferbound.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/inferbound.html" />
+    <script>
+      window.location.href = "../arch/inferbound.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/introduction_to_module_serialization.html b/docs/dev/introduction_to_module_serialization.html
new file mode 100644
index 0000000..872b0f8
--- /dev/null
+++ b/docs/dev/introduction_to_module_serialization.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/introduction_to_module_serialization.html" />
+    <script>
+      window.location.href = "../arch/introduction_to_module_serialization.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/microtvm_design.html b/docs/dev/microtvm_design.html
new file mode 100644
index 0000000..db5a1bb
--- /dev/null
+++ b/docs/dev/microtvm_design.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/microtvm_design.html" />
+    <script>
+      window.location.href = "../arch/microtvm_design.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/model_library_format.html b/docs/dev/model_library_format.html
new file mode 100644
index 0000000..71e27ef
--- /dev/null
+++ b/docs/dev/model_library_format.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/model_library_format.html" />
+    <script>
+      window.location.href = "../arch/model_library_format.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/pass_infra.html b/docs/dev/pass_infra.html
new file mode 100644
index 0000000..06ae8b5
--- /dev/null
+++ b/docs/dev/pass_infra.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/pass_infra.html" />
+    <script>
+      window.location.href = "../arch/pass_infra.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/pytest_target_parametrization.html b/docs/dev/pytest_target_parametrization.html
new file mode 100644
index 0000000..1d0d6c9
--- /dev/null
+++ b/docs/dev/pytest_target_parametrization.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=how_to/pytest_target_parametrization.html" />
+    <script>
+      window.location.href = "how_to/pytest_target_parametrization.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/relay_add_op.html b/docs/dev/relay_add_op.html
new file mode 100644
index 0000000..4ef68f2
--- /dev/null
+++ b/docs/dev/relay_add_op.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=how_to/relay_add_op.html" />
+    <script>
+      window.location.href = "how_to/relay_add_op.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/relay_add_pass.html b/docs/dev/relay_add_pass.html
new file mode 100644
index 0000000..d71f76e
--- /dev/null
+++ b/docs/dev/relay_add_pass.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=how_to/relay_add_pass.html" />
+    <script>
+      window.location.href = "how_to/relay_add_pass.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/relay_bring_your_own_codegen.html b/docs/dev/relay_bring_your_own_codegen.html
new file mode 100644
index 0000000..8aa3373
--- /dev/null
+++ b/docs/dev/relay_bring_your_own_codegen.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=how_to/relay_bring_your_own_codegen.html" />
+    <script>
+      window.location.href = "how_to/relay_bring_your_own_codegen.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/relay_intro.html b/docs/dev/relay_intro.html
new file mode 100644
index 0000000..d6b9233
--- /dev/null
+++ b/docs/dev/relay_intro.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/relay_intro.html" />
+    <script>
+      window.location.href = "../arch/relay_intro.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/relay_op_strategy.html b/docs/dev/relay_op_strategy.html
new file mode 100644
index 0000000..720f11b
--- /dev/null
+++ b/docs/dev/relay_op_strategy.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/relay_op_strategy.html" />
+    <script>
+      window.location.href = "../arch/relay_op_strategy.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/runtime.html b/docs/dev/runtime.html
new file mode 100644
index 0000000..6bbfa7d
--- /dev/null
+++ b/docs/dev/runtime.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/runtime.html" />
+    <script>
+      window.location.href = "../arch/runtime.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/runtimes/vulkan.html b/docs/dev/runtimes/vulkan.html
new file mode 100644
index 0000000..020a69c
--- /dev/null
+++ b/docs/dev/runtimes/vulkan.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../../arch/runtimes/vulkan.html" />
+    <script>
+      window.location.href = "../../arch/runtimes/vulkan.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/security.html b/docs/dev/security.html
new file mode 100644
index 0000000..6a8755f
--- /dev/null
+++ b/docs/dev/security.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/security.html" />
+    <script>
+      window.location.href = "../arch/security.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/dev/virtual_machine.html b/docs/dev/virtual_machine.html
new file mode 100644
index 0000000..6d30679
--- /dev/null
+++ b/docs/dev/virtual_machine.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../arch/virtual_machine.html" />
+    <script>
+      window.location.href = "../arch/virtual_machine.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/genindex.html b/docs/genindex.html
index 6857cf2..368ab5d 100644
--- a/docs/genindex.html
+++ b/docs/genindex.html
@@ -884,10 +884,10 @@
 </li>
       <li><a href="reference/api/python/topi.html#tvm.topi.nn.conv1d_nwc">conv1d_nwc() (in module tvm.topi.nn)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/relay/nn.html#tvm.relay.nn.conv1d_transpose">conv1d_transpose() (in module tvm.relay.nn)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/topi.html#tvm.topi.nn.conv1d_transpose_ncw">conv1d_transpose_ncw() (in module tvm.topi.nn)</a>
 </li>
       <li><a href="reference/api/python/relay/nn.html#tvm.relay.nn.conv2d">conv2d() (in module tvm.relay.nn)</a>
@@ -1038,6 +1038,8 @@
 </li>
       <li><a href="reference/api/python/te.html#tvm.te.create_prim_func">create_prim_func() (in module tvm.te)</a>
 </li>
+      <li><a href="reference/api/python/te.html#tvm.te.create_prim_func_from_outputs">create_prim_func_from_outputs() (in module tvm.te)</a>
+</li>
       <li><a href="reference/api/python/runtime.html#tvm.runtime.Device.create_raw_stream">create_raw_stream() (tvm.runtime.Device method)</a>
 </li>
       <li><a href="reference/api/python/te.html#tvm.te.create_schedule">create_schedule() (in module tvm.te)</a>
@@ -1290,6 +1292,8 @@
 </li>
       <li><a href="reference/api/python/autotvm.html#tvm.autotvm.record.encode">encode() (in module tvm.autotvm.record)</a>
 </li>
+      <li><a href="reference/api/python/ir.html#tvm.instrument.PassInstrument.enter_pass_ctx">enter_pass_ctx() (tvm.instrument.PassInstrument method)</a>
+</li>
       <li><a href="reference/api/python/tir.html#tvm.tir.Schedule.enter_postproc">enter_postproc() (tvm.tir.Schedule method)</a>
 </li>
       <li><a href="reference/api/python/runtime.html#tvm.runtime.Module.entry_func">entry_func (tvm.runtime.Module property)</a>
@@ -1324,6 +1328,8 @@
 </li>
       <li><a href="reference/api/python/runtime.html#tvm.runtime.Device.exist">exist (tvm.runtime.Device property)</a>
 </li>
+      <li><a href="reference/api/python/ir.html#tvm.instrument.PassInstrument.exit_pass_ctx">exit_pass_ctx() (tvm.instrument.PassInstrument method)</a>
+</li>
       <li><a href="reference/api/python/te.html#tvm.te.exp">exp() (in module tvm.te)</a>
 
       <ul>
@@ -1586,6 +1592,8 @@
 </li>
       <li><a href="reference/api/python/relay/analysis.html#tvm.relay.analysis.get_calibration_data">get_calibration_data() (in module tvm.relay.analysis)</a>
 </li>
+      <li><a href="reference/api/python/tir.html#tvm.tir.Schedule.get_child_blocks">get_child_blocks() (tvm.tir.Schedule method)</a>
+</li>
       <li><a href="reference/api/python/relay/testing.html#tvm.relay.testing.vgg.get_classifier">get_classifier() (in module tvm.relay.testing.vgg)</a>
 </li>
       <li><a href="reference/api/python/topi.html#tvm.topi.image.get_closest_index">get_closest_index() (in module tvm.topi.image)</a>
@@ -1654,6 +1662,8 @@
 </li>
       <li><a href="reference/api/python/tir.html#tvm.tir.Schedule.get_loops">get_loops() (tvm.tir.Schedule method)</a>
 </li>
+      <li><a href="reference/api/python/micro.html#tvm.micro.get_microtvm_template_projects">get_microtvm_template_projects() (in module tvm.micro)</a>
+</li>
       <li><a href="reference/api/python/relay/testing.html#tvm.relay.testing.Prelude.get_name">get_name() (tvm.relay.testing.Prelude method)</a>
 </li>
       <li><a href="reference/api/python/relay/testing.html#tvm.relay.testing.Prelude.get_name_static">get_name_static() (tvm.relay.testing.Prelude method)</a>
@@ -1676,10 +1686,10 @@
         <li><a href="reference/api/python/relay/testing.html#tvm.relay.testing.vgg.get_net">(in module tvm.relay.testing.vgg)</a>
 </li>
       </ul></li>
-      <li><a href="reference/api/python/graph_executor.html#tvm.contrib.graph_executor.GraphModule.get_num_inputs">get_num_inputs() (tvm.contrib.graph_executor.GraphModule method)</a>
-</li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="reference/api/python/graph_executor.html#tvm.contrib.graph_executor.GraphModule.get_num_inputs">get_num_inputs() (tvm.contrib.graph_executor.GraphModule method)</a>
+</li>
       <li><a href="reference/api/python/autotvm.html#tvm.autotvm.task.space.AnnotateSpace.get_num_output">get_num_output() (tvm.autotvm.task.space.AnnotateSpace static method)</a>
 
       <ul>
@@ -2272,6 +2282,8 @@
 <h2 id="M">M</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="reference/api/python/target.html#tvm.target.make_compilation_config">make_compilation_config() (in module tvm.target)</a>
+</li>
       <li><a href="reference/api/python/relay/testing.html#tvm.relay.testing.make_nat_expr">make_nat_expr() (in module tvm.relay.testing)</a>
 </li>
       <li><a href="reference/api/python/relay/testing.html#tvm.relay.testing.make_nat_value">make_nat_value() (in module tvm.relay.testing)</a>
@@ -2985,10 +2997,10 @@
 </li>
       <li><a href="reference/api/python/tir.html#tvm.tir.ScheduleState.replace">replace() (tvm.tir.ScheduleState method)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/runtime.html#tvm.runtime.Report">Report (class in tvm.runtime)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/rpc.html#tvm.rpc.TrackerSession.request">request() (tvm.rpc.TrackerSession method)</a>
 </li>
       <li><a href="reference/api/python/rpc.html#tvm.rpc.TrackerSession.request_and_run">request_and_run() (tvm.rpc.TrackerSession method)</a>
@@ -3097,8 +3109,12 @@
       </ul></li>
       <li><a href="reference/api/python/graph_executor.html#tvm.contrib.graph_executor.GraphModule.run">run() (tvm.contrib.graph_executor.GraphModule method)</a>
 </li>
+      <li><a href="reference/api/python/ir.html#tvm.instrument.PassInstrument.run_after_pass">run_after_pass() (tvm.instrument.PassInstrument method)</a>
+</li>
       <li><a href="reference/api/python/relay/testing.html#tvm.relay.testing.run_as_python">run_as_python() (in module tvm.relay.testing)</a>
 </li>
+      <li><a href="reference/api/python/ir.html#tvm.instrument.PassInstrument.run_before_pass">run_before_pass() (tvm.instrument.PassInstrument method)</a>
+</li>
   </ul></td>
 </tr></table>
 
@@ -3115,6 +3131,8 @@
 </li>
       <li><a href="reference/api/python/auto_scheduler.html#tvm.auto_scheduler.SketchPolicy.sample_initial_population">sample_initial_population() (tvm.auto_scheduler.SketchPolicy method)</a>
 </li>
+      <li><a href="reference/api/python/tir.html#tvm.tir.Schedule.sample_perfect_tile">sample_perfect_tile() (tvm.tir.Schedule method)</a>
+</li>
       <li><a href="reference/api/python/auto_scheduler.html#tvm.auto_scheduler.XGBModel.save">save() (tvm.auto_scheduler.XGBModel method)</a>
 
       <ul>
@@ -3219,6 +3237,8 @@
 </li>
       <li><a href="reference/api/python/graph_executor.html#tvm.contrib.graph_executor.GraphModule.share_params">share_params() (tvm.contrib.graph_executor.GraphModule method)</a>
 </li>
+      <li><a href="reference/api/python/ir.html#tvm.instrument.PassInstrument.should_run">should_run() (tvm.instrument.PassInstrument method)</a>
+</li>
       <li><a href="reference/api/python/tir.html#tvm.tir.Schedule.show">show() (tvm.tir.Schedule method)</a>
 </li>
       <li><a href="reference/api/python/tir.html#tvm.tir.Shuffle">Shuffle (class in tvm.tir)</a>
diff --git a/docs/how_to/compile_models/from_darknet.html b/docs/how_to/compile_models/from_darknet.html
index 3dcffa0..06f0d11 100644
--- a/docs/how_to/compile_models/from_darknet.html
+++ b/docs/how_to/compile_models/from_darknet.html
@@ -549,7 +549,7 @@ class:[&#39;truck 0.9266&#39;] left:471 right:83 top:689 bottom:169
 class:[&#39;bicycle 0.9984&#39;] left:111 right:113 top:577 bottom:447
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  9.553 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  11.483 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-darknet-py">
 <div class="sphx-glr-download 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_tensorflow.html b/docs/how_to/compile_models/from_tensorflow.html
index 38d5e14..3b1c310 100644
--- a/docs/how_to/compile_models/from_tensorflow.html
+++ b/docs/how_to/compile_models/from_tensorflow.html
@@ -611,7 +611,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  19.648 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  21.217 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-tensorflow-py">
 <div class="sphx-glr-download 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 4301698..f1ac850 100644
--- a/docs/how_to/compile_models/sg_execution_times.html
+++ b/docs/how_to/compile_models/sg_execution_times.html
@@ -300,18 +300,18 @@
             
   <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:12.390</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
+<p><strong>06:21.665</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
 <ul class="simple">
-<li><p><strong>01:19.648</strong>: <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></li>
-<li><p><strong>01:09.553</strong>: <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></li>
-<li><p><strong>00:54.464</strong>: <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></li>
-<li><p><strong>00:51.984</strong>: <a class="reference internal" href="from_caffe2.html#sphx-glr-how-to-compile-models-from-caffe2-py"><span class="std std-ref">Compile Caffe2 Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_caffe2.py</span></code>)</p></li>
-<li><p><strong>00:29.934</strong>: <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></li>
-<li><p><strong>00:26.303</strong>: <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></li>
-<li><p><strong>00:24.457</strong>: <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></li>
-<li><p><strong>00:23.142</strong>: <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></li>
-<li><p><strong>00:11.155</strong>: <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></li>
-<li><p><strong>00:01.750</strong>: <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></li>
+<li><p><strong>01:21.217</strong>: <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></li>
+<li><p><strong>01:11.483</strong>: <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></li>
+<li><p><strong>00:55.783</strong>: <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></li>
+<li><p><strong>00:53.696</strong>: <a class="reference internal" href="from_caffe2.html#sphx-glr-how-to-compile-models-from-caffe2-py"><span class="std std-ref">Compile Caffe2 Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_caffe2.py</span></code>)</p></li>
+<li><p><strong>00:30.687</strong>: <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></li>
+<li><p><strong>00:26.879</strong>: <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></li>
+<li><p><strong>00:25.078</strong>: <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></li>
+<li><p><strong>00:23.661</strong>: <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></li>
+<li><p><strong>00:11.349</strong>: <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></li>
+<li><p><strong>00:01.831</strong>: <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></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/deploy/arm_compute_lib.html b/docs/how_to/deploy/arm_compute_lib.html
index e74da4a..111207c 100644
--- a/docs/how_to/deploy/arm_compute_lib.html
+++ b/docs/how_to/deploy/arm_compute_lib.html
@@ -350,30 +350,29 @@ a performance boost on such devices.</p>
 <p>Before installing Arm Compute Library, it is important to know what architecture to build for. One way
 to determine this is to use <cite>lscpu</cite> and look for the “Model name” of the CPU. You can then use this to
 determine the architecture by looking online.</p>
-<p>We recommend two different ways to build and install ACL:</p>
+<p>TVM only supports a single version of ACL, currently this is v21.08, there are two recommended ways to build and install
+the required libraries:</p>
 <ul>
-<li><p>Use the script located at <cite>docker/install/ubuntu_install_arm_compute_lib.sh</cite>. You can use this
-script for building ACL from source natively or for cross-compiling the library on an x86 machine.
-You may need to change the architecture of the device you wish to compile for by altering the
-<cite>target_arch</cite> variable. Binaries will be built from source and installed to the location denoted by
-<cite>install_path</cite>.</p></li>
-<li><p>Alternatively, you can download and use pre-built binaries from:
+<li><p>Use the script located at <cite>docker/install/ubuntu_download_arm_compute_lib_binaries.sh</cite>. You can use this
+script for downloading ACL binaries for the architecture and extensions specified in <cite>target_lib</cite>, these
+will be installed to the location denoted by <cite>install_path</cite>.</p></li>
+<li><p>Alternatively, you can download the pre-built binaries from:
 <a class="reference external" href="https://github.com/ARM-software/ComputeLibrary/releases">https://github.com/ARM-software/ComputeLibrary/releases</a>. When using this package, you will need to
-select the binaries for the architecture you require and make sure they are visible to cmake. This
-can be done like so:</p>
+select the binaries for the architecture and extensions you require, then make sure they are visible
+to CMake:</p>
 <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span> &lt;acl-prebuilt-package&gt;/lib
-mv ./linux-&lt;architecture-to-build-for&gt;-neon/* .
+mv ./&lt;architecture-and-extensions-required&gt;/* .
 </pre></div>
 </div>
 </li>
 </ul>
 <p>In both cases you will need to set USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR to the path where the ACL package
-is located. Cmake will look in /path-to-acl/ along with /path-to-acl/lib and /path-to-acl/build for the
+is located. CMake will look in /path-to-acl/ along with /path-to-acl/lib and /path-to-acl/build for the
 required binaries. See the section below for more information on how to use these configuration options.</p>
 </div>
 <div class="section" id="building-with-acl-support">
 <h2>Building with ACL support<a class="headerlink" href="#building-with-acl-support" title="Permalink to this headline">¶</a></h2>
-<p>The current implementation has two separate build options in cmake. The reason for this split is
+<p>The current implementation has two separate build options in CMake. The reason for this split is
 because ACL cannot be used on an x86 machine. However, we still want to be able compile an ACL
 runtime module on an x86 machine.</p>
 <ul class="simple">
@@ -386,7 +385,7 @@ to compile an ACL module on an x86 machine and then run the module on a remote A
 need to use USE_ARM_COMPUTE_LIB=ON on the x86 machine and USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR=ON on the remote
 AArch64 device.</p>
 <p>By default both options are set to OFF. Using USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR=ON will mean that ACL
-binaries are searched for by cmake in the default locations
+binaries are searched for by CMake in the default locations
 (see <a class="reference external" href="https://cmake.org/cmake/help/v3.4/command/find_library.html">https://cmake.org/cmake/help/v3.4/command/find_library.html</a>). In addition to this,
 /path-to-tvm-project/acl/ will also be searched. It is likely that you will need to set your own path to
 locate ACL. This can be done by specifying a path in the place of ON.</p>
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 c6830a4..d6da3d2 100644
--- a/docs/how_to/deploy_models/deploy_model_on_android.html
+++ b/docs/how_to/deploy_models/deploy_model_on_android.html
@@ -622,7 +622,7 @@ to the remote android device.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  10.2961      10.1803      11.3268      10.0611       0.3590
+  11.9578      11.6688      13.6466      11.5382       0.6720
 </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 09841ba..3a18c7b 100644
--- a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
+++ b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
@@ -494,7 +494,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> ( 2 minutes  18.454 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  24.172 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-object-detection-pytorch-py">
 <div class="sphx-glr-download 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 620852d..7dfc231 100644
--- a/docs/how_to/deploy_models/deploy_prequantized.html
+++ b/docs/how_to/deploy_models/deploy_prequantized.html
@@ -531,7 +531,7 @@ output values are identical out of 1000 outputs from mobilenet v2.</p>
 <p class="sphx-glr-script-out">Out:</p>
 <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)
-  43.7388      43.2618      61.3751      42.8861       1.8866
+  45.2401      44.8524      49.7695      44.4672       0.8217
 </pre></div>
 </div>
 <div class="admonition note">
@@ -570,7 +570,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  36.296 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  38.539 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-py">
 <div class="sphx-glr-download 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 761d7f9..f5e651f 100644
--- a/docs/how_to/deploy_models/deploy_prequantized_tflite.html
+++ b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
@@ -540,7 +540,7 @@ TFLite Top-5 labels: [387 102 386 341 880]
 <p class="sphx-glr-script-out">Out:</p>
 <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)
-  67.6108      67.1922      75.4519      66.3023       1.4117
+  69.3439      69.0170      86.3369      68.2516       1.8214
 </pre></div>
 </div>
 <div class="admonition note">
@@ -568,7 +568,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  18.311 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  22.142 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-tflite-py">
 <div class="sphx-glr-download 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_ssd_gluoncv.html b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
index 4a11043..4914d25 100644
--- a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
+++ b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
@@ -451,7 +451,7 @@ to your device.</p>
 </pre></div>
 </div>
 <img alt="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" class="sphx-glr-single-img" src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" />
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  9.856 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  12.207 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-ssd-gluoncv-py">
 <div class="sphx-glr-download 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 7d8b637..96a0205 100644
--- a/docs/how_to/deploy_models/sg_execution_times.html
+++ b/docs/how_to/deploy_models/sg_execution_times.html
@@ -300,16 +300,16 @@
             
   <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>11:28.760</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
+<p><strong>11:47.973</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
 <ul class="simple">
-<li><p><strong>03:09.856</strong>: <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></li>
-<li><p><strong>02:18.454</strong>: <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></li>
-<li><p><strong>02:18.311</strong>: <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></li>
-<li><p><strong>01:36.296</strong>: <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></li>
-<li><p><strong>00:55.890</strong>: <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></li>
-<li><p><strong>00:40.856</strong>: <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></li>
-<li><p><strong>00:28.940</strong>: <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></li>
-<li><p><strong>00:00.156</strong>: <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></li>
+<li><p><strong>03:12.207</strong>: <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></li>
+<li><p><strong>02:24.172</strong>: <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></li>
+<li><p><strong>02:22.142</strong>: <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></li>
+<li><p><strong>01:38.539</strong>: <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></li>
+<li><p><strong>00:58.984</strong>: <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></li>
+<li><p><strong>00:42.210</strong>: <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></li>
+<li><p><strong>00:29.565</strong>: <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></li>
+<li><p><strong>00:00.154</strong>: <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></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/extend_tvm/sg_execution_times.html b/docs/how_to/extend_tvm/sg_execution_times.html
index d66b4fe..4a5075d 100644
--- a/docs/how_to/extend_tvm/sg_execution_times.html
+++ b/docs/how_to/extend_tvm/sg_execution_times.html
@@ -300,12 +300,12 @@
             
   <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:34.477</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
+<p><strong>00:35.149</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:31.129</strong>: <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></li>
-<li><p><strong>00:02.109</strong>: <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></li>
-<li><p><strong>00:01.078</strong>: <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></li>
-<li><p><strong>00:00.161</strong>: <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></li>
+<li><p><strong>00:31.761</strong>: <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></li>
+<li><p><strong>00:02.150</strong>: <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></li>
+<li><p><strong>00:01.081</strong>: <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></li>
+<li><p><strong>00:00.158</strong>: <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></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/extend_tvm/use_pass_instrument.html b/docs/how_to/extend_tvm/use_pass_instrument.html
index 42f4014..92b1f17 100644
--- a/docs/how_to/extend_tvm/use_pass_instrument.html
+++ b/docs/how_to/extend_tvm/use_pass_instrument.html
@@ -486,10 +486,10 @@ profile the execution time of each passes.</p>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 5337us [5337us] (45.74%; 45.74%)
-FoldScaleAxis: 6330us [2us] (54.26%; 54.26%)
-        FoldConstant: 6328us [1368us] (54.24%; 99.97%)
-                InferType: 4960us [4960us] (42.51%; 78.38%)
+InferType: 5431us [5431us] (46.27%; 46.27%)
+FoldScaleAxis: 6306us [2us] (53.73%; 53.73%)
+        FoldConstant: 6304us [1297us] (53.71%; 99.97%)
+                InferType: 5007us [5007us] (42.66%; 79.42%)
 </pre></div>
 </div>
 </div>
@@ -512,10 +512,10 @@ Refer to following sections and <a class="reference internal" href="../../refere
 </div>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 4949us [4949us] (43.04%; 43.04%)
-FoldScaleAxis: 6549us [2us] (56.96%; 56.96%)
-        FoldConstant: 6548us [1335us] (56.95%; 99.97%)
-                InferType: 5212us [5212us] (45.33%; 79.61%)
+InferType: 5082us [5082us] (44.55%; 44.55%)
+FoldScaleAxis: 6326us [2us] (55.45%; 55.45%)
+        FoldConstant: 6325us [1337us] (55.44%; 99.97%)
+                InferType: 4988us [4988us] (43.72%; 78.86%)
 </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 6696a45..0f5be8e 100644
--- a/docs/how_to/optimize_operators/opt_conv_cuda.html
+++ b/docs/how_to/optimize_operators/opt_conv_cuda.html
@@ -534,7 +534,7 @@ latency of convolution.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 41.937872 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 54.269562 ms
 </pre></div>
 </div>
 <div class="sphx-glr-footer class 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 96e2c39..e920166 100644
--- a/docs/how_to/optimize_operators/opt_conv_tensorcore.html
+++ b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
@@ -782,8 +782,8 @@ by mapping the 2D convolution to tensor intrinsics</p>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>primfn(A_1: handle, W_1: handle, Conv_1: handle) -&gt; ()
   attr = {&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True}
-  buffers = {A: Buffer(A_2: Pointer(float16), float16, [16, 14, 14, 16, 16, 16], []),
-             Conv: Buffer(Conv_2: Pointer(float32), float32, [16, 14, 14, 32, 16, 16], []),
+  buffers = {Conv: Buffer(Conv_2: Pointer(float32), float32, [16, 14, 14, 32, 16, 16], []),
+             A: Buffer(A_2: Pointer(float16), float16, [16, 14, 14, 16, 16, 16], []),
              W: Buffer(W_2: Pointer(float16), float16, [3, 3, 16, 32, 16, 16], [])}
   buffer_map = {A_1: A, W_1: W, Conv_1: Conv} {
   attr [IterVar(blockIdx.z: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;blockIdx.z&quot;)] &quot;thread_extent&quot; = 196;
@@ -863,7 +863,7 @@ be able to run on our build server</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 7.033960 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 7.699643 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 b9d70fa..33703b2 100644
--- a/docs/how_to/optimize_operators/opt_gemm.html
+++ b/docs/how_to/optimize_operators/opt_gemm.html
@@ -431,8 +431,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.007397
-Baseline: 3.271150
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.009229
+Baseline: 3.340634
 </pre></div>
 </div>
 <p>In TVM, we can always inspect lower level IR to debug or optimize our schedule.
@@ -491,7 +491,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.285778
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.295032
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -556,7 +556,7 @@ vastly.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.321452
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.331193
 </pre></div>
 </div>
 <p>Here is the generated IR after vectorization.</p>
@@ -615,7 +615,7 @@ the access pattern for A matrix is more cache friendly.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.112634
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.113024
 </pre></div>
 </div>
 <p>Here is the generated IR after loop permutation.</p>
@@ -696,7 +696,7 @@ flattening.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.218060
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.232269
 </pre></div>
 </div>
 <p>Here is the generated IR after array packing.</p>
@@ -780,7 +780,7 @@ write to C when all the block results are ready.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.200839
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.225938
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -790,8 +790,8 @@ write to C when all the block results are ready.</p>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>primfn(A_1: handle, B_1: handle, C_1: handle) -&gt; ()
   attr = {&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True}
-  buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
-             C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
+  buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
+             A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
              B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], [])}
   buffer_map = {A_1: A, B_1: B, C_1: C} {
   allocate(packedB: Pointer(global float32x32), float32x32, [32768]), storage_scope = global;
@@ -865,7 +865,7 @@ write to C when all the block results are ready.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.059074
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.068730
 </pre></div>
 </div>
 <p>Here is the generated IR after parallelization.</p>
@@ -875,8 +875,8 @@ write to C when all the block results are ready.</p>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>primfn(A_1: handle, B_1: handle, C_1: handle) -&gt; ()
   attr = {&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True}
-  buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
-             A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
+  buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
+             C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
              B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], [])}
   buffer_map = {A_1: A, B_1: B, C_1: C} {
   allocate(packedB: Pointer(global float32x32), float32x32, [32768]), storage_scope = global {
diff --git a/docs/how_to/optimize_operators/sg_execution_times.html b/docs/how_to/optimize_operators/sg_execution_times.html
index e775a4f..f3b5597 100644
--- a/docs/how_to/optimize_operators/sg_execution_times.html
+++ b/docs/how_to/optimize_operators/sg_execution_times.html
@@ -300,11 +300,11 @@
             
   <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:30.629</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
+<p><strong>00:32.374</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:28.400</strong>: <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></li>
-<li><p><strong>00:01.166</strong>: <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></li>
-<li><p><strong>00:01.062</strong>: <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></li>
+<li><p><strong>00:29.986</strong>: <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></li>
+<li><p><strong>00:01.281</strong>: <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></li>
+<li><p><strong>00:01.107</strong>: <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></li>
 </ul>
 </div>
 
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 cfbbec0..c3f8c76 100644
--- a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
+++ b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
@@ -300,14 +300,14 @@
             
   <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>04:10.173</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
+<p><strong>04:13.504</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
 <ul class="simple">
-<li><p><strong>02:10.891</strong>: <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></li>
-<li><p><strong>00:54.964</strong>: <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></li>
-<li><p><strong>00:31.129</strong>: <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></li>
-<li><p><strong>00:18.318</strong>: <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></li>
-<li><p><strong>00:07.574</strong>: <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></li>
-<li><p><strong>00:07.298</strong>: <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></li>
+<li><p><strong>02:13.406</strong>: <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></li>
+<li><p><strong>00:55.457</strong>: <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></li>
+<li><p><strong>00:31.830</strong>: <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></li>
+<li><p><strong>00:17.732</strong>: <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></li>
+<li><p><strong>00:07.667</strong>: <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></li>
+<li><p><strong>00:07.412</strong>: <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></li>
 </ul>
 </div>
 
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 a385629..0bc2b7f 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
@@ -979,7 +979,7 @@ primfn(data_1: handle, kernel_1: handle, bias_1: handle, compute_1: handle) -&gt
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.359 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.362 ms
 </pre></div>
 </div>
 </div>
@@ -1544,7 +1544,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> ( 2 minutes  10.891 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  13.406 seconds)</p>
 <div class="sphx-glr-footer class 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 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 b80cf10..7110e79 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
@@ -876,7 +876,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)
-   3.1213       3.1261       3.1348       3.1030       0.0134
+   3.1554       3.1548       3.1623       3.1491       0.0054
 </pre></div>
 </div>
 </div>
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 1376a76..d513464 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
@@ -895,7 +895,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)
-  542.5096     542.6023     542.7230     542.2034      0.2220
+  571.8012     571.6694     572.2598     571.4744      0.3339
 </pre></div>
 </div>
 </div>
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 709b999..e0e5209 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
@@ -594,34 +594,58 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
 primfn(placeholder_5: handle, placeholder_6: handle, placeholder_7: handle, placeholder_8: handle, placeholder_9: handle, compute_1: handle) -&gt; ()
   attr = {&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True}
   buffers = {compute: Buffer(compute_2: Pointer(float32), float32, [128, 512], []),
-             placeholder_4: Buffer(placeholder_10: Pointer(float32), float32, [128, 256], []),
+             placeholder_4: Buffer(placeholder_10: Pointer(float32), float32, [128, 512], []),
              placeholder_3: Buffer(placeholder_11: Pointer(int32), int32, [33], []),
-             placeholder_2: Buffer(placeholder_12: Pointer(float32), float32, [128, 512], []),
+             placeholder_2: Buffer(placeholder_12: Pointer(int32), int32, [4916], []),
              placeholder: Buffer(placeholder_13: Pointer(float32), float32, [4916, 16, 1], []),
-             placeholder_1: Buffer(placeholder_14: Pointer(int32), int32, [4916], [])}
-  buffer_map = {placeholder_6: placeholder, placeholder_7: placeholder_1, placeholder_9: placeholder_2, placeholder_8: placeholder_3, compute_1: compute, placeholder_5: placeholder_4} {
+             placeholder_1: Buffer(placeholder_14: Pointer(float32), float32, [128, 256], [])}
+  buffer_map = {placeholder_6: placeholder, placeholder_5: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute} {
   for (i0.outer.i1.outer.fused: int32, 0, 16) &quot;parallel&quot; {
     allocate(compute_3: Pointer(global float32), float32, [4096]), storage_scope = global {
-      for (i.outer.inner: int32, 0, 2) {
+      for (i.outer.inner: int32, 0, 16) {
         for (nb_j.inner: int32, 0, 2) {
-          for (i.inner.init: int32, 0, 64) {
-            for (j.init: int32, 0, 16) {
-              compute_3[((((i.outer.inner*2048) + (i.inner.init*32)) + (nb_j.inner*16)) + j.init)] = 0f32
-            }
+          for (i.inner.init: int32, 0, 8) {
+            compute_3[(((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16))] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 1)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 2)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 3)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 4)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 5)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 6)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 7)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 8)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 9)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 10)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 11)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 12)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 13)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 14)] = 0f32
+            compute_3[((((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16)) + 15)] = 0f32
           }
           for (elem_idx: int32, 0, ((int32*)placeholder_11[(((i0.outer.i1.outer.fused*2) + nb_j.inner) + 1)] - (int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)])) {
-            for (i.inner: int32, 0, 64) {
-              for (j: int32, 0, 16) {
-                compute_3[((((i.outer.inner*2048) + (i.inner*32)) + (nb_j.inner*16)) + j)] = ((float32*)compute_3[((((i.outer.inner*2048) + (i.inner*32)) + (nb_j.inner*16)) + j)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + j)]*max((float32*)placeholder_10[(((i.outer.inner*16384) + (i.inner*256)) + (int32*)placeholder_14[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
-              }
+            for (i.inner: int32, 0, 8) {
+              compute_3[(((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16))] = ((float32*)compute_3[(((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16))] + ((float32*)placeholder_13[(((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16))]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 1)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 1)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 1)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 2)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 2)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 2)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 3)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 3)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 3)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 4)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 4)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 4)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 5)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 5)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 5)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 6)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 6)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 6)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 7)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 7)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 7)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 8)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 8)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 8)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 9)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 9)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 9)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 10)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 10)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 10)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 11)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 11)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 11)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 12)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 12)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 12)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 13)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 13)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 13)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 14)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 14)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 14)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
+              compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 15)] = ((float32*)compute_3[((((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16)) + 15)] + ((float32*)placeholder_13[((((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)]*16) + (elem_idx*16)) + 15)]*max((float32*)placeholder_14[(((i.outer.inner*2048) + (i.inner*256)) + (int32*)placeholder_12[((int32*)placeholder_11[((i0.outer.i1.outer.fused*2) + nb_j.inner)] + elem_idx)])], 0f32)))
             }
           }
         }
       }
       for (i0.inner: int32, 0, 128) {
-        for (i1.inner: int32, 0, 32) {
-          compute_2[(((i0.inner*512) + (i0.outer.i1.outer.fused*32)) + i1.inner)] = max(((float32*)compute_3[((i0.inner*32) + i1.inner)] + (float32*)placeholder_12[(((i0.inner*512) + (i0.outer.i1.outer.fused*32)) + i1.inner)]), 0f32)
-        }
+        compute_2[ramp(((i0.inner*512) + (i0.outer.i1.outer.fused*32)), 1, 32)] = max(((float32x32*)compute_3[ramp((i0.inner*32), 1, 32)] + (float32x32*)placeholder_10[ramp(((i0.inner*512) + (i0.outer.i1.outer.fused*32)), 1, 32)]), broadcast(0f32, 32))
       }
     }
   }
@@ -660,7 +684,7 @@ primfn(placeholder_5: handle, placeholder_6: handle, placeholder_7: handle, plac
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.577 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.847 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 f44b950..8622af6 100644
--- a/docs/how_to/tune_with_autotvm/sg_execution_times.html
+++ b/docs/how_to/tune_with_autotvm/sg_execution_times.html
@@ -300,13 +300,13 @@
             
   <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:38.221</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
+<p><strong>00:40.937</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:37.517</strong>: <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></li>
-<li><p><strong>00:00.184</strong>: <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></li>
-<li><p><strong>00:00.177</strong>: <a class="reference internal" href="tune_relay_arm.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-arm-py"><span class="std std-ref">Auto-tuning a Convolutional Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_arm.py</span></code>)</p></li>
-<li><p><strong>00:00.172</strong>: <a class="reference internal" href="tune_relay_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-cuda-py"><span class="std std-ref">Auto-tuning a Convolutional Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_cuda.py</span></code>)</p></li>
-<li><p><strong>00:00.171</strong>: <a class="reference internal" href="tune_relay_mobile_gpu.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-mobile-gpu-py"><span class="std std-ref">Auto-tuning a Convolutional Network for Mobile GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_mobile_gpu.py</span></code>)</p></li>
+<li><p><strong>00:40.250</strong>: <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></li>
+<li><p><strong>00:00.186</strong>: <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></li>
+<li><p><strong>00:00.169</strong>: <a class="reference internal" href="tune_relay_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-cuda-py"><span class="std std-ref">Auto-tuning a Convolutional Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_cuda.py</span></code>)</p></li>
+<li><p><strong>00:00.167</strong>: <a class="reference internal" href="tune_relay_arm.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-arm-py"><span class="std std-ref">Auto-tuning a Convolutional Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_arm.py</span></code>)</p></li>
+<li><p><strong>00:00.166</strong>: <a class="reference internal" href="tune_relay_mobile_gpu.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-mobile-gpu-py"><span class="std std-ref">Auto-tuning a Convolutional Network for Mobile GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_mobile_gpu.py</span></code>)</p></li>
 </ul>
 </div>
 
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 c325f4f..9c848fc 100644
--- a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
+++ b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
@@ -525,26 +525,26 @@ for this template</p>
    7 unroll_explicit: OtherOption([0, 1]) len=2
 )
 Get devices for measurement successfully!
-No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 6   GFLOPS: 87.21/87.21     result: MeasureResult(costs=(0.0026544224565217393,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.523228645324707, timestamp=1635354481.0967414)       [(&#39;tile_f&#39;, [-1, 1, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 4, 4]), (&#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,3754080
-No: 7   GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 8   GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 9   GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 10  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(TimeoutError(),), error_no=MeasureErrorNo.BUILD_TIMEOUT, all_cost=10, timestamp=1635354492.052086) [(&#39;tile_f&#39;, [-1, 32, 2, 4]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 4, 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;, 0)],None,4691833
-No: 11  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 12  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 13  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 14  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 15  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 16  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 17  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 18  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
-No: 19  GFLOPS: 0.00/87.21      result: MeasureResult(costs=(RuntimeError(&#39;Traceback (most recent call last):\n  60: 0xffffffffffffffff\n  59: _start\n  58: __libc_start_main\n  57: main\n  56: Py_Main\n  55: 0x000000000063886a\n  54: PyObject_Call\n  53: 0x000000000058945c\n  52: 0x0000000000507cd3\n  51: _PyEval_EvalFrameDefault\n  50: 0x000000000050a3fc\n  49: 0x00000000005099ff\n  48: 0x0000000000507cd3\n  47: _PyEval_EvalFrameDefault\n  46: 0x000000000050a22e\n  45: 0x0000000000 [...]
-No: 20  GFLOPS: 143.62/143.62   result: MeasureResult(costs=(0.00161187607,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.2787423133850098, timestamp=1635354501.6196096)      [(&#39;tile_f&#39;, [-1, 1, 4, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#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,9881539
+No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 6   GFLOPS: 60.26/60.26     result: MeasureResult(costs=(0.003841781068965517,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.627082109451294, timestamp=1636191415.8784292)        [(&#39;tile_f&#39;, [-1, 1, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 4, 4]), (&#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,3754080
+No: 7   GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 8   GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 9   GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 10  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(TimeoutError(),), error_no=MeasureErrorNo.BUILD_TIMEOUT, all_cost=10, timestamp=1636191426.8456671)        [(&#39;tile_f&#39;, [-1, 32, 2, 4]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 4, 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;, 0)],None,4691833
+No: 11  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 12  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 13  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 14  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 15  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 16  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 17  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 18  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(InstantiationError(&#39;Traceback (most recent call last):\n  24: TVMFuncCall\n        at /workspace/src/runtime/c_runtime_api.cc:474\n  23: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const\n        at /workspace/include/tvm/runtime/packed_func.h:1151\n  22: std::function&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)&gt;::operator()(tvm::runtime::TVMArgs, tvm::runtime:: [...]
+No: 19  GFLOPS: 0.00/60.26      result: MeasureResult(costs=(RuntimeError(&#39;Traceback (most recent call last):\n  60: 0xffffffffffffffff\n  59: _start\n  58: __libc_start_main\n  57: main\n  56: Py_Main\n  55: 0x000000000063886a\n  54: PyObject_Call\n  53: 0x000000000058945c\n  52: 0x0000000000507cd3\n  51: _PyEval_EvalFrameDefault\n  50: 0x000000000050a3fc\n  49: 0x00000000005099ff\n  48: 0x0000000000507cd3\n  47: _PyEval_EvalFrameDefault\n  46: 0x000000000050a22e\n  45: 0x0000000000 [...]
+No: 20  GFLOPS: 144.48/144.48   result: MeasureResult(costs=(0.001602333111111111,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.0883064270019531, timestamp=1636191436.3377938)       [(&#39;tile_f&#39;, [-1, 1, 4, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#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,9881539
 </pre></div>
 </div>
 <p>Finally we can inspect the best config from log file, check correctness,
@@ -583,7 +583,7 @@ and measure running time.</p>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Best config:
 [(&#39;tile_f&#39;, [-1, 1, 4, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#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,9881539
-Time cost of this operator: 0.001986
+Time cost of this operator: 0.001954
 </pre></div>
 </div>
 <div class="sphx-glr-footer class 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 ad6f942..a89fd4a 100644
--- a/docs/how_to/work_with_microtvm/micro_autotune.html
+++ b/docs/how_to/work_with_microtvm/micro_autotune.html
@@ -428,12 +428,8 @@ both builder and runner to generates multiple measurements for auto tunner.</p>
 from Zephyr RTOS. If you choose pass <cite>–platform=host</cite> to this tutorial it will uses x86. You can
 choose other options by choosing from <cite>PLATFORM</cite> list.</p>
 </div></blockquote>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">repo_root</span> <span class="o">=</span> <span class="n">pathlib</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span>
-    <span class="n">subprocess</span><span class="o">.</span><span class="n">check_output</span><span class="p">([</span><span class="s2">&quot;git&quot;</span><span class="p">,</span> <span class="s2">&quot;rev-parse&quot;</span><span class="p">,</span> <span class="s2">&quot;--show-toplevel&quot;</span><span class="p">],</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;utf-8&quot;</span><span class="p">)</span><span class="o">.</span><span class="n"> [...]
-<span class="p">)</span>
-
-<span class="n">module_loader</span> <span class="o">=</span> <a href="../../reference/api/python/micro.html#tvm.micro.AutoTvmModuleLoader" title="View documentation for tvm.micro.AutoTvmModuleLoader"><span class="n">tvm</span><span class="o">.</span><span class="n">micro</span><span class="o">.</span><span class="n">AutoTvmModuleLoader</span></a><span class="p">(</span>
-    <span class="n">template_project_dir</span><span class="o">=</span><span class="n">repo_root</span> <span class="o">/</span> <span class="s2">&quot;src&quot;</span> <span class="o">/</span> <span class="s2">&quot;runtime&quot;</span> <span class="o">/</span> <span class="s2">&quot;crt&quot;</span> <span class="o">/</span> <span class="s2">&quot;host&quot;</span><span class="p">,</span>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">module_loader</span> <span class="o">=</span> <a href="../../reference/api/python/micro.html#tvm.micro.AutoTvmModuleLoader" title="View documentation for tvm.micro.AutoTvmModuleLoader"><span class="n">tvm</span><span class="o">.</span><span class="n">micro</span><span class="o">.</span><span class="n">AutoTvmModuleLoader</span></a><span class="p">(</span>
+    <span class="n">template_project_dir</span><span class="o">=</span><span class="n">pathlib</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><a href="../../reference/api/python/micro.html#tvm.micro.get_microtvm_template_projects" title="View documentation for tvm.micro.get_microtvm_template_projects"><span class="n">tvm</span><span class="o">.</span><span class="n">micro</span><span class="o">.</span><span class="n">get_microtvm_template_projects</span> [...]
     <span class="n">project_options</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;verbose&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">},</span>
 <span class="p">)</span>
 <span class="n">builder</span> <span class="o">=</span> <span class="n">tvm</span><span class="o">.</span><span class="n">autotvm</span><span class="o">.</span><span class="n">LocalBuilder</span><span class="p">(</span>
@@ -449,7 +445,7 @@ choose other options by choosing from <cite>PLATFORM</cite> list.</p>
 <span class="c1"># Compiling for physical hardware</span>
 <span class="c1"># --------------------------------------------------------------------------</span>
 <span class="c1">#    module_loader = tvm.micro.AutoTvmModuleLoader(</span>
-<span class="c1">#        template_project_dir=repo_root / &quot;apps&quot; / &quot;microtvm&quot; / &quot;zephyr&quot; / &quot;template_project&quot;,</span>
+<span class="c1">#        template_project_dir=pathlib.Path(tvm.micro.get_microtvm_template_projects(&quot;zephyr&quot;)),</span>
 <span class="c1">#        project_options={</span>
 <span class="c1">#            &quot;zephyr_board&quot;: BOARD,</span>
 <span class="c1">#            &quot;west_cmd&quot;: &quot;west&quot;,</span>
@@ -500,7 +496,7 @@ the tuned operator.</p>
 <span class="n">temp_dir</span> <span class="o">=</span> <a href="../../reference/api/python/contrib.html#tvm.contrib.utils.tempdir" title="View documentation for tvm.contrib.utils.tempdir"><span class="n">tvm</span><span class="o">.</span><span class="n">contrib</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">tempdir</span></a><span class="p">()</span>
 
 <span class="n">project</span> <span class="o">=</span> <a href="../../reference/api/python/micro.html#tvm.micro.generate_project" title="View documentation for tvm.micro.generate_project"><span class="n">tvm</span><span class="o">.</span><span class="n">micro</span><span class="o">.</span><span class="n">generate_project</span></a><span class="p">(</span>
-    <span class="nb">str</span><span class="p">(</span><span class="n">repo_root</span> <span class="o">/</span> <span class="s2">&quot;src&quot;</span> <span class="o">/</span> <span class="s2">&quot;runtime&quot;</span> <span class="o">/</span> <span class="s2">&quot;crt&quot;</span> <span class="o">/</span> <span class="s2">&quot;host&quot;</span><span class="p">),</span>
+    <span class="nb">str</span><span class="p">(</span><a href="../../reference/api/python/micro.html#tvm.micro.get_microtvm_template_projects" title="View documentation for tvm.micro.get_microtvm_template_projects"><span class="n">tvm</span><span class="o">.</span><span class="n">micro</span><span class="o">.</span><span class="n">get_microtvm_template_projects</span></a><span class="p">(</span><span class="s2">&quot;crt&quot;</span><span class="p">)),</span>
     <span class="n">lowered</span><span class="p">,</span>
     <span class="n">temp_dir</span> <span class="o">/</span> <span class="s2">&quot;project&quot;</span><span class="p">,</span>
     <span class="p">{</span><span class="s2">&quot;verbose&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">},</span>
@@ -509,7 +505,7 @@ the tuned operator.</p>
 <span class="c1"># Compiling for physical hardware</span>
 <span class="c1"># --------------------------------------------------------------------------</span>
 <span class="c1">#    project = tvm.micro.generate_project(</span>
-<span class="c1">#        str(repo_root / &quot;apps&quot; / &quot;microtvm&quot; / &quot;zephyr&quot; / &quot;template_project&quot;),</span>
+<span class="c1">#        str(tvm.micro.get_microtvm_template_projects(&quot;zephyr&quot;)),</span>
 <span class="c1">#        lowered,</span>
 <span class="c1">#        temp_dir / &quot;project&quot;,</span>
 <span class="c1">#        {</span>
@@ -536,10 +532,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
 ---------                                     ---                                           --------  -------  -----              ------  -------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  299.0     98.716   (1, 2, 10, 10, 3)  2       1
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         2.971     0.981    (1, 6, 10, 10)     1       1
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       0.919     0.303    (1, 1, 10, 10, 3)  1       1
-Total_time                                    -                                             302.89    -        -                  -       -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  309.9     98.726   (1, 2, 10, 10, 3)  2       1
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         3.076     0.98     (1, 6, 10, 10)     1       1
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       0.922     0.294    (1, 1, 10, 10, 3)  1       1
+Total_time                                    -                                             313.898   -        -                  -       -
 </pre></div>
 </div>
 </div>
@@ -555,7 +551,7 @@ Total_time                                    -
 <span class="n">temp_dir</span> <span class="o">=</span> <a href="../../reference/api/python/contrib.html#tvm.contrib.utils.tempdir" title="View documentation for tvm.contrib.utils.tempdir"><span class="n">tvm</span><span class="o">.</span><span class="n">contrib</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">tempdir</span></a><span class="p">()</span>
 
 <span class="n">project</span> <span class="o">=</span> <a href="../../reference/api/python/micro.html#tvm.micro.generate_project" title="View documentation for tvm.micro.generate_project"><span class="n">tvm</span><span class="o">.</span><span class="n">micro</span><span class="o">.</span><span class="n">generate_project</span></a><span class="p">(</span>
-    <span class="nb">str</span><span class="p">(</span><span class="n">repo_root</span> <span class="o">/</span> <span class="s2">&quot;src&quot;</span> <span class="o">/</span> <span class="s2">&quot;runtime&quot;</span> <span class="o">/</span> <span class="s2">&quot;crt&quot;</span> <span class="o">/</span> <span class="s2">&quot;host&quot;</span><span class="p">),</span>
+    <span class="nb">str</span><span class="p">(</span><a href="../../reference/api/python/micro.html#tvm.micro.get_microtvm_template_projects" title="View documentation for tvm.micro.get_microtvm_template_projects"><span class="n">tvm</span><span class="o">.</span><span class="n">micro</span><span class="o">.</span><span class="n">get_microtvm_template_projects</span></a><span class="p">(</span><span class="s2">&quot;crt&quot;</span><span class="p">)),</span>
     <span class="n">lowered_tuned</span><span class="p">,</span>
     <span class="n">temp_dir</span> <span class="o">/</span> <span class="s2">&quot;project&quot;</span><span class="p">,</span>
     <span class="p">{</span><span class="s2">&quot;verbose&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">},</span>
@@ -564,7 +560,7 @@ Total_time                                    -
 <span class="c1"># Compiling for physical hardware</span>
 <span class="c1"># --------------------------------------------------------------------------</span>
 <span class="c1">#    project = tvm.micro.generate_project(</span>
-<span class="c1">#        str(repo_root / &quot;apps&quot; / &quot;microtvm&quot; / &quot;zephyr&quot; / &quot;template_project&quot;),</span>
+<span class="c1">#        str(tvm.micro.get_microtvm_template_projects(&quot;zephyr&quot;)),</span>
 <span class="c1">#        lowered_tuned,</span>
 <span class="c1">#        temp_dir / &quot;project&quot;,</span>
 <span class="c1">#        {</span>
@@ -591,10 +587,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
 ---------                                     ---                                           --------  -------  -----              ------  -------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  173.6     98.47    (1, 1, 10, 10, 6)  2       1
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         1.891     1.072    (1, 6, 10, 10)     1       1
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       0.806     0.457    (1, 3, 10, 10, 1)  1       1
-Total_time                                    -                                             176.297   -        -                  -       -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  177.6     98.456   (1, 1, 10, 10, 6)  2       1
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         1.952     1.082    (1, 6, 10, 10)     1       1
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       0.833     0.462    (1, 3, 10, 10, 1)  1       1
+Total_time                                    -                                             180.385   -        -                  -       -
 </pre></div>
 </div>
 <div class="sphx-glr-footer class 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_tflite.html b/docs/how_to/work_with_microtvm/micro_tflite.html
index cf7556e..1c77042 100644
--- a/docs/how_to/work_with_microtvm/micro_tflite.html
+++ b/docs/how_to/work_with_microtvm/micro_tflite.html
@@ -572,10 +572,7 @@ the example below the x86 arch is selected and a x86 VM is picked up accordingly
 <span class="kn">import</span> <span class="nn">subprocess</span>
 <span class="kn">import</span> <span class="nn">pathlib</span>
 
-<span class="n">repo_root</span> <span class="o">=</span> <span class="n">pathlib</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span>
-    <span class="n">subprocess</span><span class="o">.</span><span class="n">check_output</span><span class="p">([</span><span class="s2">&quot;git&quot;</span><span class="p">,</span> <span class="s2">&quot;rev-parse&quot;</span><span class="p">,</span> <span class="s2">&quot;--show-toplevel&quot;</span><span class="p">],</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;utf-8&quot;</span><span class="p">)</span><span class="o">.</span><span class="n"> [...]
-<span class="p">)</span>
-<span class="n">template_project_path</span> <span class="o">=</span> <span class="n">repo_root</span> <span class="o">/</span> <span class="s2">&quot;src&quot;</span> <span class="o">/</span> <span class="s2">&quot;runtime&quot;</span> <span class="o">/</span> <span class="s2">&quot;crt&quot;</span> <span class="o">/</span> <span class="s2">&quot;host&quot;</span>
+<span class="n">template_project_path</span> <span class="o">=</span> <span class="n">pathlib</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><a href="../../reference/api/python/micro.html#tvm.micro.get_microtvm_template_projects" title="View documentation for tvm.micro.get_microtvm_template_projects"><span class="n">tvm</span><span class="o">.</span><span class="n">micro</span><span class="o">.</span><span class="n">get_microtvm_template_projects</span>< [...]
 <span class="n">project_options</span> <span class="o">=</span> <span class="p">{}</span>  <span class="c1"># You can use options to provide platform-specific options through TVM.</span>
 
 <span class="c1"># Compiling for physical hardware (or an emulated board, like the mps_an521)</span>
@@ -583,7 +580,7 @@ the example below the x86 arch is selected and a x86 VM is picked up accordingly
 <span class="c1">#  For physical hardware, you can try out the Zephyr platform by using a different template project</span>
 <span class="c1">#  and options:</span>
 <span class="c1">#</span>
-<span class="c1">#     template_project_path = repo_root / &quot;apps&quot; / &quot;microtvm&quot; / &quot;zephyr&quot; / &quot;template_project&quot;</span>
+<span class="c1">#     template_project_path = pathlib.Path(tvm.micro.get_microtvm_template_projects(&quot;zephyr&quot;))</span>
 <span class="c1">#     project_options = {&quot;project_type&quot;: &quot;host_driven&quot;, zephyr_board&quot;: &quot;nucleo_f746zg&quot;}}</span>
 
 <span class="c1"># Create a temporary directory</span>
@@ -609,7 +606,7 @@ the example below the x86 arch is selected and a x86 VM is picked up accordingly
 #ifdef __cplusplus
 extern &quot;C&quot;
 #endif
-TVM_DLL int32_t tvmgen_default_fused_nn_dense_add_nn_relu(void* args, void* arg_type_ids, int32_t num_args, void* out_ret_value, void* out_ret_tcode, void* resource_handle) {
+TVM_DLL int32_t tvmgen_default_fused_nn_dense_add_nn_relu_1(void* args, void* arg_type_ids, int32_t num_args, void* out_ret_value, void* out_ret_tcode, void* resource_handle) {
   void* arg0 = (((TVMValue*)args)[0].v_handle);
  - .
  - ./codegen
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 10f2e23..ecb17fd 100644
--- a/docs/how_to/work_with_microtvm/sg_execution_times.html
+++ b/docs/how_to/work_with_microtvm/sg_execution_times.html
@@ -300,11 +300,11 @@
             
   <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>00:44.423</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
+<p><strong>00:45.172</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:40.952</strong>: <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 micro TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_autotune.py</span></code>)</p></li>
-<li><p><strong>00:03.314</strong>: <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></li>
-<li><p><strong>00:00.157</strong>: <a class="reference internal" href="micro_reference_vm.html#sphx-glr-how-to-work-with-microtvm-micro-reference-vm-py"><span class="std std-ref">microTVM Reference Virtual Machines</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_reference_vm.py</span></code>)</p></li>
+<li><p><strong>00:41.823</strong>: <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 micro TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_autotune.py</span></code>)</p></li>
+<li><p><strong>00:03.195</strong>: <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></li>
+<li><p><strong>00:00.154</strong>: <a class="reference internal" href="micro_reference_vm.html#sphx-glr-how-to-work-with-microtvm-micro-reference-vm-py"><span class="std std-ref">microTVM Reference Virtual Machines</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_reference_vm.py</span></code>)</p></li>
 </ul>
 </div>
 
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 25eb402..c93888b 100644
--- a/docs/how_to/work_with_relay/sg_execution_times.html
+++ b/docs/how_to/work_with_relay/sg_execution_times.html
@@ -300,10 +300,10 @@
             
   <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:03.987</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
+<p><strong>00:04.310</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:02.454</strong>: <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></li>
-<li><p><strong>00:01.532</strong>: <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></li>
+<li><p><strong>00:02.640</strong>: <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></li>
+<li><p><strong>00:01.670</strong>: <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></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/work_with_schedules/scan.html b/docs/how_to/work_with_schedules/scan.html
index 2d83cc6..827f478 100644
--- a/docs/how_to/work_with_schedules/scan.html
+++ b/docs/how_to/work_with_schedules/scan.html
@@ -512,22 +512,22 @@ The following example demonstrates how we can build recurrence with two states.<
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>primfn(X_1: handle, scan_2: handle, scan_3: handle) -&gt; ()
   attr = {&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True}
-  buffers = {X: Buffer(X_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type=&quot;auto&quot;),
-             scan_1: Buffer(scan_4: Pointer(float32), float32, [m, l: int32], [stride_2: int32, stride_3: int32], type=&quot;auto&quot;),
+  buffers = {scan_1: Buffer(scan_4: Pointer(float32), float32, [m: int32, l: int32], [stride: int32, stride_1: int32], type=&quot;auto&quot;),
+             X: Buffer(X_2: Pointer(float32), float32, [m, n: int32], [stride_2: int32, stride_3: int32], type=&quot;auto&quot;),
              scan: Buffer(scan_5: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type=&quot;auto&quot;)}
   buffer_map = {X_1: X, scan_2: scan, scan_3: scan_1} {
   for (i: int32, 0, n) {
-    scan_5[(i*stride_5)] = (float32*)X_2[(i*stride_1)]
+    scan_5[(i*stride_5)] = (float32*)X_2[(i*stride_3)]
   }
   for (i_1: int32, 0, l) {
-    scan_4[(i_1*stride_3)] = 0f32
+    scan_4[(i_1*stride_1)] = 0f32
   }
   for (scan.idx: int32, 0, (m - 1)) {
     for (i_2: int32, 0, n) {
-      scan_5[(((scan.idx + 1)*stride_4) + (i_2*stride_5))] = ((float32*)scan_5[((scan.idx*stride_4) + (i_2*stride_5))] + (float32*)X_2[(((scan.idx + 1)*stride) + (i_2*stride_1))])
+      scan_5[(((scan.idx + 1)*stride_4) + (i_2*stride_5))] = ((float32*)scan_5[((scan.idx*stride_4) + (i_2*stride_5))] + (float32*)X_2[(((scan.idx + 1)*stride_2) + (i_2*stride_3))])
     }
     for (i_3: int32, 0, l) {
-      scan_4[(((scan.idx + 1)*stride_2) + (i_3*stride_3))] = ((float32*)scan_4[((scan.idx*stride_2) + (i_3*stride_3))] + (float32*)scan_5[(scan.idx*stride_4)])
+      scan_4[(((scan.idx + 1)*stride) + (i_3*stride_1))] = ((float32*)scan_4[((scan.idx*stride) + (i_3*stride_1))] + (float32*)scan_5[(scan.idx*stride_4)])
     }
   }
 }
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 f46af8a..e438e46 100644
--- a/docs/how_to/work_with_schedules/sg_execution_times.html
+++ b/docs/how_to/work_with_schedules/sg_execution_times.html
@@ -300,16 +300,16 @@
             
   <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:04.941</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
+<p><strong>00:05.020</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:01.757</strong>: <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></li>
-<li><p><strong>00:01.128</strong>: <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></li>
-<li><p><strong>00:00.598</strong>: <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></li>
-<li><p><strong>00:00.595</strong>: <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></li>
-<li><p><strong>00:00.296</strong>: <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></li>
-<li><p><strong>00:00.195</strong>: <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></li>
-<li><p><strong>00:00.188</strong>: <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></li>
-<li><p><strong>00:00.185</strong>: <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></li>
+<li><p><strong>00:01.792</strong>: <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></li>
+<li><p><strong>00:01.068</strong>: <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></li>
+<li><p><strong>00:00.669</strong>: <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></li>
+<li><p><strong>00:00.657</strong>: <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></li>
+<li><p><strong>00:00.288</strong>: <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></li>
+<li><p><strong>00:00.186</strong>: <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></li>
+<li><p><strong>00:00.185</strong>: <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></li>
+<li><p><strong>00:00.175</strong>: <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></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/work_with_schedules/tensorize.html b/docs/how_to/work_with_schedules/tensorize.html
index 1edbf9c..845316c 100644
--- a/docs/how_to/work_with_schedules/tensorize.html
+++ b/docs/how_to/work_with_schedules/tensorize.html
@@ -546,8 +546,8 @@ The importing needs to happen before the tensorized GEMV being executed.</p>
              A: Buffer(A_2: Pointer(float32), float32, [1024, 64], []),
              B: Buffer(B_2: Pointer(float32), float32, [512, 64], [])}
   buffer_map = {A_1: A, B_1: B, C_1: C} {
-  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmp0um40v6k/input0.cc&#39;
-source_filename = &quot;/tmp/tmp0um40v6k/input0.cc&quot;
+  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmpdl6d2pzt/input0.cc&#39;
+source_filename = &quot;/tmp/tmpdl6d2pzt/input0.cc&quot;
 target datalayout = &quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128&quot;
 target triple = &quot;x86_64-pc-linux-gnu&quot;
 
diff --git a/docs/how_to/work_with_schedules/tuple_inputs.html b/docs/how_to/work_with_schedules/tuple_inputs.html
index ba2fc3c..470ce0e 100644
--- a/docs/how_to/work_with_schedules/tuple_inputs.html
+++ b/docs/how_to/work_with_schedules/tuple_inputs.html
@@ -371,15 +371,15 @@ together in the next schedule procedure.</p>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>primfn(A0_1: handle, A1_1: handle, B_2: handle, B_3: handle) -&gt; ()
   attr = {&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True}
-  buffers = {B: Buffer(B_4: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type=&quot;auto&quot;),
-             A0: Buffer(A0_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type=&quot;auto&quot;),
-             B_1: Buffer(B_5: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type=&quot;auto&quot;),
+  buffers = {B_1: Buffer(B_4: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type=&quot;auto&quot;),
+             B: Buffer(B_5: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type=&quot;auto&quot;),
+             A0: Buffer(A0_2: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type=&quot;auto&quot;),
              A1: Buffer(A1_2: Pointer(float32), float32, [m, n], [stride_6: int32, stride_7: int32], type=&quot;auto&quot;)}
   buffer_map = {A0_1: A0, A1_1: A1, B_2: B, B_3: B_1} {
   for (i: int32, 0, m) {
     for (j: int32, 0, n) {
-      B_4[((i*stride) + (j*stride_1))] = ((float32*)A0_2[((i*stride_2) + (j*stride_3))] + 2f32)
-      B_5[((i*stride_4) + (j*stride_5))] = ((float32*)A1_2[((i*stride_6) + (j*stride_7))]*3f32)
+      B_5[((i*stride_2) + (j*stride_3))] = ((float32*)A0_2[((i*stride_4) + (j*stride_5))] + 2f32)
+      B_4[((i*stride) + (j*stride_1))] = ((float32*)A1_2[((i*stride_6) + (j*stride_7))]*3f32)
     }
   }
 }
@@ -426,15 +426,15 @@ with <code class="xref py py-func docutils literal notranslate"><span class="pre
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>primfn(idx_1: handle, val_1: handle, T_2: handle, T_3: handle) -&gt; ()
   attr = {&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True}
   buffers = {T_1: Buffer(T_4: Pointer(int32), int32, [m: int32], [stride: int32], type=&quot;auto&quot;),
-             idx: Buffer(idx_2: Pointer(int32), int32, [m, n: int32], [stride_1: int32, stride_2: int32], type=&quot;auto&quot;),
-             T: Buffer(T_5: Pointer(int32), int32, [m], [stride_3: int32], type=&quot;auto&quot;),
+             T: Buffer(T_5: Pointer(int32), int32, [m], [stride_1: int32], type=&quot;auto&quot;),
+             idx: Buffer(idx_2: Pointer(int32), int32, [m, n: int32], [stride_2: int32, stride_3: int32], type=&quot;auto&quot;),
              val: Buffer(val_2: Pointer(int32), int32, [m, n], [stride_4: int32, stride_5: int32], type=&quot;auto&quot;)}
   buffer_map = {idx_1: idx, val_1: val, T_2: T, T_3: T_1} {
   for (i: int32, 0, m) {
-    T_5[(i*stride_3)] = -1
+    T_5[(i*stride_1)] = -1
     T_4[(i*stride)] = -2147483648
     for (k: int32, 0, n) {
-      T_5[(i*stride_3)] = @tir.if_then_else(((int32*)val_2[((i*stride_4) + (k*stride_5))] &lt;= (int32*)T_4[(i*stride)]), (int32*)T_5[(i*stride_3)], (int32*)idx_2[((i*stride_1) + (k*stride_2))], dtype=int32)
+      T_5[(i*stride_1)] = @tir.if_then_else(((int32*)val_2[((i*stride_4) + (k*stride_5))] &lt;= (int32*)T_4[(i*stride)]), (int32*)T_5[(i*stride_1)], (int32*)idx_2[((i*stride_2) + (k*stride_3))], dtype=int32)
       T_4[(i*stride)] = @tir.if_then_else(((int32*)val_2[((i*stride_4) + (k*stride_5))] &lt;= (int32*)T_4[(i*stride)]), (int32*)T_4[(i*stride)], (int32*)val_2[((i*stride_4) + (k*stride_5))], dtype=int32)
     }
   }
@@ -468,19 +468,19 @@ in terms of operation.</p>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>primfn(A0_1: handle, A1_1: handle, C_1: handle) -&gt; ()
   attr = {&quot;from_legacy_te_schedule&quot;: True, &quot;global_symbol&quot;: &quot;main&quot;, &quot;tir.noalias&quot;: True}
-  buffers = {A0: Buffer(A0_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type=&quot;auto&quot;),
-             C: Buffer(C_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type=&quot;auto&quot;),
+  buffers = {C: Buffer(C_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type=&quot;auto&quot;),
+             A0: Buffer(A0_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type=&quot;auto&quot;),
              A1: Buffer(A1_2: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type=&quot;auto&quot;)}
   buffer_map = {A0_1: A0, A1_1: A1, C_1: C} {
   allocate(B.v0: Pointer(global float32), float32, [n]), storage_scope = global;
   allocate(B.v1: Pointer(global float32), float32, [n]), storage_scope = global;
   for (i: int32, 0, m) {
     for (j: int32, 0, n) {
-      B.v0[j] = ((float32*)A0_2[((i*stride) + (j*stride_1))] + 2f32)
-      B.v1[j] = ((float32*)A0_2[((i*stride) + (j*stride_1))]*3f32)
+      B.v0[j] = ((float32*)A0_2[((i*stride_2) + (j*stride_3))] + 2f32)
+      B.v1[j] = ((float32*)A0_2[((i*stride_2) + (j*stride_3))]*3f32)
     }
     for (j_1: int32, 0, n) {
-      C_2[((i*stride_2) + (j_1*stride_3))] = ((float32*)A1_2[((i*stride_4) + (j_1*stride_5))] + (float32*)B.v0[j_1])
+      C_2[((i*stride) + (j_1*stride_1))] = ((float32*)A1_2[((i*stride_4) + (j_1*stride_5))] + (float32*)B.v0[j_1])
     }
   }
 }
diff --git a/docs/install/from_source.html b/docs/install/from_source.html
index bb0e810..2d3e59e 100644
--- a/docs/install/from_source.html
+++ b/docs/install/from_source.html
@@ -425,6 +425,8 @@ you want to build for (OpenCL, RCOM, METAL, VULKAN, …).</p></li>
 For example, set <code class="docutils literal notranslate"><span class="pre">set(USE_LLVM</span> <span class="pre">llvm-config-10)</span></code> if you installed LLVM 10 package</p></li>
 </ul>
 </li>
+<li><p>If you are a PyTorch user, it is recommended to set <code class="docutils literal notranslate"><span class="pre">(USE_LLVM</span> <span class="pre">&quot;/path/to/llvm-config</span> <span class="pre">--link-static&quot;)</span></code> and <code class="docutils literal notranslate"><span class="pre">set(HIDE_PRIVATE_SYMBOLS</span> <span class="pre">ON)</span></code>
+to avoid potential symbol conflicts between different versions LLVM used by TVM and PyTorch.</p></li>
 </ul>
 </li>
 <li><p>We can then build tvm and related libraries.</p>
diff --git a/docs/langref/hybrid_script.html b/docs/langref/hybrid_script.html
new file mode 100644
index 0000000..23ca02a
--- /dev/null
+++ b/docs/langref/hybrid_script.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../reference/langref/hybrid_script.html" />
+    <script>
+      window.location.href = "../reference/langref/hybrid_script.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/langref/index.html b/docs/langref/index.html
new file mode 100644
index 0000000..5e747f8
--- /dev/null
+++ b/docs/langref/index.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../reference/langref/index.html" />
+    <script>
+      window.location.href = "../reference/langref/index.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/langref/relay_adt.html b/docs/langref/relay_adt.html
new file mode 100644
index 0000000..80c8143
--- /dev/null
+++ b/docs/langref/relay_adt.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../reference/langref/relay_adt.html" />
+    <script>
+      window.location.href = "../reference/langref/relay_adt.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/langref/relay_expr.html b/docs/langref/relay_expr.html
new file mode 100644
index 0000000..2dad1dc
--- /dev/null
+++ b/docs/langref/relay_expr.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../reference/langref/relay_expr.html" />
+    <script>
+      window.location.href = "../reference/langref/relay_expr.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/langref/relay_op.html b/docs/langref/relay_op.html
new file mode 100644
index 0000000..ea51943
--- /dev/null
+++ b/docs/langref/relay_op.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../reference/langref/relay_op.html" />
+    <script>
+      window.location.href = "../reference/langref/relay_op.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/langref/relay_pattern.html b/docs/langref/relay_pattern.html
new file mode 100644
index 0000000..478ba63
--- /dev/null
+++ b/docs/langref/relay_pattern.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../reference/langref/relay_pattern.html" />
+    <script>
+      window.location.href = "../reference/langref/relay_pattern.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/langref/relay_type.html b/docs/langref/relay_type.html
new file mode 100644
index 0000000..8989d48
--- /dev/null
+++ b/docs/langref/relay_type.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../reference/langref/relay_type.html" />
+    <script>
+      window.location.href = "../reference/langref/relay_type.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/microtvm/index.html b/docs/microtvm/index.html
new file mode 100644
index 0000000..92f031b
--- /dev/null
+++ b/docs/microtvm/index.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../topic/microtvm/index.html" />
+    <script>
+      window.location.href = "../topic/microtvm/index.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/objects.inv b/docs/objects.inv
index 49c09b6..cfbcd8c 100644
Binary files a/docs/objects.inv and b/docs/objects.inv differ
diff --git a/docs/profiling/index.html b/docs/profiling/index.html
new file mode 100644
index 0000000..f9aeab6
--- /dev/null
+++ b/docs/profiling/index.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/profile/index.html" />
+    <script>
+      window.location.href = "../how_to/profile/index.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/profiling/papi.html b/docs/profiling/papi.html
new file mode 100644
index 0000000..a0d7c35
--- /dev/null
+++ b/docs/profiling/papi.html
@@ -0,0 +1,10 @@
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="1; url=../how_to/profile/papi.html" />
+    <script>
+      window.location.href = "../how_to/profile/papi.html"
+    </script>
+  </head>
+</html>
diff --git a/docs/reference/api/doxygen/annotated.html b/docs/reference/api/doxygen/annotated.html
index d66c1bb..bba9394 100644
--- a/docs/reference/api/doxygen/annotated.html
+++ b/docs/reference/api/doxygen/annotated.html
@@ -227,48 +227,56 @@ $(function() {
 <tr id="row_1_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1instrument_1_1PassInstrument.html" target="_self">PassInstrument</a></td><td class="desc">Managed reference class for <a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNode.html" title="PassInstrumentNode forms an instrument implementation. It provides API for us [...]
 <tr id="row_1_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNode.html" target="_self">PassInstrumentNode</a></td><td class="desc"><a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNode.html" title="PassInstrumentNode forms an instrument implementation. It provides API for users to register call [...]
 <tr id="row_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_4_" class="arrow" onclick="toggleFolder('1_4_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1meta__schedule.html" target="_self">meta_schedule</a></td><td class="desc"></td></tr>
-<tr id="row_1_4_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html" target="_self">ArgInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html" title="The argument information. ">ArgInfoNode</a> </td></tr>
-<tr id="row_1_4_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html" target="_self">ArgInfoNode</a></td><td class="desc">The argument information </td></tr>
-<tr id="row_1_4_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1Builder.html" target="_self">Builder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderNode.html" title="The abstract builder interface. ">BuilderNode</a> </td></tr>
-<tr id="row_1_4_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInput.html" target="_self">BuilderInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html" title="The builder&#39;s input, containing an IRModule and the target. ">BuilderInputNode [...]
-<tr id="row_1_4_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html" target="_self">BuilderInputNode</a></td><td class="desc">The builder's input, containing an <a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a> and the target </td></tr>
-<tr id="row_1_4_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderNode.html" target="_self">BuilderNode</a></td><td class="desc">The abstract builder interface </td></tr>
-<tr id="row_1_4_6_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResult.html" target="_self">BuilderResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html" title="The builder&#39;s output, containing the artifact path or error message if any. [...]
-<tr id="row_1_4_7_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html" target="_self">BuilderResultNode</a></td><td class="desc">The builder's output, containing the artifact path or error message if any </td></tr>
-<tr id="row_1_4_8_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html" target="_self">Database</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">DatabaseNode</a> </td></tr>
-<tr id="row_1_4_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html" target="_self">DatabaseNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_4_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidate.html" target="_self">MeasureCandidate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html" title="The schedule (with input shapes) to be measured. ">MeasureCandidateNo [...]
-<tr id="row_1_4_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html" target="_self">MeasureCandidateNode</a></td><td class="desc">The schedule (with input shapes) to be measured </td></tr>
-<tr id="row_1_4_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html" target="_self">PyBuilderNode</a></td><td class="desc">An abstract builder with customized build method on the python-side </td></tr>
-<tr id="row_1_4_13_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html" target="_self">PyDatabaseNode</a></td><td class="desc">The database with customized methods on the python-side </td></tr>
-<tr id="row_1_4_14_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PyRunnerNode.html" target="_self">PyRunnerNode</a></td><td class="desc">An abstract runner with customized build method on the python-side </td></tr>
-<tr id="row_1_4_15_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html" target="_self">PySearchStrategyNode</a></td><td class="desc">The python side customizable class for measure candidate generation </td></tr>
-<tr id="row_1_4_16_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PySpaceGeneratorNode.html" target="_self">PySpaceGeneratorNode</a></td><td class="desc">The design space generator with customized methods on the python-side </td></tr>
-<tr id="row_1_4_17_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html" target="_self">PyTaskSchedulerNode</a></td><td class="desc">The task scheduler with customized methods on the python-side </td></tr>
-<tr id="row_1_4_18_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1Runner.html" target="_self">Runner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerNode.html" title="The abstract runner interface. ">RunnerNode</a> </td></tr>
-<tr id="row_1_4_19_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerFuture.html" target="_self">RunnerFuture</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerFutureNode.html" title="A class to asynchronously fetch runner&#39;s output. ">RunnerFutureNode</a> </td></tr>
-<tr id="row_1_4_20_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerFutureNode.html" target="_self">RunnerFutureNode</a></td><td class="desc">A class to asynchronously fetch runner's output </td></tr>
-<tr id="row_1_4_21_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInput.html" target="_self">RunnerInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html" title="Runner&#39;s input containing path of artifact, type of device and argument info. "> [...]
-<tr id="row_1_4_22_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html" target="_self">RunnerInputNode</a></td><td class="desc"><a class="el" href="classtvm_1_1meta__schedule_1_1Runner.html" title="Managed reference to RunnerNode. ">Runner</a>'s input containing path of artifact, type of device and argu [...]
-<tr id="row_1_4_23_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerNode.html" target="_self">RunnerNode</a></td><td class="desc">The abstract runner interface </td></tr>
-<tr id="row_1_4_24_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResult.html" target="_self">RunnerResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html" title="Runner&#39;s output containing measurement result of MeasureCandidate or error ms [...]
-<tr id="row_1_4_25_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html" target="_self">RunnerResultNode</a></td><td class="desc"><a class="el" href="classtvm_1_1meta__schedule_1_1Runner.html" title="Managed reference to RunnerNode. ">Runner</a>'s output containing measurement result of <a class="el" hr [...]
-<tr id="row_1_4_26_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategy.html" target="_self">SearchStrategy</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html" title="The search strategy for measure candidates generation. ">SearchStrategyNode [...]
-<tr id="row_1_4_27_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html" target="_self">SearchStrategyNode</a></td><td class="desc">The search strategy for measure candidates generation </td></tr>
-<tr id="row_1_4_28_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGenerator.html" target="_self">SpaceGenerator</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGeneratorNode.html" title="The abstract class for design space generation. ">SpaceGeneratorNode</a> </ [...]
-<tr id="row_1_4_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGeneratorNode.html" target="_self">SpaceGeneratorNode</a></td><td class="desc">The abstract class for design space generation </td></tr>
-<tr id="row_1_4_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html" target="_self">TaskScheduler</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" title="The abstract interface of task schedulers. ">TaskSchedulerNode</a> </td></tr>
-<tr id="row_1_4_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" target="_self">TaskSchedulerNode</a></td><td class="desc">The abstract interface of task schedulers </td></tr>
-<tr id="row_1_4_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TensorInfo.html" target="_self">TensorInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html" title="The tensor argument information. ">TensorInfoNode</a> </td></tr>
-<tr id="row_1_4_33_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html" target="_self">TensorInfoNode</a></td><td class="desc">The tensor argument information </td></tr>
-<tr id="row_1_4_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContext.html" target="_self">TuneContext</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html" title="The auto tuning context. ">TuneContextNode</a> </td></tr>
-<tr id="row_1_4_35_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html" target="_self">TuneContextNode</a></td><td class="desc">The auto tuning context </td></tr>
-<tr id="row_1_4_36_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html" target="_self">TuningRecord</a></td><td class="desc">The managed reference of <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" title="The class of tuning records. ">TuningRecordNode</a> </td></tr>
-<tr id="row_1_4_37_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" target="_self">TuningRecordNode</a></td><td class="desc">The class of tuning records </td></tr>
-<tr id="row_1_4_38_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html" target="_self">Workload</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1WorkloadNode.html" title="A workload, i.e. an IRModule and its structural hash. ">WorkloadNode</a> </td></tr>
-<tr id="row_1_4_39_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1meta__schedule_1_1WorkloadEqual.html" target="_self">WorkloadEqual</a></td><td class="desc">The equality check for <a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html" title="Managed reference to WorkloadNode. ">Workload</a> </td></tr>
-<tr id="row_1_4_40_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1meta__schedule_1_1WorkloadHash.html" target="_self">WorkloadHash</a></td><td class="desc">The hash method for <a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html" title="Managed reference to WorkloadNode. ">Workload</a> </td></tr>
-<tr id="row_1_4_41_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1WorkloadNode.html" target="_self">WorkloadNode</a></td><td class="desc">A workload, i.e. an <a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a> and its structural hash </td></tr>
+<tr id="row_1_4_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBest.html" target="_self">ApplyHistoryBest</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html" title="An integration context that allows application of historically best re [...]
+<tr id="row_1_4_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html" target="_self">ApplyHistoryBestNode</a></td><td class="desc">An integration context that allows application of historically best records from a database </td></tr>
+<tr id="row_1_4_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html" target="_self">ArgInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html" title="The argument information. ">ArgInfoNode</a> </td></tr>
+<tr id="row_1_4_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html" target="_self">ArgInfoNode</a></td><td class="desc">The argument information </td></tr>
+<tr id="row_1_4_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1Builder.html" target="_self">Builder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderNode.html" title="The abstract builder interface. ">BuilderNode</a> </td></tr>
+<tr id="row_1_4_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInput.html" target="_self">BuilderInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html" title="The builder&#39;s input, containing an IRModule and the target. ">BuilderInputNode [...]
+<tr id="row_1_4_6_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html" target="_self">BuilderInputNode</a></td><td class="desc">The builder's input, containing an <a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a> and the target </td></tr>
+<tr id="row_1_4_7_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderNode.html" target="_self">BuilderNode</a></td><td class="desc">The abstract builder interface </td></tr>
+<tr id="row_1_4_8_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResult.html" target="_self">BuilderResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html" title="The builder&#39;s output, containing the artifact path or error message if any. [...]
+<tr id="row_1_4_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html" target="_self">BuilderResultNode</a></td><td class="desc">The builder's output, containing the artifact path or error message if any </td></tr>
+<tr id="row_1_4_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html" target="_self">Database</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">DatabaseNode</a> </td></tr>
+<tr id="row_1_4_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html" target="_self">DatabaseNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_4_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTask.html" target="_self">ExtractedTask</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html" title="A tuning task extracted from the high-level IR. ">ExtractedTaskNode</a> </td></tr>
+<tr id="row_1_4_13_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html" target="_self">ExtractedTaskNode</a></td><td class="desc">A tuning task extracted from the high-level IR </td></tr>
+<tr id="row_1_4_14_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidate.html" target="_self">MeasureCandidate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html" title="The schedule (with input shapes) to be measured. ">MeasureCandidateNo [...]
+<tr id="row_1_4_15_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html" target="_self">MeasureCandidateNode</a></td><td class="desc">The schedule (with input shapes) to be measured </td></tr>
+<tr id="row_1_4_16_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1MetaScheduleContext.html" target="_self">MetaScheduleContext</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1MetaScheduleContextNode.html" title="A context manager interface for the integration. ">MetaSched [...]
+<tr id="row_1_4_17_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1MetaScheduleContextNode.html" target="_self">MetaScheduleContextNode</a></td><td class="desc">A context manager interface for the integration </td></tr>
+<tr id="row_1_4_18_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html" target="_self">PyBuilderNode</a></td><td class="desc">An abstract builder with customized build method on the python-side </td></tr>
+<tr id="row_1_4_19_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html" target="_self">PyDatabaseNode</a></td><td class="desc">The database with customized methods on the python-side </td></tr>
+<tr id="row_1_4_20_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PyRunnerNode.html" target="_self">PyRunnerNode</a></td><td class="desc">An abstract runner with customized build method on the python-side </td></tr>
+<tr id="row_1_4_21_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html" target="_self">PySearchStrategyNode</a></td><td class="desc">The python side customizable class for measure candidate generation </td></tr>
+<tr id="row_1_4_22_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PySpaceGeneratorNode.html" target="_self">PySpaceGeneratorNode</a></td><td class="desc">The design space generator with customized methods on the python-side </td></tr>
+<tr id="row_1_4_23_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html" target="_self">PyTaskSchedulerNode</a></td><td class="desc">The task scheduler with customized methods on the python-side </td></tr>
+<tr id="row_1_4_24_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1Runner.html" target="_self">Runner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerNode.html" title="The abstract runner interface. ">RunnerNode</a> </td></tr>
+<tr id="row_1_4_25_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerFuture.html" target="_self">RunnerFuture</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerFutureNode.html" title="A class to asynchronously fetch runner&#39;s output. ">RunnerFutureNode</a> </td></tr>
+<tr id="row_1_4_26_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerFutureNode.html" target="_self">RunnerFutureNode</a></td><td class="desc">A class to asynchronously fetch runner's output </td></tr>
+<tr id="row_1_4_27_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInput.html" target="_self">RunnerInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html" title="Runner&#39;s input containing path of artifact, type of device and argument info. "> [...]
+<tr id="row_1_4_28_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html" target="_self">RunnerInputNode</a></td><td class="desc"><a class="el" href="classtvm_1_1meta__schedule_1_1Runner.html" title="Managed reference to RunnerNode. ">Runner</a>'s input containing path of artifact, type of device and argu [...]
+<tr id="row_1_4_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerNode.html" target="_self">RunnerNode</a></td><td class="desc">The abstract runner interface </td></tr>
+<tr id="row_1_4_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResult.html" target="_self">RunnerResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html" title="Runner&#39;s output containing measurement result of MeasureCandidate or error ms [...]
+<tr id="row_1_4_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html" target="_self">RunnerResultNode</a></td><td class="desc"><a class="el" href="classtvm_1_1meta__schedule_1_1Runner.html" title="Managed reference to RunnerNode. ">Runner</a>'s output containing measurement result of <a class="el" hr [...]
+<tr id="row_1_4_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategy.html" target="_self">SearchStrategy</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html" title="The search strategy for measure candidates generation. ">SearchStrategyNode [...]
+<tr id="row_1_4_33_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html" target="_self">SearchStrategyNode</a></td><td class="desc">The search strategy for measure candidates generation </td></tr>
+<tr id="row_1_4_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGenerator.html" target="_self">SpaceGenerator</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGeneratorNode.html" title="The abstract class for design space generation. ">SpaceGeneratorNode</a> </ [...]
+<tr id="row_1_4_35_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGeneratorNode.html" target="_self">SpaceGeneratorNode</a></td><td class="desc">The abstract class for design space generation </td></tr>
+<tr id="row_1_4_36_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TaskExtraction.html" target="_self">TaskExtraction</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TaskExtractionNode.html" title="An integration context for task extraction. ">TaskExtractionNode</a> </td></tr>
+<tr id="row_1_4_37_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TaskExtractionNode.html" target="_self">TaskExtractionNode</a></td><td class="desc">An integration context for task extraction </td></tr>
+<tr id="row_1_4_38_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html" target="_self">TaskScheduler</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" title="The abstract interface of task schedulers. ">TaskSchedulerNode</a> </td></tr>
+<tr id="row_1_4_39_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" target="_self">TaskSchedulerNode</a></td><td class="desc">The abstract interface of task schedulers </td></tr>
+<tr id="row_1_4_40_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TensorInfo.html" target="_self">TensorInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html" title="The tensor argument information. ">TensorInfoNode</a> </td></tr>
+<tr id="row_1_4_41_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html" target="_self">TensorInfoNode</a></td><td class="desc">The tensor argument information </td></tr>
+<tr id="row_1_4_42_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContext.html" target="_self">TuneContext</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html" title="The auto tuning context. ">TuneContextNode</a> </td></tr>
+<tr id="row_1_4_43_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html" target="_self">TuneContextNode</a></td><td class="desc">The auto tuning context </td></tr>
+<tr id="row_1_4_44_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html" target="_self">TuningRecord</a></td><td class="desc">The managed reference of <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" title="The class of tuning records. ">TuningRecordNode</a> </td></tr>
+<tr id="row_1_4_45_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" target="_self">TuningRecordNode</a></td><td class="desc">The class of tuning records </td></tr>
+<tr id="row_1_4_46_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html" target="_self">Workload</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1WorkloadNode.html" title="A workload, i.e. an IRModule and its structural hash. ">WorkloadNode</a> </td></tr>
+<tr id="row_1_4_47_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1meta__schedule_1_1WorkloadEqual.html" target="_self">WorkloadEqual</a></td><td class="desc">The equality check for <a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html" title="Managed reference to WorkloadNode. ">Workload</a> </td></tr>
+<tr id="row_1_4_48_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1meta__schedule_1_1WorkloadHash.html" target="_self">WorkloadHash</a></td><td class="desc">The hash method for <a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html" title="Managed reference to WorkloadNode. ">Workload</a> </td></tr>
+<tr id="row_1_4_49_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1WorkloadNode.html" target="_self">WorkloadNode</a></td><td class="desc">A workload, i.e. an <a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a> and its structural hash </td></tr>
 <tr id="row_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_5_" class="arrow" onclick="toggleFolder('1_5_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1parser.html" target="_self">parser</a></td><td class="desc"></td></tr>
 <tr id="row_1_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1parser_1_1Source.html" target="_self">Source</a></td><td class="desc"></td></tr>
 <tr id="row_1_5_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1parser_1_1SourceMap.html" target="_self">SourceMap</a></td><td class="desc"></td></tr>
@@ -863,110 +871,115 @@ $(function() {
 <tr id="row_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueEqual.html" target="_self">BaseValueEqual</a></td><td class="desc">Equality definition of base value class </td></tr>
 <tr id="row_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueHash.html" target="_self">BaseValueHash</a></td><td class="desc">Hash definition of base value classes </td></tr>
 <tr id="row_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Bool.html" target="_self">Bool</a></td><td class="desc">Boolean constant </td></tr>
-<tr id="row_1_34_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1CompileError.html" target="_self">CompileError</a></td><td class="desc">Custom Error class to be thrown during compilation </td></tr>
-<tr id="row_1_35_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Constructor.html" target="_self">Constructor</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1ConstructorNode.html" title="ADT constructor. Constructors compare by pointer equality. ">ConstructorNode</a> </td></tr>
-<tr id="row_1_36_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ConstructorNode.html" target="_self">ConstructorNode</a></td><td class="desc">ADT constructor. Constructors compare by pointer equality </td></tr>
-<tr id="row_1_37_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Diagnostic.html" target="_self">Diagnostic</a></td><td class="desc"></td></tr>
-<tr id="row_1_38_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticBuilder.html" target="_self">DiagnosticBuilder</a></td><td class="desc">A wrapper around std::stringstream to build a diagnostic </td></tr>
-<tr id="row_1_39_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticContext.html" target="_self">DiagnosticContext</a></td><td class="desc"></td></tr>
-<tr id="row_1_40_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticContextNode.html" target="_self">DiagnosticContextNode</a></td><td class="desc"></td></tr>
-<tr id="row_1_41_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticNode.html" target="_self">DiagnosticNode</a></td><td class="desc">A compiler diagnostic message </td></tr>
-<tr id="row_1_42_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticRenderer.html" target="_self">DiagnosticRenderer</a></td><td class="desc"></td></tr>
-<tr id="row_1_43_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticRendererNode.html" target="_self">DiagnosticRendererNode</a></td><td class="desc">Display diagnostics in a given display format </td></tr>
-<tr id="row_1_44_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrs.html" target="_self">DictAttrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior...">DictAttrsNode</a> </td></tr>
-<tr id="row_1_45_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrsNode.html" target="_self">DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the  [...]
-<tr id="row_1_46_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFunc.html" target="_self">EnvFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1EnvFuncNode.html" title="A serializable function backed by TVM&#39;s global environment. ">EnvFuncNode</a> </td></tr>
-<tr id="row_1_47_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFuncNode.html" target="_self">EnvFuncNode</a></td><td class="desc">A serializable function backed by TVM's global environment </td></tr>
-<tr id="row_1_48_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1ErrorBuilder.html" target="_self">ErrorBuilder</a></td><td class="desc">A wrapper around std::stringstream to build error </td></tr>
-<tr id="row_1_49_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ErrorReporter.html" target="_self">ErrorReporter</a></td><td class="desc">An abstraction around how errors are stored and reported. Designed to be opaque to users, so we can support a robust and simpler error reporting mode, as well as a more complex mode </td></tr>
-<tr id="row_1_50_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImm.html" target="_self">FloatImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1FloatImmNode.html" title="Constant floating point literals in the program. ">FloatImmNode</a> </td></tr>
-<tr id="row_1_51_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImmNode.html" target="_self">FloatImmNode</a></td><td class="desc">Constant floating point literals in the program </td></tr>
-<tr id="row_1_52_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncType.html" target="_self">FuncType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1FuncTypeNode.html" title="Function type. ">FuncTypeNode</a> </td></tr>
-<tr id="row_1_53_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncTypeNode.html" target="_self">FuncTypeNode</a></td><td class="desc">Function type </td></tr>
-<tr id="row_1_54_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GenericFunc.html" target="_self">GenericFunc</a></td><td class="desc">Generic function that can be specialized on a per-target basis </td></tr>
-<tr id="row_1_55_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GenericFuncNode.html" target="_self">GenericFuncNode</a></td><td class="desc">Represents a generic function that can be specialized on a per-target basis </td></tr>
-<tr id="row_1_56_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalTypeVar.html" target="_self">GlobalTypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalTypeVarNode.html" title="A global type variable that is used for defining new types or type aliases. ">GlobalTypeVarNode</a> </td></tr>
-<tr id="row_1_57_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalTypeVarNode.html" target="_self">GlobalTypeVarNode</a></td><td class="desc">A global type variable that is used for defining new types or type aliases </td></tr>
-<tr id="row_1_58_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVar.html" target="_self">GlobalVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalVarNode.html" title="Global variable that lives in the top-level module. ">GlobalVarNode</a> </td></tr>
-<tr id="row_1_59_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarNode.html" target="_self">GlobalVarNode</a></td><td class="desc">Global variable that lives in the top-level module </td></tr>
-<tr id="row_1_60_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IncompleteType.html" target="_self">IncompleteType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1IncompleteTypeNode.html" title="Intermediate values that is used to indicate incomplete type during type inference. ">IncompleteTypeNode</a> </td></tr>
-<tr id="row_1_61_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IncompleteTypeNode.html" target="_self">IncompleteTypeNode</a></td><td class="desc">Intermediate values that is used to indicate incomplete type during type inference </td></tr>
-<tr id="row_1_62_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Integer.html" target="_self">Integer</a></td><td class="desc">Container of constant int that adds more constructors </td></tr>
-<tr id="row_1_63_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImm.html" target="_self">IntImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IntImmNode.html" title="Constant integer literals in the program. ">IntImmNode</a> </td></tr>
-<tr id="row_1_64_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImmNode.html" target="_self">IntImmNode</a></td><td class="desc">Constant integer literals in the program </td></tr>
-<tr id="row_1_65_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModule.html" target="_self">IRModule</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions. ">IRModuleNode</a> </td></tr>
-<tr id="row_1_66_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModuleNode.html" target="_self">IRModuleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a> that holds functions and type definitions </td></tr>
-<tr id="row_1_67_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfo.html" target="_self">MemoryInfo</a></td><td class="desc">Defines memory info </td></tr>
-<tr id="row_1_68_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfoNode.html" target="_self">MemoryInfoNode</a></td><td class="desc">Memory information of special memory region. Use <a class="el" href="classtvm_1_1MemoryInfo.html" title="Defines memory info. ">MemoryInfo</a> as its container type </td></tr>
-<tr id="row_1_69_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor.html" target="_self">NodeFunctor</a></td><td class="desc">A dynamically dispatched functor on the type of the first argument </td></tr>
-<tr id="row_1_70_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08_4.html" target="_self">NodeFunctor&lt; R(const ObjectRef &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_1_71_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Op.html" target="_self">Op</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1OpNode.html" title="Primitive Op(builtin intrinsics) ">OpNode</a> </td></tr>
-<tr id="row_1_72_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpAttrMap.html" target="_self">OpAttrMap</a></td><td class="desc">Map&lt;Op,ValueType&gt; used to store meta-information about <a class="el" href="classtvm_1_1Op.html" title="Managed reference class to OpNode. ">Op</a> </td></tr>
-<tr id="row_1_73_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpNode.html" target="_self">OpNode</a></td><td class="desc">Primitive Op(builtin intrinsics) </td></tr>
-<tr id="row_1_74_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpRegEntry.html" target="_self">OpRegEntry</a></td><td class="desc">Helper structure to register operators </td></tr>
-<tr id="row_1_75_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerType.html" target="_self">PointerType</a></td><td class="desc"></td></tr>
-<tr id="row_1_76_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerTypeNode.html" target="_self">PointerTypeNode</a></td><td class="desc">Low-level raw pointer type </td></tr>
-<tr id="row_1_77_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExpr.html" target="_self">PrimExpr</a></td><td class="desc">Reference to <a class="el" href="classtvm_1_1PrimExprNode.html" title="Base node of all primitive expressions. ">PrimExprNode</a> </td></tr>
-<tr id="row_1_78_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprNode.html" target="_self">PrimExprNode</a></td><td class="desc">Base node of all primitive expressions </td></tr>
-<tr id="row_1_79_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimType.html" target="_self">PrimType</a></td><td class="desc"></td></tr>
-<tr id="row_1_80_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimTypeNode.html" target="_self">PrimTypeNode</a></td><td class="desc">Primitive data types used in the low-level IR </td></tr>
-<tr id="row_1_81_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Range.html" target="_self">Range</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> constainer </td></tr>
-<tr id="row_1_82_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RangeNode.html" target="_self">RangeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> over one dimension </td></tr>
-<tr id="row_1_83_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_83_" class="arrow" onclick="toggleFolder('1_83_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable.html" target="_self">ReflectionVTable</a></td><td class="desc">Virtual function table to support IR/AST node reflection </td></tr>
-<tr id="row_1_83_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" target="_self">Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" title="Registry of a reflection table. ">Registry</a> of a reflection table </td></tr>
-<tr id="row_1_84_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExpr.html" target="_self">RelayExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayExprNode.html" title="Base node of all non-primitive expressions. ">RelayExprNode</a> </td></tr>
-<tr id="row_1_85_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExprNode.html" target="_self">RelayExprNode</a></td><td class="desc">Base node of all non-primitive expressions </td></tr>
-<tr id="row_1_86_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayRefType.html" target="_self">RelayRefType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayRefTypeNode.html" title="Reference Type High-level Relay IR. ">RelayRefTypeNode</a> </td></tr>
-<tr id="row_1_87_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayRefTypeNode.html" target="_self">RelayRefTypeNode</a></td><td class="desc">Reference <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> High-level Relay IR </td></tr>
-<tr id="row_1_88_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReprPrinter.html" target="_self">ReprPrinter</a></td><td class="desc">A printer class to print the AST/IR nodes </td></tr>
-<tr id="row_1_89_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_89_" class="arrow" onclick="toggleFolder('1_89_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer.html" target="_self">SEqualReducer</a></td><td class="desc">A Reducer class to reduce the structural equality result of two objects </td></tr>
-<tr id="row_1_89_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors. </td></tr>
-<tr id="row_1_90_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_90_" class="arrow" onclick="toggleFolder('1_90_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer.html" target="_self">SHashReducer</a></td><td class="desc">A Reducer class to reduce the structural hash value </td></tr>
-<tr id="row_1_90_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors </td></tr>
-<tr id="row_1_91_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceName.html" target="_self">SourceName</a></td><td class="desc">The source name of a file span </td></tr>
-<tr id="row_1_92_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceNameNode.html" target="_self">SourceNameNode</a></td><td class="desc">The name of a source fragment </td></tr>
-<tr id="row_1_93_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Span.html" target="_self">Span</a></td><td class="desc"></td></tr>
-<tr id="row_1_94_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SpanNode.html" target="_self">SpanNode</a></td><td class="desc">Stores locations in frontend source that generated a node </td></tr>
-<tr id="row_1_95_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralEqual.html" target="_self">StructuralEqual</a></td><td class="desc">Content-aware structural equality comparator for objects </td></tr>
-<tr id="row_1_96_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralHash.html" target="_self">StructuralHash</a></td><td class="desc">Content-aware structural hasing </td></tr>
-<tr id="row_1_97_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Target.html" target="_self">Target</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetNode.html" title="Compilation target. ">TargetNode</a> </td></tr>
-<tr id="row_1_98_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKind.html" target="_self">TargetKind</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetKindNode.html" title="Target kind, specifies the kind of the target. ">TargetKindNode</a> </td></tr>
-<tr id="row_1_99_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindAttrMap.html" target="_self">TargetKindAttrMap</a></td><td class="desc">Map&lt;TargetKind, ValueType&gt; used to store meta-information about <a class="el" href="classtvm_1_1TargetKind.html" title="Managed reference class to TargetKindNode. ">TargetKind</a> </td></tr>
-<tr id="row_1_100_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindNode.html" target="_self">TargetKindNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Target.html" title="Managed reference class to TargetNode. ">Target</a> kind, specifies the kind of the target </td></tr>
-<tr id="row_1_101_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindRegEntry.html" target="_self">TargetKindRegEntry</a></td><td class="desc">Helper structure to register <a class="el" href="classtvm_1_1TargetKind.html" title="Managed reference class to TargetKindNode. ">TargetKind</a> </td></tr>
-<tr id="row_1_102_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetNode.html" target="_self">TargetNode</a></td><td class="desc">Compilation target </td></tr>
-<tr id="row_1_103_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTag.html" target="_self">TargetTag</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetTagNode.html" title="A target tag. ">TargetTagNode</a> </td></tr>
-<tr id="row_1_104_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTagNode.html" target="_self">TargetTagNode</a></td><td class="desc">A target tag </td></tr>
-<tr id="row_1_105_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTagRegEntry.html" target="_self">TargetTagRegEntry</a></td><td class="desc"></td></tr>
-<tr id="row_1_106_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorAffineType.html" target="_self">TensorAffineType</a></td><td class="desc">Managed reference to AffineTypes </td></tr>
-<tr id="row_1_107_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorAffineTypeNode.html" target="_self">TensorAffineTypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1TensorAffineType.html" title="Managed reference to AffineTypes. ">TensorAffineType</a> representation </td></tr>
-<tr id="row_1_108_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorType.html" target="_self">TensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TensorTypeNode.html" title="This is the most commonly used type in relay. TensorType have a fixed dimension, data type...">TensorTypeNode</a> </td></tr>
-<tr id="row_1_109_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorTypeNode.html" target="_self">TensorTypeNode</a></td><td class="desc">This is the most commonly used type in relay. <a class="el" href="classtvm_1_1TensorType.html" title="Managed reference to TensorTypeNode. ">TensorType</a> have a fixed dimension, data type </td></tr>
-<tr id="row_1_110_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleAffineType.html" target="_self">TupleAffineType</a></td><td class="desc">Managed reference to TupleAffineTypes </td></tr>
-<tr id="row_1_111_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleAffineTypeNode.html" target="_self">TupleAffineTypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1TupleAffineType.html" title="Managed reference to TupleAffineTypes. ">TupleAffineType</a> representation </td></tr>
-<tr id="row_1_112_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleType.html" target="_self">TupleType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TupleTypeNode.html" title="The type of tuple values. ">TupleTypeNode</a> </td></tr>
-<tr id="row_1_113_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleTypeNode.html" target="_self">TupleTypeNode</a></td><td class="desc">The type of tuple values </td></tr>
-<tr id="row_1_114_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Type.html" target="_self">Type</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeNode.html" title="Type is the base type of all types. ">TypeNode</a> </td></tr>
-<tr id="row_1_115_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeCall.html" target="_self">TypeCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeCallNode.html" title="Type function application. ">TypeCallNode</a> </td></tr>
-<tr id="row_1_116_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeCallNode.html" target="_self">TypeCallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> function application </td></tr>
-<tr id="row_1_117_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraint.html" target="_self">TypeConstraint</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeConstraintNode.html" title="Potential Constraints in a function. ">TypeConstraintNode</a> </td></tr>
-<tr id="row_1_118_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraintNode.html" target="_self">TypeConstraintNode</a></td><td class="desc">Potential Constraints in a function </td></tr>
-<tr id="row_1_119_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeData.html" target="_self">TypeData</a></td><td class="desc">Stores all data for an Algebraic Data <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> (ADT) </td></tr>
-<tr id="row_1_120_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeDataNode.html" target="_self">TypeDataNode</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeData.html" title="Stores all data for an Algebraic Data Type (ADT). ">TypeData</a> container node </td></tr>
-<tr id="row_1_121_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc.html" target="_self">TypedEnvFunc</a></td><td class="desc">Please refer to <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#TypedEnvFuncAnchor">TypedEnvFunc&lt;R(Args..)&gt;</a> </td></tr>
-<tr id="row_1_122_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">TypedEnvFunc&lt; R(Args...)&gt;</a></td><td class="desc">A typed version of <a class="el" href="classtvm_1_1EnvFunc.html" title="Managed reference to EnvFuncNode. ">EnvFunc</a>. It is backed by a GlobalFuncNode inte [...]
-<tr id="row_1_123_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor.html" target="_self">TypeFunctor</a></td><td class="desc"></td></tr>
-<tr id="row_1_124_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html" target="_self">TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_1_125_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeMutator.html" target="_self">TypeMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeMutator.html" title="TypeMutator that mutates expressions. ">TypeMutator</a> that mutates expressions </td></tr>
-<tr id="row_1_126_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeNode.html" target="_self">TypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> is the base type of all types </td></tr>
-<tr id="row_1_127_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeRelation.html" target="_self">TypeRelation</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeRelationNode.html" title="User defined type relation, it is an input-output relation on types. ">TypeRelationNode</a> </td></tr>
-<tr id="row_1_128_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeRelationNode.html" target="_self">TypeRelationNode</a></td><td class="desc">User defined type relation, it is an input-output relation on types </td></tr>
-<tr id="row_1_129_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeReporter.html" target="_self">TypeReporter</a></td><td class="desc">Container class of <a class="el" href="classtvm_1_1TypeReporter.html" title="Container class of TypeReporter. ">TypeReporter</a> </td></tr>
-<tr id="row_1_130_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeReporterNode.html" target="_self">TypeReporterNode</a></td><td class="desc">Reporter that reports back to the type resolution information </td></tr>
-<tr id="row_1_131_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVar.html" target="_self">TypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeVarNode.html" title="Type parameter in functions. ">TypeVarNode</a> </td></tr>
-<tr id="row_1_132_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVarNode.html" target="_self">TypeVarNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> parameter in functions </td></tr>
-<tr id="row_1_133_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVisitor.html" target="_self">TypeVisitor</a></td><td class="desc">A type visitor that recursively visit types </td></tr>
-<tr id="row_1_134_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1With.html" target="_self">With</a></td><td class="desc">RAII wrapper function to enter and exit a context object similar to python's with syntax </td></tr>
+<tr id="row_1_34_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1CompilationConfig.html" target="_self">CompilationConfig</a></td><td class="desc">Managed reference class to <code><a class="el" href="classtvm_1_1CompilationConfig.html" title="Managed reference class to CompilationConfig. ">CompilationConfig</a></code> </td></tr>
+<tr id="row_1_35_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1CompilationConfigNode.html" target="_self">CompilationConfigNode</a></td><td class="desc">Gathers the <code>Targets</code> and distinguished <code>SEScopes</code> in canonical form needed to compile a Relay module. All centralizes any setup and validation logic needed to tr [...]
+<tr id="row_1_36_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1CompileError.html" target="_self">CompileError</a></td><td class="desc">Custom Error class to be thrown during compilation </td></tr>
+<tr id="row_1_37_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Constructor.html" target="_self">Constructor</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1ConstructorNode.html" title="ADT constructor. Constructors compare by pointer equality. ">ConstructorNode</a> </td></tr>
+<tr id="row_1_38_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ConstructorNode.html" target="_self">ConstructorNode</a></td><td class="desc">ADT constructor. Constructors compare by pointer equality </td></tr>
+<tr id="row_1_39_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Diagnostic.html" target="_self">Diagnostic</a></td><td class="desc"></td></tr>
+<tr id="row_1_40_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticBuilder.html" target="_self">DiagnosticBuilder</a></td><td class="desc">A wrapper around std::stringstream to build a diagnostic </td></tr>
+<tr id="row_1_41_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticContext.html" target="_self">DiagnosticContext</a></td><td class="desc"></td></tr>
+<tr id="row_1_42_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticContextNode.html" target="_self">DiagnosticContextNode</a></td><td class="desc"></td></tr>
+<tr id="row_1_43_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticNode.html" target="_self">DiagnosticNode</a></td><td class="desc">A compiler diagnostic message </td></tr>
+<tr id="row_1_44_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticRenderer.html" target="_self">DiagnosticRenderer</a></td><td class="desc"></td></tr>
+<tr id="row_1_45_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DiagnosticRendererNode.html" target="_self">DiagnosticRendererNode</a></td><td class="desc">Display diagnostics in a given display format </td></tr>
+<tr id="row_1_46_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrs.html" target="_self">DictAttrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior...">DictAttrsNode</a> </td></tr>
+<tr id="row_1_47_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrsNode.html" target="_self">DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the  [...]
+<tr id="row_1_48_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFunc.html" target="_self">EnvFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1EnvFuncNode.html" title="A serializable function backed by TVM&#39;s global environment. ">EnvFuncNode</a> </td></tr>
+<tr id="row_1_49_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFuncNode.html" target="_self">EnvFuncNode</a></td><td class="desc">A serializable function backed by TVM's global environment </td></tr>
+<tr id="row_1_50_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1ErrorBuilder.html" target="_self">ErrorBuilder</a></td><td class="desc">A wrapper around std::stringstream to build error </td></tr>
+<tr id="row_1_51_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ErrorReporter.html" target="_self">ErrorReporter</a></td><td class="desc">An abstraction around how errors are stored and reported. Designed to be opaque to users, so we can support a robust and simpler error reporting mode, as well as a more complex mode </td></tr>
+<tr id="row_1_52_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImm.html" target="_self">FloatImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1FloatImmNode.html" title="Constant floating point literals in the program. ">FloatImmNode</a> </td></tr>
+<tr id="row_1_53_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImmNode.html" target="_self">FloatImmNode</a></td><td class="desc">Constant floating point literals in the program </td></tr>
+<tr id="row_1_54_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncType.html" target="_self">FuncType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1FuncTypeNode.html" title="Function type. ">FuncTypeNode</a> </td></tr>
+<tr id="row_1_55_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncTypeNode.html" target="_self">FuncTypeNode</a></td><td class="desc">Function type </td></tr>
+<tr id="row_1_56_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GenericFunc.html" target="_self">GenericFunc</a></td><td class="desc">Generic function that can be specialized on a per-target basis </td></tr>
+<tr id="row_1_57_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GenericFuncNode.html" target="_self">GenericFuncNode</a></td><td class="desc">Represents a generic function that can be specialized on a per-target basis </td></tr>
+<tr id="row_1_58_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalTypeVar.html" target="_self">GlobalTypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalTypeVarNode.html" title="A global type variable that is used for defining new types or type aliases. ">GlobalTypeVarNode</a> </td></tr>
+<tr id="row_1_59_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalTypeVarNode.html" target="_self">GlobalTypeVarNode</a></td><td class="desc">A global type variable that is used for defining new types or type aliases </td></tr>
+<tr id="row_1_60_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVar.html" target="_self">GlobalVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalVarNode.html" title="Global variable that lives in the top-level module. ">GlobalVarNode</a> </td></tr>
+<tr id="row_1_61_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarNode.html" target="_self">GlobalVarNode</a></td><td class="desc">Global variable that lives in the top-level module </td></tr>
+<tr id="row_1_62_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IncompleteType.html" target="_self">IncompleteType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1IncompleteTypeNode.html" title="Intermediate values that is used to indicate incomplete type during type inference. ">IncompleteTypeNode</a> </td></tr>
+<tr id="row_1_63_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IncompleteTypeNode.html" target="_self">IncompleteTypeNode</a></td><td class="desc">Intermediate values that is used to indicate incomplete type during type inference </td></tr>
+<tr id="row_1_64_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Integer.html" target="_self">Integer</a></td><td class="desc">Container of constant int that adds more constructors </td></tr>
+<tr id="row_1_65_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImm.html" target="_self">IntImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IntImmNode.html" title="Constant integer literals in the program. ">IntImmNode</a> </td></tr>
+<tr id="row_1_66_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImmNode.html" target="_self">IntImmNode</a></td><td class="desc">Constant integer literals in the program </td></tr>
+<tr id="row_1_67_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModule.html" target="_self">IRModule</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions. ">IRModuleNode</a> </td></tr>
+<tr id="row_1_68_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModuleNode.html" target="_self">IRModuleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a> that holds functions and type definitions </td></tr>
+<tr id="row_1_69_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfo.html" target="_self">MemoryInfo</a></td><td class="desc">Defines memory info </td></tr>
+<tr id="row_1_70_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfoNode.html" target="_self">MemoryInfoNode</a></td><td class="desc">Memory information of special memory region. Use <a class="el" href="classtvm_1_1MemoryInfo.html" title="Defines memory info. ">MemoryInfo</a> as its container type </td></tr>
+<tr id="row_1_71_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor.html" target="_self">NodeFunctor</a></td><td class="desc">A dynamically dispatched functor on the type of the first argument </td></tr>
+<tr id="row_1_72_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08_4.html" target="_self">NodeFunctor&lt; R(const ObjectRef &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_1_73_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Op.html" target="_self">Op</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1OpNode.html" title="Primitive Op(builtin intrinsics) ">OpNode</a> </td></tr>
+<tr id="row_1_74_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpAttrMap.html" target="_self">OpAttrMap</a></td><td class="desc">Map&lt;Op,ValueType&gt; used to store meta-information about <a class="el" href="classtvm_1_1Op.html" title="Managed reference class to OpNode. ">Op</a> </td></tr>
+<tr id="row_1_75_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpNode.html" target="_self">OpNode</a></td><td class="desc">Primitive Op(builtin intrinsics) </td></tr>
+<tr id="row_1_76_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpRegEntry.html" target="_self">OpRegEntry</a></td><td class="desc">Helper structure to register operators </td></tr>
+<tr id="row_1_77_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerType.html" target="_self">PointerType</a></td><td class="desc"></td></tr>
+<tr id="row_1_78_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerTypeNode.html" target="_self">PointerTypeNode</a></td><td class="desc">Low-level raw pointer type </td></tr>
+<tr id="row_1_79_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExpr.html" target="_self">PrimExpr</a></td><td class="desc">Reference to <a class="el" href="classtvm_1_1PrimExprNode.html" title="Base node of all primitive expressions. ">PrimExprNode</a> </td></tr>
+<tr id="row_1_80_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprNode.html" target="_self">PrimExprNode</a></td><td class="desc">Base node of all primitive expressions </td></tr>
+<tr id="row_1_81_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimType.html" target="_self">PrimType</a></td><td class="desc"></td></tr>
+<tr id="row_1_82_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimTypeNode.html" target="_self">PrimTypeNode</a></td><td class="desc">Primitive data types used in the low-level IR </td></tr>
+<tr id="row_1_83_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Range.html" target="_self">Range</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> constainer </td></tr>
+<tr id="row_1_84_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RangeNode.html" target="_self">RangeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> over one dimension </td></tr>
+<tr id="row_1_85_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_85_" class="arrow" onclick="toggleFolder('1_85_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable.html" target="_self">ReflectionVTable</a></td><td class="desc">Virtual function table to support IR/AST node reflection </td></tr>
+<tr id="row_1_85_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" target="_self">Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" title="Registry of a reflection table. ">Registry</a> of a reflection table </td></tr>
+<tr id="row_1_86_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExpr.html" target="_self">RelayExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayExprNode.html" title="Base node of all non-primitive expressions. ">RelayExprNode</a> </td></tr>
+<tr id="row_1_87_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExprNode.html" target="_self">RelayExprNode</a></td><td class="desc">Base node of all non-primitive expressions </td></tr>
+<tr id="row_1_88_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayRefType.html" target="_self">RelayRefType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayRefTypeNode.html" title="Reference Type High-level Relay IR. ">RelayRefTypeNode</a> </td></tr>
+<tr id="row_1_89_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayRefTypeNode.html" target="_self">RelayRefTypeNode</a></td><td class="desc">Reference <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> High-level Relay IR </td></tr>
+<tr id="row_1_90_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReprPrinter.html" target="_self">ReprPrinter</a></td><td class="desc">A printer class to print the AST/IR nodes </td></tr>
+<tr id="row_1_91_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_91_" class="arrow" onclick="toggleFolder('1_91_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer.html" target="_self">SEqualReducer</a></td><td class="desc">A Reducer class to reduce the structural equality result of two objects </td></tr>
+<tr id="row_1_91_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors. </td></tr>
+<tr id="row_1_92_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEScope.html" target="_self">SEScope</a></td><td class="desc">Managed reference class to <code><a class="el" href="classtvm_1_1SEScopeNode.html" title="Describes at compile time where data is to be stored down to the device and memory scope level...">SEScopeNode</a></code>  [...]
+<tr id="row_1_93_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEScopeCache.html" target="_self">SEScopeCache</a></td><td class="desc">A cache of <code>SEScopes</code>. This can be used: </td></tr>
+<tr id="row_1_94_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEScopeNode.html" target="_self">SEScopeNode</a></td><td class="desc">Describes at compile time where data is to be stored down to the device and memory scope level, or where execution is to take place, down to the device level. It is a quadruple of: </td></tr>
+<tr id="row_1_95_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_95_" class="arrow" onclick="toggleFolder('1_95_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer.html" target="_self">SHashReducer</a></td><td class="desc">A Reducer class to reduce the structural hash value </td></tr>
+<tr id="row_1_95_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors </td></tr>
+<tr id="row_1_96_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceName.html" target="_self">SourceName</a></td><td class="desc">The source name of a file span </td></tr>
+<tr id="row_1_97_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceNameNode.html" target="_self">SourceNameNode</a></td><td class="desc">The name of a source fragment </td></tr>
+<tr id="row_1_98_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Span.html" target="_self">Span</a></td><td class="desc"></td></tr>
+<tr id="row_1_99_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SpanNode.html" target="_self">SpanNode</a></td><td class="desc">Stores locations in frontend source that generated a node </td></tr>
+<tr id="row_1_100_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralEqual.html" target="_self">StructuralEqual</a></td><td class="desc">Content-aware structural equality comparator for objects </td></tr>
+<tr id="row_1_101_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralHash.html" target="_self">StructuralHash</a></td><td class="desc">Content-aware structural hasing </td></tr>
+<tr id="row_1_102_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Target.html" target="_self">Target</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetNode.html" title="Compilation target. ">TargetNode</a> </td></tr>
+<tr id="row_1_103_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKind.html" target="_self">TargetKind</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetKindNode.html" title="Target kind, specifies the kind of the target. ">TargetKindNode</a> </td></tr>
+<tr id="row_1_104_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindAttrMap.html" target="_self">TargetKindAttrMap</a></td><td class="desc">Map&lt;TargetKind, ValueType&gt; used to store meta-information about <a class="el" href="classtvm_1_1TargetKind.html" title="Managed reference class to TargetKindNode. ">TargetKind</a> </td></tr>
+<tr id="row_1_105_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindNode.html" target="_self">TargetKindNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Target.html" title="Managed reference class to TargetNode. ">Target</a> kind, specifies the kind of the target </td></tr>
+<tr id="row_1_106_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetKindRegEntry.html" target="_self">TargetKindRegEntry</a></td><td class="desc">Helper structure to register <a class="el" href="classtvm_1_1TargetKind.html" title="Managed reference class to TargetKindNode. ">TargetKind</a> </td></tr>
+<tr id="row_1_107_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetNode.html" target="_self">TargetNode</a></td><td class="desc">Compilation target </td></tr>
+<tr id="row_1_108_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTag.html" target="_self">TargetTag</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetTagNode.html" title="A target tag. ">TargetTagNode</a> </td></tr>
+<tr id="row_1_109_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTagNode.html" target="_self">TargetTagNode</a></td><td class="desc">A target tag </td></tr>
+<tr id="row_1_110_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetTagRegEntry.html" target="_self">TargetTagRegEntry</a></td><td class="desc"></td></tr>
+<tr id="row_1_111_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorAffineType.html" target="_self">TensorAffineType</a></td><td class="desc">Managed reference to AffineTypes </td></tr>
+<tr id="row_1_112_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorAffineTypeNode.html" target="_self">TensorAffineTypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1TensorAffineType.html" title="Managed reference to AffineTypes. ">TensorAffineType</a> representation </td></tr>
+<tr id="row_1_113_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorType.html" target="_self">TensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TensorTypeNode.html" title="This is the most commonly used type in relay. TensorType have a fixed dimension, data type...">TensorTypeNode</a> </td></tr>
+<tr id="row_1_114_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorTypeNode.html" target="_self">TensorTypeNode</a></td><td class="desc">This is the most commonly used type in relay. <a class="el" href="classtvm_1_1TensorType.html" title="Managed reference to TensorTypeNode. ">TensorType</a> have a fixed dimension, data type </td></tr>
+<tr id="row_1_115_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleAffineType.html" target="_self">TupleAffineType</a></td><td class="desc">Managed reference to TupleAffineTypes </td></tr>
+<tr id="row_1_116_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleAffineTypeNode.html" target="_self">TupleAffineTypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1TupleAffineType.html" title="Managed reference to TupleAffineTypes. ">TupleAffineType</a> representation </td></tr>
+<tr id="row_1_117_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleType.html" target="_self">TupleType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TupleTypeNode.html" title="The type of tuple values. ">TupleTypeNode</a> </td></tr>
+<tr id="row_1_118_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleTypeNode.html" target="_self">TupleTypeNode</a></td><td class="desc">The type of tuple values </td></tr>
+<tr id="row_1_119_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Type.html" target="_self">Type</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeNode.html" title="Type is the base type of all types. ">TypeNode</a> </td></tr>
+<tr id="row_1_120_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeCall.html" target="_self">TypeCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeCallNode.html" title="Type function application. ">TypeCallNode</a> </td></tr>
+<tr id="row_1_121_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeCallNode.html" target="_self">TypeCallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> function application </td></tr>
+<tr id="row_1_122_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraint.html" target="_self">TypeConstraint</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeConstraintNode.html" title="Potential Constraints in a function. ">TypeConstraintNode</a> </td></tr>
+<tr id="row_1_123_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraintNode.html" target="_self">TypeConstraintNode</a></td><td class="desc">Potential Constraints in a function </td></tr>
+<tr id="row_1_124_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeData.html" target="_self">TypeData</a></td><td class="desc">Stores all data for an Algebraic Data <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> (ADT) </td></tr>
+<tr id="row_1_125_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeDataNode.html" target="_self">TypeDataNode</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeData.html" title="Stores all data for an Algebraic Data Type (ADT). ">TypeData</a> container node </td></tr>
+<tr id="row_1_126_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc.html" target="_self">TypedEnvFunc</a></td><td class="desc">Please refer to <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#TypedEnvFuncAnchor">TypedEnvFunc&lt;R(Args..)&gt;</a> </td></tr>
+<tr id="row_1_127_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">TypedEnvFunc&lt; R(Args...)&gt;</a></td><td class="desc">A typed version of <a class="el" href="classtvm_1_1EnvFunc.html" title="Managed reference to EnvFuncNode. ">EnvFunc</a>. It is backed by a GlobalFuncNode inte [...]
+<tr id="row_1_128_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor.html" target="_self">TypeFunctor</a></td><td class="desc"></td></tr>
+<tr id="row_1_129_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html" target="_self">TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_1_130_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeMutator.html" target="_self">TypeMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeMutator.html" title="TypeMutator that mutates expressions. ">TypeMutator</a> that mutates expressions </td></tr>
+<tr id="row_1_131_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeNode.html" target="_self">TypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> is the base type of all types </td></tr>
+<tr id="row_1_132_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeRelation.html" target="_self">TypeRelation</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeRelationNode.html" title="User defined type relation, it is an input-output relation on types. ">TypeRelationNode</a> </td></tr>
+<tr id="row_1_133_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeRelationNode.html" target="_self">TypeRelationNode</a></td><td class="desc">User defined type relation, it is an input-output relation on types </td></tr>
+<tr id="row_1_134_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeReporter.html" target="_self">TypeReporter</a></td><td class="desc">Container class of <a class="el" href="classtvm_1_1TypeReporter.html" title="Container class of TypeReporter. ">TypeReporter</a> </td></tr>
+<tr id="row_1_135_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeReporterNode.html" target="_self">TypeReporterNode</a></td><td class="desc">Reporter that reports back to the type resolution information </td></tr>
+<tr id="row_1_136_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVar.html" target="_self">TypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeVarNode.html" title="Type parameter in functions. ">TypeVarNode</a> </td></tr>
+<tr id="row_1_137_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVarNode.html" target="_self">TypeVarNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> parameter in functions </td></tr>
+<tr id="row_1_138_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVisitor.html" target="_self">TypeVisitor</a></td><td class="desc">A type visitor that recursively visit types </td></tr>
+<tr id="row_1_139_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1With.html" target="_self">With</a></td><td class="desc">RAII wrapper function to enter and exit a context object similar to python's with syntax </td></tr>
 <tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMemoryManagerInterface.html" target="_self">MemoryManagerInterface</a></td><td class="desc"></td></tr>
 <tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm__workspace__t.html" target="_self">tvm_workspace_t</a></td><td class="desc"></td></tr>
 <tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMArgs.html" target="_self">TVMArgs</a></td><td class="desc"></td></tr>
diff --git a/docs/reference/api/doxygen/arg__info_8h.html b/docs/reference/api/doxygen/arg__info_8h.html
index 94ff2a1..0c32f9a 100644
--- a/docs/reference/api/doxygen/arg__info_8h.html
+++ b/docs/reference/api/doxygen/arg__info_8h.html
@@ -81,7 +81,7 @@ Include dependency graph for arg_info.h:</div>
 </div><div class="textblock"><div class="dynheader">
 This graph shows which files directly or indirectly include this file:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="arg__info_8h__dep__incl.svg" width="544" height="231"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="arg__info_8h__dep__incl.svg" width="667" height="231"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 </div>
diff --git a/docs/reference/api/doxygen/arg__info_8h__dep__incl.svg b/docs/reference/api/doxygen/arg__info_8h__dep__incl.svg
index e780933..24ae433 100644
--- a/docs/reference/api/doxygen/arg__info_8h__dep__incl.svg
+++ b/docs/reference/api/doxygen/arg__info_8h__dep__incl.svg
@@ -4,93 +4,109 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: include/tvm/meta_schedule/arg_info.h Pages: 1 -->
-<svg width="408pt" height="173pt"
- viewBox="0.00 0.00 408.00 173.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="500pt" height="173pt"
+ viewBox="0.00 0.00 500.00 173.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 169)">
 <title>include/tvm/meta_schedule/arg_info.h</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-169 404,-169 404,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-169 496,-169 496,4 -4,4"/>
 <!-- Node55 -->
 <g id="node1" class="node">
 <title>Node55</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="170,-134.5 170,-164.5 322,-164.5 322,-134.5 170,-134.5"/>
-<text text-anchor="start" x="178" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="246" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/arg_info.h</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="236,-134.5 236,-164.5 388,-164.5 388,-134.5 236,-134.5"/>
+<text text-anchor="start" x="244" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="312" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/arg_info.h</text>
 </g>
 <!-- Node56 -->
 <g id="node2" class="node">
 <title>Node56</title>
 <g id="a_node2"><a xlink:href="database_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/database.h">
-<polygon fill="#ffffff" stroke="#000000" points="0,-67.5 0,-97.5 152,-97.5 152,-67.5 0,-67.5"/>
-<text text-anchor="start" x="8" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="76" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/database.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="66,-67.5 66,-97.5 218,-97.5 218,-67.5 66,-67.5"/>
+<text text-anchor="start" x="74" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="142" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/database.h</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node56 -->
 <g id="edge1" class="edge">
 <title>Node55&#45;&gt;Node56</title>
-<path fill="none" stroke="#191970" d="M198.3682,-130.7275C171.8204,-120.2645 139.2005,-107.4084 114.3177,-97.6017"/>
-<polygon fill="#191970" stroke="#191970" points="197.2618,-134.0534 207.8487,-134.4639 199.8285,-127.5409 197.2618,-134.0534"/>
-</g>
-<!-- Node58 -->
-<g id="node4" class="node">
-<title>Node58</title>
-<g id="a_node4"><a xlink:href="runner_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/runner.h">
-<polygon fill="#ffffff" stroke="#000000" points="170,-67.5 170,-97.5 322,-97.5 322,-67.5 170,-67.5"/>
-<text text-anchor="start" x="178" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="246" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/runner.h</text>
-</a>
-</g>
-</g>
-<!-- Node55&#45;&gt;Node58 -->
-<g id="edge3" class="edge">
-<title>Node55&#45;&gt;Node58</title>
-<path fill="none" stroke="#191970" d="M246,-124.0249C246,-115.128 246,-105.4287 246,-97.6432"/>
-<polygon fill="#191970" stroke="#191970" points="242.5001,-124.2966 246,-134.2967 249.5001,-124.2967 242.5001,-124.2966"/>
+<path fill="none" stroke="#191970" d="M264.3682,-130.7275C237.8204,-120.2645 205.2005,-107.4084 180.3177,-97.6017"/>
+<polygon fill="#191970" stroke="#191970" points="263.2618,-134.0534 273.8487,-134.4639 265.8285,-127.5409 263.2618,-134.0534"/>
 </g>
 <!-- Node59 -->
 <g id="node5" class="node">
 <title>Node59</title>
-<g id="a_node5"><a xlink:href="search__strategy_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/search_strategy.h">
-<polygon fill="#ffffff" stroke="#000000" points="248,-.5 248,-30.5 400,-30.5 400,-.5 248,-.5"/>
-<text text-anchor="start" x="256" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="324" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/search_strategy.h</text>
+<g id="a_node5"><a xlink:href="runner_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/runner.h">
+<polygon fill="#ffffff" stroke="#000000" points="236,-67.5 236,-97.5 388,-97.5 388,-67.5 236,-67.5"/>
+<text text-anchor="start" x="244" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="312" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/runner.h</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node59 -->
-<g id="edge6" class="edge">
+<g id="edge4" class="edge">
 <title>Node55&#45;&gt;Node59</title>
-<path fill="none" stroke="#191970" d="M297.1511,-129.7472C310.5432,-121.9655 323.3583,-111.5649 331,-98 342.8528,-76.96 336.1342,-48.0052 330.1145,-30.585"/>
-<polygon fill="#191970" stroke="#191970" points="295.4715,-126.6764 288.3159,-134.4897 298.7821,-132.8441 295.4715,-126.6764"/>
+<path fill="none" stroke="#191970" d="M312,-124.0249C312,-115.128 312,-105.4287 312,-97.6432"/>
+<polygon fill="#191970" stroke="#191970" points="308.5001,-124.2966 312,-134.2967 315.5001,-124.2967 308.5001,-124.2966"/>
+</g>
+<!-- Node60 -->
+<g id="node6" class="node">
+<title>Node60</title>
+<g id="a_node6"><a xlink:href="search__strategy_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/search_strategy.h">
+<polygon fill="#ffffff" stroke="#000000" points="340,-.5 340,-30.5 492,-30.5 492,-.5 340,-.5"/>
+<text text-anchor="start" x="348" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="416" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/search_strategy.h</text>
+</a>
+</g>
+</g>
+<!-- Node55&#45;&gt;Node60 -->
+<g id="edge7" class="edge">
+<title>Node55&#45;&gt;Node60</title>
+<path fill="none" stroke="#191970" d="M359.4668,-129.6042C373.4092,-121.6503 387.4604,-111.1885 397,-98 411.5578,-77.8738 415.1751,-48.3664 415.9524,-30.6351"/>
+<polygon fill="#191970" stroke="#191970" points="357.5347,-126.6684 350.3689,-134.4723 360.8373,-132.8404 357.5347,-126.6684"/>
 </g>
 <!-- Node57 -->
 <g id="node3" class="node">
 <title>Node57</title>
-<g id="a_node3"><a xlink:href="task__scheduler_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/task_scheduler.h">
-<polygon fill="#ffffff" stroke="#000000" points="26,-.5 26,-30.5 178,-30.5 178,-.5 26,-.5"/>
-<text text-anchor="start" x="34" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="102" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/task_scheduler.h</text>
+<g id="a_node3"><a xlink:href="integration_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/integration.h">
+<polygon fill="#ffffff" stroke="#000000" points="0,-.5 0,-30.5 152,-30.5 152,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="76" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/integration.h</text>
 </a>
 </g>
 </g>
 <!-- Node56&#45;&gt;Node57 -->
 <g id="edge2" class="edge">
 <title>Node56&#45;&gt;Node57</title>
-<path fill="none" stroke="#191970" d="M85.5454,-57.9021C89.0894,-48.7696 93.0027,-38.6854 96.1235,-30.6432"/>
-<polygon fill="#191970" stroke="#191970" points="82.2547,-56.7078 81.8998,-67.2967 88.7805,-59.2402 82.2547,-56.7078"/>
+<path fill="none" stroke="#191970" d="M119.7622,-59.9253C110.2637,-50.2828 99.4293,-39.2843 90.9172,-30.6432"/>
+<polygon fill="#191970" stroke="#191970" points="117.5124,-62.6288 127.0236,-67.2967 122.4993,-57.7164 117.5124,-62.6288"/>
 </g>
-<!-- Node58&#45;&gt;Node57 -->
-<g id="edge5" class="edge">
-<title>Node58&#45;&gt;Node57</title>
-<path fill="none" stroke="#191970" d="M204.4983,-63.1902C182.3144,-52.8685 155.3919,-40.3421 134.7068,-30.7177"/>
-<polygon fill="#191970" stroke="#191970" points="203.1404,-66.4187 213.6836,-67.4639 206.0934,-60.072 203.1404,-66.4187"/>
+<!-- Node58 -->
+<g id="node4" class="node">
+<title>Node58</title>
+<g id="a_node4"><a xlink:href="task__scheduler_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/task_scheduler.h">
+<polygon fill="#ffffff" stroke="#000000" points="170,-.5 170,-30.5 322,-30.5 322,-.5 170,-.5"/>
+<text text-anchor="start" x="178" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="246" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/task_scheduler.h</text>
+</a>
 </g>
-<!-- Node58&#45;&gt;Node59 -->
-<g id="edge4" class="edge">
-<title>Node58&#45;&gt;Node59</title>
-<path fill="none" stroke="#191970" d="M271.616,-60.4965C282.9984,-50.7193 296.1116,-39.4554 306.3706,-30.6432"/>
-<polygon fill="#191970" stroke="#191970" points="269.0045,-58.1257 263.6994,-67.2967 273.5657,-63.4357 269.0045,-58.1257"/>
+</g>
+<!-- Node56&#45;&gt;Node58 -->
+<g id="edge3" class="edge">
+<title>Node56&#45;&gt;Node58</title>
+<path fill="none" stroke="#191970" d="M174.139,-61.7951C189.7223,-51.7558 208.1061,-39.9124 222.3784,-30.7177"/>
+<polygon fill="#191970" stroke="#191970" points="171.8506,-59.1058 165.3396,-67.4639 175.6417,-64.9904 171.8506,-59.1058"/>
+</g>
+<!-- Node59&#45;&gt;Node58 -->
+<g id="edge6" class="edge">
+<title>Node59&#45;&gt;Node58</title>
+<path fill="none" stroke="#191970" d="M289.7622,-59.9253C280.2637,-50.2828 269.4293,-39.2843 260.9172,-30.6432"/>
+<polygon fill="#191970" stroke="#191970" points="287.5124,-62.6288 297.0236,-67.2967 292.4993,-57.7164 287.5124,-62.6288"/>
+</g>
+<!-- Node59&#45;&gt;Node60 -->
+<g id="edge5" class="edge">
+<title>Node59&#45;&gt;Node60</title>
+<path fill="none" stroke="#191970" d="M344.139,-61.7951C359.7223,-51.7558 378.1061,-39.9124 392.3784,-30.7177"/>
+<polygon fill="#191970" stroke="#191970" points="341.8506,-59.1058 335.3396,-67.4639 345.6417,-64.9904 341.8506,-59.1058"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/array_8h.html b/docs/reference/api/doxygen/array_8h.html
index 3c82db3..120d462 100644
--- a/docs/reference/api/doxygen/array_8h.html
+++ b/docs/reference/api/doxygen/array_8h.html
@@ -87,7 +87,7 @@ Include dependency graph for array.h:</div>
 </div><div class="textblock"><div class="dynheader">
 This graph shows which files directly or indirectly include this file:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="array_8h__dep__incl.svg" width="3658" height="1274"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="array_8h__dep__incl.svg" width="3328" height="1259"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 </div>
diff --git a/docs/reference/api/doxygen/array_8h__dep__incl.svg b/docs/reference/api/doxygen/array_8h__dep__incl.svg
index e374156..f9f4b62 100644
--- a/docs/reference/api/doxygen/array_8h__dep__incl.svg
+++ b/docs/reference/api/doxygen/array_8h__dep__incl.svg
@@ -4,1355 +4,1319 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: include/tvm/runtime/container/array.h Pages: 1 -->
-<svg width="2743pt" height="955pt"
- viewBox="0.00 0.00 2742.79 955.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 951)">
+<svg width="2496pt" height="944pt"
+ viewBox="0.00 0.00 2495.50 944.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 940)">
 <title>include/tvm/runtime/container/array.h</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-951 2738.7941,-951 2738.7941,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-940 2491.5,-940 2491.5,4 -4,4"/>
 <!-- Node19 -->
 <g id="node1" class="node">
 <title>Node19</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="654.7941,-916.5 654.7941,-946.5 770.7941,-946.5 770.7941,-916.5 654.7941,-916.5"/>
-<text text-anchor="start" x="662.7941" y="-934.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
-<text text-anchor="middle" x="712.7941" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/container/array.h</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="704.5,-905.5 704.5,-935.5 820.5,-935.5 820.5,-905.5 704.5,-905.5"/>
+<text text-anchor="start" x="712.5" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
+<text text-anchor="middle" x="762.5" y="-912.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/container/array.h</text>
 </g>
 <!-- Node20 -->
 <g id="node2" class="node">
 <title>Node20</title>
 <g id="a_node2"><a xlink:href="ir_2adt_8h.html" target="_top" xlink:title="Algebraic data type definitions. ">
-<polygon fill="#ffffff" stroke="#000000" points="1084.7941,-531 1084.7941,-550 1196.7941,-550 1196.7941,-531 1084.7941,-531"/>
-<text text-anchor="middle" x="1140.7941" y="-538" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/adt.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1830.5,-520 1830.5,-539 1942.5,-539 1942.5,-520 1830.5,-520"/>
+<text text-anchor="middle" x="1886.5" y="-527" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node19&#45;&gt;Node20 -->
 <g id="edge1" class="edge">
 <title>Node19&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M718.5362,-906.2603C724.1292,-879.4355 731.7941,-835.7049 731.7941,-797.5 731.7941,-797.5 731.7941,-797.5 731.7941,-730.5 731.7941,-649.7585 997.2737,-575.7901 1100.4582,-550.09"/>
-<polygon fill="#191970" stroke="#191970" points="715.0522,-905.8136 716.3678,-916.3264 721.8952,-907.2877 715.0522,-905.8136"/>
+<path fill="none" stroke="#191970" d="M830.6582,-918.2467C1051.0909,-910.0644 1730.5,-877.4667 1730.5,-786.5 1730.5,-786.5 1730.5,-786.5 1730.5,-652.5 1730.5,-590.2469 1808.0531,-554.6328 1853.7973,-539.0407"/>
+<polygon fill="#191970" stroke="#191970" points="830.3781,-914.7545 820.5129,-918.618 830.6342,-921.7498 830.3781,-914.7545"/>
 </g>
 <!-- Node21 -->
 <g id="node3" class="node">
 <title>Node21</title>
 <g id="a_node3"><a xlink:href="ir_2module_8h.html" target="_top" xlink:title="IRModule that holds the functions and type definitions. ">
-<polygon fill="#ffffff" stroke="#000000" points="1048.2941,-397 1048.2941,-416 1181.2941,-416 1181.2941,-397 1048.2941,-397"/>
-<text text-anchor="middle" x="1114.7941" y="-404" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/module.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="988,-391.5 988,-410.5 1121,-410.5 1121,-391.5 988,-391.5"/>
+<text text-anchor="middle" x="1054.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/module.h</text>
 </a>
 </g>
 </g>
 <!-- Node19&#45;&gt;Node21 -->
-<g id="edge63" class="edge">
+<g id="edge65" class="edge">
 <title>Node19&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M707.0519,-906.2603C701.4589,-879.4355 693.7941,-835.7049 693.7941,-797.5 693.7941,-797.5 693.7941,-797.5 693.7941,-730.5 693.7941,-631.032 904.1033,-607.0416 1045.7941,-489 1072.7645,-466.5311 1097.3343,-432.5706 1108.484,-416.1144"/>
-<polygon fill="#191970" stroke="#191970" points="703.6929,-907.2877 709.2203,-916.3264 710.5359,-905.8136 703.6929,-907.2877"/>
+<path fill="none" stroke="#191970" d="M714.7304,-901.0391C671.4806,-879.8809 614.5,-841.5578 614.5,-786.5 614.5,-786.5 614.5,-786.5 614.5,-719.5 614.5,-525.4742 898.7186,-437.5942 1010.2965,-410.5702"/>
+<polygon fill="#191970" stroke="#191970" points="713.4643,-904.3118 724.0011,-905.4191 716.4546,-897.9827 713.4643,-904.3118"/>
 </g>
 <!-- Node24 -->
 <g id="node6" class="node">
 <title>Node24</title>
 <g id="a_node6"><a xlink:href="ir_2transform_8h.html" target="_top" xlink:title="include/tvm/ir/transform.h">
-<polygon fill="#ffffff" stroke="#000000" points="512.7941,-263 512.7941,-282 656.7941,-282 656.7941,-263 512.7941,-263"/>
-<text text-anchor="middle" x="584.7941" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/transform.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="768.5,-263 768.5,-282 912.5,-282 912.5,-263 768.5,-263"/>
+<text text-anchor="middle" x="840.5" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node19&#45;&gt;Node24 -->
-<g id="edge64" class="edge">
+<g id="edge66" class="edge">
 <title>Node19&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M667.0546,-912.0631C624.8869,-890.7153 568.7941,-852.0633 568.7941,-797.5 568.7941,-797.5 568.7941,-797.5 568.7941,-473.5 568.7941,-407.0556 558.8245,-389.6922 568.7941,-324 571.0698,-309.0044 576.8725,-292.3643 580.8271,-282.1661"/>
-<polygon fill="#191970" stroke="#191970" points="665.5636,-915.2301 676.0842,-916.4823 668.6407,-908.9427 665.5636,-915.2301"/>
+<path fill="none" stroke="#191970" d="M694.2886,-909.3103C628.3949,-894.1463 538.5,-859.9914 538.5,-786.5 538.5,-786.5 538.5,-786.5 538.5,-652.5 538.5,-467.5291 760.522,-320.3889 823.833,-282.1912"/>
+<polygon fill="#191970" stroke="#191970" points="693.7128,-912.7673 704.2314,-911.4983 695.2173,-905.9309 693.7128,-912.7673"/>
 </g>
-<!-- Node130 -->
-<g id="node31" class="node">
-<title>Node130</title>
-<g id="a_node31"><a xlink:href="ir_2function_8h.html" target="_top" xlink:title="Function nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="900.7941,-464 900.7941,-483 1036.7941,-483 1036.7941,-464 900.7941,-464"/>
-<text text-anchor="middle" x="968.7941" y="-471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/function.h</text>
+<!-- Node133 -->
+<g id="node32" class="node">
+<title>Node133</title>
+<g id="a_node32"><a xlink:href="ir_2function_8h.html" target="_top" xlink:title="Function nodes. ">
+<polygon fill="#ffffff" stroke="#000000" points="1124.5,-453 1124.5,-472 1260.5,-472 1260.5,-453 1124.5,-453"/>
+<text text-anchor="middle" x="1192.5" y="-460" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/function.h</text>
 </a>
 </g>
 </g>
-<!-- Node19&#45;&gt;Node130 -->
-<g id="edge55" class="edge">
-<title>Node19&#45;&gt;Node130</title>
-<path fill="none" stroke="#191970" d="M684.2487,-909.6627C656.2693,-885.556 617.7941,-843.9596 617.7941,-797.5 617.7941,-797.5 617.7941,-797.5 617.7941,-602 617.7941,-541.0819 806.5876,-500.4016 907.2529,-483.0405"/>
-<polygon fill="#191970" stroke="#191970" points="682.2591,-912.5609 692.1805,-916.2782 686.7427,-907.1853 682.2591,-912.5609"/>
+<!-- Node19&#45;&gt;Node133 -->
+<g id="edge57" class="edge">
+<title>Node19&#45;&gt;Node133</title>
+<path fill="none" stroke="#191970" d="M741.0987,-897.5779C719.8745,-872.3709 690.5,-829.6836 690.5,-786.5 690.5,-786.5 690.5,-786.5 690.5,-719.5 690.5,-614.2467 1044.5794,-504.5143 1157.9955,-472.0654"/>
+<polygon fill="#191970" stroke="#191970" points="738.7261,-900.1834 747.9297,-905.4317 744.0078,-895.5894 738.7261,-900.1834"/>
 </g>
-<!-- Node134 -->
-<g id="node33" class="node">
-<title>Node134</title>
-<g id="a_node33"><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="1944.7941,-654 1944.7941,-673 2062.7941,-673 2062.7941,-654 1944.7941,-654"/>
-<text text-anchor="middle" x="2003.7941" y="-661" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/type.h</text>
+<!-- Node137 -->
+<g id="node34" class="node">
+<title>Node137</title>
+<g id="a_node34"><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="2045.5,-643 2045.5,-662 2163.5,-662 2163.5,-643 2045.5,-643"/>
+<text text-anchor="middle" x="2104.5" y="-650" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/type.h</text>
 </a>
 </g>
 </g>
-<!-- Node19&#45;&gt;Node134 -->
-<g id="edge65" class="edge">
-<title>Node19&#45;&gt;Node134</title>
-<path fill="none" stroke="#191970" d="M781.0021,-930.1566C948.0409,-926.3767 1373.9876,-913.6438 1511.7941,-880 1709.4288,-831.7499 1927.245,-708.6789 1987.5545,-673.2053"/>
-<polygon fill="#191970" stroke="#191970" points="780.7753,-926.6607 770.8557,-930.3823 780.9311,-933.6589 780.7753,-926.6607"/>
+<!-- Node19&#45;&gt;Node137 -->
+<g id="edge67" class="edge">
+<title>Node19&#45;&gt;Node137</title>
+<path fill="none" stroke="#191970" d="M831.0275,-918.8271C1039.6164,-913.4675 1657.8586,-895.509 1744.5,-869 1896.8826,-822.3766 2051.3993,-697.623 2093.3982,-662.0745"/>
+<polygon fill="#191970" stroke="#191970" points="830.7256,-915.3336 820.8182,-919.0877 830.9043,-922.3313 830.7256,-915.3336"/>
 </g>
-<!-- Node156 -->
-<g id="node38" class="node">
-<title>Node156</title>
-<g id="a_node38"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n&#45;dimensional array, to represent a memory buffer. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="396.7941,-464 396.7941,-483 524.7941,-483 524.7941,-464 396.7941,-464"/>
-<text text-anchor="middle" x="460.7941" y="-471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/buffer.h</text>
+<!-- Node159 -->
+<g id="node39" class="node">
+<title>Node159</title>
+<g id="a_node39"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n&#45;dimensional array, to represent a memory buffer. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="342.5,-453 342.5,-472 470.5,-472 470.5,-453 342.5,-453"/>
+<text text-anchor="middle" x="406.5" y="-460" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/buffer.h</text>
 </a>
 </g>
 </g>
-<!-- Node19&#45;&gt;Node156 -->
-<g id="edge145" class="edge">
-<title>Node19&#45;&gt;Node156</title>
-<path fill="none" stroke="#191970" d="M644.6317,-919.1141C581.0031,-903.1576 495.7941,-868.5293 495.7941,-797.5 495.7941,-797.5 495.7941,-797.5 495.7941,-602 495.7941,-556.2189 474.8569,-504.386 465.3697,-483.2492"/>
-<polygon fill="#191970" stroke="#191970" points="644.1012,-922.5861 654.642,-921.5174 645.7354,-915.7795 644.1012,-922.5861"/>
+<!-- Node19&#45;&gt;Node159 -->
+<g id="edge139" class="edge">
+<title>Node19&#45;&gt;Node159</title>
+<path fill="none" stroke="#191970" d="M693.8781,-913.5756C644.9497,-906.7737 578.5344,-893.6703 524.5,-869 468.9089,-843.619 414.5,-847.6111 414.5,-786.5 414.5,-786.5 414.5,-786.5 414.5,-591 414.5,-546.5191 409.6659,-493.5443 407.5132,-472.1591"/>
+<polygon fill="#191970" stroke="#191970" points="693.6673,-917.0784 704.0427,-914.9333 694.5942,-910.1401 693.6673,-917.0784"/>
 </g>
-<!-- Node157 -->
-<g id="node39" class="node">
-<title>Node157</title>
-<g id="a_node39"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="357.2941,-330 357.2941,-349 478.2941,-349 478.2941,-330 357.2941,-330"/>
-<text text-anchor="middle" x="417.7941" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/expr.h</text>
+<!-- Node160 -->
+<g id="node40" class="node">
+<title>Node160</title>
+<g id="a_node40"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="348,-330 348,-349 469,-349 469,-330 348,-330"/>
+<text text-anchor="middle" x="408.5" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/expr.h</text>
 </a>
 </g>
 </g>
-<!-- Node19&#45;&gt;Node157 -->
-<g id="edge146" class="edge">
-<title>Node19&#45;&gt;Node157</title>
-<path fill="none" stroke="#191970" d="M644.4293,-925.5749C468.312,-909.3977 12.7941,-861.3814 12.7941,-797.5 12.7941,-797.5 12.7941,-797.5 12.7941,-473.5 12.7941,-401.8458 244.18,-361.9553 357.1615,-346.7484"/>
-<polygon fill="#191970" stroke="#191970" points="644.3393,-929.0812 654.6158,-926.5037 644.975,-922.1101 644.3393,-929.0812"/>
+<!-- Node19&#45;&gt;Node160 -->
+<g id="edge140" class="edge">
+<title>Node19&#45;&gt;Node160</title>
+<path fill="none" stroke="#191970" d="M694.1252,-914.3468C568.6811,-901.1562 314.5,-864.7717 314.5,-786.5 314.5,-786.5 314.5,-786.5 314.5,-462.5 314.5,-410.8979 367.375,-367.5114 393.8125,-349.0434"/>
+<polygon fill="#191970" stroke="#191970" points="694.085,-917.8611 704.3911,-915.4047 694.8026,-910.898 694.085,-917.8611"/>
 </g>
-<!-- Node166 -->
-<g id="node40" class="node">
-<title>Node166</title>
-<g id="a_node40"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
-<polygon fill="#ffffff" stroke="#000000" points="800.2941,-849.5 800.2941,-879.5 951.2941,-879.5 951.2941,-849.5 800.2941,-849.5"/>
-<text text-anchor="start" x="808.2941" y="-867.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/structural</text>
-<text text-anchor="middle" x="875.7941" y="-856.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
+<!-- Node169 -->
+<g id="node41" class="node">
+<title>Node169</title>
+<g id="a_node41"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
+<polygon fill="#ffffff" stroke="#000000" points="740,-838.5 740,-868.5 891,-868.5 891,-838.5 740,-838.5"/>
+<text text-anchor="start" x="748" y="-856.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/structural</text>
+<text text-anchor="middle" x="815.5" y="-845.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
 </a>
 </g>
 </g>
-<!-- Node19&#45;&gt;Node166 -->
-<g id="edge108" class="edge">
-<title>Node19&#45;&gt;Node166</title>
-<path fill="none" stroke="#191970" d="M758.7998,-912.5897C784.1935,-902.1518 815.3006,-889.3654 839.0541,-879.6017"/>
-<polygon fill="#191970" stroke="#191970" points="757.2929,-909.4248 749.3744,-916.4639 759.9542,-915.8992 757.2929,-909.4248"/>
+<!-- Node19&#45;&gt;Node169 -->
+<g id="edge110" class="edge">
+<title>Node19&#45;&gt;Node169</title>
+<path fill="none" stroke="#191970" d="M780.812,-897.3509C788.3291,-887.8482 796.8209,-877.1132 803.5211,-868.6432"/>
+<polygon fill="#191970" stroke="#191970" points="777.9856,-895.2824 774.5265,-905.2967 783.4756,-899.6252 777.9856,-895.2824"/>
 </g>
-<!-- Node175 -->
-<g id="node44" class="node">
-<title>Node175</title>
-<g id="a_node44"><a xlink:href="papi_8h.html" target="_top" xlink:title="include/tvm/runtime\l/contrib/papi.h">
-<polygon fill="#ffffff" stroke="#000000" points="2618.7941,-391.5 2618.7941,-421.5 2734.7941,-421.5 2734.7941,-391.5 2618.7941,-391.5"/>
-<text text-anchor="start" x="2626.7941" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
-<text text-anchor="middle" x="2676.7941" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/contrib/papi.h</text>
+<!-- Node178 -->
+<g id="node45" class="node">
+<title>Node178</title>
+<g id="a_node45"><a xlink:href="papi_8h.html" target="_top" xlink:title="include/tvm/runtime\l/contrib/papi.h">
+<polygon fill="#ffffff" stroke="#000000" points="1568.5,-637.5 1568.5,-667.5 1684.5,-667.5 1684.5,-637.5 1568.5,-637.5"/>
+<text text-anchor="start" x="1576.5" y="-655.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
+<text text-anchor="middle" x="1626.5" y="-644.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/contrib/papi.h</text>
 </a>
 </g>
 </g>
-<!-- Node19&#45;&gt;Node175 -->
-<g id="edge120" class="edge">
-<title>Node19&#45;&gt;Node175</title>
-<path fill="none" stroke="#191970" d="M781.0409,-930.615C1133.3355,-925.6089 2729.7941,-897.4115 2729.7941,-797.5 2729.7941,-797.5 2729.7941,-797.5 2729.7941,-540.5 2729.7941,-494.718 2702.711,-445.9158 2687.2651,-421.8059"/>
-<polygon fill="#191970" stroke="#191970" points="780.9335,-927.1161 770.9837,-930.7564 781.0319,-934.1154 780.9335,-927.1161"/>
+<!-- Node19&#45;&gt;Node178 -->
+<g id="edge122" class="edge">
+<title>Node19&#45;&gt;Node178</title>
+<path fill="none" stroke="#191970" d="M831.0736,-917.9479C941.0823,-913.0784 1163.5264,-900.0384 1349.5,-869 1471.4527,-848.6465 1529.4695,-886.7421 1619.5,-802 1651.9358,-771.4695 1646.3944,-748.1526 1640.5,-704 1638.8326,-691.5098 1634.9856,-677.7558 1631.7455,-667.6058"/>
+<polygon fill="#191970" stroke="#191970" points="830.6225,-914.464 820.7835,-918.3939 830.9258,-921.4575 830.6225,-914.464"/>
 </g>
-<!-- Node176 -->
-<g id="node45" class="node">
-<title>Node176</title>
-<g id="a_node45"><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="1386.7941,-849.5 1386.7941,-879.5 1502.7941,-879.5 1502.7941,-849.5 1386.7941,-849.5"/>
-<text text-anchor="start" x="1394.7941" y="-867.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
-<text text-anchor="middle" x="1444.7941" y="-856.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/packed_func.h</text>
+<!-- Node179 -->
+<g id="node46" class="node">
+<title>Node179</title>
+<g id="a_node46"><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="1224.5,-838.5 1224.5,-868.5 1340.5,-868.5 1340.5,-838.5 1224.5,-838.5"/>
+<text text-anchor="start" x="1232.5" y="-856.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
+<text text-anchor="middle" x="1282.5" y="-845.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/packed_func.h</text>
 </a>
 </g>
 </g>
-<!-- Node19&#45;&gt;Node176 -->
-<g id="edge121" class="edge">
-<title>Node19&#45;&gt;Node176</title>
-<path fill="none" stroke="#191970" d="M780.8067,-925.2748C923.714,-912.1945 1252.99,-882.0558 1386.7374,-869.8139"/>
-<polygon fill="#191970" stroke="#191970" points="780.484,-921.7896 770.8447,-926.1866 781.1221,-928.7605 780.484,-921.7896"/>
+<!-- Node19&#45;&gt;Node179 -->
+<g id="edge123" class="edge">
+<title>Node19&#45;&gt;Node179</title>
+<path fill="none" stroke="#191970" d="M830.6251,-911.7223C933.6982,-898.4418 1127.5023,-873.4709 1224.34,-860.9937"/>
+<polygon fill="#191970" stroke="#191970" points="830.1077,-908.26 820.637,-913.0093 831.0023,-915.2026 830.1077,-908.26"/>
 </g>
 <!-- Node20&#45;&gt;Node21 -->
 <g id="edge2" class="edge">
 <title>Node20&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1137.0126,-521.011C1131.351,-491.8319 1120.8842,-437.8876 1116.647,-416.0496"/>
-<polygon fill="#191970" stroke="#191970" points="1133.5834,-521.7128 1138.9242,-530.8631 1140.4553,-520.3794 1133.5834,-521.7128"/>
+<path fill="none" stroke="#191970" d="M1820.2821,-519.2728C1663.0161,-494.9836 1268.8365,-434.1036 1116.2102,-410.531"/>
+<polygon fill="#191970" stroke="#191970" points="1819.8761,-522.7516 1830.2932,-520.819 1820.9446,-515.8336 1819.8761,-522.7516"/>
 </g>
-<!-- Node83 -->
-<g id="node19" class="node">
-<title>Node83</title>
-<g id="a_node19"><a xlink:href="relay_2adt_8h.html" target="_top" xlink:title="Algebraic data types for Relay. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1701.7941,-62 1701.7941,-81 1831.7941,-81 1831.7941,-62 1701.7941,-62"/>
-<text text-anchor="middle" x="1766.7941" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/adt.h</text>
+<!-- Node86 -->
+<g id="node20" class="node">
+<title>Node86</title>
+<g id="a_node20"><a xlink:href="relay_2adt_8h.html" target="_top" xlink:title="Algebraic data types for Relay. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1873.5,-62 1873.5,-81 2003.5,-81 2003.5,-62 1873.5,-62"/>
+<text text-anchor="middle" x="1938.5" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/adt.h</text>
 </a>
 </g>
 </g>
-<!-- Node20&#45;&gt;Node83 -->
-<g id="edge54" class="edge">
-<title>Node20&#45;&gt;Node83</title>
-<path fill="none" stroke="#191970" d="M1206.9027,-535.7591C1283.7556,-529.1315 1404.7993,-514.8949 1441.7941,-489 1518.5247,-435.2915 1581.3069,-185.7992 1650.7941,-123 1673.5171,-102.464 1705.7629,-89.0458 1730.4912,-81.0703"/>
-<polygon fill="#191970" stroke="#191970" points="1206.5015,-532.2803 1196.8299,-536.6061 1207.0881,-539.2557 1206.5015,-532.2803"/>
+<!-- Node20&#45;&gt;Node86 -->
+<g id="edge56" class="edge">
+<title>Node20&#45;&gt;Node86</title>
+<path fill="none" stroke="#191970" d="M1936.7545,-517.6036C1942.0676,-516.374 1947.3928,-515.1534 1952.5,-514 2026.1382,-497.3695 2046.3193,-500.1159 2118.5,-478 2297.9815,-423.0076 2487.5,-460.2173 2487.5,-272.5 2487.5,-272.5 2487.5,-272.5 2487.5,-205.5 2487.5,-106.8989 2149.0578,-80.5253 2003.6334,-73.7441"/>
+<polygon fill="#191970" stroke="#191970" points="1935.5586,-514.2883 1926.6123,-519.964 1937.1454,-521.1061 1935.5586,-514.2883"/>
 </g>
 <!-- Node22 -->
 <g id="node4" class="node">
 <title>Node22</title>
 <g id="a_node4"><a xlink:href="driver__api_8h.html" target="_top" xlink:title="Compiler driver APIs to drive the compilation. ">
-<polygon fill="#ffffff" stroke="#000000" points="141.7941,-56.5 141.7941,-86.5 247.7941,-86.5 247.7941,-56.5 141.7941,-56.5"/>
-<text text-anchor="start" x="149.7941" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/driver</text>
-<text text-anchor="middle" x="194.7941" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/driver_api.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="571.5,-56.5 571.5,-86.5 677.5,-86.5 677.5,-56.5 571.5,-56.5"/>
+<text text-anchor="start" x="579.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/driver</text>
+<text text-anchor="middle" x="624.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/driver_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node21&#45;&gt;Node22 -->
 <g id="edge3" class="edge">
 <title>Node21&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M1038.0721,-404.1004C839.237,-397.5801 317.5061,-378.4429 242.7941,-355 133.9199,-320.8379 79.5833,-320.54 23.7941,-221 -11.054,-158.8237 88.553,-109.9194 150.122,-86.5413"/>
-<polygon fill="#191970" stroke="#191970" points="1038.0378,-407.6011 1048.1467,-404.429 1038.2661,-400.6048 1038.0378,-407.6011"/>
+<path fill="none" stroke="#191970" d="M977.5941,-395.2504C909.0257,-388.8234 814.9301,-376.3983 784.5,-355 759.2466,-337.2419 660.5433,-143.2708 632.1682,-86.8244"/>
+<polygon fill="#191970" stroke="#191970" points="977.6637,-398.7711 987.9401,-396.1932 978.299,-391.8 977.6637,-398.7711"/>
 </g>
 <!-- Node23 -->
 <g id="node5" class="node">
 <title>Node23</title>
 <g id="a_node5"><a xlink:href="diagnostic_8h.html" target="_top" xlink:title="A new diagnostic interface for TVM error reporting. ">
-<polygon fill="#ffffff" stroke="#000000" points="1286.7941,-330 1286.7941,-349 1432.7941,-349 1432.7941,-330 1286.7941,-330"/>
-<text text-anchor="middle" x="1359.7941" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/diagnostic.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1272.5,-330 1272.5,-349 1418.5,-349 1418.5,-330 1272.5,-330"/>
+<text text-anchor="middle" x="1345.5" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/diagnostic.h</text>
 </a>
 </g>
 </g>
 <!-- Node21&#45;&gt;Node23 -->
 <g id="edge4" class="edge">
 <title>Node21&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M1159.3481,-394.3158C1206.8601,-381.3228 1281.1302,-361.0122 1324.6752,-349.1039"/>
-<polygon fill="#191970" stroke="#191970" points="1158.3589,-390.9577 1149.6364,-396.9717 1160.2055,-397.7098 1158.3589,-390.9577"/>
+<path fill="none" stroke="#191970" d="M1109.6105,-389.3529C1164.8263,-377.6836 1248.8016,-359.9363 1300.2446,-349.0643"/>
+<polygon fill="#191970" stroke="#191970" points="1108.7096,-385.9659 1099.6495,-391.4581 1110.1571,-392.8147 1108.7096,-385.9659"/>
 </g>
 <!-- Node21&#45;&gt;Node24 -->
-<g id="edge39" class="edge">
+<g id="edge41" class="edge">
 <title>Node21&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1062.9834,-394.6677C1018.7548,-384.4695 953.4926,-369.1907 896.7941,-355 795.9714,-329.7657 677.4445,-297.7841 619.8085,-282.083"/>
-<polygon fill="#191970" stroke="#191970" points="1062.3918,-398.123 1072.9221,-396.9554 1063.9621,-391.3013 1062.3918,-398.123"/>
-</g>
-<!-- Node28 -->
-<g id="node9" class="node">
-<title>Node28</title>
-<g id="a_node9"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="819.2941,-123.5 819.2941,-153.5 926.2941,-153.5 926.2941,-123.5 819.2941,-123.5"/>
-<text text-anchor="start" x="827.2941" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
-<text text-anchor="middle" x="872.7941" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/target.h</text>
-</a>
-</g>
+<path fill="none" stroke="#191970" d="M1024.3269,-387.0035C1006.5501,-378.4091 983.8291,-366.8127 964.5,-355 944.3971,-342.7144 941.0046,-337.2149 921.5,-324 899.1506,-308.8577 872.6506,-292.2566 856.2029,-282.1068"/>
+<polygon fill="#191970" stroke="#191970" points="1023.1092,-390.3006 1033.6413,-391.4517 1026.1258,-383.9839 1023.1092,-390.3006"/>
 </g>
-<!-- Node21&#45;&gt;Node28 -->
-<g id="edge51" class="edge">
-<title>Node21&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M1042.2904,-394.1928C1017.3254,-386.6489 991.0789,-374.5104 972.7941,-355 920.5685,-299.2741 963.8415,-255.6368 924.7941,-190 916.414,-175.9135 903.2755,-162.9466 892.3021,-153.5478"/>
-<polygon fill="#191970" stroke="#191970" points="1041.569,-397.6255 1052.1429,-396.9606 1043.4622,-390.8864 1041.569,-397.6255"/>
-</g>
-<!-- Node36 -->
+<!-- Node30 -->
 <g id="node10" class="node">
-<title>Node36</title>
-<g id="a_node10"><a xlink:href="builder_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/builder.h">
-<polygon fill="#ffffff" stroke="#ff0000" points="724.7941,-56.5 724.7941,-86.5 876.7941,-86.5 876.7941,-56.5 724.7941,-56.5"/>
-<text text-anchor="start" x="732.7941" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="800.7941" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/builder.h</text>
+<title>Node30</title>
+<g id="a_node10"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="881,-123.5 881,-153.5 988,-153.5 988,-123.5 881,-123.5"/>
+<text text-anchor="start" x="889" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="934.5" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/target.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node36 -->
-<g id="edge41" class="edge">
-<title>Node21&#45;&gt;Node36</title>
-<path fill="none" stroke="#191970" d="M1085.1569,-392.0372C1047.3478,-371.2625 986.7941,-329.1478 986.7941,-272.5 986.7941,-272.5 986.7941,-272.5 986.7941,-205.5 986.7941,-162.3929 969.0189,-150.4651 935.7941,-123 915.4931,-106.2183 889.1344,-94.5391 865.1025,-86.5999"/>
-<polygon fill="#191970" stroke="#191970" points="1083.7552,-395.2557 1094.2286,-396.855 1087.0385,-389.0735 1083.7552,-395.2557"/>
+<!-- Node21&#45;&gt;Node30 -->
+<g id="edge53" class="edge">
+<title>Node21&#45;&gt;Node30</title>
+<path fill="none" stroke="#191970" d="M1031.4701,-385.2936C1021.2887,-377.2939 1009.9597,-366.7719 1002.5,-355 961.62,-290.4886 979.014,-262.3322 954.5,-190 950.313,-177.6457 944.9302,-163.8832 940.8038,-153.6954"/>
+<polygon fill="#191970" stroke="#191970" points="1029.5347,-388.2164 1039.6424,-391.3921 1033.7212,-382.6063 1029.5347,-388.2164"/>
 </g>
-<!-- Node39 -->
+<!-- Node38 -->
 <g id="node11" class="node">
-<title>Node39</title>
-<g id="a_node11"><a xlink:href="tune__context_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/tune_context.h">
-<polygon fill="#ffffff" stroke="#ff0000" points="894.7941,-56.5 894.7941,-86.5 1046.7941,-86.5 1046.7941,-56.5 894.7941,-56.5"/>
-<text text-anchor="start" x="902.7941" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="970.7941" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/tune_context.h</text>
+<title>Node38</title>
+<g id="a_node11"><a xlink:href="builder_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/builder.h">
+<polygon fill="#ffffff" stroke="#ff0000" points="859.5,-56.5 859.5,-86.5 1011.5,-86.5 1011.5,-56.5 859.5,-56.5"/>
+<text text-anchor="start" x="867.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="935.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/builder.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node39 -->
-<g id="edge44" class="edge">
-<title>Node21&#45;&gt;Node39</title>
-<path fill="none" stroke="#191970" d="M1117.2448,-386.7817C1120.1021,-369.2834 1126.0251,-343.5382 1137.7941,-324 1149.798,-304.0717 1166.6016,-309.3713 1175.7941,-288 1181.2381,-275.3434 1181.3825,-269.5935 1175.7941,-257 1139.2906,-174.739 1046.2884,-113.4676 999.1313,-86.5675"/>
-<polygon fill="#191970" stroke="#191970" points="1113.7429,-386.5443 1115.7792,-396.9416 1120.6712,-387.5438 1113.7429,-386.5443"/>
+<!-- Node21&#45;&gt;Node38 -->
+<g id="edge43" class="edge">
+<title>Node21&#45;&gt;Node38</title>
+<path fill="none" stroke="#191970" d="M1045.1555,-382.0346C1033.904,-357.4097 1016.5,-312.805 1016.5,-272.5 1016.5,-272.5 1016.5,-272.5 1016.5,-205.5 1016.5,-167.8735 1017.231,-155.0381 997.5,-123 988.4011,-108.2258 973.5704,-95.6812 960.6953,-86.6726"/>
+<polygon fill="#191970" stroke="#191970" points="1042.0944,-383.7489 1049.5322,-391.2942 1048.4231,-380.7575 1042.0944,-383.7489"/>
 </g>
-<!-- Node40 -->
+<!-- Node42 -->
 <g id="node12" class="node">
-<title>Node40</title>
-<g id="a_node12"><a xlink:href="interpreter_8h.html" target="_top" xlink:title="An interpreter for Relay. ">
-<polygon fill="#ffffff" stroke="#000000" points="1065.2941,-62 1065.2941,-81 1230.2941,-81 1230.2941,-62 1065.2941,-62"/>
-<text text-anchor="middle" x="1147.7941" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/interpreter.h</text>
+<title>Node42</title>
+<g id="a_node12"><a xlink:href="tune__context_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/tune_context.h">
+<polygon fill="#ffffff" stroke="#ff0000" points="1067.5,-56.5 1067.5,-86.5 1219.5,-86.5 1219.5,-56.5 1067.5,-56.5"/>
+<text text-anchor="start" x="1075.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="1143.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/tune_context.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node40 -->
-<g id="edge49" class="edge">
-<title>Node21&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M1123.221,-387.7617C1132.2522,-369.4607 1148.1244,-341.8316 1168.7941,-324 1197.7036,-299.0598 1226.2163,-320.1611 1246.7941,-288 1270.2685,-251.3116 1261.6469,-230.9448 1246.7941,-190 1229.3334,-141.8663 1182.8184,-99.5934 1160.3231,-81.2298"/>
-<polygon fill="#191970" stroke="#191970" points="1120.035,-386.3117 1118.9205,-396.8478 1126.3621,-389.3064 1120.035,-386.3117"/>
+<!-- Node21&#45;&gt;Node42 -->
+<g id="edge46" class="edge">
+<title>Node21&#45;&gt;Node42</title>
+<path fill="none" stroke="#191970" d="M1065.2746,-382.8225C1076.2644,-365.6363 1094.7573,-340.1423 1116.5,-324 1150.7594,-298.565 1181.6469,-323.379 1205.5,-288 1249.9782,-222.0297 1184.5652,-124.1353 1155.865,-86.7579"/>
+<polygon fill="#191970" stroke="#191970" points="1062.251,-381.0575 1059.9682,-391.4035 1068.2046,-384.7392 1062.251,-381.0575"/>
 </g>
 <!-- Node43 -->
 <g id="node13" class="node">
 <title>Node43</title>
-<g id="a_node13"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
-<polygon fill="#ffffff" stroke="#000000" points="561.2941,-56.5 561.2941,-86.5 668.2941,-86.5 668.2941,-56.5 561.2941,-56.5"/>
-<text text-anchor="start" x="569.2941" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
-<text text-anchor="middle" x="614.7941" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/codegen.h</text>
+<g id="a_node13"><a xlink:href="interpreter_8h.html" target="_top" xlink:title="An interpreter for Relay. ">
+<polygon fill="#ffffff" stroke="#000000" points="1238,-62 1238,-81 1403,-81 1403,-62 1238,-62"/>
+<text text-anchor="middle" x="1320.5" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/interpreter.h</text>
 </a>
 </g>
 </g>
 <!-- Node21&#45;&gt;Node43 -->
-<g id="edge50" class="edge">
+<g id="edge51" class="edge">
 <title>Node21&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M1044.536,-394.6263C1013.012,-386.9315 976.5376,-374.5631 947.7941,-355 870.1573,-302.1598 886.745,-251.5266 815.7941,-190 763.1544,-144.3524 690.5147,-106.551 648.5123,-86.6585"/>
-<polygon fill="#191970" stroke="#191970" points="1044.048,-398.1062 1054.5811,-396.9636 1045.6345,-391.2883 1044.048,-398.1062"/>
+<path fill="none" stroke="#191970" d="M1075.5371,-384.9142C1087.0563,-376.0955 1101.5768,-364.9615 1114.5,-355 1132.3137,-341.2687 1135.4952,-336.0289 1154.5,-324 1184.3951,-305.0782 1201.1897,-313.7053 1225.5,-288 1286.1377,-223.8829 1311.9301,-114.7569 1318.6363,-81.4471"/>
+<polygon fill="#191970" stroke="#191970" points="1073.2042,-382.2922 1067.3895,-391.1489 1077.4582,-387.8514 1073.2042,-382.2922"/>
 </g>
-<!-- Node62 -->
+<!-- Node46 -->
 <g id="node14" class="node">
-<title>Node62</title>
-<g id="a_node14"><a xlink:href="tir_2analysis_8h.html" target="_top" xlink:title="Analysis utilitie and passes for TIR. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="426.7941,-196 426.7941,-215 566.7941,-215 566.7941,-196 426.7941,-196"/>
-<text text-anchor="middle" x="496.7941" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/analysis.h</text>
+<title>Node46</title>
+<g id="a_node14"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
+<polygon fill="#ffffff" stroke="#000000" points="0,-56.5 0,-86.5 107,-86.5 107,-56.5 0,-56.5"/>
+<text text-anchor="start" x="8" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="53.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/codegen.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node62 -->
+<!-- Node21&#45;&gt;Node46 -->
 <g id="edge52" class="edge">
-<title>Node21&#45;&gt;Node62</title>
-<path fill="none" stroke="#191970" d="M1037.8011,-403.4341C914.8062,-397.7569 679.9017,-383.5 601.7941,-355 552.2287,-336.9146 530.3703,-333.5797 503.7941,-288 490.2545,-264.7789 492.7603,-231.4616 495.0947,-215.1885"/>
-<polygon fill="#191970" stroke="#191970" points="1037.7544,-406.9354 1047.9028,-403.8926 1038.0719,-399.9426 1037.7544,-406.9354"/>
+<title>Node21&#45;&gt;Node46</title>
+<path fill="none" stroke="#191970" d="M977.6048,-399.5956C818.4064,-396.111 457.6409,-385.066 338.5,-355 230.4222,-327.7258 197.8644,-306.626 126.5,-221 103.2122,-193.0583 95.5996,-186.6169 79.5,-154 68.4661,-131.646 60.8096,-103.5935 56.7898,-86.6319"/>
+<polygon fill="#191970" stroke="#191970" points="977.7219,-403.0989 987.7947,-399.8144 977.8721,-396.1005 977.7219,-403.0989"/>
 </g>
-<!-- Node79 -->
-<g id="node16" class="node">
-<title>Node79</title>
-<g id="a_node16"><a xlink:href="type__relation_8h.html" target="_top" xlink:title="Type relation and function for type inference(checking). ">
-<polygon fill="#ffffff" stroke="#000000" points="1755.2941,-257.5 1755.2941,-287.5 1864.2941,-287.5 1864.2941,-257.5 1755.2941,-257.5"/>
-<text text-anchor="start" x="1763.2941" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/type</text>
-<text text-anchor="middle" x="1809.7941" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_relation.h</text>
+<!-- Node65 -->
+<g id="node15" class="node">
+<title>Node65</title>
+<g id="a_node15"><a xlink:href="tir_2analysis_8h.html" target="_top" xlink:title="Analysis utilitie and passes for TIR. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="532.5,-196 532.5,-215 672.5,-215 672.5,-196 532.5,-196"/>
+<text text-anchor="middle" x="602.5" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/analysis.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node79 -->
-<g id="edge40" class="edge">
-<title>Node21&#45;&gt;Node79</title>
-<path fill="none" stroke="#191970" d="M1191.3663,-395.8621C1257.7895,-386.2952 1356.4152,-371.2761 1441.7941,-355 1553.7047,-333.666 1683.4936,-303.22 1755.1576,-285.9043"/>
-<polygon fill="#191970" stroke="#191970" points="1190.7994,-392.4075 1181.3976,-397.2918 1191.7932,-399.3366 1190.7994,-392.4075"/>
+<!-- Node21&#45;&gt;Node65 -->
+<g id="edge54" class="edge">
+<title>Node21&#45;&gt;Node65</title>
+<path fill="none" stroke="#191970" d="M977.8746,-394.9331C901.1702,-387.8839 789.1509,-374.6483 750.5,-355 682.4563,-320.4097 626.8704,-242.6543 608.7534,-215.2694"/>
+<polygon fill="#191970" stroke="#191970" points="977.7087,-398.4323 987.9828,-395.8452 978.3378,-391.4606 977.7087,-398.4323"/>
 </g>
-<!-- Node81 -->
-<g id="node18" class="node">
-<title>Node81</title>
-<g id="a_node18"><a xlink:href="relay_2expr_8h.html" target="_top" xlink:title="Relay expression language. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1364.2941,-129 1364.2941,-148 1499.2941,-148 1499.2941,-129 1364.2941,-129"/>
-<text text-anchor="middle" x="1431.7941" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/expr.h</text>
+<!-- Node82 -->
+<g id="node17" class="node">
+<title>Node82</title>
+<g id="a_node17"><a xlink:href="type__relation_8h.html" target="_top" xlink:title="Type relation and function for type inference(checking). ">
+<polygon fill="#ffffff" stroke="#000000" points="1943,-257.5 1943,-287.5 2052,-287.5 2052,-257.5 1943,-257.5"/>
+<text text-anchor="start" x="1951" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/type</text>
+<text text-anchor="middle" x="1997.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_relation.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node81 -->
-<g id="edge47" class="edge">
-<title>Node21&#45;&gt;Node81</title>
-<path fill="none" stroke="#191970" d="M1139.151,-391.3149C1155.4897,-381.1012 1177.4737,-367.3052 1196.7941,-355 1218.2141,-341.3574 1222.543,-336.2404 1244.7941,-324 1278.2472,-305.5972 1293.2649,-312.2035 1322.7941,-288 1374.2178,-245.8506 1413.7465,-174.118 1426.9946,-148.2021"/>
-<polygon fill="#191970" stroke="#191970" points="1136.8739,-388.6105 1130.2462,-396.8764 1140.582,-394.5478 1136.8739,-388.6105"/>
+<!-- Node21&#45;&gt;Node82 -->
+<g id="edge42" class="edge">
+<title>Node21&#45;&gt;Node82</title>
+<path fill="none" stroke="#191970" d="M1131.1812,-397.4731C1207.3764,-392.5911 1327.0439,-381.1863 1427.5,-355 1462.8,-345.7982 1468.1149,-332.8691 1503.5,-324 1585.5731,-303.4289 1832.1244,-284.132 1942.7428,-276.245"/>
+<polygon fill="#191970" stroke="#191970" points="1130.9513,-393.9805 1121.1868,-398.0919 1131.384,-400.9671 1130.9513,-393.9805"/>
 </g>
 <!-- Node84 -->
-<g id="node20" class="node">
+<g id="node19" class="node">
 <title>Node84</title>
-<g id="a_node20"><a xlink:href="relay_2analysis_8h.html" target="_top" xlink:title="The set of Relay analysis passes written in C++. ">
-<polygon fill="#ffffff" stroke="#000000" points="1596.2941,-.5 1596.2941,-19.5 1751.2941,-19.5 1751.2941,-.5 1596.2941,-.5"/>
-<text text-anchor="middle" x="1673.7941" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/analysis.h</text>
+<g id="a_node19"><a xlink:href="relay_2expr_8h.html" target="_top" xlink:title="Relay expression language. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1530,-129 1530,-148 1665,-148 1665,-129 1530,-129"/>
+<text text-anchor="middle" x="1597.5" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node21&#45;&gt;Node84 -->
-<g id="edge46" class="edge">
+<g id="edge49" class="edge">
 <title>Node21&#45;&gt;Node84</title>
-<path fill="none" stroke="#191970" d="M1151.3652,-393.2193C1175.6618,-383.818 1207.9156,-370.2122 1234.7941,-355 1255.2978,-343.3957 1257.571,-336.0868 1277.7941,-324 1309.1884,-305.2364 1321.0276,-307.7763 1351.7941,-288 1400.262,-256.8453 1502.2891,-152.4791 1551.7941,-123 1588.4553,-101.169 1610.3146,-116.8604 1640.7941,-87 1660.2217,-67.9669 1668.8751,-35.654 1672.1284,-19.618"/>
-<polygon fill="#191970" stroke="#191970" points="1149.9097,-390.0283 1141.8107,-396.8589 1152.4016,-396.5698 1149.9097,-390.0283"/>
+<path fill="none" stroke="#191970" d="M1097.1348,-388.3849C1122.5183,-380.2158 1155.0305,-368.5831 1182.5,-355 1205.2646,-343.7434 1207.4182,-334.5911 1230.5,-324 1281.8826,-300.423 1300.8203,-310.9186 1352.5,-288 1447.0163,-246.0844 1549.2745,-173.8985 1584.6283,-148.0512"/>
+<polygon fill="#191970" stroke="#191970" points="1095.9121,-385.1007 1087.4317,-391.4515 1098.0216,-391.7753 1095.9121,-385.1007"/>
 </g>
-<!-- Node93 -->
+<!-- Node87 -->
 <g id="node21" class="node">
-<title>Node93</title>
-<g id="a_node21"><a xlink:href="relay_2feature_8h.html" target="_top" xlink:title="Detect features used in Expr/Module. ">
-<polygon fill="#ffffff" stroke="#000000" points="1421.2941,-62 1421.2941,-81 1570.2941,-81 1570.2941,-62 1421.2941,-62"/>
-<text text-anchor="middle" x="1495.7941" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/feature.h</text>
+<title>Node87</title>
+<g id="a_node21"><a xlink:href="relay_2analysis_8h.html" target="_top" xlink:title="The set of Relay analysis passes written in C++. ">
+<polygon fill="#ffffff" stroke="#000000" points="1768,-.5 1768,-19.5 1923,-19.5 1923,-.5 1768,-.5"/>
+<text text-anchor="middle" x="1845.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/analysis.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node93 -->
+<!-- Node21&#45;&gt;Node87 -->
 <g id="edge48" class="edge">
-<title>Node21&#45;&gt;Node93</title>
-<path fill="none" stroke="#191970" d="M1132.8486,-389.9158C1143.4977,-379.9785 1157.1297,-366.9849 1168.7941,-355 1181.7429,-341.6952 1182.0773,-335.3185 1196.7941,-324 1224.5254,-302.6722 1241.8145,-312.4934 1266.7941,-288 1326.2871,-229.6648 1292.8413,-177.5836 1355.7941,-123 1380.742,-101.3688 1415.5665,-88.5097 1444.2413,-81.0505"/>
-<polygon fill="#191970" stroke="#191970" points="1130.3215,-387.4859 1125.3686,-396.8518 1135.0811,-392.6188 1130.3215,-387.4859"/>
+<title>Node21&#45;&gt;Node87</title>
+<path fill="none" stroke="#191970" d="M1117.1535,-389.1619C1149.0633,-381.7744 1187.9004,-370.6462 1220.5,-355 1241.7401,-344.8058 1242.2392,-334.1509 1263.5,-324 1318.3756,-297.7998 1338.5248,-309.2509 1395.5,-288 1524.387,-239.9271 1556.2449,-224.2752 1674.5,-154 1694.7534,-141.9641 1696.676,-134.0192 1717.5,-123 1758.8822,-101.1022 1783.2056,-119.9163 1816.5,-87 1835.4961,-68.2196 1842.214,-35.7902 1844.4554,-19.673"/>
+<polygon fill="#191970" stroke="#191970" points="1116.0434,-385.824 1107.0532,-391.4301 1117.5771,-392.6539 1116.0434,-385.824"/>
 </g>
-<!-- Node124 -->
-<g id="node27" class="node">
-<title>Node124</title>
-<g id="a_node27"><a xlink:href="error_8h.html" target="_top" xlink:title="Utilities for error tracking and reporting. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="611.2941,-330 611.2941,-349 730.2941,-349 730.2941,-330 611.2941,-330"/>
-<text text-anchor="middle" x="670.7941" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/error.h</text>
+<!-- Node96 -->
+<g id="node22" class="node">
+<title>Node96</title>
+<g id="a_node22"><a xlink:href="relay_2feature_8h.html" target="_top" xlink:title="Detect features used in Expr/Module. ">
+<polygon fill="#ffffff" stroke="#000000" points="1421,-62 1421,-81 1570,-81 1570,-62 1421,-62"/>
+<text text-anchor="middle" x="1495.5" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/feature.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node124 -->
-<g id="edge37" class="edge">
-<title>Node21&#45;&gt;Node124</title>
-<path fill="none" stroke="#191970" d="M1041.5913,-395.4536C954.5999,-382.3266 811.1207,-360.6754 730.523,-348.5132"/>
-<polygon fill="#191970" stroke="#191970" points="1041.2409,-398.9403 1051.6512,-396.9717 1042.2854,-392.0187 1041.2409,-398.9403"/>
+<!-- Node21&#45;&gt;Node96 -->
+<g id="edge50" class="edge">
+<title>Node21&#45;&gt;Node96</title>
+<path fill="none" stroke="#191970" d="M1087.9428,-387.4259C1106.4911,-379.2232 1129.565,-367.8762 1148.5,-355 1165.4099,-343.501 1165.775,-335.7664 1182.5,-324 1210.4682,-304.3236 1222.3796,-307.4582 1250.5,-288 1350.8559,-218.5576 1455.453,-113.0512 1486.3826,-81.0373"/>
+<polygon fill="#191970" stroke="#191970" points="1086.4922,-384.2398 1078.7016,-391.4202 1089.2695,-390.6653 1086.4922,-384.2398"/>
 </g>
-<!-- Node125 -->
+<!-- Node127 -->
 <g id="node28" class="node">
-<title>Node125</title>
-<g id="a_node28"><a xlink:href="space__generator_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/space_generator.h">
-<polygon fill="#ffffff" stroke="#000000" points="1014.7941,-257.5 1014.7941,-287.5 1166.7941,-287.5 1166.7941,-257.5 1014.7941,-257.5"/>
-<text text-anchor="start" x="1022.7941" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="1090.7941" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/space_generator.h</text>
+<title>Node127</title>
+<g id="a_node28"><a xlink:href="error_8h.html" target="_top" xlink:title="Utilities for error tracking and reporting. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="793,-330 793,-349 912,-349 912,-330 793,-330"/>
+<text text-anchor="middle" x="852.5" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/error.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node125 -->
-<g id="edge42" class="edge">
-<title>Node21&#45;&gt;Node125</title>
-<path fill="none" stroke="#191970" d="M1104.8888,-388.0481C1100.2799,-378.4765 1095.2764,-366.4233 1092.7941,-355 1087.7742,-331.8994 1088.3944,-304.3047 1089.4696,-287.6056"/>
-<polygon fill="#191970" stroke="#191970" points="1101.7813,-389.6591 1109.4266,-396.994 1108.0241,-386.4924 1101.7813,-389.6591"/>
+<!-- Node21&#45;&gt;Node127 -->
+<g id="edge39" class="edge">
+<title>Node21&#45;&gt;Node127</title>
+<path fill="none" stroke="#191970" d="M1013.1148,-388.4001C974.775,-376.7273 918.5859,-359.6202 883.8409,-349.0419"/>
+<polygon fill="#191970" stroke="#191970" points="1012.3516,-391.8263 1022.9375,-391.3906 1014.3905,-385.1297 1012.3516,-391.8263"/>
 </g>
-<!-- Node126 -->
+<!-- Node128 -->
 <g id="node29" class="node">
-<title>Node126</title>
-<g id="a_node29"><a xlink:href="parser_8h.html" target="_top" xlink:title="A parser for TVM IR. ">
-<polygon fill="#ffffff" stroke="#000000" points="2338.7941,-324.5 2338.7941,-354.5 2446.7941,-354.5 2446.7941,-324.5 2338.7941,-324.5"/>
-<text text-anchor="start" x="2346.7941" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/parser</text>
-<text text-anchor="middle" x="2392.7941" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/parser.h</text>
+<title>Node128</title>
+<g id="a_node29"><a xlink:href="space__generator_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/space_generator.h">
+<polygon fill="#ffffff" stroke="#000000" points="1044.5,-257.5 1044.5,-287.5 1196.5,-287.5 1196.5,-257.5 1044.5,-257.5"/>
+<text text-anchor="start" x="1052.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="1120.5" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/space_generator.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node126 -->
-<g id="edge45" class="edge">
-<title>Node21&#45;&gt;Node126</title>
-<path fill="none" stroke="#191970" d="M1191.9167,-402.4568C1427.9754,-390.0813 2136.8671,-352.9171 2338.6589,-342.3381"/>
-<polygon fill="#191970" stroke="#191970" points="1191.5085,-398.9733 1181.7055,-402.9921 1191.8751,-405.9637 1191.5085,-398.9733"/>
+<!-- Node21&#45;&gt;Node128 -->
+<g id="edge44" class="edge">
+<title>Node21&#45;&gt;Node128</title>
+<path fill="none" stroke="#191970" d="M1058.4205,-381.42C1062.1407,-365.3503 1068.644,-342.3391 1078.5,-324 1085.7095,-310.5853 1096.6507,-297.3123 1105.5585,-287.6014"/>
+<polygon fill="#191970" stroke="#191970" points="1054.9782,-380.7791 1056.2825,-391.2933 1061.8196,-382.2606 1054.9782,-380.7791"/>
 </g>
-<!-- Node127 -->
+<!-- Node129 -->
 <g id="node30" class="node">
-<title>Node127</title>
-<g id="a_node30"><a xlink:href="state_8h.html" target="_top" xlink:title="This file defines ScheduleState, the core data structure of TensorIR scheduling. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="32.7941,-190.5 32.7941,-220.5 166.7941,-220.5 166.7941,-190.5 32.7941,-190.5"/>
-<text text-anchor="start" x="40.7941" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/schedule</text>
-<text text-anchor="middle" x="99.7941" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/state.h</text>
+<title>Node129</title>
+<g id="a_node30"><a xlink:href="parser_8h.html" target="_top" xlink:title="A parser for TVM IR. ">
+<polygon fill="#ffffff" stroke="#000000" points="1512.5,-324.5 1512.5,-354.5 1620.5,-354.5 1620.5,-324.5 1512.5,-324.5"/>
+<text text-anchor="start" x="1520.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/parser</text>
+<text text-anchor="middle" x="1566.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/parser.h</text>
 </a>
 </g>
 </g>
-<!-- Node21&#45;&gt;Node127 -->
-<g id="edge53" class="edge">
-<title>Node21&#45;&gt;Node127</title>
-<path fill="none" stroke="#191970" d="M1038.0283,-404.4644C870.6444,-399.519 477.4583,-385.0106 347.7941,-355 271.0849,-337.2458 249.5631,-331.289 183.7941,-288 154.7681,-268.8952 127.25,-238.7832 112.037,-220.7077"/>
-<polygon fill="#191970" stroke="#191970" points="1038.1426,-407.9691 1048.2405,-404.7625 1038.3469,-400.9721 1038.1426,-407.9691"/>
+<!-- Node21&#45;&gt;Node129 -->
+<g id="edge47" class="edge">
+<title>Node21&#45;&gt;Node129</title>
+<path fill="none" stroke="#191970" d="M1131.2342,-393.0542C1212.938,-384.4189 1345.9828,-369.8562 1460.5,-355 1477.3762,-352.8107 1495.7301,-350.2062 1512.3494,-347.7631"/>
+<polygon fill="#191970" stroke="#191970" points="1130.6159,-389.5999 1121.038,-394.1293 1131.3499,-396.5614 1130.6159,-389.5999"/>
+</g>
+<!-- Node130 -->
+<g id="node31" class="node">
+<title>Node130</title>
+<g id="a_node31"><a xlink:href="state_8h.html" target="_top" xlink:title="This file defines ScheduleState, the core data structure of TensorIR scheduling. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="342.5,-190.5 342.5,-220.5 476.5,-220.5 476.5,-190.5 342.5,-190.5"/>
+<text text-anchor="start" x="350.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/schedule</text>
+<text text-anchor="middle" x="409.5" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/state.h</text>
+</a>
+</g>
+</g>
+<!-- Node21&#45;&gt;Node130 -->
+<g id="edge55" class="edge">
+<title>Node21&#45;&gt;Node130</title>
+<path fill="none" stroke="#191970" d="M977.4917,-394.0288C889.8022,-385.5472 752.2551,-370.4388 702.5,-355 595.3257,-321.7443 480.0521,-251.4594 432.2574,-220.5845"/>
+<polygon fill="#191970" stroke="#191970" points="977.376,-397.5337 987.6646,-395.0047 978.0445,-390.5657 977.376,-397.5337"/>
 </g>
 <!-- Node23&#45;&gt;Node24 -->
 <g id="edge5" class="edge">
 <title>Node23&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1276.2659,-332.2789C1123.3329,-319.0575 800.8468,-291.1781 656.8652,-278.7307"/>
-<polygon fill="#191970" stroke="#191970" points="1276.2706,-335.7922 1286.5349,-333.1666 1276.8736,-328.8182 1276.2706,-335.7922"/>
+<path fill="none" stroke="#191970" d="M1263.589,-328.6326C1166.2164,-315.7139 1005.2649,-294.3599 912.4785,-282.0496"/>
+<polygon fill="#191970" stroke="#191970" points="1263.3086,-332.126 1273.6821,-329.9717 1264.2293,-325.1868 1263.3086,-332.126"/>
 </g>
-<!-- Node23&#45;&gt;Node79 -->
-<g id="edge18" class="edge">
-<title>Node23&#45;&gt;Node79</title>
-<path fill="none" stroke="#191970" d="M1433.6854,-328.4984C1523.9982,-315.0518 1674.7056,-292.6132 1755.1966,-280.6289"/>
-<polygon fill="#191970" stroke="#191970" points="1433.1657,-325.0371 1423.7902,-329.9717 1434.1966,-331.9608 1433.1657,-325.0371"/>
+<!-- Node23&#45;&gt;Node82 -->
+<g id="edge20" class="edge">
+<title>Node23&#45;&gt;Node82</title>
+<path fill="none" stroke="#191970" d="M1404.6017,-328.2708C1413.9165,-326.7033 1423.4552,-325.2157 1432.5,-324 1618.9525,-298.9397 1841.6935,-282.6063 1942.7839,-275.9276"/>
+<polygon fill="#191970" stroke="#191970" points="1403.8751,-324.8443 1394.616,-329.994 1405.0656,-331.7424 1403.8751,-324.8443"/>
 </g>
 <!-- Node24&#45;&gt;Node22 -->
 <g id="edge6" class="edge">
 <title>Node24&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M588.268,-252.6927C590.3006,-234.3673 590.1302,-207.407 575.7941,-190 533.7376,-138.9351 342.3514,-98.1049 247.8744,-80.6629"/>
-<polygon fill="#191970" stroke="#191970" points="584.7701,-252.4307 586.8247,-262.8244 591.7001,-253.4179 584.7701,-252.4307"/>
+<path fill="none" stroke="#191970" d="M808.7152,-258.2047C792.025,-249.4134 772.2438,-236.7969 758.5,-221 727.1618,-184.9802 746.5707,-158.3691 714.5,-123 700.2309,-107.2633 679.9944,-95.092 662.3234,-86.5428"/>
+<polygon fill="#191970" stroke="#191970" points="807.6098,-261.5665 818.116,-262.934 810.7557,-255.3132 807.6098,-261.5665"/>
 </g>
 <!-- Node25 -->
 <g id="node7" class="node">
 <title>Node25</title>
 <g id="a_node7"><a xlink:href="relay_2transform_8h.html" target="_top" xlink:title="Relay specific transformation passes. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="930.7941,-.5 930.7941,-19.5 1092.7941,-19.5 1092.7941,-.5 930.7941,-.5"/>
-<text text-anchor="middle" x="1011.7941" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/transform.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="1237.5,-.5 1237.5,-19.5 1399.5,-19.5 1399.5,-.5 1237.5,-.5"/>
+<text text-anchor="middle" x="1318.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node25 -->
 <g id="edge7" class="edge">
 <title>Node24&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M591.4559,-253.0245C596.2894,-236.2317 601.2615,-211.3845 596.7941,-190 583.9467,-128.5036 509.6388,-102.5811 551.7941,-56 576.6849,-28.4959 805.5272,-16.7267 930.7654,-12.3101"/>
-<polygon fill="#191970" stroke="#191970" points="588.0495,-252.1904 588.4002,-262.7794 594.7295,-254.2829 588.0495,-252.1904"/>
+<path fill="none" stroke="#191970" d="M865.8324,-257.5207C898.8967,-237.1041 957.2767,-198.0074 997.5,-154 1032.1127,-116.1311 1016.0004,-84.7382 1058.5,-56 1087.1223,-36.6456 1172.1939,-24.1344 1237.3074,-17.1183"/>
+<polygon fill="#191970" stroke="#191970" points="863.9322,-254.5799 857.214,-262.7724 867.5747,-260.5575 863.9322,-254.5799"/>
 </g>
 <!-- Node27 -->
 <g id="node8" class="node">
 <title>Node27</title>
-<g id="a_node8"><a xlink:href="target__kind_8h.html" target="_top" xlink:title="Target kind registry. ">
-<polygon fill="#ffffff" stroke="#000000" points="699.2941,-190.5 699.2941,-220.5 806.2941,-220.5 806.2941,-190.5 699.2941,-190.5"/>
-<text text-anchor="start" x="707.2941" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
-<text text-anchor="middle" x="752.7941" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/target_kind.h</text>
+<g id="a_node8"><a xlink:href="se__scope_8h.html" target="_top" xlink:title="A compile time representation for a Storage or Execution Scope. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="696,-56.5 696,-86.5 803,-86.5 803,-56.5 696,-56.5"/>
+<text text-anchor="start" x="704" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="749.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/se_scope.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node27 -->
 <g id="edge8" class="edge">
 <title>Node24&#45;&gt;Node27</title>
-<path fill="none" stroke="#191970" d="M618.2198,-259.1695C646.1783,-248.0194 686.0447,-232.1203 715.1275,-220.5218"/>
-<polygon fill="#191970" stroke="#191970" points="616.8564,-255.9451 608.8644,-262.9005 619.4495,-262.4471 616.8564,-255.9451"/>
-</g>
-<!-- Node24&#45;&gt;Node62 -->
-<g id="edge16" class="edge">
-<title>Node24&#45;&gt;Node62</title>
-<path fill="none" stroke="#191970" d="M563.9839,-256.6559C547.019,-243.7395 523.6145,-225.9201 509.3789,-215.0817"/>
-<polygon fill="#191970" stroke="#191970" points="562.1092,-259.6275 572.1858,-262.9005 566.3496,-254.058 562.1092,-259.6275"/>
+<path fill="none" stroke="#191970" d="M859.5572,-255.8931C868.6837,-246.6565 878.661,-234.3456 883.5,-221 888.1965,-208.0474 889.1602,-202.5614 883.5,-190 861.8747,-142.0079 810.1419,-105.6187 777.6508,-86.5069"/>
+<polygon fill="#191970" stroke="#191970" points="857.0464,-253.4511 852.2225,-262.8841 861.876,-258.5182 857.0464,-253.4511"/>
 </g>
-<!-- Node78 -->
-<g id="node15" class="node">
-<title>Node78</title>
-<g id="a_node15"><a xlink:href="tir_2transform_8h.html" target="_top" xlink:title="TIR specific transformation passes. ">
-<polygon fill="#ffffff" stroke="#000000" points="222.7941,-196 222.7941,-215 370.7941,-215 370.7941,-196 222.7941,-196"/>
-<text text-anchor="middle" x="296.7941" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/transform.h</text>
+<!-- Node29 -->
+<g id="node9" class="node">
+<title>Node29</title>
+<g id="a_node9"><a xlink:href="target__kind_8h.html" target="_top" xlink:title="Target kind registry. ">
+<polygon fill="#ffffff" stroke="#000000" points="767,-190.5 767,-220.5 874,-220.5 874,-190.5 767,-190.5"/>
+<text text-anchor="start" x="775" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="820.5" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/target_kind.h</text>
 </a>
 </g>
 </g>
-<!-- Node24&#45;&gt;Node78 -->
-<g id="edge17" class="edge">
-<title>Node24&#45;&gt;Node78</title>
-<path fill="none" stroke="#191970" d="M533.8158,-260.6405C478.0332,-247.6633 389.6926,-227.1118 338.0766,-215.1039"/>
-<polygon fill="#191970" stroke="#191970" points="533.3035,-264.1147 543.8365,-262.9717 534.8897,-257.2968 533.3035,-264.1147"/>
-</g>
-<!-- Node27&#45;&gt;Node28 -->
+<!-- Node24&#45;&gt;Node29 -->
 <g id="edge9" class="edge">
-<title>Node27&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M788.8727,-185.3561C807.0636,-175.1995 828.7625,-163.0843 845.5384,-153.7177"/>
-<polygon fill="#191970" stroke="#191970" points="786.7494,-182.5329 779.7244,-190.4639 790.1619,-188.6448 786.7494,-182.5329"/>
+<title>Node24&#45;&gt;Node29</title>
+<path fill="none" stroke="#191970" d="M834.7102,-253.1042C831.613,-242.7287 827.8567,-230.145 824.9841,-220.5218"/>
+<polygon fill="#191970" stroke="#191970" points="831.4203,-254.3195 837.6345,-262.9005 838.1278,-252.3172 831.4203,-254.3195"/>
 </g>
-<!-- Node28&#45;&gt;Node22 -->
-<g id="edge10" class="edge">
-<title>Node28&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M808.9896,-132.1948C676.0268,-119.0555 371.4264,-88.9548 248.0989,-76.7676"/>
-<polygon fill="#191970" stroke="#191970" points="808.7301,-135.6862 819.0258,-133.1866 809.4185,-128.7201 808.7301,-135.6862"/>
+<!-- Node24&#45;&gt;Node65 -->
+<g id="edge18" class="edge">
+<title>Node24&#45;&gt;Node65</title>
+<path fill="none" stroke="#191970" d="M796.9289,-260.2342C750.7627,-247.2378 678.8278,-226.9872 636.6154,-215.1039"/>
+<polygon fill="#191970" stroke="#191970" points="796.0788,-263.6309 806.6532,-262.9717 797.9758,-256.8928 796.0788,-263.6309"/>
 </g>
-<!-- Node28&#45;&gt;Node25 -->
-<g id="edge14" class="edge">
-<title>Node28&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M809.5574,-121.5472C768.5637,-109.9213 721.7143,-95.1726 715.7941,-87 707.7113,-75.8422 706.8309,-66.4637 715.7941,-56 729.7077,-39.7571 847.9605,-25.3952 930.7153,-17.2037"/>
-<polygon fill="#191970" stroke="#191970" points="808.7057,-124.9434 819.2797,-124.2781 810.5988,-118.2042 808.7057,-124.9434"/>
+<!-- Node81 -->
+<g id="node16" class="node">
+<title>Node81</title>
+<g id="a_node16"><a xlink:href="tir_2transform_8h.html" target="_top" xlink:title="TIR specific transformation passes. ">
+<polygon fill="#ffffff" stroke="#000000" points="176.5,-196 176.5,-215 324.5,-215 324.5,-196 176.5,-196"/>
+<text text-anchor="middle" x="250.5" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/transform.h</text>
+</a>
 </g>
-<!-- Node28&#45;&gt;Node36 -->
-<g id="edge11" class="edge">
-<title>Node28&#45;&gt;Node36</title>
-<path fill="none" stroke="#191970" d="M848.842,-116.2113C838.4069,-106.5009 826.4452,-95.3698 817.0673,-86.6432"/>
-<polygon fill="#191970" stroke="#191970" points="846.7511,-119.0466 856.4561,-123.2967 851.5197,-113.9221 846.7511,-119.0466"/>
 </g>
-<!-- Node28&#45;&gt;Node39 -->
-<g id="edge12" class="edge">
-<title>Node28&#45;&gt;Node39</title>
-<path fill="none" stroke="#191970" d="M903.3224,-117.6286C917.9941,-107.5979 935.2542,-95.7976 948.6443,-86.6432"/>
-<polygon fill="#191970" stroke="#191970" points="901.3116,-114.7635 895.0318,-123.2967 905.2623,-120.5421 901.3116,-114.7635"/>
+<!-- Node24&#45;&gt;Node81 -->
+<g id="edge19" class="edge">
+<title>Node24&#45;&gt;Node81</title>
+<path fill="none" stroke="#191970" d="M758.3993,-266.2791C657.9178,-258.1778 482.7203,-242.4738 333.5,-221 321.8925,-219.3296 309.4342,-217.1895 297.7904,-215.0365"/>
+<polygon fill="#191970" stroke="#191970" points="758.2359,-269.7771 768.4835,-267.0868 758.7949,-262.7995 758.2359,-269.7771"/>
 </g>
-<!-- Node28&#45;&gt;Node40 -->
-<g id="edge13" class="edge">
-<title>Node28&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M936.4669,-122.987C989.5896,-110.0444 1063.6114,-92.01 1108.4778,-81.0789"/>
-<polygon fill="#191970" stroke="#191970" points="935.3569,-119.6549 926.4696,-125.4227 937.014,-126.456 935.3569,-119.6549"/>
+<!-- Node29&#45;&gt;Node30 -->
+<g id="edge10" class="edge">
+<title>Node29&#45;&gt;Node30</title>
+<path fill="none" stroke="#191970" d="M854.7747,-185.3561C872.0561,-175.1995 892.67,-163.0843 908.6071,-153.7177"/>
+<polygon fill="#191970" stroke="#191970" points="852.9317,-182.3795 846.0838,-190.4639 856.4786,-188.4144 852.9317,-182.3795"/>
 </g>
-<!-- Node28&#45;&gt;Node43 -->
+<!-- Node30&#45;&gt;Node22 -->
+<g id="edge11" class="edge">
+<title>Node30&#45;&gt;Node22</title>
+<path fill="none" stroke="#191970" d="M870.8851,-125.8855C820.921,-115.8213 749.6416,-101.118 687.5,-87 684.3147,-86.2763 681.0426,-85.5177 677.7443,-84.7413"/>
+<polygon fill="#191970" stroke="#191970" points="870.4046,-129.3589 880.8982,-127.8979 871.7838,-122.4961 870.4046,-129.3589"/>
+</g>
+<!-- Node30&#45;&gt;Node25 -->
 <g id="edge15" class="edge">
-<title>Node28&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M809.1803,-121.9802C765.9663,-110.7579 709.4439,-96.0796 668.496,-85.4459"/>
-<polygon fill="#191970" stroke="#191970" points="808.4641,-125.4102 819.0228,-124.5362 810.2236,-118.6349 808.4641,-125.4102"/>
+<title>Node30&#45;&gt;Node25</title>
+<path fill="none" stroke="#191970" d="M890.9685,-118.563C861.1228,-102.2463 830.2825,-78.3021 850.5,-56 875.9289,-27.9492 1110.2332,-16.3974 1237.3552,-12.1623"/>
+<polygon fill="#191970" stroke="#191970" points="889.6596,-121.8286 900.1415,-123.3717 892.9097,-115.6288 889.6596,-121.8286"/>
 </g>
-<!-- Node80 -->
-<g id="node17" class="node">
-<title>Node80</title>
-<g id="a_node17"><a xlink:href="ir_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics) and registry for them. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1640.7941,-196 1640.7941,-215 1748.7941,-215 1748.7941,-196 1640.7941,-196"/>
-<text text-anchor="middle" x="1694.7941" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/op.h</text>
-</a>
+<!-- Node30&#45;&gt;Node27 -->
+<g id="edge17" class="edge">
+<title>Node30&#45;&gt;Node27</title>
+<path fill="none" stroke="#191970" d="M883.4241,-120.0023C854.3985,-109.4903 818.5146,-96.4945 791.1987,-86.6017"/>
+<polygon fill="#191970" stroke="#191970" points="882.3882,-123.3495 892.9824,-123.4639 884.7718,-116.7678 882.3882,-123.3495"/>
 </g>
+<!-- Node30&#45;&gt;Node38 -->
+<g id="edge12" class="edge">
+<title>Node30&#45;&gt;Node38</title>
+<path fill="none" stroke="#191970" d="M934.8802,-113.0249C935.013,-104.128 935.1578,-94.4287 935.274,-86.6432"/>
+<polygon fill="#191970" stroke="#191970" points="931.3766,-113.2455 934.7269,-123.2967 938.3759,-113.35 931.3766,-113.2455"/>
 </g>
-<!-- Node79&#45;&gt;Node80 -->
-<g id="edge19" class="edge">
-<title>Node79&#45;&gt;Node80</title>
-<path fill="none" stroke="#191970" d="M1775.2525,-252.3758C1754.0652,-240.0319 1727.902,-224.789 1711.2784,-215.1039"/>
-<polygon fill="#191970" stroke="#191970" points="1773.5834,-255.454 1783.9858,-257.4639 1777.1072,-249.4056 1773.5834,-255.454"/>
+<!-- Node30&#45;&gt;Node42 -->
+<g id="edge13" class="edge">
+<title>Node30&#45;&gt;Node42</title>
+<path fill="none" stroke="#191970" d="M991.3483,-120.2759C1024.2873,-109.7165 1065.2639,-96.5805 1096.3917,-86.6017"/>
+<polygon fill="#191970" stroke="#191970" points="989.8579,-117.0782 981.4037,-123.4639 991.9948,-123.744 989.8579,-117.0782"/>
 </g>
-<!-- Node121 -->
-<g id="node24" class="node">
-<title>Node121</title>
-<g id="a_node24"><a xlink:href="executor_8h.html" target="_top" xlink:title="Object representation of Executor configuration and registry. ">
-<polygon fill="#ffffff" stroke="#000000" points="2213.7941,-196 2213.7941,-215 2369.7941,-215 2369.7941,-196 2213.7941,-196"/>
-<text text-anchor="middle" x="2291.7941" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/executor.h</text>
+<!-- Node30&#45;&gt;Node43 -->
+<g id="edge14" class="edge">
+<title>Node30&#45;&gt;Node43</title>
+<path fill="none" stroke="#191970" d="M998.3769,-127.4126C1073.0129,-114.4576 1195.2442,-93.2413 1265.727,-81.0072"/>
+<polygon fill="#191970" stroke="#191970" points="997.4257,-124.0252 988.1716,-129.1839 998.6229,-130.9221 997.4257,-124.0252"/>
+</g>
+<!-- Node30&#45;&gt;Node46 -->
+<g id="edge16" class="edge">
+<title>Node30&#45;&gt;Node46</title>
+<path fill="none" stroke="#191970" d="M870.6527,-133.6444C704.5553,-121.0127 261.1957,-87.2952 107.1388,-75.5792"/>
+<polygon fill="#191970" stroke="#191970" points="870.4791,-137.1412 880.7157,-134.4097 871.0099,-130.1614 870.4791,-137.1412"/>
+</g>
+<!-- Node83 -->
+<g id="node18" class="node">
+<title>Node83</title>
+<g id="a_node18"><a xlink:href="ir_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics) and registry for them. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1777.5,-196 1777.5,-215 1885.5,-215 1885.5,-196 1777.5,-196"/>
+<text text-anchor="middle" x="1831.5" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/op.h</text>
 </a>
 </g>
 </g>
-<!-- Node79&#45;&gt;Node121 -->
-<g id="edge31" class="edge">
-<title>Node79&#45;&gt;Node121</title>
-<path fill="none" stroke="#191970" d="M1874.7438,-264.9743C1953.1259,-255.6747 2088.8508,-238.8766 2204.7941,-221 2216.3178,-219.2232 2228.6671,-217.1353 2240.336,-215.0776"/>
-<polygon fill="#191970" stroke="#191970" points="1874.0597,-261.5307 1864.5399,-266.1809 1874.8818,-268.4823 1874.0597,-261.5307"/>
+<!-- Node82&#45;&gt;Node83 -->
+<g id="edge21" class="edge">
+<title>Node82&#45;&gt;Node83</title>
+<path fill="none" stroke="#191970" d="M1950.8884,-253.6869C1919.7718,-241.1278 1880.1476,-225.1349 1855.2948,-215.1039"/>
+<polygon fill="#191970" stroke="#191970" points="1949.6632,-256.9667 1960.2464,-257.4639 1952.2832,-250.4754 1949.6632,-256.9667"/>
 </g>
-<!-- Node122 -->
+<!-- Node124 -->
 <g id="node25" class="node">
-<title>Node122</title>
-<g id="a_node25"><a xlink:href="relay_2type_8h.html" target="_top" xlink:title="Relay typed AST nodes. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1766.7941,-196 1766.7941,-215 1902.7941,-215 1902.7941,-196 1766.7941,-196"/>
-<text text-anchor="middle" x="1834.7941" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/type.h</text>
+<title>Node124</title>
+<g id="a_node25"><a xlink:href="executor_8h.html" target="_top" xlink:title="Object representation of Executor configuration and registry. ">
+<polygon fill="#ffffff" stroke="#000000" points="2227.5,-196 2227.5,-215 2383.5,-215 2383.5,-196 2227.5,-196"/>
+<text text-anchor="middle" x="2305.5" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/executor.h</text>
 </a>
 </g>
 </g>
-<!-- Node79&#45;&gt;Node122 -->
-<g id="edge32" class="edge">
-<title>Node79&#45;&gt;Node122</title>
-<path fill="none" stroke="#191970" d="M1819.0061,-247.8118C1823.255,-236.4246 1828.0496,-223.5752 1831.2288,-215.055"/>
-<polygon fill="#191970" stroke="#191970" points="1815.6837,-246.704 1815.4669,-257.2967 1822.2421,-249.1512 1815.6837,-246.704"/>
+<!-- Node82&#45;&gt;Node124 -->
+<g id="edge33" class="edge">
+<title>Node82&#45;&gt;Node124</title>
+<path fill="none" stroke="#191970" d="M2062.3225,-258.399C2122.2542,-245.3619 2209.6785,-226.3443 2261.7505,-215.0169"/>
+<polygon fill="#191970" stroke="#191970" points="2061.2368,-255.0532 2052.2093,-260.5989 2062.7248,-261.8933 2061.2368,-255.0532"/>
 </g>
-<!-- Node123 -->
+<!-- Node125 -->
 <g id="node26" class="node">
-<title>Node123</title>
-<g id="a_node26"><a xlink:href="runtime_8h.html" target="_top" xlink:title="Object representation of Runtime configuration and registry. ">
-<polygon fill="#ffffff" stroke="#000000" points="2043.7941,-196 2043.7941,-215 2195.7941,-215 2195.7941,-196 2043.7941,-196"/>
-<text text-anchor="middle" x="2119.7941" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/runtime.h</text>
+<title>Node125</title>
+<g id="a_node26"><a xlink:href="relay_2type_8h.html" target="_top" xlink:title="Relay typed AST nodes. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="2073.5,-196 2073.5,-215 2209.5,-215 2209.5,-196 2073.5,-196"/>
+<text text-anchor="middle" x="2141.5" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/type.h</text>
 </a>
 </g>
 </g>
-<!-- Node79&#45;&gt;Node123 -->
-<g id="edge36" class="edge">
-<title>Node79&#45;&gt;Node123</title>
-<path fill="none" stroke="#191970" d="M1874.3002,-258.5583C1934.5987,-245.5261 2023.017,-226.4163 2075.6539,-215.04"/>
-<polygon fill="#191970" stroke="#191970" points="1873.5372,-255.1424 1864.5022,-260.676 1875.016,-261.9844 1873.5372,-255.1424"/>
-</g>
-<!-- Node80&#45;&gt;Node81 -->
-<g id="edge20" class="edge">
-<title>Node80&#45;&gt;Node81</title>
-<path fill="none" stroke="#191970" d="M1647.6053,-193.4785C1596.6318,-180.4929 1516.4329,-160.062 1469.493,-148.1039"/>
-<polygon fill="#191970" stroke="#191970" points="1646.8373,-196.8946 1657.3919,-195.9717 1648.5654,-190.1113 1646.8373,-196.8946"/>
+<!-- Node82&#45;&gt;Node125 -->
+<g id="edge34" class="edge">
+<title>Node82&#45;&gt;Node125</title>
+<path fill="none" stroke="#191970" d="M2038.985,-253.198C2065.8137,-240.7152 2099.5785,-225.0051 2120.8587,-215.1039"/>
+<polygon fill="#191970" stroke="#191970" points="2037.4066,-250.072 2029.8164,-257.4639 2040.3596,-256.4187 2037.4066,-250.072"/>
 </g>
-<!-- Node100 -->
-<g id="node23" class="node">
-<title>Node100</title>
-<g id="a_node23"><a xlink:href="tir_2op_8h.html" target="_top" xlink:title="Common operators defined for Expr. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="2184.7941,-129 2184.7941,-148 2296.7941,-148 2296.7941,-129 2184.7941,-129"/>
-<text text-anchor="middle" x="2240.7941" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/op.h</text>
+<!-- Node126 -->
+<g id="node27" class="node">
+<title>Node126</title>
+<g id="a_node27"><a xlink:href="runtime_8h.html" target="_top" xlink:title="Object representation of Runtime configuration and registry. ">
+<polygon fill="#ffffff" stroke="#000000" points="1903.5,-196 1903.5,-215 2055.5,-215 2055.5,-196 1903.5,-196"/>
+<text text-anchor="middle" x="1979.5" y="-203" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/runtime.h</text>
 </a>
 </g>
 </g>
-<!-- Node80&#45;&gt;Node100 -->
-<g id="edge30" class="edge">
-<title>Node80&#45;&gt;Node100</title>
-<path fill="none" stroke="#191970" d="M1739.88,-193.6285C1745.8773,-192.2785 1751.9662,-191.0228 1757.7941,-190 1911.0398,-163.1052 2094.2727,-148.2269 2184.6712,-142.014"/>
-<polygon fill="#191970" stroke="#191970" points="1738.8699,-190.2704 1729.9355,-195.9648 1740.471,-197.0848 1738.8699,-190.2704"/>
+<!-- Node82&#45;&gt;Node126 -->
+<g id="edge38" class="edge">
+<title>Node82&#45;&gt;Node126</title>
+<path fill="none" stroke="#191970" d="M1990.7745,-247.4663C1987.7385,-236.1655 1984.3329,-223.4891 1982.067,-215.055"/>
+<polygon fill="#191970" stroke="#191970" points="1987.4407,-248.5472 1993.4155,-257.2967 1994.201,-246.731 1987.4407,-248.5472"/>
 </g>
-<!-- Node81&#45;&gt;Node25 -->
-<g id="edge29" class="edge">
-<title>Node81&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M1493.4725,-126.6604C1547.0359,-113.77 1611.43,-90.3016 1579.7941,-56 1563.5391,-38.3754 1246.134,-21.063 1093.0382,-13.6984"/>
-<polygon fill="#191970" stroke="#191970" points="1492.5736,-123.2759 1483.6227,-128.9444 1494.1549,-130.095 1492.5736,-123.2759"/>
+<!-- Node83&#45;&gt;Node84 -->
+<g id="edge22" class="edge">
+<title>Node83&#45;&gt;Node84</title>
+<path fill="none" stroke="#191970" d="M1788.1155,-193.0779C1742.6772,-180.0678 1672.2908,-159.9145 1630.9643,-148.0817"/>
+<polygon fill="#191970" stroke="#191970" points="1787.3964,-196.5126 1797.9735,-195.9005 1789.3233,-189.783 1787.3964,-196.5126"/>
 </g>
-<!-- Node81&#45;&gt;Node40 -->
-<g id="edge28" class="edge">
-<title>Node81&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M1381.5238,-126.6405C1326.516,-113.6633 1239.4023,-93.1118 1188.5032,-81.1039"/>
-<polygon fill="#191970" stroke="#191970" points="1380.8689,-130.082 1391.4054,-128.9717 1382.4762,-123.269 1380.8689,-130.082"/>
+<!-- Node103 -->
+<g id="node24" class="node">
+<title>Node103</title>
+<g id="a_node24"><a xlink:href="tir_2op_8h.html" target="_top" xlink:title="Common operators defined for Expr. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1842.5,-129 1842.5,-148 1954.5,-148 1954.5,-129 1842.5,-129"/>
+<text text-anchor="middle" x="1898.5" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/op.h</text>
+</a>
 </g>
-<!-- Node81&#45;&gt;Node83 -->
-<g id="edge21" class="edge">
-<title>Node81&#45;&gt;Node83</title>
-<path fill="none" stroke="#191970" d="M1489.4989,-126.959C1554.382,-113.9824 1658.5526,-93.1483 1719.0459,-81.0496"/>
-<polygon fill="#191970" stroke="#191970" points="1488.555,-123.5784 1479.4356,-128.9717 1489.9279,-130.4425 1488.555,-123.5784"/>
 </g>
-<!-- Node81&#45;&gt;Node84 -->
-<g id="edge23" class="edge">
-<title>Node81&#45;&gt;Node84</title>
-<path fill="none" stroke="#191970" d="M1486.583,-126.67C1531.6091,-116.2529 1591.209,-100.6574 1611.7941,-87 1638.6809,-69.1616 1659.5147,-35.9967 1668.6856,-19.6365"/>
-<polygon fill="#191970" stroke="#191970" points="1485.6095,-123.3021 1476.6402,-128.9416 1487.1686,-130.1263 1485.6095,-123.3021"/>
+<!-- Node83&#45;&gt;Node103 -->
+<g id="edge32" class="edge">
+<title>Node83&#45;&gt;Node103</title>
+<path fill="none" stroke="#191970" d="M1848.4215,-188.5785C1861.2361,-175.7639 1878.3782,-158.6218 1888.9183,-148.0817"/>
+<polygon fill="#191970" stroke="#191970" points="1845.6957,-186.3546 1841.0995,-195.9005 1850.6454,-191.3043 1845.6957,-186.3546"/>
 </g>
-<!-- Node81&#45;&gt;Node93 -->
-<g id="edge24" class="edge">
-<title>Node81&#45;&gt;Node93</title>
-<path fill="none" stroke="#191970" d="M1447.9578,-121.5785C1460.1987,-108.7639 1476.5732,-91.6218 1486.6414,-81.0817"/>
-<polygon fill="#191970" stroke="#191970" points="1445.3402,-119.2518 1440.9637,-128.9005 1450.4019,-124.087 1445.3402,-119.2518"/>
+<!-- Node84&#45;&gt;Node25 -->
+<g id="edge31" class="edge">
+<title>Node84&#45;&gt;Node25</title>
+<path fill="none" stroke="#191970" d="M1598.9468,-118.8675C1599.1805,-100.0319 1596.3027,-72.1378 1579.5,-56 1554.1968,-31.698 1466.421,-20.0259 1399.5819,-14.5602"/>
+<polygon fill="#191970" stroke="#191970" points="1595.4442,-118.8558 1598.5138,-128.9962 1602.4378,-119.1548 1595.4442,-118.8558"/>
 </g>
-<!-- Node94 -->
-<g id="node22" class="node">
-<title>Node94</title>
-<g id="a_node22"><a xlink:href="relay_2function_8h.html" target="_top" xlink:title="Relay Function. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1248.7941,-62 1248.7941,-81 1402.7941,-81 1402.7941,-62 1248.7941,-62"/>
-<text text-anchor="middle" x="1325.7941" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/function.h</text>
-</a>
+<!-- Node84&#45;&gt;Node43 -->
+<g id="edge30" class="edge">
+<title>Node84&#45;&gt;Node43</title>
+<path fill="none" stroke="#191970" d="M1548.1345,-126.5596C1494.4644,-113.578 1409.7473,-93.0869 1360.2058,-81.1039"/>
+<polygon fill="#191970" stroke="#191970" points="1547.5642,-130.0225 1558.1068,-128.9717 1549.21,-123.2187 1547.5642,-130.0225"/>
 </g>
+<!-- Node84&#45;&gt;Node86 -->
+<g id="edge23" class="edge">
+<title>Node84&#45;&gt;Node86</title>
+<path fill="none" stroke="#191970" d="M1655.8312,-127.039C1721.847,-114.0682 1828.1932,-93.1732 1889.8967,-81.0496"/>
+<polygon fill="#191970" stroke="#191970" points="1655.1324,-123.6093 1645.9948,-128.9717 1656.482,-130.478 1655.1324,-123.6093"/>
 </g>
-<!-- Node81&#45;&gt;Node94 -->
+<!-- Node84&#45;&gt;Node87 -->
 <g id="edge25" class="edge">
-<title>Node81&#45;&gt;Node94</title>
-<path fill="none" stroke="#191970" d="M1408.1209,-123.5368C1387.5913,-110.5605 1358.4938,-92.1687 1340.9531,-81.0817"/>
-<polygon fill="#191970" stroke="#191970" points="1406.2838,-126.5161 1416.6068,-128.9005 1410.0239,-120.599 1406.2838,-126.5161"/>
+<title>Node84&#45;&gt;Node87</title>
+<path fill="none" stroke="#191970" d="M1657.3817,-126.8493C1705.0469,-116.7608 1767.1749,-101.5412 1788.5,-87 1814.3342,-69.384 1832.9649,-36.1149 1841.0397,-19.6836"/>
+<polygon fill="#191970" stroke="#191970" points="1656.5239,-123.4529 1647.4499,-128.9221 1657.9541,-130.3052 1656.5239,-123.4529"/>
 </g>
-<!-- Node83&#45;&gt;Node84 -->
-<g id="edge22" class="edge">
-<title>Node83&#45;&gt;Node84</title>
-<path fill="none" stroke="#191970" d="M1743.7876,-56.286C1726.3979,-44.7864 1703.0626,-29.355 1688.2233,-19.5419"/>
-<polygon fill="#191970" stroke="#191970" points="1741.9911,-59.2941 1752.2628,-61.8906 1745.8522,-53.4553 1741.9911,-59.2941"/>
+<!-- Node84&#45;&gt;Node96 -->
+<g id="edge26" class="edge">
+<title>Node84&#45;&gt;Node96</title>
+<path fill="none" stroke="#191970" d="M1574.4539,-123.3619C1554.7144,-110.3957 1526.8901,-92.119 1510.087,-81.0817"/>
+<polygon fill="#191970" stroke="#191970" points="1572.6062,-126.3357 1582.8859,-128.9005 1576.4493,-120.485 1572.6062,-126.3357"/>
 </g>
-<!-- Node94&#45;&gt;Node25 -->
-<g id="edge27" class="edge">
-<title>Node94&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M1267.0527,-59.9949C1207.3929,-48.31 1116.079,-30.4252 1060.368,-19.5137"/>
-<polygon fill="#191970" stroke="#191970" points="1266.5898,-63.4707 1277.0761,-61.9581 1267.9353,-56.6012 1266.5898,-63.4707"/>
+<!-- Node97 -->
+<g id="node23" class="node">
+<title>Node97</title>
+<g id="a_node23"><a xlink:href="relay_2function_8h.html" target="_top" xlink:title="Relay Function. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1625.5,-62 1625.5,-81 1779.5,-81 1779.5,-62 1625.5,-62"/>
+<text text-anchor="middle" x="1702.5" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/function.h</text>
+</a>
 </g>
-<!-- Node94&#45;&gt;Node84 -->
-<g id="edge26" class="edge">
-<title>Node94&#45;&gt;Node84</title>
-<path fill="none" stroke="#191970" d="M1389.1666,-60.1953C1397.121,-58.7806 1405.1463,-57.3552 1412.7941,-56 1484.2628,-43.3355 1566.7577,-28.8121 1619.5522,-19.5296"/>
-<polygon fill="#191970" stroke="#191970" points="1388.3947,-56.7776 1379.1627,-61.9756 1389.6212,-63.6693 1388.3947,-56.7776"/>
 </g>
-<!-- Node122&#45;&gt;Node81 -->
-<g id="edge35" class="edge">
-<title>Node122&#45;&gt;Node81</title>
-<path fill="none" stroke="#191970" d="M1778.6579,-193.9153C1771.6414,-192.5512 1764.5573,-191.2144 1757.7941,-190 1667.6996,-173.823 1563.1011,-157.7813 1497.1836,-148.0054"/>
-<polygon fill="#191970" stroke="#191970" points="1778.3566,-197.4231 1788.8445,-195.9222 1779.7097,-190.5551 1778.3566,-197.4231"/>
+<!-- Node84&#45;&gt;Node97 -->
+<g id="edge27" class="edge">
+<title>Node84&#45;&gt;Node97</title>
+<path fill="none" stroke="#191970" d="M1621.2239,-123.3619C1641.544,-110.3957 1670.1867,-92.119 1687.484,-81.0817"/>
+<polygon fill="#191970" stroke="#191970" points="1619.0912,-120.5708 1612.5439,-128.9005 1622.8567,-126.4719 1619.0912,-120.5708"/>
 </g>
-<!-- Node122&#45;&gt;Node83 -->
-<g id="edge33" class="edge">
-<title>Node122&#45;&gt;Node83</title>
-<path fill="none" stroke="#191970" d="M1825.2926,-186.7765C1810.5804,-157.7849 1782.8197,-103.08 1771.6401,-81.0496"/>
-<polygon fill="#191970" stroke="#191970" points="1822.2572,-188.5294 1829.9037,-195.8631 1828.4994,-185.3617 1822.2572,-188.5294"/>
+<!-- Node86&#45;&gt;Node87 -->
+<g id="edge24" class="edge">
+<title>Node86&#45;&gt;Node87</title>
+<path fill="none" stroke="#191970" d="M1915.4935,-56.286C1898.1038,-44.7864 1874.7685,-29.355 1859.9292,-19.5419"/>
+<polygon fill="#191970" stroke="#191970" points="1913.697,-59.2941 1923.9688,-61.8906 1917.5582,-53.4553 1913.697,-59.2941"/>
 </g>
-<!-- Node122&#45;&gt;Node84 -->
-<g id="edge34" class="edge">
-<title>Node122&#45;&gt;Node84</title>
-<path fill="none" stroke="#191970" d="M1842.6121,-186.2855C1853.7843,-155.3884 1869.9413,-94.2613 1840.7941,-56 1833.2768,-46.1321 1766.0745,-29.8752 1719.2478,-19.5644"/>
-<polygon fill="#191970" stroke="#191970" points="1839.2511,-185.2758 1838.9506,-195.8664 1845.7899,-187.7747 1839.2511,-185.2758"/>
+<!-- Node97&#45;&gt;Node25 -->
+<g id="edge29" class="edge">
+<title>Node97&#45;&gt;Node25</title>
+<path fill="none" stroke="#191970" d="M1637.137,-60.2617C1628.5177,-58.8106 1619.7983,-57.3581 1611.5,-56 1531.8473,-42.9644 1439.8873,-28.6461 1380.5549,-19.5032"/>
+<polygon fill="#191970" stroke="#191970" points="1636.7345,-63.7433 1647.178,-61.9589 1637.9012,-56.8412 1636.7345,-63.7433"/>
 </g>
-<!-- Node124&#45;&gt;Node24 -->
-<g id="edge38" class="edge">
-<title>Node124&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M650.4569,-323.6559C633.8776,-310.7395 611.0049,-292.9201 597.0929,-282.0817"/>
-<polygon fill="#191970" stroke="#191970" points="648.4327,-326.5158 658.4724,-329.9005 652.7348,-320.9937 648.4327,-326.5158"/>
+<!-- Node97&#45;&gt;Node87 -->
+<g id="edge28" class="edge">
+<title>Node97&#45;&gt;Node87</title>
+<path fill="none" stroke="#191970" d="M1734.2558,-57.8428C1761.2952,-46.2139 1799.4491,-29.8051 1823.3131,-19.5419"/>
+<polygon fill="#191970" stroke="#191970" points="1732.6474,-54.7245 1724.8438,-61.8906 1735.413,-61.155 1732.6474,-54.7245"/>
 </g>
-<!-- Node125&#45;&gt;Node39 -->
-<g id="edge43" class="edge">
-<title>Node125&#45;&gt;Node39</title>
-<path fill="none" stroke="#191970" d="M1076.5745,-248.6822C1051.5703,-206.8003 1000.4223,-121.1274 979.7545,-86.5088"/>
-<polygon fill="#191970" stroke="#191970" points="1073.6432,-250.6003 1081.7746,-257.3923 1079.6536,-247.0119 1073.6432,-250.6003"/>
+<!-- Node125&#45;&gt;Node84 -->
+<g id="edge37" class="edge">
+<title>Node125&#45;&gt;Node84</title>
+<path fill="none" stroke="#191970" d="M2087.6018,-194.0191C2079.8684,-192.556 2071.9951,-191.1653 2064.5,-190 1923.0477,-168.0078 1756.0617,-151.9653 1665.03,-144.0507"/>
+<polygon fill="#191970" stroke="#191970" points="2087.1597,-197.4986 2097.6438,-195.9714 2088.4956,-190.6273 2087.1597,-197.4986"/>
 </g>
-<!-- Node130&#45;&gt;Node21 -->
-<g id="edge56" class="edge">
-<title>Node130&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M999.1442,-459.5722C1027.5089,-446.5555 1069.1048,-427.467 1093.9146,-416.0817"/>
-<polygon fill="#191970" stroke="#191970" points="997.3412,-456.5486 989.7123,-463.9005 1000.2608,-462.9107 997.3412,-456.5486"/>
+<!-- Node125&#45;&gt;Node86 -->
+<g id="edge35" class="edge">
+<title>Node125&#45;&gt;Node86</title>
+<path fill="none" stroke="#191970" d="M2118.3938,-190.2477C2076.1765,-162.38 1987.7258,-103.9939 1952.967,-81.0496"/>
+<polygon fill="#191970" stroke="#191970" points="2116.6268,-193.275 2126.9007,-195.8631 2120.4832,-187.433 2116.6268,-193.275"/>
 </g>
-<!-- Node130&#45;&gt;Node94 -->
-<g id="edge57" class="edge">
-<title>Node130&#45;&gt;Node94</title>
-<path fill="none" stroke="#191970" d="M982.5964,-455.8331C996.3676,-438.612 1018.4883,-412.0216 1039.7941,-391 1072.8076,-358.4267 1082.4363,-351.4829 1119.7941,-324 1143.6275,-306.4665 1154.5136,-308.5572 1175.7941,-288 1246.5026,-219.6944 1304.2435,-113.4153 1320.925,-81.1248"/>
-<polygon fill="#191970" stroke="#191970" points="979.6684,-453.8928 976.2045,-463.9054 985.1563,-458.2382 979.6684,-453.8928"/>
+<!-- Node125&#45;&gt;Node87 -->
+<g id="edge36" class="edge">
+<title>Node125&#45;&gt;Node87</title>
+<path fill="none" stroke="#191970" d="M2130.7158,-187.003C2111.2438,-155.2676 2067.1185,-90.5351 2012.5,-56 1983.1422,-37.4372 1946.2814,-26.2608 1914.6638,-19.5844"/>
+<polygon fill="#191970" stroke="#191970" points="2127.8031,-188.9512 2135.9517,-195.7225 2133.8043,-185.3476 2127.8031,-188.9512"/>
 </g>
-<!-- Node131 -->
-<g id="node32" class="node">
-<title>Node131</title>
-<g id="a_node32"><a xlink:href="tir_2function_8h.html" target="_top" xlink:title="TIR Function. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="192.7941,-263 192.7941,-282 332.7941,-282 332.7941,-263 192.7941,-263"/>
-<text text-anchor="middle" x="262.7941" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/function.h</text>
-</a>
+<!-- Node127&#45;&gt;Node24 -->
+<g id="edge40" class="edge">
+<title>Node127&#45;&gt;Node24</title>
+<path fill="none" stroke="#191970" d="M849.005,-319.9863C846.7738,-307.5286 843.9792,-291.9258 842.2161,-282.0817"/>
+<polygon fill="#191970" stroke="#191970" points="845.5724,-320.6742 850.7807,-329.9005 852.4628,-319.4401 845.5724,-320.6742"/>
 </g>
+<!-- Node128&#45;&gt;Node42 -->
+<g id="edge45" class="edge">
+<title>Node128&#45;&gt;Node42</title>
+<path fill="none" stroke="#191970" d="M1123.3781,-247.348C1128.2232,-205.0061 1137.8629,-120.7637 1141.7826,-86.5088"/>
+<polygon fill="#191970" stroke="#191970" points="1119.8884,-247.0592 1122.2287,-257.3923 1126.843,-247.8551 1119.8884,-247.0592"/>
 </g>
-<!-- Node130&#45;&gt;Node131 -->
+<!-- Node133&#45;&gt;Node21 -->
 <g id="edge58" class="edge">
-<title>Node130&#45;&gt;Node131</title>
-<path fill="none" stroke="#191970" d="M890.4352,-464.2415C745.4413,-446.1845 441.524,-403.7389 347.7941,-355 312.9451,-336.8788 282.7816,-299.8737 269.7108,-282.2503"/>
-<polygon fill="#191970" stroke="#191970" points="890.2407,-467.7441 900.595,-465.4992 891.1008,-460.7971 890.2407,-467.7441"/>
+<title>Node133&#45;&gt;Node21</title>
+<path fill="none" stroke="#191970" d="M1161.5106,-448.6895C1135.4378,-437.0701 1098.8398,-420.7601 1075.9111,-410.5419"/>
+<polygon fill="#191970" stroke="#191970" points="1160.3787,-452.0169 1170.9375,-452.8906 1163.2282,-445.6231 1160.3787,-452.0169"/>
 </g>
-<!-- Node131&#45;&gt;Node22 -->
+<!-- Node133&#45;&gt;Node97 -->
 <g id="edge59" class="edge">
-<title>Node131&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M241.7613,-256.0099C231.595,-246.8358 220.2288,-234.546 213.7941,-221 192.352,-175.8614 192.3291,-114.858 193.6997,-86.7897"/>
-<polygon fill="#191970" stroke="#191970" points="239.6658,-258.8232 249.5401,-262.6638 244.216,-253.5038 239.6658,-258.8232"/>
+<title>Node133&#45;&gt;Node97</title>
+<path fill="none" stroke="#191970" d="M1223.7746,-448.7219C1285.78,-421.3327 1419.0755,-362.0616 1427.5,-355 1461.6552,-326.3705 1484.5,-317.0671 1484.5,-272.5 1484.5,-272.5 1484.5,-272.5 1484.5,-205.5 1484.5,-165.3146 1491.109,-149.2917 1521.5,-123 1540.9575,-106.167 1604.9841,-90.553 1651.3739,-81.0297"/>
+<polygon fill="#191970" stroke="#191970" points="1222.2002,-445.591 1214.4652,-452.8311 1225.027,-451.9949 1222.2002,-445.591"/>
 </g>
-<!-- Node131&#45;&gt;Node62 -->
-<g id="edge60" class="edge">
-<title>Node131&#45;&gt;Node62</title>
-<path fill="none" stroke="#191970" d="M306.1786,-260.0779C351.6168,-247.0678 422.0032,-226.9145 463.3298,-215.0817"/>
-<polygon fill="#191970" stroke="#191970" points="304.9708,-256.783 296.3205,-262.9005 306.8977,-263.5126 304.9708,-256.783"/>
+<!-- Node134 -->
+<g id="node33" class="node">
+<title>Node134</title>
+<g id="a_node33"><a xlink:href="tir_2function_8h.html" target="_top" xlink:title="TIR Function. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="260.5,-263 260.5,-282 400.5,-282 400.5,-263 260.5,-263"/>
+<text text-anchor="middle" x="330.5" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/function.h</text>
+</a>
 </g>
-<!-- Node131&#45;&gt;Node78 -->
-<g id="edge62" class="edge">
-<title>Node131&#45;&gt;Node78</title>
-<path fill="none" stroke="#191970" d="M272.3154,-253.7374C278.6972,-241.1614 286.8353,-225.1246 291.9317,-215.0817"/>
-<polygon fill="#191970" stroke="#191970" points="269.0696,-252.3992 267.6654,-262.9005 275.3119,-255.5669 269.0696,-252.3992"/>
 </g>
-<!-- Node131&#45;&gt;Node127 -->
-<g id="edge61" class="edge">
-<title>Node131&#45;&gt;Node127</title>
-<path fill="none" stroke="#191970" d="M230.0071,-259.0231C202.8991,-247.8806 164.4336,-232.0696 136.3395,-220.5218"/>
-<polygon fill="#191970" stroke="#191970" points="228.8603,-262.3359 239.4401,-262.9005 231.5216,-255.8615 228.8603,-262.3359"/>
+<!-- Node133&#45;&gt;Node134 -->
+<g id="edge60" class="edge">
+<title>Node133&#45;&gt;Node134</title>
+<path fill="none" stroke="#191970" d="M1135.7703,-450.9784C1128.9432,-449.622 1122.0665,-448.2698 1115.5,-447 895.3736,-404.432 837.7627,-406.2741 619.5,-355 524.0051,-332.5664 412.9087,-298.5894 360.6266,-282.1219"/>
+<polygon fill="#191970" stroke="#191970" points="1135.2036,-454.4343 1145.6953,-452.9596 1136.574,-447.5697 1135.2036,-454.4343"/>
 </g>
-<!-- Node134&#45;&gt;Node20 -->
-<g id="edge66" class="edge">
-<title>Node134&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M1934.3655,-659.6201C1794.5938,-651.5066 1483.6802,-631.8486 1378.7941,-612 1299.5222,-596.9986 1209.0684,-565.762 1166.0671,-550.0133"/>
-<polygon fill="#191970" stroke="#191970" points="1934.3462,-663.1247 1944.5314,-660.2073 1934.75,-656.1364 1934.3462,-663.1247"/>
+<!-- Node134&#45;&gt;Node22 -->
+<g id="edge61" class="edge">
+<title>Node134&#45;&gt;Node22</title>
+<path fill="none" stroke="#191970" d="M254.0381,-260.9661C198.7734,-249.2754 138.5241,-227.4476 167.5,-190 216.9695,-126.0671 461.5185,-90.3044 571.1573,-77.2571"/>
+<polygon fill="#191970" stroke="#191970" points="253.4231,-264.4125 263.9183,-262.9635 254.8102,-257.5513 253.4231,-264.4125"/>
 </g>
-<!-- Node134&#45;&gt;Node21 -->
-<g id="edge100" class="edge">
-<title>Node134&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1934.3453,-661.0308C1727.7981,-652.9387 1128.4019,-623.7527 1075.7941,-556 1058.3563,-533.5422 1096.5457,-445.7544 1110.1884,-416.2407"/>
-<polygon fill="#191970" stroke="#191970" points="1934.3376,-664.5331 1944.4655,-661.4227 1934.6085,-657.5383 1934.3376,-664.5331"/>
+<!-- Node134&#45;&gt;Node65 -->
+<g id="edge62" class="edge">
+<title>Node134&#45;&gt;Node65</title>
+<path fill="none" stroke="#191970" d="M378.9744,-260.5596C431.6757,-247.578 514.8637,-227.0869 563.511,-215.1039"/>
+<polygon fill="#191970" stroke="#191970" points="378.0547,-257.1814 369.1821,-262.9717 379.729,-263.9783 378.0547,-257.1814"/>
 </g>
-<!-- Node134&#45;&gt;Node79 -->
-<g id="edge103" class="edge">
-<title>Node134&#45;&gt;Node79</title>
-<path fill="none" stroke="#191970" d="M2022.2684,-646.7857C2048.3776,-621.0288 2090.8821,-569.9056 2071.7941,-525 2022.7398,-409.5974 1892.2356,-321.3483 1836.0853,-287.5271"/>
-<polygon fill="#191970" stroke="#191970" points="2019.5988,-644.4952 2014.7782,-653.9298 2024.4301,-649.5605 2019.5988,-644.4952"/>
+<!-- Node134&#45;&gt;Node81 -->
+<g id="edge64" class="edge">
+<title>Node134&#45;&gt;Node81</title>
+<path fill="none" stroke="#191970" d="M311.1558,-256.2992C295.7694,-243.4131 274.7635,-225.8207 261.9408,-215.0817"/>
+<polygon fill="#191970" stroke="#191970" points="309.1242,-259.1631 319.038,-262.9005 313.6187,-253.7965 309.1242,-259.1631"/>
 </g>
-<!-- Node134&#45;&gt;Node80 -->
-<g id="edge101" class="edge">
-<title>Node134&#45;&gt;Node80</title>
-<path fill="none" stroke="#191970" d="M1991.1422,-645.5355C1953.3482,-591.761 1838.2377,-427.1782 1746.7941,-288 1729.688,-261.9644 1710.3086,-230.7353 1700.7608,-215.2285"/>
-<polygon fill="#191970" stroke="#191970" points="1988.2897,-647.5636 1996.9057,-653.7293 1994.0152,-643.5363 1988.2897,-647.5636"/>
+<!-- Node134&#45;&gt;Node130 -->
+<g id="edge63" class="edge">
+<title>Node134&#45;&gt;Node130</title>
+<path fill="none" stroke="#191970" d="M349.6,-256.3012C362.4411,-245.4107 379.2466,-231.1579 391.7878,-220.5218"/>
+<polygon fill="#191970" stroke="#191970" points="347.1815,-253.7631 341.8188,-262.9005 351.7092,-259.1017 347.1815,-253.7631"/>
 </g>
-<!-- Node134&#45;&gt;Node100 -->
-<g id="edge107" class="edge">
-<title>Node134&#45;&gt;Node100</title>
-<path fill="none" stroke="#191970" d="M2073.0187,-658.6571C2137.3223,-652.6321 2235.0313,-639.5519 2315.7941,-612 2365.4795,-595.05 2386.6427,-596.7055 2419.7941,-556 2504.2526,-452.2958 2508.09,-379.2283 2453.7941,-257 2439.1304,-223.9899 2436.8921,-211.4008 2407.7941,-190 2375.2866,-166.0918 2331.481,-153.1252 2296.8909,-146.1843"/>
-<polygon fill="#191970" stroke="#191970" points="2072.6366,-655.1773 2062.9929,-659.5646 2073.2678,-662.1488 2072.6366,-655.1773"/>
+<!-- Node137&#45;&gt;Node20 -->
+<g id="edge68" class="edge">
+<title>Node137&#45;&gt;Node20</title>
+<path fill="none" stroke="#191970" d="M2078.4954,-637.8277C2033.3086,-612.3324 1941.4973,-560.5306 1903.5266,-539.1068"/>
+<polygon fill="#191970" stroke="#191970" points="2076.9646,-640.9826 2087.3939,-642.8484 2080.4045,-634.8861 2076.9646,-640.9826"/>
 </g>
-<!-- Node134&#45;&gt;Node121 -->
-<g id="edge104" class="edge">
-<title>Node134&#45;&gt;Node121</title>
-<path fill="none" stroke="#191970" d="M2073.0034,-653.1826C2174.0211,-636.7688 2354.8471,-601.8252 2400.7941,-556 2408.9912,-547.8246 2454.2526,-366.4741 2455.7941,-355 2457.6286,-341.3449 2462.0651,-336.2679 2455.7941,-324 2426.6156,-266.9183 2355.6923,-230.9994 2317.372,-215.0794"/>
-<polygon fill="#191970" stroke="#191970" points="2072.2048,-649.7659 2062.8866,-654.8079 2073.3152,-656.6773 2072.2048,-649.7659"/>
+<!-- Node137&#45;&gt;Node21 -->
+<g id="edge102" class="edge">
+<title>Node137&#45;&gt;Node21</title>
+<path fill="none" stroke="#191970" d="M2035.1373,-649.7287C1846.582,-641.9897 1333.7637,-619.502 1259.5,-601 1131.546,-569.1217 1060.8436,-588.8988 989.5,-478 982.0458,-466.4129 983.1687,-459.2369 989.5,-447 998.2669,-430.0555 1016.4702,-418.0122 1031.3888,-410.5099"/>
+<polygon fill="#191970" stroke="#191970" points="2035.076,-653.229 2045.2108,-650.1407 2035.3622,-646.2348 2035.076,-653.229"/>
 </g>
-<!-- Node134&#45;&gt;Node122 -->
+<!-- Node137&#45;&gt;Node82 -->
 <g id="edge105" class="edge">
-<title>Node134&#45;&gt;Node122</title>
-<path fill="none" stroke="#191970" d="M2031.1567,-648.5995C2045.175,-639.6807 2061.4296,-627.135 2071.7941,-612 2094.0077,-579.5619 2096.2462,-563.3958 2087.7941,-525 2069.2548,-440.7816 1960.8842,-285.1231 1930.7941,-257 1910.3437,-237.8864 1881.4531,-223.6602 1860.7164,-215.0585"/>
-<polygon fill="#191970" stroke="#191970" points="2029.0956,-645.7557 2022.352,-653.9273 2032.7196,-651.7446 2029.0956,-645.7557"/>
+<title>Node137&#45;&gt;Node82</title>
+<path fill="none" stroke="#191970" d="M2111.0794,-633.1138C2113.9813,-623.5663 2117.0569,-611.8098 2118.5,-601 2123.6166,-562.6734 2126.6557,-551.7968 2118.5,-514 2098.47,-421.1734 2034.4177,-324.0934 2008.5206,-287.5712"/>
+<polygon fill="#191970" stroke="#191970" points="2107.6984,-632.1951 2107.9731,-642.7863 2114.3632,-634.3354 2107.6984,-632.1951"/>
 </g>
-<!-- Node134&#45;&gt;Node123 -->
-<g id="edge106" class="edge">
-<title>Node134&#45;&gt;Node123</title>
-<path fill="none" stroke="#191970" d="M2053.943,-651.3711C2089.3022,-641.6869 2132.1789,-627.2533 2142.7941,-612 2234.2477,-480.5872 2145.8666,-263.5011 2124.2831,-215.2146"/>
-<polygon fill="#191970" stroke="#191970" points="2052.9601,-648.0109 2044.2023,-653.9734 2054.7668,-654.7737 2052.9601,-648.0109"/>
+<!-- Node137&#45;&gt;Node83 -->
+<g id="edge103" class="edge">
+<title>Node137&#45;&gt;Node83</title>
+<path fill="none" stroke="#191970" d="M2105.1084,-632.6091C2105.2312,-604.859 2102.7858,-553.4929 2085.5,-514 2025.1354,-376.0845 1884.6033,-250.3151 1843.1859,-215.1956"/>
+<polygon fill="#191970" stroke="#191970" points="2101.6032,-632.8951 2104.9343,-642.9526 2108.6022,-633.0129 2101.6032,-632.8951"/>
 </g>
-<!-- Node135 -->
-<g id="node34" class="node">
-<title>Node135</title>
-<g id="a_node34"><a xlink:href="affine__type_8h.html" target="_top" xlink:title="Quantized Tensor Types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1773.2941,-525.5 1773.2941,-555.5 1888.2941,-555.5 1888.2941,-525.5 1773.2941,-525.5"/>
-<text text-anchor="start" x="1781.2941" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/affine</text>
-<text text-anchor="middle" x="1830.7941" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_type.h</text>
-</a>
+<!-- Node137&#45;&gt;Node103 -->
+<g id="edge109" class="edge">
+<title>Node137&#45;&gt;Node103</title>
+<path fill="none" stroke="#191970" d="M2173.9155,-642.1818C2274.6634,-625.2218 2449.5,-587.4423 2449.5,-529.5 2449.5,-529.5 2449.5,-529.5 2449.5,-272.5 2449.5,-231.555 2442.1749,-213.2916 2408.5,-190 2371.8132,-164.6252 2079.7552,-147.4072 1954.845,-141.1342"/>
+<polygon fill="#191970" stroke="#191970" points="2173.1015,-638.7689 2163.8076,-643.8555 2174.2451,-645.6748 2173.1015,-638.7689"/>
 </g>
+<!-- Node137&#45;&gt;Node124 -->
+<g id="edge106" class="edge">
+<title>Node137&#45;&gt;Node124</title>
+<path fill="none" stroke="#191970" d="M2173.0821,-640.8949C2211.0221,-632.8494 2258.2851,-620.087 2297.5,-601 2345.0151,-577.8731 2392.5,-582.3445 2392.5,-529.5 2392.5,-529.5 2392.5,-529.5 2392.5,-462.5 2392.5,-361.2237 2331.1356,-248.7882 2311.4799,-215.3714"/>
+<polygon fill="#191970" stroke="#191970" points="2172.2358,-637.4957 2163.1468,-642.9399 2173.6471,-644.3519 2172.2358,-637.4957"/>
 </g>
-<!-- Node134&#45;&gt;Node135 -->
-<g id="edge67" class="edge">
-<title>Node134&#45;&gt;Node135</title>
-<path fill="none" stroke="#191970" d="M1970.9103,-649.8795C1950.4082,-640.6431 1923.9882,-627.3469 1902.7941,-612 1879.6792,-595.2623 1856.9865,-571.0759 1843.4381,-555.5708"/>
-<polygon fill="#191970" stroke="#191970" points="1969.5992,-653.1265 1980.1616,-653.9544 1972.4209,-646.7204 1969.5992,-653.1265"/>
+<!-- Node137&#45;&gt;Node125 -->
+<g id="edge107" class="edge">
+<title>Node137&#45;&gt;Node125</title>
+<path fill="none" stroke="#191970" d="M2149.7974,-640.1921C2221.8461,-619.2617 2354.5,-574.6013 2354.5,-529.5 2354.5,-529.5 2354.5,-529.5 2354.5,-462.5 2354.5,-340.225 2209.8013,-244.9232 2158.9307,-215.1968"/>
+<polygon fill="#191970" stroke="#191970" points="2148.7016,-636.8652 2140.0534,-642.9855 2150.6307,-643.5941 2148.7016,-636.8652"/>
 </g>
-<!-- Node136 -->
+<!-- Node137&#45;&gt;Node126 -->
+<g id="edge108" class="edge">
+<title>Node137&#45;&gt;Node126</title>
+<path fill="none" stroke="#191970" d="M2123.0765,-635.9947C2145.5757,-614.0855 2180.5,-573.0612 2180.5,-529.5 2180.5,-529.5 2180.5,-529.5 2180.5,-401 2180.5,-303.1539 2056.5895,-238.4368 2003.3467,-215.145"/>
+<polygon fill="#191970" stroke="#191970" points="2120.6001,-633.519 2115.7141,-642.9199 2125.3962,-638.6178 2120.6001,-633.519"/>
+</g>
+<!-- Node138 -->
 <g id="node35" class="node">
-<title>Node136</title>
-<g id="a_node35"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1387.2941,-592.5 1387.2941,-611.5 1504.2941,-611.5 1504.2941,-592.5 1387.2941,-592.5"/>
-<text text-anchor="middle" x="1445.7941" y="-599.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/expr.h</text>
+<title>Node138</title>
+<g id="a_node35"><a xlink:href="affine__type_8h.html" target="_top" xlink:title="Quantized Tensor Types. ">
+<polygon fill="#ffffff" stroke="#000000" points="1961,-514.5 1961,-544.5 2076,-544.5 2076,-514.5 1961,-514.5"/>
+<text text-anchor="start" x="1969" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/affine</text>
+<text text-anchor="middle" x="2018.5" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_type.h</text>
 </a>
 </g>
 </g>
-<!-- Node134&#45;&gt;Node136 -->
-<g id="edge68" class="edge">
-<title>Node134&#45;&gt;Node136</title>
-<path fill="none" stroke="#191970" d="M1934.5312,-655.8662C1823.6167,-643.6417 1608.113,-619.89 1504.3741,-608.4564"/>
-<polygon fill="#191970" stroke="#191970" points="1934.2833,-659.36 1944.6066,-656.9766 1935.0502,-652.4021 1934.2833,-659.36"/>
+<!-- Node137&#45;&gt;Node138 -->
+<g id="edge69" class="edge">
+<title>Node137&#45;&gt;Node138</title>
+<path fill="none" stroke="#191970" d="M2091.9446,-634.5429C2074.9895,-610.2931 2045.068,-567.4985 2029.1532,-544.7365"/>
+<polygon fill="#191970" stroke="#191970" points="2089.1531,-636.6585 2097.7517,-642.8484 2094.8899,-632.6474 2089.1531,-636.6585"/>
 </g>
-<!-- Node154 -->
-<g id="node37" class="node">
-<title>Node154</title>
-<g id="a_node37"><a xlink:href="tensor__type_8h.html" target="_top" xlink:title="Polymorphic tensor types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1944.7941,-525.5 1944.7941,-555.5 2062.7941,-555.5 2062.7941,-525.5 1944.7941,-525.5"/>
-<text text-anchor="start" x="1952.7941" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/tensor</text>
-<text text-anchor="middle" x="2003.7941" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_type.h</text>
+<!-- Node139 -->
+<g id="node36" class="node">
+<title>Node139</title>
+<g id="a_node36"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1268,-581.5 1268,-600.5 1385,-600.5 1385,-581.5 1268,-581.5"/>
+<text text-anchor="middle" x="1326.5" y="-588.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/expr.h</text>
 </a>
 </g>
 </g>
-<!-- Node134&#45;&gt;Node154 -->
-<g id="edge102" class="edge">
-<title>Node134&#45;&gt;Node154</title>
-<path fill="none" stroke="#191970" d="M2003.7941,-643.5818C2003.7941,-619.0448 2003.7941,-577.8968 2003.7941,-555.7365"/>
-<polygon fill="#191970" stroke="#191970" points="2000.2942,-643.8484 2003.7941,-653.8484 2007.2942,-643.8484 2000.2942,-643.8484"/>
+<!-- Node137&#45;&gt;Node139 -->
+<g id="edge70" class="edge">
+<title>Node137&#45;&gt;Node139</title>
+<path fill="none" stroke="#191970" d="M2035.2929,-647.0293C1884.0675,-635.0751 1526.4127,-606.8029 1385.2595,-595.6449"/>
+<polygon fill="#191970" stroke="#191970" points="2035.1402,-650.528 2045.385,-647.827 2035.6919,-643.5498 2035.1402,-650.528"/>
 </g>
-<!-- Node136&#45;&gt;Node20 -->
-<g id="edge69" class="edge">
-<title>Node136&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M1385.1772,-590.5593C1337.6725,-581.4908 1269.9418,-568.3355 1210.7941,-556 1201.7772,-554.1195 1192.1242,-552.031 1182.9562,-550.0119"/>
-<polygon fill="#191970" stroke="#191970" points="1384.8177,-594.0537 1395.2961,-592.4876 1386.1281,-587.1774 1384.8177,-594.0537"/>
+<!-- Node157 -->
+<g id="node38" class="node">
+<title>Node157</title>
+<g id="a_node38"><a xlink:href="tensor__type_8h.html" target="_top" xlink:title="Polymorphic tensor types. ">
+<polygon fill="#ffffff" stroke="#000000" points="2208.5,-514.5 2208.5,-544.5 2326.5,-544.5 2326.5,-514.5 2208.5,-514.5"/>
+<text text-anchor="start" x="2216.5" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/tensor</text>
+<text text-anchor="middle" x="2267.5" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_type.h</text>
+</a>
 </g>
-<!-- Node136&#45;&gt;Node21 -->
-<g id="edge81" class="edge">
-<title>Node136&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1429.238,-584.5762C1412.7347,-567.866 1386.1194,-542.6404 1359.7941,-525 1285.2168,-475.0264 1186.3838,-433.9575 1140.38,-416.103"/>
-<polygon fill="#191970" stroke="#191970" points="1427.0008,-587.2959 1436.4818,-592.0248 1432.0191,-582.4157 1427.0008,-587.2959"/>
 </g>
-<!-- Node136&#45;&gt;Node28 -->
-<g id="edge88" class="edge">
-<title>Node136&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M1397.4163,-589.5591C1371.885,-581.8883 1340.5916,-570.6866 1314.7941,-556 1296.1503,-545.386 1297.5938,-533.2593 1277.7941,-525 1198.2843,-491.8334 956.6349,-545.7229 891.7941,-489 863.4744,-464.226 872.7941,-444.1265 872.7941,-406.5 872.7941,-406.5 872.7941,-406.5 872.7941,-272.5 872.7941,-229.4618 872.7941,-178.6482 872.7941,-153.7729"/>
-<polygon fill="#191970" stroke="#191970" points="1396.6728,-592.988 1407.2527,-592.4271 1398.6322,-586.2678 1396.6728,-592.988"/>
+<!-- Node137&#45;&gt;Node157 -->
+<g id="edge104" class="edge">
+<title>Node137&#45;&gt;Node157</title>
+<path fill="none" stroke="#191970" d="M2133.3526,-638.4069C2151.609,-628.9159 2175.3016,-615.5155 2194.5,-601 2217.2825,-583.7746 2240.282,-559.9356 2254.2147,-544.6148"/>
+<polygon fill="#191970" stroke="#191970" points="2131.6703,-635.3359 2124.3538,-642.9989 2134.852,-641.5711 2131.6703,-635.3359"/>
 </g>
-<!-- Node136&#45;&gt;Node80 -->
-<g id="edge82" class="edge">
-<title>Node136&#45;&gt;Node80</title>
-<path fill="none" stroke="#191970" d="M1470.7797,-586.8373C1482.7054,-578.7394 1496.5678,-567.977 1506.7941,-556 1604.5254,-441.5368 1593.5307,-389.0274 1665.7941,-257 1673.7751,-242.4184 1683.2682,-225.6683 1689.1637,-215.3336"/>
-<polygon fill="#191970" stroke="#191970" points="1468.5886,-584.088 1462.1299,-592.4865 1472.4163,-589.9488 1468.5886,-584.088"/>
+<!-- Node139&#45;&gt;Node20 -->
+<g id="edge71" class="edge">
+<title>Node139&#45;&gt;Node20</title>
+<path fill="none" stroke="#191970" d="M1395.6967,-584.733C1525.8776,-572.9108 1796.0569,-548.2102 1816.5,-545 1826.5831,-543.4167 1837.3887,-541.2573 1847.4195,-539.0535"/>
+<polygon fill="#191970" stroke="#191970" points="1395.0786,-581.2746 1385.436,-585.6644 1395.7116,-588.2459 1395.0786,-581.2746"/>
 </g>
-<!-- Node136&#45;&gt;Node81 -->
-<g id="edge86" class="edge">
-<title>Node136&#45;&gt;Node81</title>
-<path fill="none" stroke="#191970" d="M1452.2614,-582.9217C1459.4301,-560.6825 1470.542,-522.6735 1474.7941,-489 1483.5113,-419.9649 1442.9594,-197.7715 1433.66,-148.3168"/>
-<polygon fill="#191970" stroke="#191970" points="1448.9159,-581.891 1449.1063,-592.4842 1455.5634,-584.0844 1448.9159,-581.891"/>
+<!-- Node139&#45;&gt;Node21 -->
+<g id="edge83" class="edge">
+<title>Node139&#45;&gt;Node21</title>
+<path fill="none" stroke="#191970" d="M1324.4965,-571.0034C1320.2391,-539.6038 1307.3381,-479.0217 1269.5,-447 1247.3555,-428.2595 1175.7117,-415.5566 1121.1558,-408.3283"/>
+<polygon fill="#191970" stroke="#191970" points="1321.0461,-571.6284 1325.7041,-581.1444 1327.997,-570.8006 1321.0461,-571.6284"/>
 </g>
-<!-- Node136&#45;&gt;Node100 -->
-<g id="edge99" class="edge">
-<title>Node136&#45;&gt;Node100</title>
-<path fill="none" stroke="#191970" d="M1514.7362,-600.2866C1718.9615,-594.972 2308.7658,-577.8054 2343.7941,-556 2392.3953,-525.7453 2470.5546,-379.3133 2455.7941,-324 2438.0842,-257.6345 2431.187,-234.4185 2378.7941,-190 2353.4366,-168.5021 2318.2462,-155.5575 2289.7486,-148.023"/>
-<polygon fill="#191970" stroke="#191970" points="1514.3443,-596.7955 1504.4382,-600.553 1514.5254,-603.7931 1514.3443,-596.7955"/>
+<!-- Node139&#45;&gt;Node30 -->
+<g id="edge90" class="edge">
+<title>Node139&#45;&gt;Node30</title>
+<path fill="none" stroke="#191970" d="M1281.0174,-578.7355C1160.2121,-545.0813 836.9416,-447.6219 784.5,-355 735.7614,-268.9184 894.7868,-319.6967 921.5,-288 954.0714,-249.3523 944.7424,-183.4252 938.3132,-153.7586"/>
+<polygon fill="#191970" stroke="#191970" points="1280.1439,-582.1252 1290.7153,-581.421 1282.012,-575.3791 1280.1439,-582.1252"/>
 </g>
-<!-- Node136&#45;&gt;Node121 -->
-<g id="edge85" class="edge">
-<title>Node136&#45;&gt;Node121</title>
-<path fill="none" stroke="#191970" d="M1514.4361,-594.3245C1583.9293,-585.8926 1686.2066,-571.4776 1722.7941,-556 1744.1615,-546.9609 1743.9538,-535.1959 1764.7941,-525 1817.8777,-499.0293 1838.4414,-512.1977 1892.7941,-489 2054.5981,-419.9421 2104.5132,-407.3147 2233.7941,-288 2257.9825,-265.6762 2277.924,-231.6477 2286.8112,-215.1451"/>
-<polygon fill="#191970" stroke="#191970" points="1513.9445,-590.8583 1504.4326,-595.5246 1514.7783,-597.8085 1513.9445,-590.8583"/>
+<!-- Node139&#45;&gt;Node83 -->
+<g id="edge84" class="edge">
+<title>Node139&#45;&gt;Node83</title>
+<path fill="none" stroke="#191970" d="M1395.0814,-579.7817C1443.8178,-570.9631 1504.3874,-558.0297 1526.5,-545 1680.0932,-454.4962 1799.3036,-260.8254 1825.9226,-215.2479"/>
+<polygon fill="#191970" stroke="#191970" points="1394.424,-576.3437 1385.1935,-581.5444 1395.6525,-583.235 1394.424,-576.3437"/>
 </g>
-<!-- Node136&#45;&gt;Node123 -->
-<g id="edge87" class="edge">
-<title>Node136&#45;&gt;Node123</title>
-<path fill="none" stroke="#191970" d="M1514.6066,-596.9488C1564.3568,-591.4063 1632.2963,-579.8733 1687.7941,-556 1709.4364,-546.6902 1709.752,-535.5969 1730.7941,-525 1777.8706,-501.292 1795.3916,-509.868 1843.7941,-489 1900.2429,-464.6629 1918.8877,-462.8824 1964.7941,-422 2039.0154,-355.9015 2097.8954,-248.1222 2114.8516,-215.2946"/>
-<polygon fill="#191970" stroke="#191970" points="1514.1682,-593.4755 1504.5933,-598.011 1514.9067,-600.4365 1514.1682,-593.4755"/>
+<!-- Node139&#45;&gt;Node84 -->
+<g id="edge88" class="edge">
+<title>Node139&#45;&gt;Node84</title>
+<path fill="none" stroke="#191970" d="M1359.7152,-577.2958C1425.7924,-547.9647 1572.2785,-472.099 1629.5,-355 1638.7374,-336.0964 1608.0336,-187.8264 1599.5902,-148.2063"/>
+<polygon fill="#191970" stroke="#191970" points="1357.9662,-574.2401 1350.1977,-581.4444 1360.7632,-580.657 1357.9662,-574.2401"/>
 </g>
-<!-- Node136&#45;&gt;Node130 -->
-<g id="edge80" class="edge">
-<title>Node136&#45;&gt;Node130</title>
-<path fill="none" stroke="#191970" d="M1424.9571,-586.2972C1400.1104,-568.4218 1356.6647,-539.7912 1314.7941,-525 1264.9035,-507.3757 1122.6273,-489.8837 1036.8471,-480.5093"/>
-<polygon fill="#191970" stroke="#191970" points="1423.0948,-589.2714 1433.2323,-592.3507 1427.2278,-583.6217 1423.0948,-589.2714"/>
+<!-- Node139&#45;&gt;Node103 -->
+<g id="edge101" class="edge">
+<title>Node139&#45;&gt;Node103</title>
+<path fill="none" stroke="#191970" d="M1395.1193,-580.5072C1565.3756,-561.3542 1621.2827,-606.7031 1780.5,-545 1801.801,-536.745 1800.562,-523.1365 1821.5,-514 1905.4826,-477.3533 1939.8405,-513.0546 2024.5,-478 2208.8164,-401.6809 2300.2756,-397.8949 2392.5,-221 2398.8694,-208.7829 2401.7235,-200.235 2392.5,-190 2363.6374,-157.972 2078.3589,-144.5546 1954.9307,-140.2171"/>
+<polygon fill="#191970" stroke="#191970" points="1394.592,-577.0451 1385.073,-581.6968 1395.4152,-583.9966 1394.592,-577.0451"/>
 </g>
-<!-- Node136&#45;&gt;Node135 -->
-<g id="edge70" class="edge">
-<title>Node136&#45;&gt;Node135</title>
-<path fill="none" stroke="#191970" d="M1514.8342,-593.188C1578.3986,-584.7588 1675.2158,-571.1207 1758.7941,-556 1763.4494,-555.1578 1768.2632,-554.2352 1773.0922,-553.2731"/>
-<polygon fill="#191970" stroke="#191970" points="1513.9918,-589.7688 1504.5355,-594.5467 1514.9074,-596.7086 1513.9918,-589.7688"/>
+<!-- Node139&#45;&gt;Node124 -->
+<g id="edge87" class="edge">
+<title>Node139&#45;&gt;Node124</title>
+<path fill="none" stroke="#191970" d="M1395.4083,-580.4503C1549.9594,-562.4487 1600.424,-600.0794 1745.5,-545 1767.5258,-536.6377 1766.8417,-523.2726 1788.5,-514 1868.7148,-479.6573 1901.9338,-513.8197 1981.5,-478 2130.2872,-411.0179 2264.6742,-255.284 2297.7462,-215.0987"/>
+<polygon fill="#191970" stroke="#191970" points="1394.575,-577.0262 1385.0757,-581.7181 1395.4275,-583.9741 1394.575,-577.0262"/>
 </g>
-<!-- Node142 -->
-<g id="node36" class="node">
-<title>Node142</title>
-<g id="a_node36"><a xlink:href="ir_2attrs_8h.html" target="_top" xlink:title="Helpers for attribute objects. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1559.2941,-531 1559.2941,-550 1678.2941,-550 1678.2941,-531 1559.2941,-531"/>
-<text text-anchor="middle" x="1618.7941" y="-538" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/attrs.h</text>
-</a>
+<!-- Node139&#45;&gt;Node126 -->
+<g id="edge89" class="edge">
+<title>Node139&#45;&gt;Node126</title>
+<path fill="none" stroke="#191970" d="M1392.5735,-579.7258C1456.6111,-568.5315 1546.2562,-552.052 1561.5,-545 1604.8414,-524.9497 1609.1182,-508.9331 1645.5,-478 1701.2347,-430.6123 1830.295,-299.9735 1889.5,-257 1912.519,-240.2918 1941.4068,-224.5904 1960.1506,-215.0175"/>
+<polygon fill="#191970" stroke="#191970" points="1391.7822,-576.3108 1382.531,-581.4748 1392.9833,-583.207 1391.7822,-576.3108"/>
 </g>
+<!-- Node139&#45;&gt;Node133 -->
+<g id="edge82" class="edge">
+<title>Node139&#45;&gt;Node133</title>
+<path fill="none" stroke="#191970" d="M1309.2088,-574.4185C1280.8914,-547.2634 1225.4995,-494.145 1202.6887,-472.2705"/>
+<polygon fill="#191970" stroke="#191970" points="1306.7881,-576.9464 1316.4282,-581.3416 1311.6331,-571.894 1306.7881,-576.9464"/>
 </g>
-<!-- Node136&#45;&gt;Node142 -->
-<g id="edge71" class="edge">
-<title>Node136&#45;&gt;Node142</title>
-<path fill="none" stroke="#191970" d="M1482.5027,-588.9504C1515.2991,-577.2916 1562.5756,-560.4852 1591.9526,-550.0419"/>
-<polygon fill="#191970" stroke="#191970" points="1481.0753,-585.7432 1472.8253,-592.3906 1483.42,-592.3388 1481.0753,-585.7432"/>
+<!-- Node139&#45;&gt;Node138 -->
+<g id="edge72" class="edge">
+<title>Node139&#45;&gt;Node138</title>
+<path fill="none" stroke="#191970" d="M1395.5555,-589.3855C1511.1809,-585.9083 1751.0125,-575.3839 1951.5,-545 1954.5691,-544.5349 1957.706,-544.0043 1960.865,-543.4265"/>
+<polygon fill="#191970" stroke="#191970" points="1395.3237,-585.8907 1385.4303,-589.6814 1395.5283,-592.8877 1395.3237,-585.8907"/>
 </g>
-<!-- Node136&#45;&gt;Node154 -->
-<g id="edge83" class="edge">
-<title>Node136&#45;&gt;Node154</title>
-<path fill="none" stroke="#191970" d="M1514.5963,-595.9422C1603.2965,-587.9159 1762.2589,-572.7979 1897.7941,-556 1913.0213,-554.1128 1929.4428,-551.8322 1944.7073,-549.6077"/>
-<polygon fill="#191970" stroke="#191970" points="1514.0419,-592.4779 1504.3967,-596.8619 1514.6706,-599.4496 1514.0419,-592.4779"/>
+<!-- Node145 -->
+<g id="node37" class="node">
+<title>Node145</title>
+<g id="a_node37"><a xlink:href="ir_2attrs_8h.html" target="_top" xlink:title="Helpers for attribute objects. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1617,-520 1617,-539 1736,-539 1736,-520 1617,-520"/>
+<text text-anchor="middle" x="1676.5" y="-527" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/attrs.h</text>
+</a>
 </g>
-<!-- Node136&#45;&gt;Node156 -->
-<g id="edge89" class="edge">
-<title>Node136&#45;&gt;Node156</title>
-<path fill="none" stroke="#191970" d="M1376.7724,-592.7505C1337.9476,-585.8805 1289.2907,-574.4264 1248.7941,-556 1227.3498,-546.2426 1227.951,-533.0083 1205.7941,-525 1174.0163,-513.5144 699.8178,-486.5761 524.9397,-476.9748"/>
-<polygon fill="#191970" stroke="#191970" points="1376.486,-596.2522 1386.9323,-594.4842 1377.6635,-589.3519 1376.486,-596.2522"/>
 </g>
-<!-- Node136&#45;&gt;Node157 -->
-<g id="edge98" class="edge">
-<title>Node136&#45;&gt;Node157</title>
-<path fill="none" stroke="#191970" d="M1389.043,-590.1373C1357.9895,-582.5316 1319.3274,-571.2093 1286.7941,-556 1264.4605,-545.5591 1264.0076,-533.3026 1240.7941,-525 1080.2251,-467.5708 1025.5633,-524.616 858.7941,-489 774.3981,-470.976 524.0433,-379.0338 443.2437,-349.0028"/>
-<polygon fill="#191970" stroke="#191970" points="1388.3012,-593.5585 1398.8406,-592.4763 1389.9267,-586.7498 1388.3012,-593.5585"/>
+<!-- Node139&#45;&gt;Node145 -->
+<g id="edge73" class="edge">
+<title>Node139&#45;&gt;Node145</title>
+<path fill="none" stroke="#191970" d="M1395.1865,-580.3604C1451.1126,-571.5032 1532.0501,-558.2432 1602.5,-545 1612.1751,-543.1813 1622.5326,-541.0978 1632.3423,-539.0609"/>
+<polygon fill="#191970" stroke="#191970" points="1394.3748,-576.9451 1385.043,-581.962 1395.4666,-583.8595 1394.3748,-576.9451"/>
 </g>
-<!-- Node142&#45;&gt;Node79 -->
-<g id="edge74" class="edge">
-<title>Node142&#45;&gt;Node79</title>
-<path fill="none" stroke="#191970" d="M1674.9645,-527.9063C1698.1103,-520.1547 1723.5006,-507.9417 1740.7941,-489 1795.3214,-429.2758 1806.7661,-326.3729 1809.162,-287.7428"/>
-<polygon fill="#191970" stroke="#191970" points="1673.7085,-524.632 1665.2124,-530.9619 1675.8015,-531.3118 1673.7085,-524.632"/>
+<!-- Node139&#45;&gt;Node157 -->
+<g id="edge85" class="edge">
+<title>Node139&#45;&gt;Node157</title>
+<path fill="none" stroke="#191970" d="M1395.1594,-587.402C1528.3558,-580.2972 1831.1047,-563.5389 2085.5,-545 2126.4579,-542.0152 2172.5506,-538.0838 2208.1022,-534.9273"/>
+<polygon fill="#191970" stroke="#191970" points="1394.8981,-583.9108 1385.0983,-587.9375 1395.2702,-590.901 1394.8981,-583.9108"/>
 </g>
-<!-- Node142&#45;&gt;Node80 -->
-<g id="edge73" class="edge">
-<title>Node142&#45;&gt;Node80</title>
-<path fill="none" stroke="#191970" d="M1638.6228,-524.3243C1648.3892,-515.1016 1659.2375,-502.6707 1664.7941,-489 1703.6559,-393.3893 1653.6078,-358.0089 1674.7941,-257 1677.9837,-241.7926 1685.1455,-225.2088 1689.9749,-215.0805"/>
-<polygon fill="#191970" stroke="#191970" points="1636.2768,-521.7268 1631.144,-530.9953 1640.9364,-526.9506 1636.2768,-521.7268"/>
+<!-- Node139&#45;&gt;Node159 -->
+<g id="edge91" class="edge">
+<title>Node139&#45;&gt;Node159</title>
+<path fill="none" stroke="#191970" d="M1257.4299,-586.8321C1161.0431,-580.5132 980.8724,-566.8745 828.5,-545 687.9181,-524.8181 523.2195,-489.069 447.8918,-472.0369"/>
+<polygon fill="#191970" stroke="#191970" points="1257.4214,-590.3388 1267.627,-587.4937 1257.8746,-583.3535 1257.4214,-590.3388"/>
 </g>
-<!-- Node142&#45;&gt;Node81 -->
-<g id="edge77" class="edge">
-<title>Node142&#45;&gt;Node81</title>
-<path fill="none" stroke="#191970" d="M1610.1291,-521.8727C1577.2225,-451.1322 1460.6281,-200.4856 1436.2736,-148.1298"/>
-<polygon fill="#191970" stroke="#191970" points="1606.9647,-523.3686 1614.356,-530.9594 1613.3117,-520.4161 1606.9647,-523.3686"/>
+<!-- Node139&#45;&gt;Node160 -->
+<g id="edge100" class="edge">
+<title>Node139&#45;&gt;Node160</title>
+<path fill="none" stroke="#191970" d="M1257.4477,-586.8232C1147.6772,-579.7241 938.431,-564.1904 866.5,-545 684.1943,-496.3629 482.6737,-383.0145 424.8259,-349.1938"/>
+<polygon fill="#191970" stroke="#191970" points="1257.5487,-590.3367 1267.7521,-587.4837 1257.9965,-583.3511 1257.5487,-590.3367"/>
+</g>
+<!-- Node145&#45;&gt;Node82 -->
+<g id="edge76" class="edge">
+<title>Node145&#45;&gt;Node82</title>
+<path fill="none" stroke="#191970" d="M1730.6334,-517.8028C1792.0141,-504.3419 1884.4273,-483.3935 1890.5,-478 1945.0675,-429.5355 1908.5748,-385.7353 1947.5,-324 1956.1404,-310.2964 1968.899,-297.23 1979.3652,-287.6875"/>
+<polygon fill="#191970" stroke="#191970" points="1729.7122,-514.4214 1720.691,-519.9773 1731.2079,-521.2598 1729.7122,-514.4214"/>
 </g>
-<!-- Node142&#45;&gt;Node83 -->
+<!-- Node145&#45;&gt;Node83 -->
 <g id="edge75" class="edge">
-<title>Node142&#45;&gt;Node83</title>
-<path fill="none" stroke="#191970" d="M1614.4383,-521.0932C1603.0908,-465.9655 1577.1324,-304.9925 1631.7941,-190 1656.8307,-137.3301 1717.3243,-98.3779 1748.1153,-81.2065"/>
-<polygon fill="#191970" stroke="#191970" points="1611.0283,-521.8847 1616.5444,-530.9303 1617.8732,-520.4191 1611.0283,-521.8847"/>
+<title>Node145&#45;&gt;Node83</title>
+<path fill="none" stroke="#191970" d="M1725.3637,-517.3179C1760.4537,-507.5047 1803.4328,-492.9279 1814.5,-478 1876.6061,-394.2288 1844.5223,-253.1912 1834.2705,-215.181"/>
+<polygon fill="#191970" stroke="#191970" points="1724.4328,-513.9438 1715.7088,-519.9557 1726.2777,-520.6964 1724.4328,-513.9438"/>
 </g>
-<!-- Node142&#45;&gt;Node121 -->
-<g id="edge76" class="edge">
-<title>Node142&#45;&gt;Node121</title>
-<path fill="none" stroke="#191970" d="M1675.3692,-528.5793C1712.4159,-519.8298 1761.4461,-506.4404 1802.7941,-489 1853.9929,-467.4045 2197.388,-262.0962 2275.8499,-215.0658"/>
-<polygon fill="#191970" stroke="#191970" points="1674.2058,-525.2561 1665.2543,-530.9236 1675.7863,-532.0753 1674.2058,-525.2561"/>
+<!-- Node145&#45;&gt;Node84 -->
+<g id="edge79" class="edge">
+<title>Node145&#45;&gt;Node84</title>
+<path fill="none" stroke="#191970" d="M1676.9061,-509.5951C1677.273,-472.6213 1676.2599,-391.0092 1662.5,-324 1648.2227,-254.4713 1614.2359,-175.4677 1601.9927,-148.2858"/>
+<polygon fill="#191970" stroke="#191970" points="1673.4012,-509.9053 1676.7529,-519.956 1680.4004,-510.0089 1673.4012,-509.9053"/>
+</g>
+<!-- Node145&#45;&gt;Node86 -->
+<g id="edge77" class="edge">
+<title>Node145&#45;&gt;Node86</title>
+<path fill="none" stroke="#191970" d="M1681.4735,-510.0871C1699.4279,-440.1509 1760.2744,-204.452 1768.5,-190 1789.0225,-153.9429 1799.9341,-147.3848 1833.5,-123 1858.4685,-104.861 1890.8035,-90.1063 1912.9549,-81.1118"/>
+<polygon fill="#191970" stroke="#191970" points="1678.0691,-509.2728 1678.9748,-519.8289 1684.8496,-511.012 1678.0691,-509.2728"/>
 </g>
-<!-- Node142&#45;&gt;Node122 -->
+<!-- Node145&#45;&gt;Node124 -->
 <g id="edge78" class="edge">
-<title>Node142&#45;&gt;Node122</title>
-<path fill="none" stroke="#191970" d="M1643.1239,-525.3246C1674.9739,-503.3609 1726.7941,-459.4844 1726.7941,-406.5 1726.7941,-406.5 1726.7941,-406.5 1726.7941,-339.5 1726.7941,-301.7713 1724.2756,-287.2717 1746.7941,-257 1761.7968,-236.8317 1787.2316,-223.1922 1806.9093,-215.0439"/>
-<polygon fill="#191970" stroke="#191970" points="1641.1039,-522.4648 1634.7298,-530.9278 1644.9903,-528.2869 1641.1039,-522.4648"/>
+<title>Node145&#45;&gt;Node124</title>
+<path fill="none" stroke="#191970" d="M1731.2047,-517.9001C1737.7035,-516.5639 1744.247,-515.2379 1750.5,-514 1836.096,-497.0546 1864.1504,-514.2969 1943.5,-478 1999.8665,-452.2163 2003.2739,-428.6665 2052.5,-391 2142.6865,-321.9916 2253.7911,-242.343 2291.9164,-215.1617"/>
+<polygon fill="#191970" stroke="#191970" points="1730.1599,-514.5421 1721.0772,-519.9969 1731.5792,-521.3967 1730.1599,-514.5421"/>
 </g>
-<!-- Node142&#45;&gt;Node123 -->
-<g id="edge79" class="edge">
-<title>Node142&#45;&gt;Node123</title>
-<path fill="none" stroke="#191970" d="M1666.8281,-528.1504C1696.4262,-519.4699 1734.5573,-506.3137 1765.7941,-489 1917.9891,-404.6425 2071.23,-254.6538 2110.287,-215.2181"/>
-<polygon fill="#191970" stroke="#191970" points="1665.7914,-524.8064 1657.1399,-530.9221 1667.7169,-531.5364 1665.7914,-524.8064"/>
+<!-- Node145&#45;&gt;Node125 -->
+<g id="edge80" class="edge">
+<title>Node145&#45;&gt;Node125</title>
+<path fill="none" stroke="#191970" d="M1731.824,-517.8359C1801.812,-503.0437 1913.559,-479.2878 1915.5,-478 1954.8513,-451.8926 1947.2027,-428.0377 1976.5,-391 2032.1184,-320.6871 2106.2827,-242.1737 2132.139,-215.2031"/>
+<polygon fill="#191970" stroke="#191970" points="1730.8795,-514.4581 1721.8189,-519.9496 1732.3264,-521.307 1730.8795,-514.4581"/>
 </g>
-<!-- Node142&#45;&gt;Node130 -->
-<g id="edge72" class="edge">
-<title>Node142&#45;&gt;Node130</title>
-<path fill="none" stroke="#191970" d="M1548.838,-533.2891C1423.2675,-520.3457 1161.1762,-493.3302 1036.9349,-480.5237"/>
-<polygon fill="#191970" stroke="#191970" points="1548.7923,-536.8029 1559.0985,-534.3468 1549.5101,-529.8398 1548.7923,-536.8029"/>
+<!-- Node145&#45;&gt;Node126 -->
+<g id="edge81" class="edge">
+<title>Node145&#45;&gt;Node126</title>
+<path fill="none" stroke="#191970" d="M1728.0084,-517.4542C1768.179,-507.2451 1819.8556,-492.0634 1836.5,-478 1865.9572,-453.1106 1876.5,-439.5644 1876.5,-401 1876.5,-401 1876.5,-401 1876.5,-339.5 1876.5,-282.5759 1935.6508,-234.9739 1964.302,-215.2555"/>
+<polygon fill="#191970" stroke="#191970" points="1726.9241,-514.1175 1718.0718,-519.9389 1728.6222,-520.9084 1726.9241,-514.1175"/>
 </g>
-<!-- Node154&#45;&gt;Node122 -->
-<g id="edge84" class="edge">
-<title>Node154&#45;&gt;Node122</title>
-<path fill="none" stroke="#191970" d="M2000.46,-515.3568C1992.4335,-462.7624 1967.9724,-339.207 1906.7941,-257 1893.0312,-238.5064 1870.6774,-224.0039 1854.5253,-215.1647"/>
-<polygon fill="#191970" stroke="#191970" points="1997.0269,-516.0707 2001.9306,-525.4624 2003.9539,-515.0626 1997.0269,-516.0707"/>
+<!-- Node145&#45;&gt;Node133 -->
+<g id="edge74" class="edge">
+<title>Node145&#45;&gt;Node133</title>
+<path fill="none" stroke="#191970" d="M1606.572,-519.8199C1514.1449,-507.0252 1352.3433,-484.6271 1260.7599,-471.9492"/>
+<polygon fill="#191970" stroke="#191970" points="1606.2812,-523.3129 1616.6667,-521.2173 1607.2411,-516.379 1606.2812,-523.3129"/>
 </g>
-<!-- Node156&#45;&gt;Node131 -->
-<g id="edge97" class="edge">
-<title>Node156&#45;&gt;Node131</title>
-<path fill="none" stroke="#191970" d="M393.2788,-462.0211C348.9622,-453.0541 296.564,-439.2348 281.7941,-422 246.5519,-380.8763 255.8803,-308.5107 260.7424,-282.3148"/>
-<polygon fill="#191970" stroke="#191970" points="392.6873,-465.4718 403.1754,-463.9717 394.041,-458.6039 392.6873,-465.4718"/>
+<!-- Node157&#45;&gt;Node125 -->
+<g id="edge86" class="edge">
+<title>Node157&#45;&gt;Node125</title>
+<path fill="none" stroke="#191970" d="M2261.4567,-504.7931C2249.0136,-455.932 2218.0856,-344.1436 2175.5,-257 2167.9736,-241.5987 2156.574,-225.3318 2149.0826,-215.2975"/>
+<polygon fill="#191970" stroke="#191970" points="2258.0635,-505.6517 2263.8945,-514.4977 2264.8526,-503.9463 2258.0635,-505.6517"/>
 </g>
-<!-- Node156&#45;&gt;Node157 -->
-<g id="edge90" class="edge">
-<title>Node156&#45;&gt;Node157</title>
-<path fill="none" stroke="#191970" d="M454.5401,-454.011C445.1767,-424.8319 427.8662,-370.8876 420.8585,-349.0496"/>
-<polygon fill="#191970" stroke="#191970" points="451.3134,-455.4107 457.7016,-463.8631 457.9787,-453.2718 451.3134,-455.4107"/>
+<!-- Node159&#45;&gt;Node134 -->
+<g id="edge99" class="edge">
+<title>Node159&#45;&gt;Node134</title>
+<path fill="none" stroke="#191970" d="M391.7153,-444.9786C375.5673,-424.7421 350.418,-389.7559 338.5,-355 329.9115,-329.9538 329.5362,-298.2919 330.0044,-282.4633"/>
+<polygon fill="#191970" stroke="#191970" points="389.1847,-447.4132 398.2207,-452.945 394.6065,-442.9856 389.1847,-447.4132"/>
 </g>
-<!-- Node157&#45;&gt;Node43 -->
+<!-- Node159&#45;&gt;Node160 -->
 <g id="edge92" class="edge">
-<title>Node157&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M412.1496,-320.28C404.5125,-290.275 394.3554,-231.4512 417.7941,-190 448.5388,-135.6279 515.3166,-103.4481 562.5813,-86.6471"/>
-<polygon fill="#191970" stroke="#191970" points="408.7771,-321.2165 414.7823,-329.9451 415.531,-319.3767 408.7771,-321.2165"/>
-</g>
-<!-- Node157&#45;&gt;Node62 -->
-<g id="edge93" class="edge">
-<title>Node157&#45;&gt;Node62</title>
-<path fill="none" stroke="#191970" d="M428.6095,-321.1548C445.6425,-292.2633 478.1193,-237.1762 491.164,-215.0496"/>
-<polygon fill="#191970" stroke="#191970" points="425.5392,-319.4711 423.4755,-329.8631 431.5693,-323.0262 425.5392,-319.4711"/>
+<title>Node159&#45;&gt;Node160</title>
+<path fill="none" stroke="#191970" d="M406.8215,-442.7305C407.2569,-415.9497 408.0173,-369.186 408.3438,-349.1068"/>
+<polygon fill="#191970" stroke="#191970" points="403.3201,-442.7928 406.6569,-452.8484 410.3192,-442.9067 403.3201,-442.7928"/>
 </g>
-<!-- Node157&#45;&gt;Node78 -->
-<g id="edge96" class="edge">
-<title>Node157&#45;&gt;Node78</title>
-<path fill="none" stroke="#191970" d="M402.2373,-322.2718C376.4428,-293.706 325.6578,-237.4648 305.4172,-215.0496"/>
-<polygon fill="#191970" stroke="#191970" points="399.7924,-324.7868 409.092,-329.8631 404.9878,-320.0954 399.7924,-324.7868"/>
+<!-- Node160&#45;&gt;Node46 -->
+<g id="edge94" class="edge">
+<title>Node160&#45;&gt;Node46</title>
+<path fill="none" stroke="#191970" d="M349.5294,-327.6489C315.7541,-319.4137 273.3023,-306.5457 238.5,-288 147.9639,-239.7546 82.6529,-127.482 61.1557,-86.6729"/>
+<polygon fill="#191970" stroke="#191970" points="348.7248,-331.0551 359.2621,-329.9532 350.3375,-324.2434 348.7248,-331.0551"/>
 </g>
-<!-- Node157&#45;&gt;Node100 -->
+<!-- Node160&#45;&gt;Node65 -->
 <g id="edge95" class="edge">
-<title>Node157&#45;&gt;Node100</title>
-<path fill="none" stroke="#191970" d="M488.9833,-332.5723C523.0834,-329.4922 564.5209,-326.0957 601.7941,-324 742.961,-316.0627 1738.209,-328.0976 1873.7941,-288 1954.1241,-264.2434 1957.5039,-222.3034 2034.7941,-190 2083.6032,-169.6002 2142.4205,-155.8886 2184.6895,-147.7769"/>
-<polygon fill="#191970" stroke="#191970" points="488.2889,-329.1211 478.6487,-333.5163 488.9257,-336.0921 488.2889,-329.1211"/>
+<title>Node160&#45;&gt;Node65</title>
+<path fill="none" stroke="#191970" d="M430.8361,-324.072C471.2816,-296.1354 555.5263,-237.9458 588.6744,-215.0496"/>
+<polygon fill="#191970" stroke="#191970" points="428.6909,-321.2999 422.452,-329.8631 432.6692,-327.0595 428.6909,-321.2999"/>
 </g>
-<!-- Node157&#45;&gt;Node122 -->
-<g id="edge91" class="edge">
-<title>Node157&#45;&gt;Node122</title>
-<path fill="none" stroke="#191970" d="M489.0202,-333.1426C523.1286,-330.1896 564.5623,-326.7354 601.7941,-324 1116.2207,-286.2051 1248.2952,-301.4618 1757.7941,-221 1768.4348,-219.3196 1779.8409,-217.2002 1790.5267,-215.0729"/>
-<polygon fill="#191970" stroke="#191970" points="488.3419,-329.6882 478.6828,-334.0415 488.9485,-336.6619 488.3419,-329.6882"/>
-</g>
-<!-- Node157&#45;&gt;Node131 -->
-<g id="edge94" class="edge">
-<title>Node157&#45;&gt;Node131</title>
-<path fill="none" stroke="#191970" d="M386.3588,-325.9118C356.2325,-312.8895 311.5298,-293.5664 284.9606,-282.0817"/>
-<polygon fill="#191970" stroke="#191970" points="385.0184,-329.1454 395.5863,-329.9005 387.7959,-322.72 385.0184,-329.1454"/>
+<!-- Node160&#45;&gt;Node81 -->
+<g id="edge98" class="edge">
+<title>Node160&#45;&gt;Node81</title>
+<path fill="none" stroke="#191970" d="M349.969,-327.7209C310.5151,-318.4645 263.5454,-304.4177 251.5,-288 235.4855,-266.1724 242.5723,-231.6072 247.3788,-215.0096"/>
+<polygon fill="#191970" stroke="#191970" points="349.2835,-331.1544 359.8119,-329.9695 350.8426,-324.3302 349.2835,-331.1544"/>
 </g>
-<!-- Node166&#45;&gt;Node142 -->
-<g id="edge109" class="edge">
-<title>Node166&#45;&gt;Node142</title>
-<path fill="none" stroke="#191970" d="M933.8376,-846.3383C1048.2464,-809.5094 1309.5016,-720.2702 1513.7941,-612 1549.4548,-593.1007 1587.787,-564.6849 1606.7486,-550.0158"/>
-<polygon fill="#191970" stroke="#191970" points="932.6672,-843.038 924.2133,-849.4241 934.8044,-849.7038 932.6672,-843.038"/>
+<!-- Node160&#45;&gt;Node103 -->
+<g id="edge97" class="edge">
+<title>Node160&#45;&gt;Node103</title>
+<path fill="none" stroke="#191970" d="M479.219,-336.276C647.1381,-328.4029 1066.1954,-307.418 1205.5,-288 1460.5793,-252.4439 1761.6672,-175.1305 1863.1282,-148.0788"/>
+<polygon fill="#191970" stroke="#191970" points="478.8326,-332.7901 469.0069,-336.7531 479.1594,-339.7825 478.8326,-332.7901"/>
 </g>
-<!-- Node167 -->
-<g id="node41" class="node">
-<title>Node167</title>
-<g id="a_node41"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="846.2941,-721 846.2941,-740 983.2941,-740 983.2941,-721 846.2941,-721"/>
-<text text-anchor="middle" x="914.7941" y="-728" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/node.h</text>
-</a>
+<!-- Node160&#45;&gt;Node125 -->
+<g id="edge93" class="edge">
+<title>Node160&#45;&gt;Node125</title>
+<path fill="none" stroke="#191970" d="M479.658,-335.6799C755.0043,-320.7008 1750.7535,-264.6514 2064.5,-221 2075.7101,-219.4403 2087.7452,-217.2627 2098.892,-215.0318"/>
+<polygon fill="#191970" stroke="#191970" points="479.1921,-332.2 469.3967,-336.2373 479.5718,-339.1897 479.1921,-332.2"/>
 </g>
+<!-- Node160&#45;&gt;Node134 -->
+<g id="edge96" class="edge">
+<title>Node160&#45;&gt;Node134</title>
+<path fill="none" stroke="#191970" d="M389.6394,-323.2992C374.6376,-310.4131 354.1569,-292.8207 341.6548,-282.0817"/>
+<polygon fill="#191970" stroke="#191970" points="387.4582,-326.0396 397.3245,-329.9005 392.0194,-320.7296 387.4582,-326.0396"/>
 </g>
-<!-- Node166&#45;&gt;Node167 -->
-<g id="edge110" class="edge">
-<title>Node166&#45;&gt;Node167</title>
-<path fill="none" stroke="#191970" d="M848.3752,-842.2751C831.4405,-825.7312 815.0086,-802.5525 826.7941,-782 838.7698,-761.1156 862.8573,-747.8863 882.8079,-740.0725"/>
-<polygon fill="#191970" stroke="#191970" points="846.3633,-845.1801 856.0918,-849.3762 851.1034,-840.0292 846.3633,-845.1801"/>
+<!-- Node169&#45;&gt;Node145 -->
+<g id="edge111" class="edge">
+<title>Node169&#45;&gt;Node145</title>
+<path fill="none" stroke="#191970" d="M868.4666,-834.5369C887.3053,-826.2835 907.9328,-815.3974 924.5,-802 996.2464,-743.9807 970.0371,-682.1608 1050.5,-637 1117.5264,-599.3807 1318.8294,-614.4801 1394.5,-601 1486.7392,-584.5683 1593.3702,-554.408 1645.1051,-539.0425"/>
+<polygon fill="#191970" stroke="#191970" points="866.9492,-831.3784 859.0996,-838.4941 869.6734,-837.8266 866.9492,-831.3784"/>
 </g>
 <!-- Node170 -->
-<g id="node43" class="node">
+<g id="node42" class="node">
 <title>Node170</title>
-<g id="a_node43"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="835.2941,-788 835.2941,-807 994.2941,-807 994.2941,-788 835.2941,-788"/>
-<text text-anchor="middle" x="914.7941" y="-795" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/reflection.h</text>
+<g id="a_node42"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="795,-710 795,-729 932,-729 932,-710 795,-710"/>
+<text text-anchor="middle" x="863.5" y="-717" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/node.h</text>
 </a>
 </g>
 </g>
-<!-- Node166&#45;&gt;Node170 -->
-<g id="edge118" class="edge">
-<title>Node166&#45;&gt;Node170</title>
-<path fill="none" stroke="#191970" d="M889.7642,-840.5001C896.4899,-828.9456 904.1725,-815.7473 909.2322,-807.055"/>
-<polygon fill="#191970" stroke="#191970" points="886.6496,-838.8934 884.6438,-849.2967 892.6994,-842.4149 886.6496,-838.8934"/>
-</g>
-<!-- Node167&#45;&gt;Node20 -->
+<!-- Node169&#45;&gt;Node170 -->
 <g id="edge112" class="edge">
-<title>Node167&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M933.9852,-714.3659C979.488,-676.1113 1092.8349,-580.8197 1129.2992,-550.1638"/>
-<polygon fill="#191970" stroke="#191970" points="931.7142,-711.7025 926.3121,-720.8167 936.2188,-717.0606 931.7142,-711.7025"/>
+<title>Node169&#45;&gt;Node170</title>
+<path fill="none" stroke="#191970" d="M775.7269,-832.7151C764.5176,-824.7271 753.6983,-814.4697 747.5,-802 741.3673,-789.6624 739.99,-782.5511 747.5,-771 761.7926,-749.0168 787.8627,-736.343 811.6727,-729.0739"/>
+<polygon fill="#191970" stroke="#191970" points="774.0313,-835.7897 784.3046,-838.3802 777.889,-829.9486 774.0313,-835.7897"/>
 </g>
-<!-- Node167&#45;&gt;Node27 -->
-<g id="edge116" class="edge">
-<title>Node167&#45;&gt;Node27</title>
-<path fill="none" stroke="#191970" d="M903.3778,-712.2745C867.4069,-654.1634 758.7941,-473.1784 758.7941,-406.5 758.7941,-406.5 758.7941,-406.5 758.7941,-339.5 758.7941,-296.4187 755.6607,-245.6242 753.9226,-220.763"/>
-<polygon fill="#191970" stroke="#191970" points="900.4248,-714.1537 908.6787,-720.7963 906.3687,-710.4563 900.4248,-714.1537"/>
+<!-- Node173 -->
+<g id="node44" class="node">
+<title>Node173</title>
+<g id="a_node44"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="756,-777 756,-796 915,-796 915,-777 756,-777"/>
+<text text-anchor="middle" x="835.5" y="-784" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/reflection.h</text>
+</a>
 </g>
-<!-- Node167&#45;&gt;Node28 -->
-<g id="edge115" class="edge">
-<title>Node167&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M892.7496,-714.4166C881.7775,-705.2521 869.2891,-692.8463 861.7941,-679 831.9398,-623.8474 834.7941,-603.2143 834.7941,-540.5 834.7941,-540.5 834.7941,-540.5 834.7941,-272.5 834.7941,-228.0065 854.4249,-178.2478 865.4673,-153.778"/>
-<polygon fill="#191970" stroke="#191970" points="890.73,-717.2822 900.7367,-720.7631 895.0848,-711.8017 890.73,-717.2822"/>
 </g>
-<!-- Node167&#45;&gt;Node134 -->
+<!-- Node169&#45;&gt;Node173 -->
+<g id="edge120" class="edge">
+<title>Node169&#45;&gt;Node173</title>
+<path fill="none" stroke="#191970" d="M822.9728,-828.4663C826.3461,-817.1655 830.1301,-804.4891 832.6478,-796.055"/>
+<polygon fill="#191970" stroke="#191970" points="819.545,-827.7133 820.0383,-838.2967 826.2525,-829.7156 819.545,-827.7133"/>
+</g>
+<!-- Node170&#45;&gt;Node20 -->
 <g id="edge114" class="edge">
-<title>Node167&#45;&gt;Node134</title>
-<path fill="none" stroke="#191970" d="M993.5476,-725.6547C1201.3351,-712.8708 1760.9948,-678.4381 1944.5754,-667.1434"/>
-<polygon fill="#191970" stroke="#191970" points="993.0946,-722.1759 983.3284,-726.2835 993.5245,-729.1627 993.0946,-722.1759"/>
+<title>Node170&#45;&gt;Node20</title>
+<path fill="none" stroke="#191970" d="M889.4901,-704.9045C924.7647,-685.837 990.3161,-653.0026 1050.5,-637 1199.0618,-597.4981 1241.847,-619.1128 1394.5,-601 1582.3818,-578.7072 1630.1874,-577.9266 1816.5,-545 1826.1832,-543.2887 1836.5561,-541.1575 1846.271,-539.0286"/>
+<polygon fill="#191970" stroke="#191970" points="887.4665,-702.0219 880.3733,-709.892 890.8262,-708.163 887.4665,-702.0219"/>
 </g>
-<!-- Node167&#45;&gt;Node136 -->
-<g id="edge113" class="edge">
-<title>Node167&#45;&gt;Node136</title>
-<path fill="none" stroke="#191970" d="M945.3694,-716.8872C987.7516,-698.554 1067.1304,-666.1411 1137.7941,-648 1223.1525,-626.0864 1324.6788,-613.4295 1387.179,-607.1255"/>
-<polygon fill="#191970" stroke="#191970" points="943.9286,-713.6971 936.1604,-720.9016 946.7259,-720.1139 943.9286,-713.6971"/>
+<!-- Node170&#45;&gt;Node29 -->
+<g id="edge118" class="edge">
+<title>Node170&#45;&gt;Node29</title>
+<path fill="none" stroke="#191970" d="M854.0557,-700.1058C845.4878,-683.0525 832.1433,-657.7818 818.5,-637 731.2613,-504.1153 650.1996,-505.32 598.5,-355 571.2222,-275.6881 692.7744,-233.8967 766.8438,-216.1447"/>
+<polygon fill="#191970" stroke="#191970" points="851.158,-702.1411 858.7331,-709.5483 857.4306,-699.0339 851.158,-702.1411"/>
 </g>
-<!-- Node167&#45;&gt;Node157 -->
+<!-- Node170&#45;&gt;Node30 -->
 <g id="edge117" class="edge">
-<title>Node167&#45;&gt;Node157</title>
-<path fill="none" stroke="#191970" d="M889.173,-715.789C872.4755,-705.9155 850.4121,-692.3224 831.7941,-679 663.6011,-558.6472 475.037,-391.0413 428.5664,-349.2366"/>
-<polygon fill="#191970" stroke="#191970" points="887.4436,-718.8322 897.8413,-720.8663 890.9815,-712.7921 887.4436,-718.8322"/>
-</g>
-<!-- Node32 -->
-<g id="node42" class="node">
-<title>Node32</title>
-<g id="a_node42"><a xlink:href="cost__model_8h.html" target="_top" xlink:title="Cost models that estimate the performance of programs. ">
-<polygon fill="#ffffff" stroke="#000000" points="1146.7941,-648.5 1146.7941,-678.5 1298.7941,-678.5 1298.7941,-648.5 1146.7941,-648.5"/>
-<text text-anchor="start" x="1154.7941" y="-666.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/auto_scheduler</text>
-<text text-anchor="middle" x="1222.7941" y="-655.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/cost_model.h</text>
-</a>
+<title>Node170&#45;&gt;Node30</title>
+<path fill="none" stroke="#191970" d="M839.6944,-704.2966C739.2388,-638.389 362.4472,-372.4929 523.5,-190 546.7862,-163.6138 774.7673,-147.4686 880.7889,-141.3305"/>
+<polygon fill="#191970" stroke="#191970" points="837.9791,-707.3561 848.2699,-709.8759 841.7965,-701.4886 837.9791,-707.3561"/>
 </g>
+<!-- Node170&#45;&gt;Node137 -->
+<g id="edge116" class="edge">
+<title>Node170&#45;&gt;Node137</title>
+<path fill="none" stroke="#191970" d="M942.4218,-715.2391C1172.9454,-702.7934 1841.7868,-666.6836 2045.1493,-655.7043"/>
+<polygon fill="#191970" stroke="#191970" points="942.2311,-711.7442 932.4344,-715.7783 942.6085,-718.734 942.2311,-711.7442"/>
 </g>
-<!-- Node167&#45;&gt;Node32 -->
-<g id="edge111" class="edge">
-<title>Node167&#45;&gt;Node32</title>
-<path fill="none" stroke="#191970" d="M968.5045,-718.8162C1019.8755,-707.6414 1097.5931,-690.7353 1153.5844,-678.5553"/>
-<polygon fill="#191970" stroke="#191970" points="967.6233,-715.426 958.5958,-720.9717 969.1113,-722.266 967.6233,-715.426"/>
+<!-- Node170&#45;&gt;Node139 -->
+<g id="edge115" class="edge">
+<title>Node170&#45;&gt;Node139</title>
+<path fill="none" stroke="#191970" d="M879.7542,-702.5657C899.476,-683.1811 934.6828,-652.1595 971.5,-637 1023.7945,-615.4677 1181.1611,-601.3018 1267.7692,-594.9113"/>
+<polygon fill="#191970" stroke="#191970" points="877.0878,-700.2835 872.5207,-709.8434 882.0526,-705.2182 877.0878,-700.2835"/>
 </g>
-<!-- Node170&#45;&gt;Node167 -->
+<!-- Node170&#45;&gt;Node160 -->
 <g id="edge119" class="edge">
-<title>Node170&#45;&gt;Node167</title>
-<path fill="none" stroke="#191970" d="M914.7941,-777.6079C914.7941,-765.214 914.7941,-749.8263 914.7941,-740.0817"/>
-<polygon fill="#191970" stroke="#191970" points="911.2942,-777.9005 914.7941,-787.9005 918.2942,-777.9006 911.2942,-777.9005"/>
-</g>
-<!-- Node176&#45;&gt;Node22 -->
-<g id="edge123" class="edge">
-<title>Node176&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M1376.5078,-863.1229C1237.5617,-859.6197 926.6577,-848.0102 826.7941,-813 431.7514,-674.5059 318.4758,-604.7612 44.7941,-288 -3.2982,-232.3377 -19.443,-175.7818 31.7941,-123 47.2458,-107.0824 100.2395,-92.1926 141.6578,-82.5587"/>
-<polygon fill="#191970" stroke="#191970" points="1376.5272,-866.6243 1386.6101,-863.3709 1376.699,-859.6264 1376.5272,-866.6243"/>
+<title>Node170&#45;&gt;Node160</title>
+<path fill="none" stroke="#191970" d="M818.0504,-707.1059C746.3625,-685.4272 606.5632,-634.2205 522.5,-545 489.8827,-510.3816 502.2444,-488.7734 479.5,-447 458.965,-409.2846 429.295,-367.6735 415.7434,-349.2252"/>
+<polygon fill="#191970" stroke="#191970" points="817.1184,-710.4801 827.7009,-709.9698 819.1099,-703.7694 817.1184,-710.4801"/>
 </g>
-<!-- Node176&#45;&gt;Node43 -->
-<g id="edge144" class="edge">
-<title>Node176&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M1376.7935,-851.9707C1220.6442,-823.1014 848.9063,-753.7711 837.7941,-746 754.6243,-687.8373 629.0135,-452.7712 601.7941,-355 598.0989,-341.727 594.8384,-335.8931 601.7941,-324 618.27,-295.8286 649.3181,-316.1714 665.7941,-288 672.7497,-276.1069 667.6368,-270.654 665.7941,-257 657.0383,-192.1245 631.7945,-117.8529 620.4425,-86.6018"/>
-<polygon fill="#191970" stroke="#191970" points="1376.2913,-855.4371 1386.7609,-853.8127 1377.5635,-848.5537 1376.2913,-855.4371"/>
+<!-- Node34 -->
+<g id="node43" class="node">
+<title>Node34</title>
+<g id="a_node43"><a xlink:href="cost__model_8h.html" target="_top" xlink:title="Cost models that estimate the performance of programs. ">
+<polygon fill="#ffffff" stroke="#000000" points="1059.5,-637.5 1059.5,-667.5 1211.5,-667.5 1211.5,-637.5 1059.5,-637.5"/>
+<text text-anchor="start" x="1067.5" y="-655.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/auto_scheduler</text>
+<text text-anchor="middle" x="1135.5" y="-644.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/cost_model.h</text>
+</a>
 </g>
-<!-- Node176&#45;&gt;Node126 -->
-<g id="edge126" class="edge">
-<title>Node176&#45;&gt;Node126</title>
-<path fill="none" stroke="#191970" d="M1512.9326,-847.9554C1597.9336,-830.4238 1623.0596,-832.9618 1707.7941,-813 2070.5369,-727.5446 2500.7941,-913.1728 2500.7941,-540.5 2500.7941,-540.5 2500.7941,-540.5 2500.7941,-473.5 2500.7941,-420.4643 2448.8734,-376.5541 2417.0314,-354.6116"/>
-<polygon fill="#191970" stroke="#191970" points="1512.1835,-844.5363 1503.1145,-850.0139 1513.62,-851.3873 1512.1835,-844.5363"/>
 </g>
-<!-- Node176&#45;&gt;Node142 -->
-<g id="edge124" class="edge">
-<title>Node176&#45;&gt;Node142</title>
-<path fill="none" stroke="#191970" d="M1477.2956,-843.9368C1521.4068,-814.8512 1594.7941,-761.7639 1594.7941,-730.5 1594.7941,-730.5 1594.7941,-730.5 1594.7941,-663.5 1594.7941,-620.639 1609.0063,-570.9058 1615.5573,-550.2585"/>
-<polygon fill="#191970" stroke="#191970" points="1475.3553,-841.0236 1468.8941,-849.4203 1479.1813,-846.8855 1475.3553,-841.0236"/>
+<!-- Node170&#45;&gt;Node34 -->
+<g id="edge113" class="edge">
+<title>Node170&#45;&gt;Node34</title>
+<path fill="none" stroke="#191970" d="M912.0716,-707.5357C957.4417,-696.3599 1025.345,-679.6338 1074.3798,-667.5553"/>
+<polygon fill="#191970" stroke="#191970" points="911.0547,-704.1814 902.1821,-709.9717 912.729,-710.9783 911.0547,-704.1814"/>
 </g>
-<!-- Node176&#45;&gt;Node32 -->
-<g id="edge122" class="edge">
-<title>Node176&#45;&gt;Node32</title>
-<path fill="none" stroke="#191970" d="M1397.4745,-845.0616C1379.9545,-836.6364 1360.5406,-825.7586 1344.7941,-813 1294.5586,-772.2968 1250.7271,-707.9944 1232.1961,-678.8106"/>
-<polygon fill="#191970" stroke="#191970" points="1396.4347,-848.4382 1406.9776,-849.4863 1399.3894,-842.0923 1396.4347,-848.4382"/>
+<!-- Node173&#45;&gt;Node170 -->
+<g id="edge121" class="edge">
+<title>Node173&#45;&gt;Node170</title>
+<path fill="none" stroke="#191970" d="M843.4976,-767.3628C848.7292,-754.8444 855.3402,-739.0252 859.4957,-729.0817"/>
+<polygon fill="#191970" stroke="#191970" points="840.1384,-766.3242 839.5117,-776.9005 846.5971,-769.0234 840.1384,-766.3242"/>
 </g>
-<!-- Node176&#45;&gt;Node170 -->
+<!-- Node179&#45;&gt;Node22 -->
 <g id="edge125" class="edge">
-<title>Node176&#45;&gt;Node170</title>
-<path fill="none" stroke="#191970" d="M1376.5504,-857.4795C1290.4469,-848.3869 1137.8879,-831.4961 1007.7941,-813 995.3158,-811.2259 981.9303,-809.1168 969.3123,-807.0346"/>
-<polygon fill="#191970" stroke="#191970" points="1376.4039,-860.9834 1386.7154,-858.5493 1377.1367,-854.0218 1376.4039,-860.9834"/>
+<title>Node179&#45;&gt;Node22</title>
+<path fill="none" stroke="#191970" d="M1214.5269,-842.9843C1163.7662,-834.2947 1093.015,-820.4034 1032.5,-802 997.5986,-791.386 991.5042,-781.2701 956.5,-771 872.3528,-746.3116 844.9335,-764.9164 762.5,-735 665.4904,-699.7937 407.4759,-548.1373 333.5,-478 232.8543,-382.5768 197.6921,-353.4325 156.5,-221 140.9035,-170.8574 175.4502,-146.3205 222.5,-123 282.6272,-93.1976 476.341,-79.215 571.1835,-74.0232"/>
+<polygon fill="#191970" stroke="#191970" points="1213.9602,-846.4381 1224.4035,-844.6527 1215.1262,-839.5359 1213.9602,-846.4381"/>
 </g>
-<!-- Node169 -->
-<g id="node46" class="node">
-<title>Node169</title>
-<g id="a_node46"><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="1324.7941,-458.5 1324.7941,-488.5 1432.7941,-488.5 1432.7941,-458.5 1324.7941,-458.5"/>
-<text text-anchor="start" x="1332.7941" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/parser</text>
-<text text-anchor="middle" x="1378.7941" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/source_map.h</text>
-</a>
+<!-- Node179&#45;&gt;Node46 -->
+<g id="edge138" class="edge">
+<title>Node179&#45;&gt;Node46</title>
+<path fill="none" stroke="#191970" d="M1214.2378,-847.5916C1132.3374,-839.6638 1000.5441,-823.9921 956.5,-802 938.7842,-793.1541 942.2392,-779.7988 924.5,-771 829.4481,-723.8533 788.9869,-769.0598 688.5,-735 534.3773,-682.7605 505.9412,-642.303 375.5,-545 223.4116,-431.5492 196.366,-382.949 97.5,-221 80.1006,-192.4987 73.2121,-185.949 63.5,-154 56.5762,-131.2233 54.4234,-103.535 53.7678,-86.7284"/>
+<polygon fill="#191970" stroke="#191970" points="1213.9282,-851.0779 1224.2154,-848.5431 1214.5928,-844.1095 1213.9282,-851.0779"/>
+</g>
+<!-- Node179&#45;&gt;Node129 -->
+<g id="edge128" class="edge">
+<title>Node179&#45;&gt;Node129</title>
+<path fill="none" stroke="#191970" d="M1269.635,-829.1386C1256.9661,-802.8435 1239.5,-759.3629 1239.5,-719.5 1239.5,-719.5 1239.5,-719.5 1239.5,-652.5 1239.5,-494.3452 1441.5876,-391.4163 1528.0274,-354.6239"/>
+<polygon fill="#191970" stroke="#191970" points="1266.6209,-830.9378 1274.2092,-838.3316 1272.8879,-827.8195 1266.6209,-830.9378"/>
+</g>
+<!-- Node179&#45;&gt;Node145 -->
+<g id="edge126" class="edge">
+<title>Node179&#45;&gt;Node145</title>
+<path fill="none" stroke="#191970" d="M1343.0175,-834.9586C1364.7464,-826.744 1388.7429,-815.7746 1408.5,-802 1490.0444,-745.1476 1489.2787,-707.3608 1559.5,-637 1596.913,-599.5127 1644.019,-557.7876 1665.2337,-539.268"/>
+<polygon fill="#191970" stroke="#191970" points="1341.7304,-831.7025 1333.5411,-838.4246 1344.1349,-838.2766 1341.7304,-831.7025"/>
 </g>
+<!-- Node179&#45;&gt;Node34 -->
+<g id="edge124" class="edge">
+<title>Node179&#45;&gt;Node34</title>
+<path fill="none" stroke="#191970" d="M1349.962,-836.1262C1366.6774,-828.4684 1382.6178,-817.5383 1392.5,-802 1399.8939,-790.3742 1399.9277,-782.6041 1392.5,-771 1352.9669,-709.2385 1272.1762,-679.2139 1211.6721,-664.9132"/>
+<polygon fill="#191970" stroke="#191970" points="1348.4898,-832.9484 1340.6295,-840.0524 1351.2043,-839.4007 1348.4898,-832.9484"/>
 </g>
-<!-- Node176&#45;&gt;Node169 -->
+<!-- Node179&#45;&gt;Node173 -->
 <g id="edge127" class="edge">
-<title>Node176&#45;&gt;Node169</title>
-<path fill="none" stroke="#191970" d="M1408.3384,-843.491C1397.018,-835.3144 1385.5018,-825.0011 1377.7941,-813 1357.4608,-781.3407 1358.7941,-768.1265 1358.7941,-730.5 1358.7941,-730.5 1358.7941,-730.5 1358.7941,-602 1358.7941,-560.683 1369.0141,-512.7727 1374.8427,-488.8085"/>
-<polygon fill="#191970" stroke="#191970" points="1406.6562,-846.58 1416.8907,-849.3197 1410.5985,-840.7957 1406.6562,-846.58"/>
+<title>Node179&#45;&gt;Node173</title>
+<path fill="none" stroke="#191970" d="M1214.2995,-844.0048C1142.9674,-833.9736 1027.7804,-817.4933 928.5,-802 916.5321,-800.1323 903.7124,-798.0493 891.5332,-796.0314"/>
+<polygon fill="#191970" stroke="#191970" points="1214.109,-847.5123 1224.4986,-845.4371 1215.0825,-840.5803 1214.109,-847.5123"/>
 </g>
-<!-- Node177 -->
+<!-- Node172 -->
 <g id="node47" class="node">
-<title>Node177</title>
-<g id="a_node47"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API. ">
-<polygon fill="#ffffff" stroke="#000000" points="2547.7941,-715.5 2547.7941,-745.5 2663.7941,-745.5 2663.7941,-715.5 2547.7941,-715.5"/>
-<text text-anchor="start" x="2555.7941" y="-733.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
-<text text-anchor="middle" x="2605.7941" y="-722.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/device_api.h</text>
+<title>Node172</title>
+<g id="a_node47"><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="998.5,-447.5 998.5,-477.5 1106.5,-477.5 1106.5,-447.5 998.5,-447.5"/>
+<text text-anchor="start" x="1006.5" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/parser</text>
+<text text-anchor="middle" x="1052.5" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/source_map.h</text>
 </a>
 </g>
 </g>
-<!-- Node176&#45;&gt;Node177 -->
-<g id="edge130" class="edge">
-<title>Node176&#45;&gt;Node177</title>
-<path fill="none" stroke="#191970" d="M1513.0213,-863.4734C1731.3327,-859.868 2403.8671,-846.1639 2495.7941,-813 2535.0902,-798.8234 2572.0642,-765.4766 2591.5277,-745.7936"/>
-<polygon fill="#191970" stroke="#191970" points="1512.9145,-859.9746 1502.973,-863.6375 1513.0289,-866.9736 1512.9145,-859.9746"/>
+<!-- Node179&#45;&gt;Node172 -->
+<g id="edge129" class="edge">
+<title>Node179&#45;&gt;Node172</title>
+<path fill="none" stroke="#191970" d="M1234.1512,-834.7633C1184.3126,-816.1125 1104.0158,-787.8981 1032.5,-771 978.7316,-758.2954 827.3318,-772.2184 786.5,-735 758.6165,-709.5841 766.5,-690.2287 766.5,-652.5 766.5,-652.5 766.5,-652.5 766.5,-591 766.5,-540.7163 915.455,-496.0845 998.3694,-475.1357"/>
+<polygon fill="#191970" stroke="#191970" points="1233.1093,-838.1108 1243.7012,-838.3597 1235.5764,-831.5599 1233.1093,-838.1108"/>
 </g>
-<!-- Node178 -->
+<!-- Node180 -->
 <g id="node48" class="node">
-<title>Node178</title>
-<g id="a_node48"><a xlink:href="profiling_8h.html" target="_top" xlink:title="Runtime profiling including timers. ">
-<polygon fill="#ffffff" stroke="#000000" points="2566.7941,-458.5 2566.7941,-488.5 2682.7941,-488.5 2682.7941,-458.5 2566.7941,-458.5"/>
-<text text-anchor="start" x="2574.7941" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
-<text text-anchor="middle" x="2624.7941" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/profiling.h</text>
+<title>Node180</title>
+<g id="a_node48"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API. ">
+<polygon fill="#ffffff" stroke="#000000" points="1477.5,-771.5 1477.5,-801.5 1593.5,-801.5 1593.5,-771.5 1477.5,-771.5"/>
+<text text-anchor="start" x="1485.5" y="-789.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
+<text text-anchor="middle" x="1535.5" y="-778.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/device_api.h</text>
 </a>
 </g>
 </g>
-<!-- Node176&#45;&gt;Node178 -->
-<g id="edge135" class="edge">
-<title>Node176&#45;&gt;Node178</title>
-<path fill="none" stroke="#191970" d="M1513.452,-862.877C1737.2996,-857.3614 2437.2535,-838.2676 2535.7941,-813 2611.768,-793.5189 2691.7941,-808.9319 2691.7941,-730.5 2691.7941,-730.5 2691.7941,-730.5 2691.7941,-602 2691.7941,-556.7131 2658.6703,-511.5825 2639.003,-488.7775"/>
-<polygon fill="#191970" stroke="#191970" points="1513.068,-859.3853 1503.1568,-863.1294 1513.2396,-866.3832 1513.068,-859.3853"/>
+<!-- Node179&#45;&gt;Node180 -->
+<g id="edge132" class="edge">
+<title>Node179&#45;&gt;Node180</title>
+<path fill="none" stroke="#191970" d="M1349.0073,-835.8874C1389.2611,-825.2273 1440.0622,-811.774 1478.4742,-801.6017"/>
+<polygon fill="#191970" stroke="#191970" points="1348.0489,-832.5205 1339.2781,-838.4639 1349.8409,-839.2872 1348.0489,-832.5205"/>
 </g>
-<!-- Node179 -->
+<!-- Node181 -->
 <g id="node49" class="node">
-<title>Node179</title>
-<g id="a_node49"><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="#ff0000" points="1386.7941,-782.5 1386.7941,-812.5 1502.7941,-812.5 1502.7941,-782.5 1386.7941,-782.5"/>
-<text text-anchor="start" x="1394.7941" y="-800.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
-<text text-anchor="middle" x="1444.7941" y="-789.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/module.h</text>
+<title>Node181</title>
+<g id="a_node49"><a xlink:href="profiling_8h.html" target="_top" xlink:title="Runtime profiling including timers. ">
+<polygon fill="#ffffff" stroke="#000000" points="1515.5,-704.5 1515.5,-734.5 1631.5,-734.5 1631.5,-704.5 1515.5,-704.5"/>
+<text text-anchor="start" x="1523.5" y="-722.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
+<text text-anchor="middle" x="1573.5" y="-711.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/profiling.h</text>
 </a>
 </g>
 </g>
-<!-- Node176&#45;&gt;Node179 -->
-<g id="edge133" class="edge">
-<title>Node176&#45;&gt;Node179</title>
-<path fill="none" stroke="#191970" d="M1438.2325,-839.3179C1437.818,-830.3414 1438.0873,-820.5143 1439.0405,-812.6432"/>
-<polygon fill="#191970" stroke="#191970" points="1434.7445,-839.6087 1439.0332,-849.2967 1441.7221,-839.0487 1434.7445,-839.6087"/>
+<!-- Node179&#45;&gt;Node181 -->
+<g id="edge137" class="edge">
+<title>Node179&#45;&gt;Node181</title>
+<path fill="none" stroke="#191970" d="M1350.6037,-847.2184C1439.6745,-838.3038 1586.3588,-820.9466 1602.5,-802 1619.2375,-782.3535 1600.9571,-752.4192 1586.7861,-734.5243"/>
+<polygon fill="#191970" stroke="#191970" points="1350.1796,-843.7432 1340.573,-848.2111 1350.8691,-850.7092 1350.1796,-843.7432"/>
 </g>
 <!-- Node182 -->
 <g id="node50" class="node">
 <title>Node182</title>
-<g id="a_node50"><a xlink:href="registry_8h.html" target="_top" xlink:title="This file defines the TVM global function registry. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="2218.7941,-525.5 2218.7941,-555.5 2334.7941,-555.5 2334.7941,-525.5 2218.7941,-525.5"/>
-<text text-anchor="start" x="2226.7941" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
-<text text-anchor="middle" x="2276.7941" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/registry.h</text>
+<g id="a_node50"><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="#ff0000" points="1267.5,-771.5 1267.5,-801.5 1383.5,-801.5 1383.5,-771.5 1267.5,-771.5"/>
+<text text-anchor="start" x="1275.5" y="-789.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
+<text text-anchor="middle" x="1325.5" y="-778.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/module.h</text>
 </a>
 </g>
 </g>
-<!-- Node176&#45;&gt;Node182 -->
-<g id="edge136" class="edge">
-<title>Node176&#45;&gt;Node182</title>
-<path fill="none" stroke="#191970" d="M1512.514,-846.8871C1652.5718,-810.0667 1969.5314,-724.5936 2071.7941,-679 2147.3102,-645.3313 2225.171,-583.9846 2259.151,-555.6225"/>
-<polygon fill="#191970" stroke="#191970" points="1511.5243,-843.5282 1502.7409,-849.4529 1513.3019,-850.2988 1511.5243,-843.5282"/>
-</g>
-<!-- Node169&#45;&gt;Node21 -->
-<g id="edge129" class="edge">
-<title>Node169&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1314.8426,-457.2699C1264.0938,-444.3905 1194.8746,-426.8235 1152.5881,-416.0917"/>
-<polygon fill="#191970" stroke="#191970" points="1314.1789,-460.7124 1324.7327,-459.7799 1315.9009,-453.9274 1314.1789,-460.7124"/>
-</g>
-<!-- Node169&#45;&gt;Node23 -->
-<g id="edge128" class="edge">
-<title>Node169&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M1375.2147,-448.2559C1370.9576,-418.2327 1364.063,-369.6073 1361.1558,-349.1042"/>
-<polygon fill="#191970" stroke="#191970" points="1371.7822,-448.9794 1376.6514,-458.389 1378.7128,-447.9966 1371.7822,-448.9794"/>
+<!-- Node179&#45;&gt;Node182 -->
+<g id="edge135" class="edge">
+<title>Node179&#45;&gt;Node182</title>
+<path fill="none" stroke="#191970" d="M1291.4098,-829.4837C1296.8737,-820.1996 1303.7618,-809.8565 1310.0277,-801.6432"/>
+<polygon fill="#191970" stroke="#191970" points="1288.309,-827.858 1286.4965,-838.2967 1294.4231,-831.2666 1288.309,-827.858"/>
 </g>
-<!-- Node177&#45;&gt;Node178 -->
+<!-- Node172&#45;&gt;Node21 -->
 <g id="edge131" class="edge">
-<title>Node177&#45;&gt;Node178</title>
-<path fill="none" stroke="#191970" d="M2607.6825,-704.956C2611.6029,-651.9283 2620.5207,-531.3033 2623.6683,-488.7267"/>
-<polygon fill="#191970" stroke="#191970" points="2604.1726,-704.9623 2606.9257,-715.1931 2611.1535,-705.4784 2604.1726,-704.9623"/>
+<title>Node172&#45;&gt;Node21</title>
+<path fill="none" stroke="#191970" d="M1053.32,-437.2849C1053.6224,-427.9858 1053.9475,-417.9883 1054.1798,-410.8469"/>
+<polygon fill="#191970" stroke="#191970" points="1049.8214,-437.1892 1052.9944,-447.2977 1056.8177,-437.4168 1049.8214,-437.1892"/>
 </g>
-<!-- Node178&#45;&gt;Node175 -->
-<g id="edge132" class="edge">
-<title>Node178&#45;&gt;Node175</title>
-<path fill="none" stroke="#191970" d="M2642.7605,-450.3509C2650.1358,-440.8482 2658.4674,-430.1132 2665.0411,-421.6432"/>
-<polygon fill="#191970" stroke="#191970" points="2639.96,-448.2508 2636.5937,-458.2967 2645.4899,-452.5427 2639.96,-448.2508"/>
-</g>
-<!-- Node179&#45;&gt;Node176 -->
-<g id="edge134" class="edge">
-<title>Node179&#45;&gt;Node176</title>
-<path fill="none" stroke="#191970" d="M1451.3524,-822.6135C1451.7704,-831.5857 1451.5046,-841.4156 1450.5549,-849.2967"/>
-<polygon fill="#191970" stroke="#191970" points="1454.841,-822.3291 1450.5476,-812.6432 1447.8636,-822.8924 1454.841,-822.3291"/>
+<!-- Node172&#45;&gt;Node23 -->
+<g id="edge130" class="edge">
+<title>Node172&#45;&gt;Node23</title>
+<path fill="none" stroke="#191970" d="M1097.805,-443.4812C1161.3459,-416.807 1274.5487,-369.285 1322.7526,-349.0493"/>
+<polygon fill="#191970" stroke="#191970" points="1096.2933,-440.3198 1088.4276,-447.4178 1099.0028,-446.7742 1096.2933,-440.3198"/>
 </g>
-<!-- Node182&#45;&gt;Node80 -->
-<g id="edge137" class="edge">
-<title>Node182&#45;&gt;Node80</title>
-<path fill="none" stroke="#191970" d="M2243.269,-520.0908C2176.8228,-479.1132 2024.656,-382.6297 1906.7941,-288 1891.1027,-275.4016 1891.2857,-266.949 1873.7941,-257 1861.321,-249.9055 1780.0908,-227.8906 1731.4467,-215.0564"/>
-<polygon fill="#191970" stroke="#191970" points="2241.7117,-523.2419 2252.0634,-525.4985 2245.3783,-517.279 2241.7117,-523.2419"/>
+<!-- Node180&#45;&gt;Node181 -->
+<g id="edge133" class="edge">
+<title>Node180&#45;&gt;Node181</title>
+<path fill="none" stroke="#191970" d="M1549.1212,-762.4837C1554.3868,-753.1996 1560.253,-742.8565 1564.9113,-734.6432"/>
+<polygon fill="#191970" stroke="#191970" points="1546.0118,-760.8716 1544.1228,-771.2967 1552.1007,-764.325 1546.0118,-760.8716"/>
 </g>
-<!-- Node182&#45;&gt;Node121 -->
-<g id="edge140" class="edge">
-<title>Node182&#45;&gt;Node121</title>
-<path fill="none" stroke="#191970" d="M2287.099,-515.5093C2297.1051,-488.9484 2310.7941,-445.4867 2310.7941,-406.5 2310.7941,-406.5 2310.7941,-406.5 2310.7941,-339.5 2310.7941,-292.5068 2299.1974,-237.1534 2294.1238,-215.1849"/>
-<polygon fill="#191970" stroke="#191970" points="2283.7148,-514.5548 2283.3496,-525.1433 2290.2382,-517.0936 2283.7148,-514.5548"/>
-</g>
-<!-- Node182&#45;&gt;Node122 -->
-<g id="edge141" class="edge">
-<title>Node182&#45;&gt;Node122</title>
-<path fill="none" stroke="#191970" d="M2259.584,-517.2463C2210.5079,-451.055 2072.5143,-265.8064 2058.7941,-257 2032.3908,-240.053 1953.9063,-224.494 1897.2855,-215.0122"/>
-<polygon fill="#191970" stroke="#191970" points="2256.8714,-519.4644 2265.6372,-525.4152 2262.4956,-515.2968 2256.8714,-519.4644"/>
-</g>
-<!-- Node182&#45;&gt;Node123 -->
-<g id="edge142" class="edge">
-<title>Node182&#45;&gt;Node123</title>
-<path fill="none" stroke="#191970" d="M2264.2282,-516.1048C2251.854,-489.7813 2234.7941,-446.2772 2234.7941,-406.5 2234.7941,-406.5 2234.7941,-406.5 2234.7941,-339.5 2234.7941,-301.3133 2234.4909,-286.9446 2210.7941,-257 2194.7977,-236.7862 2168.5486,-223.1517 2148.3426,-215.0169"/>
-<polygon fill="#191970" stroke="#191970" points="2261.1804,-517.841 2268.696,-525.3087 2267.4777,-514.7841 2261.1804,-517.841"/>
-</g>
-<!-- Node182&#45;&gt;Node126 -->
-<g id="edge138" class="edge">
-<title>Node182&#45;&gt;Node126</title>
-<path fill="none" stroke="#191970" d="M2300.4692,-518.293C2308.8304,-509.67 2317.8666,-499.3787 2324.7941,-489 2340.5842,-465.3433 2373.0606,-387.7659 2386.6267,-354.6751"/>
-<polygon fill="#191970" stroke="#191970" points="2297.9583,-515.8542 2293.3652,-525.4016 2302.9097,-520.8023 2297.9583,-515.8542"/>
+<!-- Node181&#45;&gt;Node178 -->
+<g id="edge134" class="edge">
+<title>Node181&#45;&gt;Node178</title>
+<path fill="none" stroke="#191970" d="M1591.812,-696.3509C1599.3291,-686.8482 1607.8209,-676.1132 1614.5211,-667.6432"/>
+<polygon fill="#191970" stroke="#191970" points="1588.9856,-694.2824 1585.5265,-704.2967 1594.4756,-698.6252 1588.9856,-694.2824"/>
 </g>
-<!-- Node182&#45;&gt;Node169 -->
-<g id="edge139" class="edge">
-<title>Node182&#45;&gt;Node169</title>
-<path fill="none" stroke="#191970" d="M2208.3401,-535.3021C2168.497,-532.2822 2117.3052,-528.4116 2071.7941,-525 1833.8875,-507.166 1550.0177,-486.1543 1433.1522,-477.5157"/>
-<polygon fill="#191970" stroke="#191970" points="2208.2397,-538.8044 2218.4757,-536.0705 2208.769,-531.8244 2208.2397,-538.8044"/>
-</g>
-<!-- Node182&#45;&gt;Node178 -->
-<g id="edge143" class="edge">
-<title>Node182&#45;&gt;Node178</title>
-<path fill="none" stroke="#191970" d="M2345.1313,-527.3431C2409.7356,-514.9049 2505.6166,-496.4451 2566.647,-484.695"/>
-<polygon fill="#191970" stroke="#191970" points="2344.1994,-523.9582 2335.0414,-529.2857 2345.5228,-530.8319 2344.1994,-523.9582"/>
+<!-- Node182&#45;&gt;Node179 -->
+<g id="edge136" class="edge">
+<title>Node182&#45;&gt;Node179</title>
+<path fill="none" stroke="#191970" d="M1316.6301,-810.4483C1311.1733,-819.7272 1304.2871,-830.0729 1298.0182,-838.2967"/>
+<polygon fill="#191970" stroke="#191970" points="1319.7262,-812.0825 1321.5348,-801.6432 1313.6109,-808.6761 1319.7262,-812.0825"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/attr__registry__map_8h.html b/docs/reference/api/doxygen/attr__registry__map_8h.html
index 38699b7..8270c11 100644
--- a/docs/reference/api/doxygen/attr__registry__map_8h.html
+++ b/docs/reference/api/doxygen/attr__registry__map_8h.html
@@ -84,7 +84,7 @@ Include dependency graph for attr_registry_map.h:</div>
 </div><div class="textblock"><div class="dynheader">
 This graph shows which files directly or indirectly include this file:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="attr__registry__map_8h__dep__incl.svg" width="3706" height="752"><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="attr__registry__map_8h__dep__incl.svg" width="3794" height="663"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 </div>
diff --git a/docs/reference/api/doxygen/attr__registry__map_8h__dep__incl.svg b/docs/reference/api/doxygen/attr__registry__map_8h__dep__incl.svg
index 3d62963..f500a6f 100644
--- a/docs/reference/api/doxygen/attr__registry__map_8h__dep__incl.svg
+++ b/docs/reference/api/doxygen/attr__registry__map_8h__dep__incl.svg
@@ -4,997 +4,991 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: include/tvm/node/attr_registry_map.h Pages: 1 -->
-<svg width="2779pt" height="564pt"
- viewBox="0.00 0.00 2779.00 564.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 560)">
+<svg width="2845pt" height="497pt"
+ viewBox="0.00 0.00 2845.28 497.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 493)">
 <title>include/tvm/node/attr_registry_map.h</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-560 2775,-560 2775,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-493 2841.2827,-493 2841.2827,4 -4,4"/>
 <!-- Node23 -->
 <g id="node1" class="node">
 <title>Node23</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="1382.5,-525.5 1382.5,-555.5 1504.5,-555.5 1504.5,-525.5 1382.5,-525.5"/>
-<text text-anchor="start" x="1390.5" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/attr</text>
-<text text-anchor="middle" x="1443.5" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_registry_map.h</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="2027.7827,-458.5 2027.7827,-488.5 2149.7827,-488.5 2149.7827,-458.5 2027.7827,-458.5"/>
+<text text-anchor="start" x="2035.7827" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/attr</text>
+<text text-anchor="middle" x="2088.7827" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_registry_map.h</text>
 </g>
 <!-- Node24 -->
 <g id="node2" class="node">
 <title>Node24</title>
 <g id="a_node2"><a xlink:href="ir_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics) and registry for them. ">
-<polygon fill="#ffffff" stroke="#000000" points="1537.5,-469.5 1537.5,-488.5 1645.5,-488.5 1645.5,-469.5 1537.5,-469.5"/>
-<text text-anchor="middle" x="1591.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/op.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1420.7827,-402.5 1420.7827,-421.5 1528.7827,-421.5 1528.7827,-402.5 1420.7827,-402.5"/>
+<text text-anchor="middle" x="1474.7827" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node24 -->
 <g id="edge1" class="edge">
 <title>Node23&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1489.1195,-521.5433C1515.4501,-510.6018 1547.4308,-497.3126 1568.5653,-488.5303"/>
-<polygon fill="#191970" stroke="#191970" points="1487.5963,-518.386 1479.7049,-525.4554 1490.2824,-524.8501 1487.5963,-518.386"/>
+<path fill="none" stroke="#191970" d="M2017.5061,-466.3607C1893.3448,-453.9244 1640.0466,-428.5533 1528.9976,-417.4303"/>
+<polygon fill="#191970" stroke="#191970" points="2017.3662,-469.8641 2027.6653,-467.3783 2018.0639,-462.899 2017.3662,-469.8641"/>
 </g>
 <!-- Node109 -->
-<g id="node39" class="node">
+<g id="node38" class="node">
 <title>Node109</title>
-<g id="a_node39"><a xlink:href="executor_8h.html" target="_top" xlink:title="Object representation of Executor configuration and registry. ">
-<polygon fill="#ffffff" stroke="#000000" points="1193.5,-469.5 1193.5,-488.5 1349.5,-488.5 1349.5,-469.5 1193.5,-469.5"/>
-<text text-anchor="middle" x="1271.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/executor.h</text>
+<g id="a_node38"><a xlink:href="executor_8h.html" target="_top" xlink:title="Object representation of Executor configuration and registry. ">
+<polygon fill="#ffffff" stroke="#000000" points="2116.7827,-402.5 2116.7827,-421.5 2272.7827,-421.5 2272.7827,-402.5 2116.7827,-402.5"/>
+<text text-anchor="middle" x="2194.7827" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/executor.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node109 -->
-<g id="edge68" class="edge">
+<g id="edge66" class="edge">
 <title>Node23&#45;&gt;Node109</title>
-<path fill="none" stroke="#191970" d="M1391.6872,-521.9739C1360.8625,-510.9523 1323.0388,-497.4281 1298.1539,-488.5303"/>
-<polygon fill="#191970" stroke="#191970" points="1390.8295,-525.3842 1401.4241,-525.4554 1393.1863,-518.7928 1390.8295,-525.3842"/>
+<path fill="none" stroke="#191970" d="M2123.4556,-453.3832C2141.9124,-442.6748 2163.7507,-430.0044 2178.3565,-421.5303"/>
+<polygon fill="#191970" stroke="#191970" points="2121.6064,-450.4096 2114.7132,-458.4554 2125.1193,-456.4643 2121.6064,-450.4096"/>
 </g>
 <!-- Node110 -->
-<g id="node40" class="node">
+<g id="node39" class="node">
 <title>Node110</title>
-<g id="a_node40"><a xlink:href="runtime_8h.html" target="_top" xlink:title="Object representation of Runtime configuration and registry. ">
-<polygon fill="#ffffff" stroke="#000000" points="1367.5,-469.5 1367.5,-488.5 1519.5,-488.5 1519.5,-469.5 1367.5,-469.5"/>
-<text text-anchor="middle" x="1443.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/runtime.h</text>
+<g id="a_node39"><a xlink:href="runtime_8h.html" target="_top" xlink:title="Object representation of Runtime configuration and registry. ">
+<polygon fill="#ffffff" stroke="#000000" points="2290.7827,-402.5 2290.7827,-421.5 2442.7827,-421.5 2442.7827,-402.5 2290.7827,-402.5"/>
+<text text-anchor="middle" x="2366.7827" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/runtime.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node110 -->
-<g id="edge69" class="edge">
+<g id="edge67" class="edge">
 <title>Node23&#45;&gt;Node110</title>
-<path fill="none" stroke="#191970" d="M1443.5,-515.2849C1443.5,-505.9858 1443.5,-495.9883 1443.5,-488.8469"/>
-<polygon fill="#191970" stroke="#191970" points="1440.0001,-515.2977 1443.5,-525.2977 1447.0001,-515.2978 1440.0001,-515.2977"/>
+<path fill="none" stroke="#191970" d="M2159.5735,-457.8394C2211.3069,-446.3948 2279.8003,-431.2425 2323.5895,-421.5553"/>
+<polygon fill="#191970" stroke="#191970" points="2158.7989,-454.4261 2149.791,-460.0036 2160.3109,-461.2609 2158.7989,-454.4261"/>
 </g>
 <!-- Node111 -->
-<g id="node41" class="node">
+<g id="node40" class="node">
 <title>Node111</title>
-<g id="a_node41"><a xlink:href="tag_8h.html" target="_top" xlink:title="Target tag registry. ">
-<polygon fill="#ffffff" stroke="#000000" points="1062,-201.5 1062,-231.5 1169,-231.5 1169,-201.5 1062,-201.5"/>
-<text text-anchor="start" x="1070" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
-<text text-anchor="middle" x="1115.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/tag.h</text>
+<g id="a_node40"><a xlink:href="tag_8h.html" target="_top" xlink:title="Target tag registry. ">
+<polygon fill="#ffffff" stroke="#000000" points="2730.2827,-201.5 2730.2827,-231.5 2837.2827,-231.5 2837.2827,-201.5 2730.2827,-201.5"/>
+<text text-anchor="start" x="2738.2827" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="2783.7827" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/tag.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node111 -->
-<g id="edge70" class="edge">
+<g id="edge68" class="edge">
 <title>Node23&#45;&gt;Node111</title>
-<path fill="none" stroke="#191970" d="M1372.2779,-534.7367C1305.2094,-527.8647 1211.1701,-514.0293 1184.5,-489 1160.5241,-466.4991 1165.5,-450.3806 1165.5,-417.5 1165.5,-417.5 1165.5,-417.5 1165.5,-350.5 1165.5,-312.7713 1159.5873,-303.0001 1145.5,-268 1140.3229,-255.1373 1132.3459,-241.63 1125.9187,-231.677"/>
-<polygon fill="#191970" stroke="#191970" points="1372.0837,-538.2345 1382.3808,-535.7405 1372.7758,-531.2688 1372.0837,-538.2345"/>
+<path fill="none" stroke="#191970" d="M2089.4349,-447.8865C2091.1667,-432.6614 2095.8457,-414.0339 2107.7827,-402 2152.7516,-356.6661 2578.3348,-260.9871 2730.2346,-227.9807"/>
+<polygon fill="#191970" stroke="#191970" points="2085.9166,-447.9879 2088.633,-458.2286 2092.8956,-448.5291 2085.9166,-447.9879"/>
 </g>
 <!-- Node112 -->
-<g id="node42" class="node">
+<g id="node41" class="node">
 <title>Node112</title>
-<g id="a_node42"><a xlink:href="target__kind_8h.html" target="_top" xlink:title="Target kind registry. ">
-<polygon fill="#ffffff" stroke="#000000" points="1724,-402.5 1724,-432.5 1831,-432.5 1831,-402.5 1724,-402.5"/>
-<text text-anchor="start" x="1732" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
-<text text-anchor="middle" x="1777.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/target_kind.h</text>
+<g id="a_node41"><a xlink:href="target__kind_8h.html" target="_top" xlink:title="Target kind registry. ">
+<polygon fill="#ffffff" stroke="#000000" points="1953.2827,-335.5 1953.2827,-365.5 2060.2827,-365.5 2060.2827,-335.5 1953.2827,-335.5"/>
+<text text-anchor="start" x="1961.2827" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="2006.7827" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/target_kind.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node112 -->
-<g id="edge71" class="edge">
+<g id="edge69" class="edge">
 <title>Node23&#45;&gt;Node112</title>
-<path fill="none" stroke="#191970" d="M1514.5736,-528.4477C1556.2604,-520.0865 1609.4255,-507.1591 1654.5,-489 1692.0734,-473.8629 1731.9851,-448.7766 1755.8191,-432.7008"/>
-<polygon fill="#191970" stroke="#191970" points="1513.646,-525.0629 1504.5072,-530.4231 1514.994,-531.9319 1513.646,-525.0629"/>
+<path fill="none" stroke="#191970" d="M2073.0799,-449.9458C2056.5391,-425.1347 2030.9814,-386.798 2016.9197,-365.7056"/>
+<polygon fill="#191970" stroke="#191970" points="2070.2687,-452.0387 2078.7279,-458.4178 2076.093,-448.1558 2070.2687,-452.0387"/>
 </g>
 <!-- Node25 -->
 <g id="node3" class="node">
 <title>Node25</title>
 <g id="a_node3"><a xlink:href="relay_2expr_8h.html" target="_top" xlink:title="Relay expression language. ">
-<polygon fill="#ffffff" stroke="#000000" points="1426,-207 1426,-226 1561,-226 1561,-207 1426,-207"/>
-<text text-anchor="middle" x="1493.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/expr.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1407.2827,-207 1407.2827,-226 1542.2827,-226 1542.2827,-207 1407.2827,-207"/>
+<text text-anchor="middle" x="1474.7827" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node25 -->
 <g id="edge2" class="edge">
 <title>Node24&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M1584.3927,-459.9625C1564.9846,-407.9765 1511.5724,-264.9083 1497.1369,-226.2416"/>
-<polygon fill="#191970" stroke="#191970" points="1581.1193,-461.2019 1587.8959,-469.3462 1587.6772,-458.7536 1581.1193,-461.2019"/>
+<path fill="none" stroke="#191970" d="M1474.7827,-392.1343C1474.7827,-350.7803 1474.7827,-256.7585 1474.7827,-226.2534"/>
+<polygon fill="#191970" stroke="#191970" points="1471.2828,-392.3051 1474.7827,-402.3051 1478.2828,-392.3052 1471.2828,-392.3051"/>
 </g>
 <!-- Node42 -->
 <g id="node20" class="node">
 <title>Node42</title>
 <g id="a_node20"><a xlink:href="relay_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics). ">
-<polygon fill="#ffffff" stroke="#000000" points="1901.5,-140 1901.5,-159 2027.5,-159 2027.5,-140 1901.5,-140"/>
-<text text-anchor="middle" x="1964.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/op.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2063.7827,-140 2063.7827,-159 2189.7827,-159 2189.7827,-140 2063.7827,-140"/>
+<text text-anchor="middle" x="2126.7827" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node42 -->
 <g id="edge36" class="edge">
 <title>Node24&#45;&gt;Node42</title>
-<path fill="none" stroke="#191970" d="M1591.0012,-459.2203C1590.4088,-433.9886 1589.5,-389.0034 1589.5,-350.5 1589.5,-350.5 1589.5,-350.5 1589.5,-283.5 1589.5,-245.8735 1580.6759,-226.3293 1608.5,-201 1653.2616,-160.252 1818.6988,-174.3708 1878.5,-165 1889.891,-163.215 1902.0982,-161.1238 1913.6331,-159.0655"/>
-<polygon fill="#191970" stroke="#191970" points="1587.5048,-459.4169 1591.2467,-469.3289 1594.5028,-459.2469 1587.5048,-459.4169"/>
+<path fill="none" stroke="#191970" d="M1481.257,-392.5857C1496.7917,-349.4232 1540.6495,-245.7886 1616.7827,-201 1697.9045,-153.2766 1945.4551,-177.1753 2038.7827,-165 2051.2426,-163.3745 2064.6277,-161.2259 2077.105,-159.0479"/>
+<polygon fill="#191970" stroke="#191970" points="1477.8981,-391.5889 1477.9154,-402.1837 1484.5089,-393.8906 1477.8981,-391.5889"/>
 </g>
 <!-- Node45 -->
 <g id="node23" class="node">
 <title>Node45</title>
 <g id="a_node23"><a xlink:href="builtin_8h.html" target="_top" xlink:title="TIR builtin intrinsics. ">
-<polygon fill="#ffffff" stroke="#000000" points="51,-207 51,-226 182,-226 182,-207 51,-207"/>
-<text text-anchor="middle" x="116.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/builtin.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="41.2827,-207 41.2827,-226 172.2827,-226 172.2827,-207 41.2827,-207"/>
+<text text-anchor="middle" x="106.7827" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/builtin.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node45 -->
 <g id="edge37" class="edge">
 <title>Node24&#45;&gt;Node45</title>
-<path fill="none" stroke="#191970" d="M1527.2989,-469.0078C1064.1758,-425.4687 940.9223,-493.6813 483.5,-433 353.6523,-415.7745 300.4257,-445.7282 196.5,-366 147.9195,-328.7307 125.4698,-253.3307 118.7591,-226.3659"/>
-<polygon fill="#191970" stroke="#191970" points="1526.9712,-472.4924 1537.258,-469.9563 1527.6349,-465.5239 1526.9712,-472.4924"/>
+<path fill="none" stroke="#191970" d="M1410.2475,-411.0757C1187.4823,-407.6462 458.9021,-394.359 357.7827,-366 254.7383,-337.1012 151.0427,-254.2794 117.7712,-226.0554"/>
+<polygon fill="#191970" stroke="#191970" points="1410.4163,-414.5786 1420.4685,-411.2316 1410.5231,-407.5794 1410.4163,-414.5786"/>
 </g>
 <!-- Node57 -->
 <g id="node30" class="node">
 <title>Node57</title>
 <g id="a_node30"><a xlink:href="tir_2op_8h.html" target="_top" xlink:title="Common operators defined for Expr. ">
-<polygon fill="#ffffff" stroke="#000000" points="492.5,-408 492.5,-427 604.5,-427 604.5,-408 492.5,-408"/>
-<text text-anchor="middle" x="548.5" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/op.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="366.7827,-341 366.7827,-360 478.7827,-360 478.7827,-341 366.7827,-341"/>
+<text text-anchor="middle" x="422.7827" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node57 -->
 <g id="edge44" class="edge">
 <title>Node24&#45;&gt;Node57</title>
-<path fill="none" stroke="#191970" d="M1527.2478,-468.9711C1170.5706,-431.9169 753.6305,-421.1969 604.7334,-418.3924"/>
-<polygon fill="#191970" stroke="#191970" points="1526.9415,-472.4581 1537.2517,-470.019 1527.6708,-465.4962 1526.9415,-472.4581"/>
+<path fill="none" stroke="#191970" d="M1410.2761,-408.2289C1219.2933,-397.0641 658.8675,-364.3015 479.0256,-353.788"/>
+<polygon fill="#191970" stroke="#191970" points="1410.2506,-411.7333 1420.4379,-408.823 1410.6592,-404.7453 1410.2506,-411.7333"/>
 </g>
 <!-- Node26 -->
 <g id="node4" class="node">
 <title>Node26</title>
 <g id="a_node4"><a xlink:href="type__functor_8h.html" target="_top" xlink:title="A way to defined arbitrary function signature with dispatch on types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1285,-67.5 1285,-97.5 1394,-97.5 1394,-67.5 1285,-67.5"/>
-<text text-anchor="start" x="1293" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/type</text>
-<text text-anchor="middle" x="1339.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_functor.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1401.2827,-67.5 1401.2827,-97.5 1510.2827,-97.5 1510.2827,-67.5 1401.2827,-67.5"/>
+<text text-anchor="start" x="1409.2827" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/type</text>
+<text text-anchor="middle" x="1455.7827" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node26 -->
 <g id="edge3" class="edge">
 <title>Node25&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M1431.8092,-205.1942C1423.6398,-203.7519 1415.3715,-202.3199 1407.5,-201 1356.0458,-192.3723 1209.4455,-204.6192 1175.5,-165 1140.1952,-123.7943 1224.3819,-100.9076 1284.7417,-90.1985"/>
-<polygon fill="#191970" stroke="#191970" points="1431.2335,-208.6466 1441.6919,-206.9517 1432.4592,-201.7548 1431.2335,-208.6466"/>
+<path fill="none" stroke="#191970" d="M1471.9741,-196.6918C1468.1455,-169.6902 1461.3714,-121.915 1457.9253,-97.611"/>
+<polygon fill="#191970" stroke="#191970" points="1468.547,-197.4535 1473.4163,-206.8631 1475.4776,-196.4707 1468.547,-197.4535"/>
 </g>
 <!-- Node27 -->
 <g id="node5" class="node">
 <title>Node27</title>
 <g id="a_node5"><a xlink:href="relay_2adt_8h.html" target="_top" xlink:title="Algebraic data types for Relay. ">
-<polygon fill="#ffffff" stroke="#000000" points="1677.5,-140 1677.5,-159 1807.5,-159 1807.5,-140 1677.5,-140"/>
-<text text-anchor="middle" x="1742.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/adt.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1521.7827,-140 1521.7827,-159 1651.7827,-159 1651.7827,-140 1521.7827,-140"/>
+<text text-anchor="middle" x="1586.7827" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node27 -->
 <g id="edge4" class="edge">
 <title>Node25&#45;&gt;Node27</title>
-<path fill="none" stroke="#191970" d="M1538.7815,-204.3158C1587.0691,-191.3228 1662.5518,-171.0122 1706.8078,-159.1039"/>
-<polygon fill="#191970" stroke="#191970" points="1537.6583,-200.9935 1528.9112,-206.9717 1539.4772,-207.7531 1537.6583,-200.9935"/>
+<path fill="none" stroke="#191970" d="M1499.5046,-201.711C1521.2115,-188.7256 1552.1489,-170.2184 1570.7656,-159.0817"/>
+<polygon fill="#191970" stroke="#191970" points="1497.6145,-198.7632 1490.8296,-206.9005 1501.2081,-204.7704 1497.6145,-198.7632"/>
 </g>
 <!-- Node28 -->
 <g id="node6" class="node">
 <title>Node28</title>
 <g id="a_node6"><a xlink:href="relay_2analysis_8h.html" target="_top" xlink:title="The set of Relay analysis passes written in C++. ">
-<polygon fill="#ffffff" stroke="#000000" points="1743,-73 1743,-92 1898,-92 1898,-73 1743,-73"/>
-<text text-anchor="middle" x="1820.5" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/analysis.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1528.2827,-73 1528.2827,-92 1683.2827,-92 1683.2827,-73 1528.2827,-73"/>
+<text text-anchor="middle" x="1605.7827" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/analysis.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node28 -->
 <g id="edge9" class="edge">
 <title>Node25&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M1552.5073,-205.0643C1560.2332,-203.6498 1568.0504,-202.26 1575.5,-201 1628.8915,-191.9696 1780.1685,-205.1525 1816.5,-165 1834.7802,-144.7972 1828.1291,-109.1385 1823.4846,-92.0947"/>
-<polygon fill="#191970" stroke="#191970" points="1551.637,-201.6659 1542.442,-206.9292 1552.9123,-208.5488 1551.637,-201.6659"/>
+<path fill="none" stroke="#191970" d="M1479.8511,-197.2563C1485.4272,-179.1487 1495.9095,-152.1721 1512.7827,-134 1530.992,-114.389 1558.4095,-100.4715 1578.7622,-92.0895"/>
+<polygon fill="#191970" stroke="#191970" points="1476.4511,-196.4158 1477.0616,-206.993 1483.1804,-198.3437 1476.4511,-196.4158"/>
 </g>
 <!-- Node29 -->
 <g id="node7" class="node">
 <title>Node29</title>
 <g id="a_node7"><a xlink:href="relay_2expr__functor_8h.html" target="_top" xlink:title="A more powerful visitor which enables defining arbitrary function signatures with type based dispatch...">
-<polygon fill="#ffffff" stroke="#000000" points="1916,-67.5 1916,-97.5 2043,-97.5 2043,-67.5 1916,-67.5"/>
-<text text-anchor="start" x="1924" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/expr</text>
-<text text-anchor="middle" x="1979.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_functor.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1711.2827,-67.5 1711.2827,-97.5 1838.2827,-97.5 1838.2827,-67.5 1711.2827,-67.5"/>
+<text text-anchor="start" x="1719.2827" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/expr</text>
+<text text-anchor="middle" x="1774.7827" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node29 -->
 <g id="edge19" class="edge">
 <title>Node25&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M1551.9212,-205.0888C1559.8353,-203.6509 1567.8592,-202.2483 1575.5,-201 1691.0661,-182.1195 1725.7266,-202.964 1836.5,-165 1842.77,-162.8512 1914.6571,-120.7239 1954.0497,-97.5218"/>
-<polygon fill="#191970" stroke="#191970" points="1551.1917,-201.6643 1541.9925,-206.9203 1552.4615,-208.5481 1551.1917,-201.6643"/>
+<path fill="none" stroke="#191970" d="M1527.0822,-204.57C1573.536,-193.5124 1637.5599,-177.0077 1660.7827,-165 1680.1436,-154.9892 1681.2993,-147.0151 1698.7827,-134 1716.0423,-121.1515 1736.2333,-107.5324 1751.4644,-97.5286"/>
+<polygon fill="#191970" stroke="#191970" points="1526.0913,-201.2076 1517.1633,-206.9121 1527.7001,-208.0202 1526.0913,-201.2076"/>
 </g>
 <!-- Node30 -->
 <g id="node8" class="node">
 <title>Node30</title>
 <g id="a_node8"><a xlink:href="pattern__functor_8h.html" target="_top" xlink:title="A more powerful visitor on ADT patterns that enables defining arbitrary function signatures with type...">
-<polygon fill="#ffffff" stroke="#000000" points="1584.5,-67.5 1584.5,-97.5 1724.5,-97.5 1724.5,-67.5 1584.5,-67.5"/>
-<text text-anchor="start" x="1592.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/pattern</text>
-<text text-anchor="middle" x="1654.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_functor.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1965.7827,-67.5 1965.7827,-97.5 2105.7827,-97.5 2105.7827,-67.5 1965.7827,-67.5"/>
+<text text-anchor="start" x="1973.7827" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/pattern</text>
+<text text-anchor="middle" x="2035.7827" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node30 -->
 <g id="edge34" class="edge">
 <title>Node25&#45;&gt;Node30</title>
-<path fill="none" stroke="#191970" d="M1430.6393,-205.1725C1346.7475,-190.0508 1208.6122,-165.1343 1208.5,-165 1199.6662,-154.4269 1199.3334,-144.286 1208.5,-134 1220.8487,-120.1433 1461.7895,-98.3914 1584.275,-88.1676"/>
-<polygon fill="#191970" stroke="#191970" points="1430.1259,-208.6363 1440.5882,-206.9657 1431.3676,-201.7473 1430.1259,-208.6363"/>
+<path fill="none" stroke="#191970" d="M1530.6986,-205.0912C1539.4054,-203.5578 1548.3185,-202.1278 1556.7827,-201 1607.601,-194.2289 1977.946,-198.4672 2016.7827,-165 2036.0447,-148.4011 2037.9498,-116.5606 2037.1604,-97.6588"/>
+<polygon fill="#191970" stroke="#191970" points="1529.8235,-201.6929 1520.6118,-206.9267 1531.0768,-208.5798 1529.8235,-201.6929"/>
 </g>
 <!-- Node31 -->
 <g id="node9" class="node">
 <title>Node31</title>
 <g id="a_node9"><a xlink:href="algorithm_8h.html" target="_top" xlink:title="include/tvm/relay/attrs\l/algorithm.h">
-<polygon fill="#ffffff" stroke="#000000" points="1217.5,-134.5 1217.5,-164.5 1345.5,-164.5 1345.5,-134.5 1217.5,-134.5"/>
-<text text-anchor="start" x="1225.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="1281.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/algorithm.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1879.7827,-134.5 1879.7827,-164.5 2007.7827,-164.5 2007.7827,-134.5 1879.7827,-134.5"/>
+<text text-anchor="start" x="1887.7827" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="1943.7827" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/algorithm.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node31 -->
 <g id="edge10" class="edge">
 <title>Node25&#45;&gt;Node31</title>
-<path fill="none" stroke="#191970" d="M1453.1548,-203.7494C1417.8005,-192.5761 1366.3723,-176.3229 1329.0316,-164.5218"/>
-<polygon fill="#191970" stroke="#191970" points="1452.5357,-207.2243 1463.1256,-206.9005 1454.6452,-200.5497 1452.5357,-207.2243"/>
+<path fill="none" stroke="#191970" d="M1531.9669,-205.1409C1540.2755,-203.6506 1548.7375,-202.2199 1556.7827,-201 1695.6649,-179.941 1732.1451,-187.6132 1870.7827,-165 1873.7237,-164.5203 1876.7256,-164.0017 1879.7535,-163.455"/>
+<polygon fill="#191970" stroke="#191970" points="1531.1514,-201.732 1521.9466,-206.978 1532.4138,-208.6172 1531.1514,-201.732"/>
 </g>
 <!-- Node32 -->
 <g id="node10" class="node">
 <title>Node32</title>
 <g id="a_node10"><a xlink:href="relay_2attrs_2memory_8h.html" target="_top" xlink:title="Attributes for memory operators. ">
-<polygon fill="#ffffff" stroke="#000000" points="1363.5,-134.5 1363.5,-164.5 1491.5,-164.5 1491.5,-134.5 1363.5,-134.5"/>
-<text text-anchor="start" x="1371.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="1427.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/memory.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="967.7827,-134.5 967.7827,-164.5 1095.7827,-164.5 1095.7827,-134.5 967.7827,-134.5"/>
+<text text-anchor="start" x="975.7827" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="1031.7827" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/memory.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node32 -->
 <g id="edge11" class="edge">
 <title>Node25&#45;&gt;Node32</title>
-<path fill="none" stroke="#191970" d="M1476.9264,-199.6753C1466.2815,-188.8691 1452.5754,-174.9553 1442.2976,-164.5218"/>
-<polygon fill="#191970" stroke="#191970" points="1474.5327,-202.2327 1484.0438,-206.9005 1479.5195,-197.3203 1474.5327,-202.2327"/>
+<path fill="none" stroke="#191970" d="M1396.7316,-207.2689C1321.6763,-198.0071 1205.1428,-182.6163 1104.7827,-165 1101.8477,-164.4848 1098.8508,-163.9371 1095.8268,-163.3668"/>
+<polygon fill="#191970" stroke="#191970" points="1396.6889,-210.7898 1407.041,-208.5347 1397.5421,-203.842 1396.6889,-210.7898"/>
 </g>
 <!-- Node33 -->
 <g id="node11" class="node">
 <title>Node33</title>
 <g id="a_node11"><a xlink:href="relay_2attrs_2transform_8h.html" target="_top" xlink:title="Transform operators. ">
-<polygon fill="#ffffff" stroke="#000000" points="2255.5,-134.5 2255.5,-164.5 2383.5,-164.5 2383.5,-134.5 2255.5,-134.5"/>
-<text text-anchor="start" x="2263.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="2319.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/transform.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2207.7827,-134.5 2207.7827,-164.5 2335.7827,-164.5 2335.7827,-134.5 2207.7827,-134.5"/>
+<text text-anchor="start" x="2215.7827" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="2271.7827" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node33 -->
 <g id="edge12" class="edge">
 <title>Node25&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M1567.7967,-205.6319C1581.3192,-203.8973 1595.3159,-202.2615 1608.5,-201 1889.0068,-174.1601 1961.9632,-200.5475 2241.5,-165 2246.0197,-164.4252 2250.6703,-163.7411 2255.343,-162.9853"/>
-<polygon fill="#191970" stroke="#191970" points="1567.0296,-202.2025 1557.5697,-206.9731 1567.9399,-209.143 1567.0296,-202.2025"/>
+<path fill="none" stroke="#191970" d="M1552.1673,-205.7086C1566.3247,-203.961 1580.9829,-202.3009 1594.7827,-201 1862.5165,-175.7603 1932.2862,-201.0281 2198.7827,-165 2201.6074,-164.6181 2204.4856,-164.1874 2207.3875,-163.7191"/>
+<polygon fill="#191970" stroke="#191970" points="1551.451,-202.2711 1541.9665,-206.9927 1552.3254,-209.2162 1551.451,-202.2711"/>
 </g>
 <!-- Node34 -->
 <g id="node12" class="node">
 <title>Node34</title>
 <g id="a_node12"><a xlink:href="relay_2transform_8h.html" target="_top" xlink:title="Relay specific transformation passes. ">
-<polygon fill="#ffffff" stroke="#000000" points="2096.5,-73 2096.5,-92 2258.5,-92 2258.5,-73 2096.5,-73"/>
-<text text-anchor="middle" x="2177.5" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/transform.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2156.7827,-73 2156.7827,-92 2318.7827,-92 2318.7827,-73 2156.7827,-73"/>
+<text text-anchor="middle" x="2237.7827" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node34 -->
 <g id="edge35" class="edge">
 <title>Node25&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M1568.0459,-205.6344C1581.4917,-203.9079 1595.3978,-202.2743 1608.5,-201 1674.9729,-194.5351 2162.7108,-213.6189 2208.5,-165 2228.3265,-143.9482 2201.9811,-109.0133 2186.8329,-92.1691"/>
-<polygon fill="#191970" stroke="#191970" points="1567.3343,-202.1976 1557.8743,-206.9683 1568.2446,-209.1382 1567.3343,-202.1976"/>
+<path fill="none" stroke="#191970" d="M1552.6653,-207.1572C1573.4726,-204.8914 1595.9624,-202.6496 1616.7827,-201 1657.15,-197.8016 2316.8653,-194.3321 2344.7827,-165 2373.811,-134.5007 2309.526,-106.2115 2268.5134,-92.0277"/>
+<polygon fill="#191970" stroke="#191970" points="1552.1558,-203.6921 1542.6006,-208.2689 1552.9244,-210.6498 1552.1558,-203.6921"/>
 </g>
 <!-- Node36 -->
 <g id="node14" class="node">
 <title>Node36</title>
 <g id="a_node14"><a xlink:href="dataflow__pattern_8h.html" target="_top" xlink:title="A pattern language for matching dataflow properties. ">
-<polygon fill="#ffffff" stroke="#000000" points="2624,-134.5 2624,-164.5 2771,-164.5 2771,-134.5 2624,-134.5"/>
-<text text-anchor="start" x="2632" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/dataflow</text>
-<text text-anchor="middle" x="2697.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_pattern.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1114.2827,-134.5 1114.2827,-164.5 1261.2827,-164.5 1261.2827,-134.5 1114.2827,-134.5"/>
+<text text-anchor="start" x="1122.2827" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/dataflow</text>
+<text text-anchor="middle" x="1187.7827" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_pattern.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node36 -->
 <g id="edge15" class="edge">
 <title>Node25&#45;&gt;Node36</title>
-<path fill="none" stroke="#191970" d="M1565.8928,-205.6577C1579.9971,-203.8525 1594.6903,-202.1849 1608.5,-201 2037.0011,-164.2334 2146.8623,-200.1374 2575.5,-165 2591.1404,-163.7179 2607.8564,-161.8943 2623.7412,-159.9458"/>
-<polygon fill="#191970" stroke="#191970" points="1565.2062,-202.2177 1555.7478,-206.9915 1566.1188,-209.158 1565.2062,-202.2177"/>
+<path fill="none" stroke="#191970" d="M1424.1347,-204.6762C1376.2628,-193.5006 1304.2298,-176.6845 1252.2735,-164.5553"/>
+<polygon fill="#191970" stroke="#191970" points="1423.4335,-208.1066 1433.9674,-206.9717 1425.0249,-201.2899 1423.4335,-208.1066"/>
 </g>
 <!-- Node39 -->
 <g id="node17" class="node">
 <title>Node39</title>
 <g id="a_node17"><a xlink:href="relay_2feature_8h.html" target="_top" xlink:title="Detect features used in Expr/Module. ">
-<polygon fill="#ffffff" stroke="#000000" points="1510,-140 1510,-159 1659,-159 1659,-140 1510,-140"/>
-<text text-anchor="middle" x="1584.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/feature.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1279.2827,-140 1279.2827,-159 1428.2827,-159 1428.2827,-140 1279.2827,-140"/>
+<text text-anchor="middle" x="1353.7827" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/feature.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node39 -->
 <g id="edge20" class="edge">
 <title>Node25&#45;&gt;Node39</title>
-<path fill="none" stroke="#191970" d="M1515.0196,-200.6559C1532.5628,-187.7395 1556.7652,-169.9201 1571.4861,-159.0817"/>
-<polygon fill="#191970" stroke="#191970" points="1512.5157,-198.153 1506.5381,-206.9005 1516.666,-203.79 1512.5157,-198.153"/>
+<path fill="none" stroke="#191970" d="M1448.3877,-201.8846C1424.9217,-188.891 1391.2893,-170.2681 1371.0869,-159.0817"/>
+<polygon fill="#191970" stroke="#191970" points="1447.0025,-205.1183 1457.4463,-206.9005 1450.3934,-198.9944 1447.0025,-205.1183"/>
 </g>
 <!-- Node40 -->
 <g id="node18" class="node">
 <title>Node40</title>
 <g id="a_node18"><a xlink:href="relay_2function_8h.html" target="_top" xlink:title="Relay Function. ">
-<polygon fill="#ffffff" stroke="#000000" points="2045.5,-140 2045.5,-159 2199.5,-159 2199.5,-140 2045.5,-140"/>
-<text text-anchor="middle" x="2122.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/function.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1707.7827,-140 1707.7827,-159 1861.7827,-159 1861.7827,-140 1707.7827,-140"/>
+<text text-anchor="middle" x="1784.7827" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/function.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node40 -->
 <g id="edge21" class="edge">
 <title>Node25&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M1569.932,-205.6538C1582.7937,-203.9849 1596.0164,-202.3654 1608.5,-201 1798.2622,-180.2442 1847.2446,-189.9577 2036.5,-165 2048.6831,-163.3934 2061.7663,-161.2517 2073.9603,-159.0744"/>
-<polygon fill="#191970" stroke="#191970" points="1569.1732,-202.2234 1559.7156,-206.9989 1570.087,-209.1635 1569.1732,-202.2234"/>
+<path fill="none" stroke="#191970" d="M1528.9095,-204.8016C1588.9091,-191.834 1684.5572,-171.1616 1740.3466,-159.1039"/>
+<polygon fill="#191970" stroke="#191970" points="1527.9038,-201.4381 1518.8689,-206.9717 1529.3826,-208.2801 1527.9038,-201.4381"/>
 </g>
 <!-- Node41 -->
 <g id="node19" class="node">
 <title>Node41</title>
 <g id="a_node19"><a xlink:href="interpreter_8h.html" target="_top" xlink:title="An interpreter for Relay. ">
-<polygon fill="#ffffff" stroke="#000000" points="2402,-140 2402,-159 2567,-159 2567,-140 2402,-140"/>
-<text text-anchor="middle" x="2484.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/interpreter.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2392.2827,-140 2392.2827,-159 2557.2827,-159 2557.2827,-140 2392.2827,-140"/>
+<text text-anchor="middle" x="2474.7827" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/interpreter.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node41 -->
 <g id="edge25" class="edge">
 <title>Node25&#45;&gt;Node41</title>
-<path fill="none" stroke="#191970" d="M1566.6441,-205.6584C1580.52,-203.8807 1594.9377,-202.223 1608.5,-201 1955.902,-169.6734 2045.6609,-202.043 2392.5,-165 2406.1899,-163.5379 2420.9313,-161.3379 2434.5168,-159.0513"/>
-<polygon fill="#191970" stroke="#191970" points="1566.1154,-202.1977 1556.656,-206.9695 1567.0265,-209.1381 1566.1154,-202.1977"/>
+<path fill="none" stroke="#191970" d="M1550.6966,-205.7324C1565.3041,-203.9331 1580.5003,-202.2486 1594.7827,-201 1941.8267,-170.6608 2031.2328,-200.541 2377.7827,-165 2392.2029,-163.5211 2407.7409,-161.3155 2422.0647,-159.0288"/>
+<polygon fill="#191970" stroke="#191970" points="1550.1802,-202.2697 1540.6962,-206.9924 1551.0553,-209.2148 1550.1802,-202.2697"/>
 </g>
 <!-- Node25&#45;&gt;Node42 -->
 <g id="edge26" class="edge">
 <title>Node25&#45;&gt;Node42</title>
-<path fill="none" stroke="#191970" d="M1550.685,-205.1462C1558.9935,-203.6552 1567.4552,-202.2228 1575.5,-201 1713.5015,-180.0233 1749.6249,-186.7921 1887.5,-165 1898.1405,-163.3182 1909.5466,-161.1983 1920.2324,-159.0709"/>
-<polygon fill="#191970" stroke="#191970" points="1549.8693,-201.7373 1540.6648,-206.9839 1551.1321,-208.6225 1549.8693,-201.7373"/>
+<path fill="none" stroke="#191970" d="M1530.0878,-205.1585C1538.9871,-203.5898 1548.1192,-202.1314 1556.7827,-201 1774.6275,-172.5513 1832.1099,-194.736 2049.7827,-165 2060.9966,-163.4681 2073.0331,-161.3002 2084.1799,-159.0697"/>
+<polygon fill="#191970" stroke="#191970" points="1529.3871,-201.7285 1520.1767,-206.9648 1530.6422,-208.615 1529.3871,-201.7285"/>
 </g>
 <!-- Node43 -->
 <g id="node21" class="node">
 <title>Node43</title>
 <g id="a_node21"><a xlink:href="relay_2op__attr__types_8h.html" target="_top" xlink:title="The Expr and related elements in DataFlow construction. ">
-<polygon fill="#ffffff" stroke="#000000" points="968,-134.5 968,-164.5 1085,-164.5 1085,-134.5 968,-134.5"/>
-<text text-anchor="start" x="976" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/op</text>
-<text text-anchor="middle" x="1026.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attr_types.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="794.2827,-134.5 794.2827,-164.5 911.2827,-164.5 911.2827,-134.5 794.2827,-134.5"/>
+<text text-anchor="start" x="802.2827" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/op</text>
+<text text-anchor="middle" x="852.7827" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attr_types.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node43 -->
 <g id="edge30" class="edge">
 <title>Node25&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M1433.4622,-205.1893C1424.7659,-203.6937 1415.9132,-202.2486 1407.5,-201 1271.1724,-180.7673 1235.4987,-187.3367 1099.5,-165 1094.8975,-164.2441 1090.1458,-163.3942 1085.3779,-162.4918"/>
-<polygon fill="#191970" stroke="#191970" points="1433.1092,-208.6807 1443.5632,-206.9596 1434.3176,-201.7858 1433.1092,-208.6807"/>
+<path fill="none" stroke="#191970" d="M1396.921,-208.1939C1374.0113,-205.8058 1348.8957,-203.2422 1325.7827,-201 1148.1204,-183.7652 1102.2883,-191.5841 925.7827,-165 921.1705,-164.3053 916.4119,-163.4995 911.6392,-162.6276"/>
+<polygon fill="#191970" stroke="#191970" points="1396.6233,-211.6818 1406.9332,-209.241 1397.3515,-204.7198 1396.6233,-211.6818"/>
 </g>
 <!-- Node44 -->
 <g id="node22" class="node">
 <title>Node44</title>
 <g id="a_node22"><a xlink:href="op__strategy_8h.html" target="_top" xlink:title="The Relay operator Strategy and related data structure. ">
-<polygon fill="#ffffff" stroke="#000000" points="881,-67.5 881,-97.5 998,-97.5 998,-67.5 881,-67.5"/>
-<text text-anchor="start" x="889" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/op</text>
-<text text-anchor="middle" x="939.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_strategy.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="707.2827,-67.5 707.2827,-97.5 824.2827,-97.5 824.2827,-67.5 707.2827,-67.5"/>
+<text text-anchor="start" x="715.2827" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/op</text>
+<text text-anchor="middle" x="765.7827" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_strategy.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node44 -->
 <g id="edge33" class="edge">
 <title>Node25&#45;&gt;Node44</title>
-<path fill="none" stroke="#191970" d="M1432.1497,-205.1967C1423.8711,-203.7435 1415.4828,-202.3079 1407.5,-201 1299.324,-183.276 1268.798,-195.4718 1163.5,-165 1130.8156,-155.5416 1125.2251,-146.2981 1093.5,-134 1058.803,-120.5498 1018.9434,-107.2779 988.47,-97.5764"/>
-<polygon fill="#191970" stroke="#191970" points="1431.7012,-208.6716 1442.1586,-206.9706 1432.9229,-201.7791 1431.7012,-208.6716"/>
+<path fill="none" stroke="#191970" d="M1396.9094,-208.3118C1373.9993,-205.9265 1348.8865,-203.3348 1325.7827,-201 1162.7193,-184.521 1110.6983,-226.5052 958.7827,-165 938.2589,-156.6906 939.2442,-144.5604 919.7827,-134 889.9245,-117.7981 854.0545,-105.4384 824.4477,-96.8935"/>
+<polygon fill="#191970" stroke="#191970" points="1396.6127,-211.7998 1406.9218,-209.3557 1397.3387,-204.8375 1396.6127,-211.7998"/>
 </g>
 <!-- Node27&#45;&gt;Node26 -->
 <g id="edge5" class="edge">
 <title>Node27&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M1688.1039,-137.9379C1681.1789,-136.5603 1674.1799,-135.2139 1667.5,-134 1571.6547,-116.5819 1459.4107,-99.7171 1394.1894,-90.266"/>
-<polygon fill="#191970" stroke="#191970" points="1687.6563,-141.4181 1698.1513,-139.9669 1689.042,-134.5566 1687.6563,-141.4181"/>
+<path fill="none" stroke="#191970" d="M1558.9861,-135.2834C1537.2944,-124.1892 1507.2371,-108.8164 1485.1536,-97.5218"/>
+<polygon fill="#191970" stroke="#191970" points="1557.5167,-138.4631 1568.0136,-139.9005 1560.7042,-132.2309 1557.5167,-138.4631"/>
 </g>
 <!-- Node27&#45;&gt;Node28 -->
 <g id="edge6" class="edge">
 <title>Node27&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M1761.3606,-133.2992C1776.3624,-120.4131 1796.8431,-102.8207 1809.3452,-92.0817"/>
-<polygon fill="#191970" stroke="#191970" points="1758.9806,-130.7296 1753.6755,-139.9005 1763.5418,-136.0396 1758.9806,-130.7296"/>
+<path fill="none" stroke="#191970" d="M1592.3164,-129.9863C1595.8492,-117.5286 1600.2739,-101.9258 1603.0655,-92.0817"/>
+<polygon fill="#191970" stroke="#191970" points="1588.866,-129.325 1589.5049,-139.9005 1595.6005,-131.2348 1588.866,-129.325"/>
 </g>
 <!-- Node27&#45;&gt;Node29 -->
 <g id="edge7" class="edge">
 <title>Node27&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M1786.0738,-137.1817C1825.5948,-126.0091 1883.9682,-109.5069 1926.2445,-97.5553"/>
-<polygon fill="#191970" stroke="#191970" points="1784.8753,-133.8832 1776.2046,-139.9717 1786.7797,-140.6192 1784.8753,-133.8832"/>
+<path fill="none" stroke="#191970" d="M1623.371,-136.4605C1654.6944,-125.2974 1699.8028,-109.2216 1732.6321,-97.5218"/>
+<polygon fill="#191970" stroke="#191970" points="1621.9632,-133.2466 1613.7185,-139.9005 1624.3132,-139.8403 1621.9632,-133.2466"/>
 </g>
 <!-- Node27&#45;&gt;Node30 -->
 <g id="edge8" class="edge">
 <title>Node27&#45;&gt;Node30</title>
-<path fill="none" stroke="#191970" d="M1721.6315,-133.6115C1707.277,-122.6825 1688.333,-108.2592 1674.2301,-97.5218"/>
-<polygon fill="#191970" stroke="#191970" points="1719.8151,-136.6275 1729.8917,-139.9005 1724.0555,-131.058 1719.8151,-136.6275"/>
+<path fill="none" stroke="#191970" d="M1660.6731,-138.474C1745.1792,-125.864 1882.527,-105.3689 1965.4954,-92.9883"/>
+<polygon fill="#191970" stroke="#191970" points="1660.0105,-135.0341 1650.6366,-139.9717 1661.0437,-141.9574 1660.0105,-135.0341"/>
 </g>
 <!-- Node33&#45;&gt;Node34 -->
 <g id="edge13" class="edge">
 <title>Node33&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M2278.2442,-130.0343C2251.8445,-117.5781 2218.7476,-101.9619 2197.8546,-92.1039"/>
-<polygon fill="#191970" stroke="#191970" points="2277.095,-133.362 2287.6324,-134.4639 2280.0821,-127.0313 2277.095,-133.362"/>
+<path fill="none" stroke="#191970" d="M2259.4292,-125.1564C2253.6077,-113.6846 2246.9989,-100.6613 2242.6315,-92.055"/>
+<polygon fill="#191970" stroke="#191970" points="2256.4211,-126.963 2264.0676,-134.2967 2262.6633,-123.7953 2256.4211,-126.963"/>
 </g>
 <!-- Node35 -->
 <g id="node13" class="node">
 <title>Node35</title>
 <g id="a_node13"><a xlink:href="relay_2qnn_2transform_8h.html" target="_top" xlink:title="include/tvm/relay/qnn\l/transform.h">
-<polygon fill="#ffffff" stroke="#000000" points="2116,-.5 2116,-30.5 2239,-30.5 2239,-.5 2116,-.5"/>
-<text text-anchor="start" x="2124" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/qnn</text>
-<text text-anchor="middle" x="2177.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/transform.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2176.2827,-.5 2176.2827,-30.5 2299.2827,-30.5 2299.2827,-.5 2176.2827,-.5"/>
+<text text-anchor="start" x="2184.2827" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/qnn</text>
+<text text-anchor="middle" x="2237.7827" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node35 -->
 <g id="edge14" class="edge">
 <title>Node34&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M2177.5,-62.7758C2177.5,-52.4641 2177.5,-40.0437 2177.5,-30.5218"/>
-<polygon fill="#191970" stroke="#191970" points="2174.0001,-62.9005 2177.5,-72.9005 2181.0001,-62.9006 2174.0001,-62.9005"/>
+<path fill="none" stroke="#191970" d="M2237.7827,-62.7758C2237.7827,-52.4641 2237.7827,-40.0437 2237.7827,-30.5218"/>
+<polygon fill="#191970" stroke="#191970" points="2234.2828,-62.9005 2237.7827,-72.9005 2241.2828,-62.9006 2234.2828,-62.9005"/>
 </g>
 <!-- Node37 -->
 <g id="node15" class="node">
 <title>Node37</title>
 <g id="a_node15"><a xlink:href="dataflow__matcher_8h.html" target="_top" xlink:title="A pattern matcher for matching dataflow properties. ">
-<polygon fill="#ffffff" stroke="#000000" points="2624,-.5 2624,-30.5 2771,-30.5 2771,-.5 2624,-.5"/>
-<text text-anchor="start" x="2632" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/dataflow</text>
-<text text-anchor="middle" x="2697.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_matcher.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1114.2827,-.5 1114.2827,-30.5 1261.2827,-30.5 1261.2827,-.5 1114.2827,-.5"/>
+<text text-anchor="start" x="1122.2827" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/dataflow</text>
+<text text-anchor="middle" x="1187.7827" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_matcher.h</text>
 </a>
 </g>
 </g>
 <!-- Node36&#45;&gt;Node37 -->
 <g id="edge16" class="edge">
 <title>Node36&#45;&gt;Node37</title>
-<path fill="none" stroke="#191970" d="M2715.9667,-125.9251C2721.4319,-117.5778 2726.6998,-107.8123 2729.5,-98 2733.2809,-84.7512 2733.2809,-80.2488 2729.5,-67 2725.6869,-53.6386 2717.2983,-40.3639 2710.0664,-30.6388"/>
-<polygon fill="#191970" stroke="#191970" points="2712.9297,-124.1606 2710.0664,-134.3612 2718.666,-128.1726 2712.9297,-124.1606"/>
+<path fill="none" stroke="#191970" d="M1206.2494,-125.9251C1211.7146,-117.5778 1216.9825,-107.8123 1219.7827,-98 1223.5636,-84.7512 1223.5636,-80.2488 1219.7827,-67 1215.9696,-53.6386 1207.581,-40.3639 1200.3491,-30.6388"/>
+<polygon fill="#191970" stroke="#191970" points="1203.2124,-124.1606 1200.3491,-134.3612 1208.9486,-128.1726 1203.2124,-124.1606"/>
 </g>
 <!-- Node38 -->
 <g id="node16" class="node">
 <title>Node38</title>
 <g id="a_node16"><a xlink:href="dataflow__pattern__functor_8h.html" target="_top" xlink:title="A set of passes for operating on pattern graphs. ">
-<polygon fill="#ffffff" stroke="#000000" points="2573,-67.5 2573,-97.5 2720,-97.5 2720,-67.5 2573,-67.5"/>
-<text text-anchor="start" x="2581" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/dataflow</text>
-<text text-anchor="middle" x="2646.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_pattern_functor.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1063.2827,-67.5 1063.2827,-97.5 1210.2827,-97.5 1210.2827,-67.5 1063.2827,-67.5"/>
+<text text-anchor="start" x="1071.2827" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/dataflow</text>
+<text text-anchor="middle" x="1136.7827" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_pattern_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node36&#45;&gt;Node38 -->
 <g id="edge17" class="edge">
 <title>Node36&#45;&gt;Node38</title>
-<path fill="none" stroke="#191970" d="M2679.6596,-126.0626C2672.4807,-116.6315 2664.4091,-106.0276 2658.0269,-97.6432"/>
-<polygon fill="#191970" stroke="#191970" points="2677.0854,-128.4595 2685.9273,-134.2967 2682.6554,-124.2197 2677.0854,-128.4595"/>
+<path fill="none" stroke="#191970" d="M1169.9423,-126.0626C1162.7634,-116.6315 1154.6918,-106.0276 1148.3096,-97.6432"/>
+<polygon fill="#191970" stroke="#191970" points="1167.3681,-128.4595 1176.21,-134.2967 1172.9381,-124.2197 1167.3681,-128.4595"/>
 </g>
 <!-- Node38&#45;&gt;Node37 -->
 <g id="edge18" class="edge">
 <title>Node38&#45;&gt;Node37</title>
-<path fill="none" stroke="#191970" d="M2664.3404,-59.0626C2671.5193,-49.6315 2679.5909,-39.0276 2685.9731,-30.6432"/>
-<polygon fill="#191970" stroke="#191970" points="2661.3446,-57.2197 2658.0727,-67.2967 2666.9146,-61.4595 2661.3446,-57.2197"/>
+<path fill="none" stroke="#191970" d="M1154.6231,-59.0626C1161.802,-49.6315 1169.8736,-39.0276 1176.2558,-30.6432"/>
+<polygon fill="#191970" stroke="#191970" points="1151.6273,-57.2197 1148.3554,-67.2967 1157.1972,-61.4595 1151.6273,-57.2197"/>
 </g>
 <!-- Node40&#45;&gt;Node28 -->
 <g id="edge22" class="edge">
 <title>Node40&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M2069.77,-137.8016C2011.3188,-124.834 1918.139,-104.1616 1863.7893,-92.1039"/>
-<polygon fill="#191970" stroke="#191970" points="2069.0308,-141.2226 2079.5515,-139.9717 2070.5469,-134.3888 2069.0308,-141.2226"/>
+<path fill="none" stroke="#191970" d="M1749.3798,-136.2487C1714.5846,-123.2247 1662.3303,-103.6659 1631.3815,-92.0817"/>
+<polygon fill="#191970" stroke="#191970" points="1748.544,-139.6729 1759.1364,-139.9005 1750.9979,-133.1171 1748.544,-139.6729"/>
 </g>
 <!-- Node40&#45;&gt;Node29 -->
 <g id="edge23" class="edge">
 <title>Node40&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M2092.7921,-135.5809C2069.0676,-124.4653 2035.884,-108.9177 2011.5614,-97.5218"/>
-<polygon fill="#191970" stroke="#191970" points="2091.4713,-138.8271 2102.0116,-139.9005 2094.4412,-132.4884 2091.4713,-138.8271"/>
+<path fill="none" stroke="#191970" d="M1781.8388,-129.7758C1780.2997,-119.4641 1778.4459,-107.0437 1777.0247,-97.5218"/>
+<polygon fill="#191970" stroke="#191970" points="1778.412,-130.5268 1783.3499,-139.9005 1785.3353,-129.4934 1778.412,-130.5268"/>
 </g>
 <!-- Node40&#45;&gt;Node34 -->
 <g id="edge24" class="edge">
 <title>Node40&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M2136.9899,-131.8486C2147.4393,-119.1194 2161.1454,-102.4229 2169.6345,-92.0817"/>
-<polygon fill="#191970" stroke="#191970" points="2134.0199,-129.9505 2130.3802,-139.9005 2139.4304,-134.392 2134.0199,-129.9505"/>
+<path fill="none" stroke="#191970" d="M1845.5168,-138.2497C1853.9934,-136.7683 1862.5998,-135.311 1870.7827,-134 1972.112,-117.7653 2089.6402,-101.7689 2163.8473,-92.016"/>
+<polygon fill="#191970" stroke="#191970" points="1844.8968,-134.805 1835.6588,-139.9925 1846.1155,-141.6981 1844.8968,-134.805"/>
 </g>
 <!-- Node42&#45;&gt;Node29 -->
 <g id="edge27" class="edge">
 <title>Node42&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M1968.8423,-130.1042C1971.1652,-119.7287 1973.9825,-107.145 1976.1369,-97.5218"/>
-<polygon fill="#191970" stroke="#191970" points="1965.4185,-129.3774 1966.6491,-139.9005 1972.2494,-130.9068 1965.4185,-129.3774"/>
+<path fill="none" stroke="#191970" d="M2066.8465,-138.0917C2003.2874,-125.9938 1903.2879,-106.9598 1838.3727,-94.6038"/>
+<polygon fill="#191970" stroke="#191970" points="2066.2454,-141.54 2076.7235,-139.9717 2067.5543,-134.6635 2066.2454,-141.54"/>
 </g>
 <!-- Node42&#45;&gt;Node30 -->
 <g id="edge28" class="edge">
 <title>Node42&#45;&gt;Node30</title>
-<path fill="none" stroke="#191970" d="M1910.4408,-137.8162C1858.7362,-126.6414 1780.5139,-109.7353 1724.1591,-97.5553"/>
-<polygon fill="#191970" stroke="#191970" points="1909.9001,-141.2801 1920.4138,-139.9717 1911.3789,-134.4381 1909.9001,-141.2801"/>
+<path fill="none" stroke="#191970" d="M2105.6216,-133.9198C2090.729,-122.955 2070.9067,-108.3605 2056.1854,-97.5218"/>
+<polygon fill="#191970" stroke="#191970" points="2103.6167,-136.79 2113.7446,-139.9005 2107.767,-131.153 2103.6167,-136.79"/>
 </g>
 <!-- Node42&#45;&gt;Node34 -->
 <g id="edge29" class="edge">
 <title>Node42&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M2004.7758,-136.8311C2046.1581,-123.8141 2109.6583,-103.8399 2147.0389,-92.0817"/>
-<polygon fill="#191970" stroke="#191970" points="2003.5067,-133.5611 1995.0177,-139.9005 2005.6071,-140.2386 2003.5067,-133.5611"/>
+<path fill="none" stroke="#191970" d="M2151.2838,-134.711C2172.7969,-121.7256 2203.4582,-103.2184 2221.9086,-92.0817"/>
+<polygon fill="#191970" stroke="#191970" points="2149.4389,-131.7364 2142.6863,-139.9005 2153.0563,-137.7293 2149.4389,-131.7364"/>
 </g>
 <!-- Node43&#45;&gt;Node34 -->
 <g id="edge32" class="edge">
 <title>Node43&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M1095.3582,-142.9447C1129.3834,-139.8818 1171.0724,-136.3918 1208.5,-134 1582.7447,-110.0835 1677.7686,-128.918 2051.5,-98 2069.9505,-96.4736 2089.8588,-94.2801 2108.2817,-92.0216"/>
-<polygon fill="#191970" stroke="#191970" points="1094.7004,-139.49 1085.0579,-143.8799 1095.3334,-146.4613 1094.7004,-139.49"/>
+<path fill="none" stroke="#191970" d="M921.7311,-138.2558C934.0414,-136.5803 946.7696,-135.0619 958.7827,-134 1470.8131,-88.7397 1602.3285,-138.1783 2114.7827,-98 2133.2359,-96.5532 2153.1719,-94.3292 2171.5119,-92.0135"/>
+<polygon fill="#191970" stroke="#191970" points="920.9283,-134.8342 911.5136,-139.6936 921.9038,-141.7659 920.9283,-134.8342"/>
 </g>
 <!-- Node43&#45;&gt;Node44 -->
 <g id="edge31" class="edge">
 <title>Node43&#45;&gt;Node44</title>
-<path fill="none" stroke="#191970" d="M998.6656,-128.0643C985.8018,-118.1577 970.8285,-106.6265 959.1635,-97.6432"/>
-<polygon fill="#191970" stroke="#191970" points="996.6999,-130.9681 1006.7584,-134.2967 1000.971,-125.4221 996.6999,-130.9681"/>
+<path fill="none" stroke="#191970" d="M824.9483,-128.0643C812.0845,-118.1577 797.1112,-106.6265 785.4462,-97.6432"/>
+<polygon fill="#191970" stroke="#191970" points="822.9826,-130.9681 833.041,-134.2967 827.2537,-125.4221 822.9826,-130.9681"/>
 </g>
 <!-- Node46 -->
 <g id="node24" class="node">
 <title>Node46</title>
 <g id="a_node24"><a xlink:href="detail_2extern_8h.html" target="_top" xlink:title="Helpers for using external functions. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-67.5 0,-97.5 127,-97.5 127,-67.5 0,-67.5"/>
-<text text-anchor="start" x="8" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/detail</text>
-<text text-anchor="middle" x="63.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/extern.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="423.2827,-67.5 423.2827,-97.5 550.2827,-97.5 550.2827,-67.5 423.2827,-67.5"/>
+<text text-anchor="start" x="431.2827" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/detail</text>
+<text text-anchor="middle" x="486.7827" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/extern.h</text>
 </a>
 </g>
 </g>
 <!-- Node45&#45;&gt;Node46 -->
 <g id="edge38" class="edge">
 <title>Node45&#45;&gt;Node46</title>
-<path fill="none" stroke="#191970" d="M108.9495,-197.4101C98.3239,-170.5452 79.1753,-122.132 69.4767,-97.611"/>
-<polygon fill="#191970" stroke="#191970" points="105.7557,-198.8513 112.6884,-206.8631 112.265,-196.2767 105.7557,-198.8513"/>
+<path fill="none" stroke="#191970" d="M135.1836,-202.3139C171.3568,-184.6342 236.1048,-154.2814 293.7827,-134 336.1495,-119.1025 385.0405,-106.0985 423.0137,-96.8846"/>
+<polygon fill="#191970" stroke="#191970" points="133.1965,-199.3908 125.7683,-206.9455 136.2864,-205.672 133.1965,-199.3908"/>
 </g>
 <!-- Node51 -->
 <g id="node27" class="node">
 <title>Node51</title>
 <g id="a_node27"><a xlink:href="elemwise_8h.html" target="_top" xlink:title="Elementwise op constructions. ">
-<polygon fill="#ffffff" stroke="#000000" points="403,-140 403,-159 558,-159 558,-140 403,-140"/>
-<text text-anchor="middle" x="480.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/elemwise.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="29.2827,-140 29.2827,-159 184.2827,-159 184.2827,-140 29.2827,-140"/>
+<text text-anchor="middle" x="106.7827" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/elemwise.h</text>
 </a>
 </g>
 </g>
 <!-- Node45&#45;&gt;Node51 -->
 <g id="edge41" class="edge">
 <title>Node45&#45;&gt;Node51</title>
-<path fill="none" stroke="#191970" d="M178.332,-205.1188C248.7676,-192.154 362.6179,-171.1981 428.6185,-159.0496"/>
-<polygon fill="#191970" stroke="#191970" points="177.4669,-201.7192 168.2658,-206.9717 178.7342,-208.6035 177.4669,-201.7192"/>
+<path fill="none" stroke="#191970" d="M106.7827,-196.6079C106.7827,-184.214 106.7827,-168.8263 106.7827,-159.0817"/>
+<polygon fill="#191970" stroke="#191970" points="103.2828,-196.9005 106.7827,-206.9005 110.2828,-196.9006 103.2828,-196.9005"/>
 </g>
 <!-- Node47 -->
 <g id="node25" class="node">
 <title>Node47</title>
 <g id="a_node25"><a xlink:href="cublas_8h.html" target="_top" xlink:title="External function interface to cuBLAS libraries. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="240,-.5 240,-30.5 373,-30.5 373,-.5 240,-.5"/>
-<text text-anchor="start" x="248" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/contrib</text>
-<text text-anchor="middle" x="306.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/cublas.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="336.2827,-.5 336.2827,-30.5 469.2827,-30.5 469.2827,-.5 336.2827,-.5"/>
+<text text-anchor="start" x="344.2827" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/contrib</text>
+<text text-anchor="middle" x="402.7827" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/cublas.h</text>
 </a>
 </g>
 </g>
 <!-- Node46&#45;&gt;Node47 -->
 <g id="edge39" class="edge">
 <title>Node46&#45;&gt;Node47</title>
-<path fill="none" stroke="#191970" d="M128.1154,-64.6842C166.6598,-54.0568 215.0684,-40.7095 251.7282,-30.6017"/>
-<polygon fill="#191970" stroke="#191970" points="126.7439,-61.4317 118.0339,-67.4639 128.6046,-68.1799 126.7439,-61.4317"/>
+<path fill="none" stroke="#191970" d="M459.5527,-60.7808C447.2128,-50.9383 432.9236,-39.541 421.7682,-30.6432"/>
+<polygon fill="#191970" stroke="#191970" points="457.7215,-63.7973 467.7218,-67.2967 462.0865,-58.3248 457.7215,-63.7973"/>
 </g>
 <!-- Node50 -->
 <g id="node26" class="node">
 <title>Node50</title>
 <g id="a_node26"><a xlink:href="rocblas_8h.html" target="_top" xlink:title="include/tvm/topi/contrib\l/rocblas.h">
-<polygon fill="#ffffff" stroke="#ff0000" points="28,-.5 28,-30.5 161,-30.5 161,-.5 28,-.5"/>
-<text text-anchor="start" x="36" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/contrib</text>
-<text text-anchor="middle" x="94.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/rocblas.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="496.2827,-.5 496.2827,-30.5 629.2827,-30.5 629.2827,-.5 496.2827,-.5"/>
+<text text-anchor="start" x="504.2827" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/contrib</text>
+<text text-anchor="middle" x="562.7827" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/rocblas.h</text>
 </a>
 </g>
 </g>
 <!-- Node46&#45;&gt;Node50 -->
 <g id="edge40" class="edge">
 <title>Node46&#45;&gt;Node50</title>
-<path fill="none" stroke="#191970" d="M74.7464,-58.1932C79.0072,-48.9844 83.7328,-38.771 87.4935,-30.6432"/>
-<polygon fill="#191970" stroke="#191970" points="71.5571,-56.7513 70.5344,-67.2967 77.9101,-59.6908 71.5571,-56.7513"/>
+<path fill="none" stroke="#191970" d="M511.7419,-60.4965C522.8324,-50.7193 535.6094,-39.4554 545.6054,-30.6432"/>
+<polygon fill="#191970" stroke="#191970" points="509.215,-58.0582 504.0283,-67.2967 513.8441,-63.3091 509.215,-58.0582"/>
 </g>
 <!-- Node52 -->
 <g id="node28" class="node">
 <title>Node52</title>
 <g id="a_node28"><a xlink:href="reduction_8h.html" target="_top" xlink:title="Reduction op constructors. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="404.5,-73 404.5,-92 558.5,-92 558.5,-73 404.5,-73"/>
-<text text-anchor="middle" x="481.5" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/reduction.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="28.7827,-73 28.7827,-92 182.7827,-92 182.7827,-73 28.7827,-73"/>
+<text text-anchor="middle" x="105.7827" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/reduction.h</text>
 </a>
 </g>
 </g>
 <!-- Node51&#45;&gt;Node52 -->
 <g id="edge42" class="edge">
 <title>Node51&#45;&gt;Node52</title>
-<path fill="none" stroke="#191970" d="M480.7969,-129.6079C480.9819,-117.214 481.2115,-101.8263 481.357,-92.0817"/>
-<polygon fill="#191970" stroke="#191970" points="477.293,-129.8494 480.6433,-139.9005 484.2922,-129.9539 477.293,-129.8494"/>
+<path fill="none" stroke="#191970" d="M106.4858,-129.6079C106.3008,-117.214 106.0711,-101.8263 105.9257,-92.0817"/>
+<polygon fill="#191970" stroke="#191970" points="102.9905,-129.9539 106.6394,-139.9005 109.9897,-129.8494 102.9905,-129.9539"/>
 </g>
 <!-- Node55 -->
 <g id="node29" class="node">
 <title>Node55</title>
 <g id="a_node29"><a xlink:href="topi_2nn_8h.html" target="_top" xlink:title="NN op constructions. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="421.5,-6 421.5,-25 541.5,-25 541.5,-6 421.5,-6"/>
-<text text-anchor="middle" x="481.5" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/nn.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="45.7827,-6 45.7827,-25 165.7827,-25 165.7827,-6 45.7827,-6"/>
+<text text-anchor="middle" x="105.7827" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/nn.h</text>
 </a>
 </g>
 </g>
 <!-- Node52&#45;&gt;Node55 -->
 <g id="edge43" class="edge">
 <title>Node52&#45;&gt;Node55</title>
-<path fill="none" stroke="#191970" d="M481.5,-62.6079C481.5,-50.214 481.5,-34.8263 481.5,-25.0817"/>
-<polygon fill="#191970" stroke="#191970" points="478.0001,-62.9005 481.5,-72.9005 485.0001,-62.9006 478.0001,-62.9005"/>
+<path fill="none" stroke="#191970" d="M105.7827,-62.6079C105.7827,-50.214 105.7827,-34.8263 105.7827,-25.0817"/>
+<polygon fill="#191970" stroke="#191970" points="102.2828,-62.9005 105.7827,-72.9005 109.2828,-62.9006 102.2828,-62.9005"/>
 </g>
 <!-- Node57&#45;&gt;Node55 -->
-<g id="edge67" class="edge">
+<g id="edge65" class="edge">
 <title>Node57&#45;&gt;Node55</title>
-<path fill="none" stroke="#191970" d="M556.2417,-398.3753C577.4077,-342.8168 630.5906,-178.319 567.5,-67 555.7442,-46.2577 531.941,-32.9669 512.3517,-25.0927"/>
-<polygon fill="#191970" stroke="#191970" points="552.9712,-397.1286 552.588,-407.7165 559.4903,-399.6785 552.9712,-397.1286"/>
+<path fill="none" stroke="#191970" d="M356.6722,-343.3775C237.9271,-328.7346 .7827,-290.2582 .7827,-216.5 .7827,-216.5 .7827,-216.5 .7827,-149.5 .7827,-111.8735 -2.3481,-97.4299 19.7827,-67 34.3177,-47.0143 59.1882,-33.3548 78.4562,-25.1526"/>
+<polygon fill="#191970" stroke="#191970" points="356.396,-346.8696 366.7444,-344.5974 357.2378,-339.9204 356.396,-346.8696"/>
 </g>
 <!-- Node58 -->
 <g id="node31" class="node">
 <title>Node58</title>
 <g id="a_node31"><a xlink:href="int__solver_8h.html" target="_top" xlink:title="integer constraints data structures and solvers ">
-<polygon fill="#ffffff" stroke="#000000" points="404.5,-335.5 404.5,-365.5 520.5,-365.5 520.5,-335.5 404.5,-335.5"/>
-<text text-anchor="start" x="412.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/arith/int</text>
-<text text-anchor="middle" x="462.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_solver.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="278.7827,-268.5 278.7827,-298.5 394.7827,-298.5 394.7827,-268.5 278.7827,-268.5"/>
+<text text-anchor="start" x="286.7827" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/arith/int</text>
+<text text-anchor="middle" x="336.7827" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_solver.h</text>
 </a>
 </g>
 </g>
 <!-- Node57&#45;&gt;Node58 -->
 <g id="edge45" class="edge">
 <title>Node57&#45;&gt;Node58</title>
-<path fill="none" stroke="#191970" d="M528.1058,-401.6115C514.0775,-390.6825 495.5641,-376.2592 481.7817,-365.5218"/>
-<polygon fill="#191970" stroke="#191970" points="526.1387,-404.5158 536.1783,-407.9005 530.4407,-398.9937 526.1387,-404.5158"/>
+<path fill="none" stroke="#191970" d="M402.3885,-334.6115C388.3602,-323.6825 369.8468,-309.2592 356.0644,-298.5218"/>
+<polygon fill="#191970" stroke="#191970" points="400.4214,-337.5158 410.461,-340.9005 404.7234,-331.9937 400.4214,-337.5158"/>
 </g>
 <!-- Node59 -->
 <g id="node32" class="node">
 <title>Node59</title>
 <g id="a_node32"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
-<polygon fill="#ffffff" stroke="#000000" points="657,-341 657,-360 786,-360 786,-341 657,-341"/>
-<text text-anchor="middle" x="721.5" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/te/tensor.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="473.2827,-274 473.2827,-293 602.2827,-293 602.2827,-274 473.2827,-274"/>
+<text text-anchor="middle" x="537.7827" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/te/tensor.h</text>
 </a>
 </g>
 </g>
 <!-- Node57&#45;&gt;Node59 -->
 <g id="edge46" class="edge">
 <title>Node57&#45;&gt;Node59</title>
-<path fill="none" stroke="#191970" d="M582.7162,-404.2487C616.3451,-391.2247 666.8478,-371.6659 696.7593,-360.0817"/>
-<polygon fill="#191970" stroke="#191970" points="581.3478,-401.0252 573.2867,-407.9005 583.8758,-407.5528 581.3478,-401.0252"/>
+<path fill="none" stroke="#191970" d="M448.1668,-335.711C470.4551,-322.7256 502.2212,-304.2184 521.3366,-293.0817"/>
+<polygon fill="#191970" stroke="#191970" points="446.138,-332.8423 439.2594,-340.9005 449.6618,-338.8906 446.138,-332.8423"/>
 </g>
 <!-- Node61 -->
 <g id="node34" class="node">
 <title>Node61</title>
 <g id="a_node34"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="238.5,-140 238.5,-159 384.5,-159 384.5,-140 238.5,-140"/>
-<text text-anchor="middle" x="311.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/te/operation.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="302.7827,-140 302.7827,-159 448.7827,-159 448.7827,-140 302.7827,-140"/>
+<text text-anchor="middle" x="375.7827" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/te/operation.h</text>
 </a>
 </g>
 </g>
 <!-- Node57&#45;&gt;Node61 -->
-<g id="edge63" class="edge">
+<g id="edge61" class="edge">
 <title>Node57&#45;&gt;Node61</title>
-<path fill="none" stroke="#191970" d="M482.2847,-408.273C452.5641,-401.1185 418.9844,-388.4412 395.5,-366 332.5397,-305.8364 316.0241,-193.0695 312.4001,-159.2987"/>
-<polygon fill="#191970" stroke="#191970" points="481.6724,-411.7226 492.1958,-410.4937 483.203,-404.8919 481.6724,-411.7226"/>
+<path fill="none" stroke="#191970" d="M418.2457,-330.6557C414.416,-313.94 408.7749,-289.3987 403.7827,-268 394.3213,-227.4443 382.8406,-179.1332 378.0513,-159.019"/>
+<polygon fill="#191970" stroke="#191970" points="414.9344,-331.876 420.5774,-340.843 421.758,-330.3142 414.9344,-331.876"/>
 </g>
 <!-- Node87 -->
 <g id="node35" class="node">
 <title>Node87</title>
 <g id="a_node35"><a xlink:href="pad__utils_8h.html" target="_top" xlink:title="Padding helpers. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="145,-67.5 145,-97.5 272,-97.5 272,-67.5 145,-67.5"/>
-<text text-anchor="start" x="153" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/detail</text>
-<text text-anchor="middle" x="208.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/pad_utils.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="201.2827,-67.5 201.2827,-97.5 328.2827,-97.5 328.2827,-67.5 201.2827,-67.5"/>
+<text text-anchor="start" x="209.2827" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/topi/detail</text>
+<text text-anchor="middle" x="264.7827" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/pad_utils.h</text>
 </a>
 </g>
 </g>
 <!-- Node57&#45;&gt;Node87 -->
-<g id="edge66" class="edge">
+<g id="edge64" class="edge">
 <title>Node57&#45;&gt;Node87</title>
-<path fill="none" stroke="#191970" d="M485.9996,-405.9877C388.3124,-386.1896 210.5,-342.1038 210.5,-283.5 210.5,-283.5 210.5,-283.5 210.5,-216.5 210.5,-173.457 209.4555,-122.6455 208.8762,-97.7718"/>
-<polygon fill="#191970" stroke="#191970" points="485.5663,-409.4702 496.0584,-407.9979 486.9382,-402.606 485.5663,-409.4702"/>
+<path fill="none" stroke="#191970" d="M366.0332,-338.5476C327.5484,-329.1742 281.6037,-315.0571 269.7827,-299 224.2008,-237.0834 248.2525,-135.9339 259.7742,-97.7428"/>
+<polygon fill="#191970" stroke="#191970" points="365.6042,-342.0428 376.142,-340.9448 367.2195,-335.2317 365.6042,-342.0428"/>
 </g>
 <!-- Node108 -->
-<g id="node38" class="node">
+<g id="node37" class="node">
 <title>Node108</title>
-<g id="a_node38"><a xlink:href="data__layout_8h.html" target="_top" xlink:title="Layout expression to describe the data organization of a tensor. And BijectiveLayout to mapping two d...">
-<polygon fill="#ffffff" stroke="#ff0000" points="1024,-268.5 1024,-298.5 1137,-298.5 1137,-268.5 1024,-268.5"/>
-<text text-anchor="start" x="1032" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/data</text>
-<text text-anchor="middle" x="1080.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_layout.h</text>
+<g id="a_node37"><a xlink:href="data__layout_8h.html" target="_top" xlink:title="Layout expression to describe the data organization of a tensor. And BijectiveLayout to mapping two d...">
+<polygon fill="#ffffff" stroke="#ff0000" points="734.2827,-268.5 734.2827,-298.5 847.2827,-298.5 847.2827,-268.5 734.2827,-268.5"/>
+<text text-anchor="start" x="742.2827" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/data</text>
+<text text-anchor="middle" x="790.7827" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_layout.h</text>
 </a>
 </g>
 </g>
 <!-- Node57&#45;&gt;Node108 -->
-<g id="edge64" class="edge">
+<g id="edge62" class="edge">
 <title>Node57&#45;&gt;Node108</title>
-<path fill="none" stroke="#191970" d="M609.6297,-406.0167C659.58,-396.3187 731.9058,-381.5571 794.5,-366 878.88,-345.0283 975.8832,-315.9873 1032.4693,-298.5424"/>
-<polygon fill="#191970" stroke="#191970" points="608.7896,-402.6142 599.6351,-407.9476 610.1174,-409.4872 608.7896,-402.6142"/>
+<path fill="none" stroke="#191970" d="M485.0857,-339.1568C554.7971,-326.4648 666.7609,-306.0801 734.0982,-293.8203"/>
+<polygon fill="#191970" stroke="#191970" points="484.3286,-335.737 475.1173,-340.9717 485.5825,-342.6238 484.3286,-335.737"/>
 </g>
 <!-- Node59&#45;&gt;Node43 -->
 <g id="edge47" class="edge">
 <title>Node59&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M773.8613,-338.7095C779.477,-337.4534 785.1064,-336.1978 790.5,-335 863.3496,-318.822 895.9629,-345.2838 954.5,-299 998.7916,-263.9798 1017.4668,-194.9501 1023.7877,-164.5162"/>
-<polygon fill="#191970" stroke="#191970" points="772.8147,-335.3571 763.8217,-340.9586 774.345,-342.1878 772.8147,-335.3571"/>
+<path fill="none" stroke="#191970" d="M612.48,-275.2795C678.5334,-266.8517 768.9101,-252.1324 798.7827,-232 823.3408,-215.4492 839.3678,-183.5917 847.1789,-164.6739"/>
+<polygon fill="#191970" stroke="#191970" points="611.999,-271.8124 602.5113,-276.5276 612.8687,-278.7581 611.999,-271.8124"/>
 </g>
 <!-- Node59&#45;&gt;Node44 -->
 <g id="edge48" class="edge">
 <title>Node59&#45;&gt;Node44</title>
-<path fill="none" stroke="#191970" d="M685.7942,-336.4103C669.8147,-328.0937 652.5624,-315.8431 643.5,-299 636.9718,-286.867 636.8283,-280.0547 643.5,-268 695.6268,-173.8156 817.7696,-121.0599 887.776,-97.5618"/>
-<polygon fill="#191970" stroke="#191970" points="684.458,-339.6519 694.9841,-340.8573 687.5072,-333.3509 684.458,-339.6519"/>
+<path fill="none" stroke="#191970" d="M514.9057,-267.824C493.6041,-251.2322 467.2926,-224.2794 482.7827,-201 532.6502,-126.0564 640.0102,-98.4187 707.222,-88.2893"/>
+<polygon fill="#191970" stroke="#191970" points="512.9005,-270.6945 523.0143,-273.8508 517.0763,-265.0764 512.9005,-270.6945"/>
 </g>
 <!-- Node60 -->
 <g id="node33" class="node">
 <title>Node60</title>
 <g id="a_node33"><a xlink:href="autodiff_8h.html" target="_top" xlink:title="Automatic differentiation of tensor expressions. ">
-<polygon fill="#ffffff" stroke="#000000" points="653,-274 653,-293 790,-293 790,-274 653,-274"/>
-<text text-anchor="middle" x="721.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/te/autodiff.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="492.2827,-207 492.2827,-226 629.2827,-226 629.2827,-207 492.2827,-207"/>
+<text text-anchor="middle" x="560.7827" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/te/autodiff.h</text>
 </a>
 </g>
 </g>
 <!-- Node59&#45;&gt;Node60 -->
 <g id="edge49" class="edge">
 <title>Node59&#45;&gt;Node60</title>
-<path fill="none" stroke="#191970" d="M721.5,-330.6079C721.5,-318.214 721.5,-302.8263 721.5,-293.0817"/>
-<polygon fill="#191970" stroke="#191970" points="718.0001,-330.9005 721.5,-340.9005 725.0001,-330.9006 718.0001,-330.9005"/>
+<path fill="none" stroke="#191970" d="M544.3522,-264.3628C548.6495,-251.8444 554.08,-236.0252 557.4935,-226.0817"/>
+<polygon fill="#191970" stroke="#191970" points="541.0146,-263.3059 541.078,-273.9005 547.6353,-265.5787 541.0146,-263.3059"/>
 </g>
 <!-- Node59&#45;&gt;Node61 -->
 <g id="edge50" class="edge">
 <title>Node59&#45;&gt;Node61</title>
-<path fill="none" stroke="#191970" d="M691.2309,-336.7455C668.8508,-326.5057 637.6738,-312.0938 610.5,-299 503.8414,-247.606 377.302,-183.1872 330.2961,-159.1376"/>
-<polygon fill="#191970" stroke="#191970" points="689.9967,-340.0295 700.5471,-340.9996 692.9044,-333.662 689.9967,-340.0295"/>
+<path fill="none" stroke="#191970" d="M508.0892,-269.0965C490.2939,-259.7616 467.7172,-246.6391 449.7827,-232 421.7605,-209.1268 394.9872,-175.3558 382.7411,-159.0288"/>
+<polygon fill="#191970" stroke="#191970" points="506.9278,-272.434 517.4237,-273.8785 510.1195,-266.2039 506.9278,-272.434"/>
 </g>
 <!-- Node94 -->
 <g id="node36" class="node">
 <title>Node94</title>
 <g id="a_node36"><a xlink:href="te_2schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="824,-207 824,-226 967,-226 967,-207 824,-207"/>
-<text text-anchor="middle" x="895.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/te/schedule.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="647.2827,-207 647.2827,-226 790.2827,-226 790.2827,-207 647.2827,-207"/>
+<text text-anchor="middle" x="718.7827" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/te/schedule.h</text>
 </a>
 </g>
 </g>
 <!-- Node59&#45;&gt;Node94 -->
 <g id="edge57" class="edge">
 <title>Node59&#45;&gt;Node94</title>
-<path fill="none" stroke="#191970" d="M796.2383,-342.5141C851.4572,-334.8921 919.9573,-321.217 937.5,-299 956.1253,-275.4119 925.1296,-242.2638 907.068,-226.1085"/>
-<polygon fill="#191970" stroke="#191970" points="795.5466,-339.0753 786.0975,-343.8676 796.4727,-346.0138 795.5466,-339.0753"/>
-</g>
-<!-- Node107 -->
-<g id="node37" class="node">
-<title>Node107</title>
-<g id="a_node37"><a xlink:href="tensor__intrin_8h.html" target="_top" xlink:title="Tensor intrinsic operations. ">
-<polygon fill="#ffffff" stroke="#000000" points="808,-268.5 808,-298.5 929,-298.5 929,-268.5 808,-268.5"/>
-<text text-anchor="start" x="816" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/te/tensor</text>
-<text text-anchor="middle" x="868.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_intrin.h</text>
-</a>
-</g>
-</g>
-<!-- Node59&#45;&gt;Node107 -->
-<g id="edge61" class="edge">
-<title>Node59&#45;&gt;Node107</title>
-<path fill="none" stroke="#191970" d="M751.7143,-336.7289C776.1236,-325.6035 810.4277,-309.9683 835.5418,-298.5218"/>
-<polygon fill="#191970" stroke="#191970" points="750.2094,-333.5683 742.5615,-340.9005 753.1125,-339.9379 750.2094,-333.5683"/>
+<path fill="none" stroke="#191970" d="M573.1291,-270.416C608.3112,-257.3928 661.4689,-237.7156 692.8979,-226.0817"/>
+<polygon fill="#191970" stroke="#191970" points="571.8787,-267.1467 563.7156,-273.9005 574.3087,-273.7114 571.8787,-267.1467"/>
 </g>
 <!-- Node61&#45;&gt;Node46 -->
 <g id="edge53" class="edge">
 <title>Node61&#45;&gt;Node46</title>
-<path fill="none" stroke="#191970" d="M266.4295,-137.3237C225.0675,-126.1493 163.6537,-109.5576 119.2273,-97.5553"/>
-<polygon fill="#191970" stroke="#191970" points="265.6643,-140.7424 276.231,-139.9717 267.49,-133.9846 265.6643,-140.7424"/>
+<path fill="none" stroke="#191970" d="M400.3313,-134.6824C418.627,-123.639 443.5196,-108.6138 461.8959,-97.5218"/>
+<polygon fill="#191970" stroke="#191970" points="398.4389,-131.7364 391.6863,-139.9005 402.0563,-137.7293 398.4389,-131.7364"/>
 </g>
 <!-- Node61&#45;&gt;Node47 -->
 <g id="edge51" class="edge">
 <title>Node61&#45;&gt;Node47</title>
-<path fill="none" stroke="#191970" d="M313.482,-129.6373C314.8492,-112.9106 316.1494,-88.3633 314.5,-67 313.5527,-54.731 311.3541,-40.9631 309.5011,-30.7516"/>
-<polygon fill="#191970" stroke="#191970" points="309.975,-129.5581 312.5602,-139.8327 316.9465,-130.1885 309.975,-129.5581"/>
+<path fill="none" stroke="#191970" d="M379.7013,-130.0522C385.1285,-103.1173 394.819,-55.0235 399.7379,-30.611"/>
+<polygon fill="#191970" stroke="#191970" points="376.2687,-129.3687 377.7245,-139.8631 383.1308,-130.7514 376.2687,-129.3687"/>
 </g>
 <!-- Node61&#45;&gt;Node50 -->
 <g id="edge52" class="edge">
 <title>Node61&#45;&gt;Node50</title>
-<path fill="none" stroke="#191970" d="M309.198,-129.6893C305.976,-110.9465 298.3502,-83.323 280.5,-67 262.8821,-50.8894 207.246,-36.7572 161.3755,-27.3928"/>
-<polygon fill="#191970" stroke="#191970" points="305.7633,-130.3928 310.6589,-139.7887 312.6912,-129.3906 305.7633,-130.3928"/>
+<path fill="none" stroke="#191970" d="M429.4712,-137.7331C480.4511,-126.0345 550.5189,-108.3782 558.7827,-98 573.9678,-78.9296 570.7491,-48.8063 566.8728,-30.7194"/>
+<polygon fill="#191970" stroke="#191970" points="428.528,-134.3581 419.5537,-139.9894 430.081,-141.1837 428.528,-134.3581"/>
 </g>
 <!-- Node61&#45;&gt;Node52 -->
 <g id="edge56" class="edge">
 <title>Node61&#45;&gt;Node52</title>
-<path fill="none" stroke="#191970" d="M345.5492,-136.0806C378.5942,-123.057 427.9217,-103.6162 457.1883,-92.0817"/>
-<polygon fill="#191970" stroke="#191970" points="343.877,-132.9776 335.8569,-139.9005 346.4437,-139.49 343.877,-132.9776"/>
+<path fill="none" stroke="#191970" d="M327.6647,-137.5596C275.3509,-124.578 192.7747,-104.0869 144.4851,-92.1039"/>
+<polygon fill="#191970" stroke="#191970" points="326.8364,-140.9601 337.385,-139.9717 328.5224,-134.1662 326.8364,-140.9601"/>
 </g>
 <!-- Node61&#45;&gt;Node55 -->
 <g id="edge55" class="edge">
 <title>Node61&#45;&gt;Node55</title>
-<path fill="none" stroke="#191970" d="M326.9493,-132.0654C343.048,-114.4658 369.5091,-87.0876 395.5,-67 417.1185,-50.2917 444.5664,-34.7073 462.5625,-25.1525"/>
-<polygon fill="#191970" stroke="#191970" points="324.0292,-130.0769 319.9261,-139.8449 329.2251,-134.7676 324.0292,-130.0769"/>
+<path fill="none" stroke="#191970" d="M371.7653,-129.9533C366.8246,-110.9773 356.5421,-82.7926 336.7827,-67 310.7843,-46.2209 225.1858,-31.1171 165.8297,-22.8268"/>
+<polygon fill="#191970" stroke="#191970" points="368.4054,-130.957 374.0883,-139.8988 375.2219,-129.3648 368.4054,-130.957"/>
 </g>
 <!-- Node61&#45;&gt;Node87 -->
 <g id="edge54" class="edge">
 <title>Node61&#45;&gt;Node87</title>
-<path fill="none" stroke="#191970" d="M288.0195,-134.2263C271.1118,-123.2281 248.4115,-108.4618 231.5932,-97.5218"/>
-<polygon fill="#191970" stroke="#191970" points="286.4515,-137.3817 296.7426,-139.9005 290.2685,-131.5138 286.4515,-137.3817"/>
+<path fill="none" stroke="#191970" d="M351.2341,-134.6824C332.9384,-123.639 308.0458,-108.6138 289.6695,-97.5218"/>
+<polygon fill="#191970" stroke="#191970" points="349.5091,-137.7293 359.8791,-139.9005 353.1265,-131.7364 349.5091,-137.7293"/>
 </g>
 <!-- Node94&#45;&gt;Node43 -->
 <g id="edge58" class="edge">
 <title>Node94&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M923.2965,-202.2834C944.9883,-191.1892 975.0456,-175.8164 997.1291,-164.5218"/>
-<polygon fill="#191970" stroke="#191970" points="921.5785,-199.2309 914.2691,-206.9005 924.766,-205.4631 921.5785,-199.2309"/>
+<path fill="none" stroke="#191970" d="M747.2158,-202.2834C769.4043,-191.1892 800.1499,-175.8164 822.7392,-164.5218"/>
+<polygon fill="#191970" stroke="#191970" points="745.3606,-199.2978 737.9816,-206.9005 748.4912,-205.5588 745.3606,-199.2978"/>
 </g>
 <!-- Node94&#45;&gt;Node44 -->
 <g id="edge59" class="edge">
 <title>Node94&#45;&gt;Node44</title>
-<path fill="none" stroke="#191970" d="M901.8859,-197.0522C910.7302,-170.1173 926.5221,-122.0235 934.5382,-97.611"/>
-<polygon fill="#191970" stroke="#191970" points="898.4588,-196.2702 898.6644,-206.8631 905.1095,-198.454 898.4588,-196.2702"/>
+<path fill="none" stroke="#191970" d="M725.4784,-197.4101C734.9012,-170.5452 751.8819,-122.132 760.4826,-97.611"/>
+<polygon fill="#191970" stroke="#191970" points="722.1699,-196.2682 722.1628,-206.8631 728.7754,-198.5851 722.1699,-196.2682"/>
 </g>
 <!-- Node94&#45;&gt;Node61 -->
 <g id="edge60" class="edge">
 <title>Node94&#45;&gt;Node61</title>
-<path fill="none" stroke="#191970" d="M813.7787,-210.2536C714.2135,-202.1513 541.02,-186.4702 393.5,-165 382.0303,-163.3307 369.7213,-161.191 358.2177,-159.038"/>
-<polygon fill="#191970" stroke="#191970" points="813.5228,-213.7443 823.7724,-211.0615 814.0869,-206.767 813.5228,-213.7443"/>
-</g>
-<!-- Node107&#45;&gt;Node94 -->
-<g id="edge62" class="edge">
-<title>Node107&#45;&gt;Node94</title>
-<path fill="none" stroke="#191970" d="M878.449,-258.8118C883.0378,-247.4246 888.216,-234.5752 891.6495,-226.055"/>
-<polygon fill="#191970" stroke="#191970" points="875.1182,-257.7132 874.6267,-268.2967 881.6109,-260.3297 875.1182,-257.7132"/>
+<path fill="none" stroke="#191970" d="M660.1094,-205.039C593.7064,-192.0682 486.7365,-171.1732 424.6711,-159.0496"/>
+<polygon fill="#191970" stroke="#191970" points="659.5179,-208.4896 670.0034,-206.9717 660.8599,-201.6194 659.5179,-208.4896"/>
 </g>
 <!-- Node108&#45;&gt;Node43 -->
-<g id="edge65" class="edge">
+<g id="edge63" class="edge">
 <title>Node108&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M1066.0314,-259.187C1061.3505,-250.7516 1056.3734,-241.1198 1052.5,-232 1042.8133,-209.1932 1034.8124,-181.5136 1030.3483,-164.717"/>
-<polygon fill="#191970" stroke="#191970" points="1063.1245,-261.1552 1071.116,-268.1113 1069.2067,-257.6899 1063.1245,-261.1552"/>
+<path fill="none" stroke="#191970" d="M838.672,-263.3409C851.3945,-255.5172 863.584,-245.1954 870.7827,-232 882.5074,-210.5082 871.2751,-181.9484 862.048,-164.688"/>
+<polygon fill="#191970" stroke="#191970" points="836.7991,-260.3795 829.8337,-268.3629 840.2573,-266.4657 836.7991,-260.3795"/>
 </g>
 <!-- Node113 -->
-<g id="node43" class="node">
+<g id="node42" class="node">
 <title>Node113</title>
-<g id="a_node43"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object. ">
-<polygon fill="#ffffff" stroke="#000000" points="1787,-268.5 1787,-298.5 1894,-298.5 1894,-268.5 1787,-268.5"/>
-<text text-anchor="start" x="1795" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
-<text text-anchor="middle" x="1840.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/target.h</text>
+<g id="a_node42"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object. ">
+<polygon fill="#ffffff" stroke="#000000" points="1953.2827,-268.5 1953.2827,-298.5 2060.2827,-298.5 2060.2827,-268.5 1953.2827,-268.5"/>
+<text text-anchor="start" x="1961.2827" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="2006.7827" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/target.h</text>
 </a>
 </g>
 </g>
 <!-- Node112&#45;&gt;Node113 -->
-<g id="edge72" class="edge">
+<g id="edge70" class="edge">
 <title>Node112&#45;&gt;Node113</title>
-<path fill="none" stroke="#191970" d="M1788.9864,-393.0686C1801.9101,-365.58 1822.5059,-321.7732 1833.3249,-298.7614"/>
-<polygon fill="#191970" stroke="#191970" points="1785.6918,-391.8501 1784.6044,-402.389 1792.0266,-394.8284 1785.6918,-391.8501"/>
+<path fill="none" stroke="#191970" d="M2006.7827,-325.0249C2006.7827,-316.128 2006.7827,-306.4287 2006.7827,-298.6432"/>
+<polygon fill="#191970" stroke="#191970" points="2003.2828,-325.2966 2006.7827,-335.2967 2010.2828,-325.2967 2003.2828,-325.2966"/>
 </g>
 <!-- Node113&#45;&gt;Node34 -->
-<g id="edge81" class="edge">
+<g id="edge79" class="edge">
 <title>Node113&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M1904.3222,-282.9836C2070.1665,-281.076 2505.3508,-272.2483 2555.5,-232 2590.1687,-204.1759 2604.8472,-167.3893 2575.5,-134 2554.9452,-110.6141 2369.0531,-94.7778 2258.7359,-87.3498"/>
-<polygon fill="#191970" stroke="#191970" points="1904.2262,-279.4844 1894.2654,-283.0946 1904.3035,-286.4839 1904.2262,-279.4844"/>
+<path fill="none" stroke="#191970" d="M2070.3596,-268.6689C2071.8458,-268.4319 2073.3218,-268.2083 2074.7827,-268 2141.779,-258.4476 2636.3658,-281.2466 2682.7827,-232 2747.9943,-162.8129 2681.9815,-174.6886 2566.7827,-134 2485.2855,-105.2149 2386.773,-92.4865 2318.9123,-86.8778"/>
+<polygon fill="#191970" stroke="#191970" points="2069.6969,-265.2316 2060.4518,-270.4064 2070.9061,-272.1264 2069.6969,-265.2316"/>
 </g>
 <!-- Node113&#45;&gt;Node41 -->
-<g id="edge78" class="edge">
+<g id="edge76" class="edge">
 <title>Node113&#45;&gt;Node41</title>
-<path fill="none" stroke="#191970" d="M1904.2879,-281.1175C2072.3858,-274.5316 2516.1039,-255.0353 2537.5,-232 2559.1652,-208.6749 2520.8989,-175.4056 2498.6971,-159.1658"/>
-<polygon fill="#191970" stroke="#191970" points="1903.9545,-277.6277 1894.0983,-281.5141 1904.2269,-284.6224 1903.9545,-277.6277"/>
+<path fill="none" stroke="#191970" d="M1942.8032,-279.3408C1840.1779,-272.0112 1648.158,-255.3312 1627.7827,-232 1618.7199,-221.6225 1618.2768,-210.9732 1627.7827,-201 1656.5636,-170.8045 2336.29,-169.2977 2377.7827,-165 2392.2014,-163.5066 2407.7389,-161.2961 2422.0627,-159.0093"/>
+<polygon fill="#191970" stroke="#191970" points="1942.8285,-282.8512 1953.0498,-280.0628 1943.3206,-275.8685 1942.8285,-282.8512"/>
 </g>
 <!-- Node113&#45;&gt;Node43 -->
-<g id="edge79" class="edge">
+<g id="edge77" class="edge">
 <title>Node113&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M1776.7047,-280.1756C1650.7758,-273.1927 1374.485,-255.6692 1282.5,-232 1249.154,-223.4195 1243.9429,-212.5342 1211.5,-201 1188.0972,-192.6797 1129.2661,-176.5986 1084.1753,-164.6093"/>
-<polygon fill="#191970" stroke="#191970" points="1776.7842,-283.6852 1786.9613,-280.7394 1777.1685,-276.6957 1776.7842,-283.6852"/>
+<path fill="none" stroke="#191970" d="M1942.5553,-280.7852C1777.878,-273.6015 1343.5396,-253.1891 1200.7827,-232 1093.7612,-216.115 971.2014,-183.6322 903.8395,-164.5062"/>
+<polygon fill="#191970" stroke="#191970" points="1942.8639,-284.3018 1953.0064,-281.2391 1943.1677,-277.3084 1942.8639,-284.3018"/>
 </g>
 <!-- Node113&#45;&gt;Node44 -->
-<g id="edge80" class="edge">
+<g id="edge78" class="edge">
 <title>Node113&#45;&gt;Node44</title>
-<path fill="none" stroke="#191970" d="M1776.5356,-280.607C1626.8185,-273.5016 1262.3946,-254.1498 1211.5,-232 1192.7495,-223.8396 1195.9037,-209.915 1177.5,-201 1088.7276,-157.9973 1030.4254,-232.502 958.5,-165 940.0663,-147.7 937.826,-116.405 938.3404,-97.7304"/>
-<polygon fill="#191970" stroke="#191970" points="1776.7832,-284.1225 1786.9369,-281.0973 1777.1129,-277.1302 1776.7832,-284.1225"/>
+<path fill="none" stroke="#191970" d="M1942.8912,-281.749C1756.8944,-276.3875 1217.9494,-258.9079 1043.7827,-232 926.2765,-213.8459 867.7246,-250.1935 784.7827,-165 767.2503,-146.9917 764.6626,-116.2313 764.8771,-97.7898"/>
+<polygon fill="#191970" stroke="#191970" points="1942.9609,-285.2524 1953.057,-282.0401 1943.1613,-278.2552 1942.9609,-285.2524"/>
 </g>
 <!-- Node113&#45;&gt;Node111 -->
-<g id="edge85" class="edge">
+<g id="edge84" class="edge">
 <title>Node113&#45;&gt;Node111</title>
-<path fill="none" stroke="#191970" d="M1776.6978,-281.5895C1658.89,-277.3775 1399.5195,-264.9066 1183.5,-232 1178.8316,-231.2889 1174.0074,-230.4347 1169.1832,-229.4975"/>
-<polygon fill="#191970" stroke="#191970" points="1776.8563,-285.0971 1786.9725,-281.9486 1777.1009,-278.1013 1776.8563,-285.0971"/>
+<path fill="none" stroke="#191970" d="M2070.3587,-268.6628C2071.8452,-268.4277 2073.3214,-268.2061 2074.7827,-268 2357.3245,-228.1526 2433.2409,-271.8474 2715.7827,-232 2720.4587,-231.3405 2725.2881,-230.5223 2730.1158,-229.6089"/>
+<polygon fill="#191970" stroke="#191970" points="2069.6995,-265.2249 2060.4496,-270.3911 2070.9023,-272.1208 2069.6995,-265.2249"/>
 </g>
 <!-- Node98 -->
-<g id="node44" class="node">
+<g id="node43" class="node">
 <title>Node98</title>
-<g id="a_node44"><a xlink:href="search__task_8h.html" target="_top" xlink:title="Meta information and hardware parameters for a search task. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1617.5,-201.5 1617.5,-231.5 1769.5,-231.5 1769.5,-201.5 1617.5,-201.5"/>
-<text text-anchor="start" x="1625.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/auto_scheduler</text>
-<text text-anchor="middle" x="1693.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/search_task.h</text>
+<g id="a_node43"><a xlink:href="search__task_8h.html" target="_top" xlink:title="Meta information and hardware parameters for a search task. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1636.7827,-201.5 1636.7827,-231.5 1788.7827,-231.5 1788.7827,-201.5 1636.7827,-201.5"/>
+<text text-anchor="start" x="1644.7827" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/auto_scheduler</text>
+<text text-anchor="middle" x="1712.7827" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/search_task.h</text>
 </a>
 </g>
 </g>
 <!-- Node113&#45;&gt;Node98 -->
-<g id="edge73" class="edge">
+<g id="edge71" class="edge">
 <title>Node113&#45;&gt;Node98</title>
-<path fill="none" stroke="#191970" d="M1798.4036,-264.3132C1775.6153,-253.9267 1747.8667,-241.2794 1726.6336,-231.6017"/>
-<polygon fill="#191970" stroke="#191970" points="1796.9593,-267.5013 1807.5103,-268.4639 1799.8625,-261.1317 1796.9593,-267.5013"/>
+<path fill="none" stroke="#191970" d="M1943.4208,-269.0604C1894.7851,-257.9767 1827.8434,-242.7213 1778.6044,-231.5002"/>
+<polygon fill="#191970" stroke="#191970" points="1942.6727,-272.4796 1953.2004,-271.2891 1944.2281,-265.6545 1942.6727,-272.4796"/>
 </g>
 <!-- Node106 -->
-<g id="node45" class="node">
+<g id="node44" class="node">
 <title>Node106</title>
-<g id="a_node45"><a xlink:href="driver__api_8h.html" target="_top" xlink:title="Compiler driver APIs to drive the compilation. ">
-<polygon fill="#ffffff" stroke="#000000" points="1787.5,-201.5 1787.5,-231.5 1893.5,-231.5 1893.5,-201.5 1787.5,-201.5"/>
-<text text-anchor="start" x="1795.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/driver</text>
-<text text-anchor="middle" x="1840.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/driver_api.h</text>
+<g id="a_node44"><a xlink:href="driver__api_8h.html" target="_top" xlink:title="Compiler driver APIs to drive the compilation. ">
+<polygon fill="#ffffff" stroke="#000000" points="1806.7827,-201.5 1806.7827,-231.5 1912.7827,-231.5 1912.7827,-201.5 1806.7827,-201.5"/>
+<text text-anchor="start" x="1814.7827" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/driver</text>
+<text text-anchor="middle" x="1859.7827" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/driver_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node113&#45;&gt;Node106 -->
-<g id="edge74" class="edge">
+<g id="edge72" class="edge">
 <title>Node113&#45;&gt;Node106</title>
-<path fill="none" stroke="#191970" d="M1840.5,-258.0249C1840.5,-249.128 1840.5,-239.4287 1840.5,-231.6432"/>
-<polygon fill="#191970" stroke="#191970" points="1837.0001,-258.2966 1840.5,-268.2967 1844.0001,-258.2967 1837.0001,-258.2966"/>
+<path fill="none" stroke="#191970" d="M1964.6863,-264.3132C1941.898,-253.9267 1914.1494,-241.2794 1892.9162,-231.6017"/>
+<polygon fill="#191970" stroke="#191970" points="1963.242,-267.5013 1973.793,-268.4639 1966.1452,-261.1317 1963.242,-267.5013"/>
 </g>
 <!-- Node114 -->
-<g id="node46" class="node">
+<g id="node45" class="node">
 <title>Node114</title>
-<g id="a_node46"><a xlink:href="builder_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/builder.h">
-<polygon fill="#ffffff" stroke="#ff0000" points="1911.5,-201.5 1911.5,-231.5 2063.5,-231.5 2063.5,-201.5 1911.5,-201.5"/>
-<text text-anchor="start" x="1919.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="1987.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/builder.h</text>
+<g id="a_node45"><a xlink:href="builder_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/builder.h">
+<polygon fill="#ffffff" stroke="#ff0000" points="1930.7827,-201.5 1930.7827,-231.5 2082.7827,-231.5 2082.7827,-201.5 1930.7827,-201.5"/>
+<text text-anchor="start" x="1938.7827" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="2006.7827" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/builder.h</text>
 </a>
 </g>
 </g>
 <!-- Node113&#45;&gt;Node114 -->
-<g id="edge75" class="edge">
+<g id="edge73" class="edge">
 <title>Node113&#45;&gt;Node114</title>
-<path fill="none" stroke="#191970" d="M1882.5964,-264.3132C1905.3847,-253.9267 1933.1333,-241.2794 1954.3664,-231.6017"/>
-<polygon fill="#191970" stroke="#191970" points="1881.1375,-261.1317 1873.4897,-268.4639 1884.0407,-267.5013 1881.1375,-261.1317"/>
+<path fill="none" stroke="#191970" d="M2006.7827,-258.0249C2006.7827,-249.128 2006.7827,-239.4287 2006.7827,-231.6432"/>
+<polygon fill="#191970" stroke="#191970" points="2003.2828,-258.2966 2006.7827,-268.2967 2010.2828,-258.2967 2003.2828,-258.2966"/>
 </g>
 <!-- Node116 -->
-<g id="node47" class="node">
+<g id="node46" class="node">
 <title>Node116</title>
-<g id="a_node47"><a xlink:href="database_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/database.h">
-<polygon fill="#ffffff" stroke="#ff0000" points="2081.5,-201.5 2081.5,-231.5 2233.5,-231.5 2233.5,-201.5 2081.5,-201.5"/>
-<text text-anchor="start" x="2089.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="2157.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/database.h</text>
+<g id="a_node46"><a xlink:href="database_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/database.h">
+<polygon fill="#ffffff" stroke="#ff0000" points="2100.7827,-201.5 2100.7827,-231.5 2252.7827,-231.5 2252.7827,-201.5 2100.7827,-201.5"/>
+<text text-anchor="start" x="2108.7827" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="2176.7827" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/database.h</text>
 </a>
 </g>
 </g>
 <!-- Node113&#45;&gt;Node116 -->
-<g id="edge76" class="edge">
+<g id="edge74" class="edge">
 <title>Node113&#45;&gt;Node116</title>
-<path fill="none" stroke="#191970" d="M1904.1829,-270.0402C1956.9139,-258.8952 2031.7833,-243.071 2086.45,-231.5169"/>
-<polygon fill="#191970" stroke="#191970" points="1903.3348,-266.6421 1894.2747,-272.1344 1904.7824,-273.4908 1903.3348,-266.6421"/>
-</g>
-<!-- Node117 -->
-<g id="node48" class="node">
-<title>Node117</title>
-<g id="a_node48"><a xlink:href="tune__context_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/tune_context.h">
-<polygon fill="#ffffff" stroke="#ff0000" points="2251.5,-201.5 2251.5,-231.5 2403.5,-231.5 2403.5,-201.5 2251.5,-201.5"/>
-<text text-anchor="start" x="2259.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
-<text text-anchor="middle" x="2327.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/tune_context.h</text>
-</a>
-</g>
-</g>
-<!-- Node113&#45;&gt;Node117 -->
-<g id="edge77" class="edge">
-<title>Node113&#45;&gt;Node117</title>
-<path fill="none" stroke="#191970" d="M1904.605,-276.3484C1984.0665,-267.2395 2123.5546,-250.4508 2242.5,-232 2245.3164,-231.5631 2248.1829,-231.1057 2251.0766,-230.6332"/>
-<polygon fill="#191970" stroke="#191970" points="1903.8106,-272.9163 1894.2723,-277.5283 1904.6049,-279.8711 1903.8106,-272.9163"/>
+<path fill="none" stroke="#191970" d="M2054.4145,-264.7275C2080.9623,-254.2645 2113.5822,-241.4084 2138.465,-231.6017"/>
+<polygon fill="#191970" stroke="#191970" points="2052.9542,-261.5409 2044.934,-268.4639 2055.5209,-268.0534 2052.9542,-261.5409"/>
 </g>
 <!-- Node118 -->
-<g id="node49" class="node">
+<g id="node47" class="node">
 <title>Node118</title>
-<g id="a_node49"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
-<polygon fill="#ffffff" stroke="#000000" points="2422,-201.5 2422,-231.5 2529,-231.5 2529,-201.5 2422,-201.5"/>
-<text text-anchor="start" x="2430" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
-<text text-anchor="middle" x="2475.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/codegen.h</text>
+<g id="a_node47"><a xlink:href="tune__context_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/tune_context.h">
+<polygon fill="#ffffff" stroke="#ff0000" points="2270.7827,-201.5 2270.7827,-231.5 2422.7827,-231.5 2422.7827,-201.5 2270.7827,-201.5"/>
+<text text-anchor="start" x="2278.7827" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
+<text text-anchor="middle" x="2346.7827" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/tune_context.h</text>
 </a>
 </g>
 </g>
 <!-- Node113&#45;&gt;Node118 -->
-<g id="edge82" class="edge">
+<g id="edge75" class="edge">
 <title>Node113&#45;&gt;Node118</title>
-<path fill="none" stroke="#191970" d="M1904.2905,-280.9123C2010.382,-275.9046 2229.5255,-262.5649 2412.5,-232 2415.6107,-231.4804 2418.7946,-230.889 2421.9985,-230.2478"/>
-<polygon fill="#191970" stroke="#191970" points="1903.9011,-277.4265 1894.0737,-281.3852 1904.2248,-284.419 1903.9011,-277.4265"/>
+<path fill="none" stroke="#191970" d="M2070.404,-268.9219C2071.8769,-268.609 2073.3381,-268.3013 2074.7827,-268 2111.3043,-260.3829 2203.5643,-243.064 2270.5263,-230.612"/>
+<polygon fill="#191970" stroke="#191970" points="2069.5996,-265.5149 2060.5643,-271.0479 2071.0779,-272.357 2069.5996,-265.5149"/>
 </g>
 <!-- Node119 -->
-<g id="node50" class="node">
+<g id="node48" class="node">
 <title>Node119</title>
-<g id="a_node50"><a xlink:href="generic__func_8h.html" target="_top" xlink:title="Generic function that can be specialzied on a per target basis. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1292,-201.5 1292,-231.5 1399,-231.5 1399,-201.5 1292,-201.5"/>
-<text text-anchor="start" x="1300" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
-<text text-anchor="middle" x="1345.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/generic_func.h</text>
+<g id="a_node48"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
+<polygon fill="#ffffff" stroke="#000000" points="2441.2827,-201.5 2441.2827,-231.5 2548.2827,-231.5 2548.2827,-201.5 2441.2827,-201.5"/>
+<text text-anchor="start" x="2449.2827" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="2494.7827" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/codegen.h</text>
 </a>
 </g>
 </g>
 <!-- Node113&#45;&gt;Node119 -->
-<g id="edge83" class="edge">
+<g id="edge80" class="edge">
 <title>Node113&#45;&gt;Node119</title>
-<path fill="none" stroke="#191970" d="M1776.6622,-277.6357C1693.4451,-269.5594 1543.5296,-253.5315 1416.5,-232 1410.9023,-231.0512 1405.0788,-229.957 1399.2817,-228.7979"/>
-<polygon fill="#191970" stroke="#191970" points="1776.4308,-281.1295 1786.7203,-278.6046 1777.102,-274.1618 1776.4308,-281.1295"/>
+<path fill="none" stroke="#191970" d="M2070.3722,-268.7509C2071.8546,-268.4894 2073.3264,-268.2385 2074.7827,-268 2232.1581,-242.2303 2274.6337,-259.1165 2431.7827,-232 2434.8906,-231.4637 2438.0723,-230.8593 2441.2745,-230.2081"/>
+<polygon fill="#191970" stroke="#191970" points="2069.6624,-265.323 2060.4836,-270.6145 2070.9589,-272.2019 2069.6624,-265.323"/>
 </g>
-<!-- Node119&#45;&gt;Node43 -->
-<g id="edge84" class="edge">
-<title>Node119&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M1281.7869,-203.2137C1232.1166,-192.8432 1161.4127,-178.0536 1099.5,-165 1094.8093,-164.011 1089.9497,-162.9841 1085.0678,-161.951"/>
-<polygon fill="#191970" stroke="#191970" points="1281.2394,-206.6748 1291.7436,-205.2921 1282.6698,-199.8225 1281.2394,-206.6748"/>
+<!-- Node120 -->
+<g id="node49" class="node">
+<title>Node120</title>
+<g id="a_node49"><a xlink:href="generic__func_8h.html" target="_top" xlink:title="Generic function that can be specialzied on a per target basis. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1209.2827,-201.5 1209.2827,-231.5 1316.2827,-231.5 1316.2827,-201.5 1209.2827,-201.5"/>
+<text text-anchor="start" x="1217.2827" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="1262.7827" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/generic_func.h</text>
+</a>
+</g>
+</g>
+<!-- Node113&#45;&gt;Node120 -->
+<g id="edge81" class="edge">
+<title>Node113&#45;&gt;Node120</title>
+<path fill="none" stroke="#191970" d="M1943.0504,-278.7127C1832.2817,-270.2557 1597.0966,-251.6958 1398.7827,-232 1371.5879,-229.2991 1341.3815,-225.8969 1316.357,-222.9686"/>
+<polygon fill="#191970" stroke="#191970" points="1942.8188,-282.2051 1953.0558,-279.4749 1943.3506,-275.2253 1942.8188,-282.2051"/>
+</g>
+<!-- Node121 -->
+<g id="node50" class="node">
+<title>Node121</title>
+<g id="a_node50"><a xlink:href="se__scope_8h.html" target="_top" xlink:title="A compile time representation for a Storage or Execution Scope. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="2566.2827,-201.5 2566.2827,-231.5 2673.2827,-231.5 2673.2827,-201.5 2566.2827,-201.5"/>
+<text text-anchor="start" x="2574.2827" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
+<text text-anchor="middle" x="2619.7827" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/se_scope.h</text>
+</a>
+</g>
+</g>
+<!-- Node113&#45;&gt;Node121 -->
+<g id="edge83" class="edge">
+<title>Node113&#45;&gt;Node121</title>
+<path fill="none" stroke="#191970" d="M2070.364,-268.6992C2071.8489,-268.4531 2073.3234,-268.2194 2074.7827,-268 2287.6516,-235.9903 2345.2594,-266.2288 2557.7827,-232 2560.5212,-231.5589 2563.3161,-231.0562 2566.1303,-230.508"/>
+<polygon fill="#191970" stroke="#191970" points="2069.6838,-265.2653 2060.463,-270.4832 2070.9252,-272.1543 2069.6838,-265.2653"/>
+</g>
+<!-- Node120&#45;&gt;Node43 -->
+<g id="edge82" class="edge">
+<title>Node120&#45;&gt;Node43</title>
+<path fill="none" stroke="#191970" d="M1199.1075,-207.8833C1131.2104,-198.4353 1020.6249,-182.3009 925.7827,-165 921.0667,-164.1397 916.1891,-163.2043 911.295,-162.2335"/>
+<polygon fill="#191970" stroke="#191970" points="1198.8327,-211.3786 1209.2185,-209.2847 1199.7938,-204.4449 1198.8327,-211.3786"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/builder_8h_source.html b/docs/reference/api/doxygen/builder_8h_source.html
index d25b858..ffdb77b 100644
--- a/docs/reference/api/doxygen/builder_8h_source.html
+++ b/docs/reference/api/doxygen/builder_8h_source.html
@@ -66,7 +66,7 @@ $(function() {
 <div class="title">builder.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="builder_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 con [...]
+<a href="builder_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 con [...]
 <div class="ttc" id="classtvm_1_1meta__schedule_1_1BuilderResult_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResult.html">tvm::meta_schedule::BuilderResult</a></div><div class="ttdoc">Managed reference to BuilderResultNode. </div><div class="ttdef"><b>Definition:</b> builder.h:81</div></div>
 <div class="ttc" id="object_8h_html_a98fa3013ab23958a9f05200330e35805"><div class="ttname"><a href="object_8h.html#a98fa3013ab23958a9f05200330e35805">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:751</div></div>
 <div class="ttc" id="classtvm_1_1meta__schedule_1_1BuilderResultNode_html_aa49053978aa7c9348014df04eddad6ad"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#aa49053978aa7c9348014df04eddad6ad">tvm::meta_schedule::BuilderResultNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(tvm::AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> builder.h:68</div></div>
@@ -85,7 +85,7 @@ $(function() {
 <div class="ttc" id="classtvm_1_1meta__schedule_1_1BuilderInputNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html">tvm::meta_schedule::BuilderInputNode</a></div><div class="ttdoc">The builder&amp;#39;s input, containing an IRModule and the target. </div><div class="ttdef"><b>Definition:</b> builder.h:29</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1TypedPackedFunc_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1TypedPackedFunc.html">tvm::runtime::TypedPackedFunc</a></div><div class="ttdoc">Please refer to TypedPackedFunc&lt;R(Args..)&gt;. </div><div class="ttdef"><b>Definition:</b> packed_func.h:136</div></div>
 <div class="ttc" id="classtvm_1_1meta__schedule_1_1Builder_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Builder.html">tvm::meta_schedule::Builder</a></div><div class="ttdoc">Managed reference to BuilderNode. </div><div class="ttdef"><b>Definition:</b> builder.h:118</div></div>
-<div class="ttc" id="classtvm_1_1Target_html"><div class="ttname"><a href="classtvm_1_1Target.html">tvm::Target</a></div><div class="ttdoc">Managed reference class to TargetNode. </div><div class="ttdef"><b>Definition:</b> target.h:127</div></div>
+<div class="ttc" id="classtvm_1_1Target_html"><div class="ttname"><a href="classtvm_1_1Target.html">tvm::Target</a></div><div class="ttdoc">Managed reference class to TargetNode. </div><div class="ttdef"><b>Definition:</b> target.h:132</div></div>
 <div class="ttc" id="classtvm_1_1meta__schedule_1_1BuilderInput_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInput.html">tvm::meta_schedule::BuilderInput</a></div><div class="ttdoc">Managed reference to BuilderInputNode. </div><div class="ttdef"><b>Definition:</b> builder.h:49</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:504</div></div>
 <div class="ttc" id="classtvm_1_1meta__schedule_1_1PyBuilderNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html">tvm::meta_schedule::PyBuilderNode</a></div><div class="ttdoc">An abstract builder with customized build method on the python-side. </div><div class="ttdef"><b>Definition:</b> builder.h:130</div></div>
diff --git a/docs/reference/api/doxygen/c__runtime__api_8h__dep__incl.svg b/docs/reference/api/doxygen/c__runtime__api_8h__dep__incl.svg
index 8ab2894..24154ff 100644
--- a/docs/reference/api/doxygen/c__runtime__api_8h__dep__incl.svg
+++ b/docs/reference/api/doxygen/c__runtime__api_8h__dep__incl.svg
@@ -47,48 +47,48 @@
 <path fill="none" stroke="#191970" d="M758.1061,-783.1604C755.0851,-766.5471 750.1865,-744.5504 743,-726 719.557,-665.4873 642.5361,-641.0731 685,-592 721.4398,-549.8886 879.0836,-569.9377 933,-556 1007.8316,-536.6555 1092.3514,-500.2525 1130.4473,-483.0137"/>
 <polygon fill="#191970" stroke="#191970" points="754.6891,-783.9433 759.8254,-793.2099 761.5889,-782.7628 754.6891,-783.9433"/>
 </g>
-<!-- Node142 -->
+<!-- Node145 -->
 <g id="node14" class="node">
-<title>Node142</title>
+<title>Node145</title>
 <g id="a_node14"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="867.5,-140 867.5,-159 988.5,-159 988.5,-140 867.5,-140"/>
 <text text-anchor="middle" x="928" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/expr.h</text>
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node142 -->
+<!-- Node4&#45;&gt;Node145 -->
 <g id="edge121" class="edge">
-<title>Node4&#45;&gt;Node142</title>
+<title>Node4&#45;&gt;Node145</title>
 <path fill="none" stroke="#191970" d="M693.514,-799.3534C643.7827,-791.1434 582.591,-777.2433 567,-757 558.593,-746.0844 564.3425,-739.5191 567,-726 592.0926,-598.3516 727.4599,-285.9329 826,-201 848.2389,-181.832 878.8554,-167.6143 900.73,-159.0295"/>
 <polygon fill="#191970" stroke="#191970" points="693.1831,-802.8449 703.6106,-800.9695 694.2895,-795.9329 693.1831,-802.8449"/>
 </g>
-<!-- Node154 -->
+<!-- Node157 -->
 <g id="node22" class="node">
-<title>Node154</title>
+<title>Node157</title>
 <g id="a_node22"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
 <polygon fill="#ffffff" stroke="#000000" points="1325.5,-531 1325.5,-550 1484.5,-550 1484.5,-531 1325.5,-531"/>
 <text text-anchor="middle" x="1405" y="-538" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/reflection.h</text>
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node154 -->
+<!-- Node4&#45;&gt;Node157 -->
 <g id="edge38" class="edge">
-<title>Node4&#45;&gt;Node154</title>
+<title>Node4&#45;&gt;Node157</title>
 <path fill="none" stroke="#191970" d="M830.246,-805.8442C917.2345,-801.242 1071.723,-788.9696 1200,-757 1279.6045,-737.1607 1296.1698,-721.3089 1372,-690 1403.8262,-676.8595 1410.745,-671.0498 1443,-659 1493.1703,-640.2574 1526.287,-666.1582 1558,-623 1566.1583,-611.8974 1566.0396,-603.1889 1558,-592 1545.3664,-574.4174 1492.2546,-559.2996 1452.1246,-550.0757"/>
 <polygon fill="#191970" stroke="#191970" points="830.045,-802.3498 820.2366,-806.3555 830.4022,-809.3407 830.045,-802.3498"/>
 </g>
-<!-- Node159 -->
+<!-- Node162 -->
 <g id="node26" class="node">
-<title>Node159</title>
+<title>Node162</title>
 <g id="a_node26"><a xlink:href="serialization_8h.html" target="_top" xlink:title="include/tvm/node/serialization.h">
 <polygon fill="#ffffff" stroke="#000000" points="1451.5,-665 1451.5,-684 1624.5,-684 1624.5,-665 1451.5,-665"/>
 <text text-anchor="middle" x="1538" y="-672" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/serialization.h</text>
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node159 -->
+<!-- Node4&#45;&gt;Node162 -->
 <g id="edge43" class="edge">
-<title>Node4&#45;&gt;Node159</title>
+<title>Node4&#45;&gt;Node162</title>
 <path fill="none" stroke="#191970" d="M830.4647,-805.6063C990.8842,-798.4939 1381.7098,-779.1179 1437,-757 1477.5712,-740.7702 1514.3745,-702.121 1530.0315,-684.0812"/>
 <polygon fill="#191970" stroke="#191970" points="830.0736,-802.1201 820.2374,-806.057 830.3818,-809.1133 830.0736,-802.1201"/>
 </g>
@@ -108,9 +108,9 @@
 <path fill="none" stroke="#191970" d="M694.0194,-795.2747C641.116,-784.9493 565.8678,-770.1903 500,-757 495.3786,-756.0746 490.6003,-755.1124 485.7944,-754.141"/>
 <polygon fill="#191970" stroke="#191970" points="693.4761,-798.7346 703.9612,-797.2142 694.8165,-791.8641 693.4761,-798.7346"/>
 </g>
-<!-- Node160 -->
+<!-- Node163 -->
 <g id="node28" class="node">
-<title>Node160</title>
+<title>Node163</title>
 <g id="a_node28"><a xlink:href="c__backend__api_8h.html" target="_top" xlink:title="TVM runtime backend API. ">
 <polygon fill="#ffffff" stroke="#000000" points="66,-726.5 66,-756.5 182,-756.5 182,-726.5 66,-726.5"/>
 <text text-anchor="start" x="74" y="-744.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -118,15 +118,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node160 -->
+<!-- Node4&#45;&gt;Node163 -->
 <g id="edge45" class="edge">
-<title>Node4&#45;&gt;Node160</title>
+<title>Node4&#45;&gt;Node163</title>
 <path fill="none" stroke="#191970" d="M693.8843,-804.9776C587.2457,-798.8621 374.592,-784.2456 196,-757 191.4496,-756.3058 186.7551,-755.5003 182.0471,-754.6286"/>
 <polygon fill="#191970" stroke="#191970" points="693.6866,-808.4719 703.8685,-805.543 694.0825,-801.4831 693.6866,-808.4719"/>
 </g>
-<!-- Node163 -->
+<!-- Node166 -->
 <g id="node31" class="node">
-<title>Node163</title>
+<title>Node166</title>
 <g id="a_node31"><a xlink:href="crt_2packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
 <polygon fill="#ffffff" stroke="#000000" points="109,-525.5 109,-555.5 225,-555.5 225,-525.5 109,-525.5"/>
 <text text-anchor="start" x="117" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -134,15 +134,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node163 -->
+<!-- Node4&#45;&gt;Node166 -->
 <g id="edge52" class="edge">
-<title>Node4&#45;&gt;Node163</title>
+<title>Node4&#45;&gt;Node166</title>
 <path fill="none" stroke="#191970" d="M693.6599,-806.3987C581.8858,-802.0589 365.5438,-789.617 297,-757 218.2946,-719.5475 225.1833,-672.1794 191,-592 185.7388,-579.6594 179.2942,-565.8961 174.4084,-555.7044"/>
 <polygon fill="#191970" stroke="#191970" points="693.6898,-809.9023 703.8147,-806.7819 693.9538,-802.9072 693.6898,-809.9023"/>
 </g>
-<!-- Node164 -->
+<!-- Node167 -->
 <g id="node32" class="node">
-<title>Node164</title>
+<title>Node167</title>
 <g id="a_node32"><a xlink:href="graph__executor_8h.html" target="_top" xlink:title="Tiny graph executor that can run graph containing only tvm PackedFunc. ">
 <polygon fill="#ffffff" stroke="#000000" points="2.5,-458.5 2.5,-488.5 121.5,-488.5 121.5,-458.5 2.5,-458.5"/>
 <text text-anchor="start" x="10.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -150,15 +150,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node164 -->
+<!-- Node4&#45;&gt;Node167 -->
 <g id="edge51" class="edge">
-<title>Node4&#45;&gt;Node164</title>
+<title>Node4&#45;&gt;Node167</title>
 <path fill="none" stroke="#191970" d="M693.8254,-806.8498C527.6663,-802.3585 111.3886,-788.109 57,-757 18.3141,-734.8726 0,-719.0671 0,-674.5 0,-674.5 0,-674.5 0,-607.5 0,-560.5909 31.6821,-512.273 49.7508,-488.531"/>
 <polygon fill="#191970" stroke="#191970" points="693.8378,-810.3513 703.9276,-807.1192 694.0244,-803.3538 693.8378,-810.3513"/>
 </g>
-<!-- Node165 -->
+<!-- Node168 -->
 <g id="node33" class="node">
-<title>Node165</title>
+<title>Node168</title>
 <g id="a_node33"><a xlink:href="page__allocator_8h.html" target="_top" xlink:title="An implementation of a dynamic memory allocator for microcontrollers. ">
 <polygon fill="#ffffff" stroke="#000000" points="618,-726.5 618,-756.5 734,-756.5 734,-726.5 618,-726.5"/>
 <text text-anchor="start" x="626" y="-744.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -166,15 +166,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node165 -->
+<!-- Node4&#45;&gt;Node168 -->
 <g id="edge53" class="edge">
-<title>Node4&#45;&gt;Node165</title>
+<title>Node4&#45;&gt;Node168</title>
 <path fill="none" stroke="#191970" d="M734.4855,-787.0643C721.7696,-777.1577 706.9684,-765.6265 695.4375,-756.6432"/>
 <polygon fill="#191970" stroke="#191970" points="732.4456,-789.9119 742.4853,-793.2967 736.7477,-784.3899 732.4456,-789.9119"/>
 </g>
-<!-- Node166 -->
+<!-- Node169 -->
 <g id="node34" class="node">
-<title>Node166</title>
+<title>Node169</title>
 <g id="a_node34"><a xlink:href="platform_8h.html" target="_top" xlink:title="The virtual memory manager for micro&#45;controllers. ">
 <polygon fill="#ffffff" stroke="#000000" points="238,-659.5 238,-689.5 354,-689.5 354,-659.5 238,-659.5"/>
 <text text-anchor="start" x="246" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -182,15 +182,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node166 -->
+<!-- Node4&#45;&gt;Node169 -->
 <g id="edge54" class="edge">
-<title>Node4&#45;&gt;Node166</title>
+<title>Node4&#45;&gt;Node169</title>
 <path fill="none" stroke="#191970" d="M693.2824,-804.6394C576.1994,-797.4578 347.918,-780.6033 320,-757 300.2933,-740.339 296.2611,-708.5203 295.718,-689.6392"/>
 <polygon fill="#191970" stroke="#191970" points="693.3776,-808.1515 703.5711,-805.2631 693.8012,-801.1643 693.3776,-808.1515"/>
 </g>
-<!-- Node167 -->
+<!-- Node170 -->
 <g id="node35" class="node">
-<title>Node167</title>
+<title>Node170</title>
 <g id="a_node35"><a xlink:href="data__type_8h.html" target="_top" xlink:title="include/tvm/runtime\l/data_type.h">
 <polygon fill="#ffffff" stroke="#000000" points="1016,-726.5 1016,-756.5 1132,-756.5 1132,-726.5 1016,-726.5"/>
 <text text-anchor="start" x="1024" y="-744.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -198,15 +198,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node167 -->
+<!-- Node4&#45;&gt;Node170 -->
 <g id="edge56" class="edge">
-<title>Node4&#45;&gt;Node167</title>
+<title>Node4&#45;&gt;Node170</title>
 <path fill="none" stroke="#191970" d="M830.4241,-793.8064C885.9679,-781.8787 963.4226,-765.2458 1015.9673,-753.9622"/>
 <polygon fill="#191970" stroke="#191970" points="829.361,-790.4548 820.3188,-795.9764 830.8308,-797.2987 829.361,-790.4548"/>
 </g>
-<!-- Node170 -->
+<!-- Node173 -->
 <g id="node38" class="node">
-<title>Node170</title>
+<title>Node173</title>
 <g id="a_node38"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device&#45;independent managed NDArray abstraction. ">
 <polygon fill="#ffffff" stroke="#000000" points="809,-659.5 809,-689.5 925,-689.5 925,-659.5 809,-659.5"/>
 <text text-anchor="start" x="817" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -214,15 +214,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node170 -->
+<!-- Node4&#45;&gt;Node173 -->
 <g id="edge95" class="edge">
-<title>Node4&#45;&gt;Node170</title>
+<title>Node4&#45;&gt;Node173</title>
 <path fill="none" stroke="#191970" d="M786.6624,-786.2327C795.7139,-777.5195 805.7545,-767.1834 814,-757 831.7833,-735.0373 848.7888,-706.8686 858.5479,-689.777"/>
 <polygon fill="#191970" stroke="#191970" points="784.2232,-783.7221 779.353,-793.1312 789.0278,-788.8129 784.2232,-783.7221"/>
 </g>
-<!-- Node171 -->
+<!-- Node174 -->
 <g id="node39" class="node">
-<title>Node171</title>
+<title>Node174</title>
 <g id="a_node39"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API. ">
 <polygon fill="#ffffff" stroke="#000000" points="808,-525.5 808,-555.5 924,-555.5 924,-525.5 808,-525.5"/>
 <text text-anchor="start" x="816" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -230,15 +230,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node171 -->
+<!-- Node4&#45;&gt;Node174 -->
 <g id="edge93" class="edge">
-<title>Node4&#45;&gt;Node171</title>
+<title>Node4&#45;&gt;Node174</title>
 <path fill="none" stroke="#191970" d="M693.7055,-793.7671C657.9715,-784.5275 619.5015,-771.6153 609,-757 577.0096,-712.478 568.3169,-669.6815 652,-592 674.4053,-571.2016 752.3977,-556.284 807.7413,-548.0206"/>
 <polygon fill="#191970" stroke="#191970" points="693.1349,-797.2325 703.6863,-796.2742 694.8403,-790.4434 693.1349,-797.2325"/>
 </g>
-<!-- Node172 -->
+<!-- Node175 -->
 <g id="node40" class="node">
-<title>Node172</title>
+<title>Node175</title>
 <g id="a_node40"><a xlink:href="profiling_8h.html" target="_top" xlink:title="Runtime profiling including timers. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="824,-458.5 824,-488.5 940,-488.5 940,-458.5 824,-458.5"/>
 <text text-anchor="start" x="832" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -246,15 +246,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node172 -->
+<!-- Node4&#45;&gt;Node175 -->
 <g id="edge117" class="edge">
-<title>Node4&#45;&gt;Node172</title>
+<title>Node4&#45;&gt;Node175</title>
 <path fill="none" stroke="#191970" d="M693.7033,-796.6412C650.6807,-787.6814 600.756,-774.0268 587,-757 559.5926,-723.0757 571.1138,-701.2317 582,-659 609.3224,-553.0058 744.7521,-504.5918 823.9982,-485.0248"/>
 <polygon fill="#191970" stroke="#191970" points="693.1151,-800.093 703.611,-798.6488 694.5053,-793.2325 693.1151,-800.093"/>
 </g>
-<!-- Node174 -->
+<!-- Node177 -->
 <g id="node41" class="node">
-<title>Node174</title>
+<title>Node177</title>
 <g id="a_node41"><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="1433,-592.5 1433,-622.5 1549,-622.5 1549,-592.5 1433,-592.5"/>
 <text text-anchor="start" x="1441" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -262,15 +262,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node174 -->
+<!-- Node4&#45;&gt;Node177 -->
 <g id="edge116" class="edge">
-<title>Node4&#45;&gt;Node174</title>
+<title>Node4&#45;&gt;Node177</title>
 <path fill="none" stroke="#191970" d="M830.1322,-804.7614C906.8621,-799.2873 1034.7168,-786.3427 1141,-757 1265.8368,-722.535 1404.6808,-653.2104 1462.9065,-622.6077"/>
 <polygon fill="#191970" stroke="#191970" points="829.8475,-801.2726 820.1129,-805.4543 830.3306,-808.2559 829.8475,-801.2726"/>
 </g>
-<!-- Node175 -->
+<!-- Node178 -->
 <g id="node42" class="node">
-<title>Node175</title>
+<title>Node178</title>
 <g id="a_node42"><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="2005,-525.5 2005,-555.5 2121,-555.5 2121,-525.5 2005,-525.5"/>
 <text text-anchor="start" x="2013" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -278,15 +278,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node175 -->
+<!-- Node4&#45;&gt;Node178 -->
 <g id="edge94" class="edge">
-<title>Node4&#45;&gt;Node175</title>
+<title>Node4&#45;&gt;Node178</title>
 <path fill="none" stroke="#191970" d="M830.4388,-807.224C1061.1734,-802.6726 1801.876,-785.9427 1905,-757 2017.0611,-725.549 2074.5018,-725.3074 2130,-623 2136.5696,-610.8894 2136.0886,-604.3595 2130,-592 2122.2848,-576.3386 2107.265,-564.1093 2093.3986,-555.5054"/>
 <polygon fill="#191970" stroke="#191970" points="830.0952,-803.73 820.1657,-807.4252 830.2323,-810.7286 830.0952,-803.73"/>
 </g>
-<!-- Node179 -->
+<!-- Node182 -->
 <g id="node45" class="node">
-<title>Node179</title>
+<title>Node182</title>
 <g id="a_node45"><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="694,-592.5 694,-622.5 810,-622.5 810,-592.5 694,-592.5"/>
 <text text-anchor="start" x="702" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -294,15 +294,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node179 -->
+<!-- Node4&#45;&gt;Node182 -->
 <g id="edge118" class="edge">
-<title>Node4&#45;&gt;Node179</title>
+<title>Node4&#45;&gt;Node182</title>
 <path fill="none" stroke="#191970" d="M770.1401,-783.8064C772.5275,-775.3983 774.8146,-765.8798 776,-757 782.5743,-707.7541 766.3598,-649.7365 757.4222,-622.7411"/>
 <polygon fill="#191970" stroke="#191970" points="766.7851,-782.8094 767.2455,-793.3942 773.4864,-784.8326 766.7851,-782.8094"/>
 </g>
-<!-- Node180 -->
+<!-- Node183 -->
 <g id="node46" class="node">
-<title>Node180</title>
+<title>Node183</title>
 <g id="a_node46"><a xlink:href="memory__manager_8h.html" target="_top" xlink:title="Abstract device memory management API. ">
 <polygon fill="#ffffff" stroke="#000000" points="1983.5,-592.5 1983.5,-622.5 2120.5,-622.5 2120.5,-592.5 1983.5,-592.5"/>
 <text text-anchor="start" x="1991.5" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -310,15 +310,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node180 -->
+<!-- Node4&#45;&gt;Node183 -->
 <g id="edge119" class="edge">
-<title>Node4&#45;&gt;Node180</title>
+<title>Node4&#45;&gt;Node183</title>
 <path fill="none" stroke="#191970" d="M830.3075,-808.1804C1035.0604,-806.7552 1641.4387,-799.0045 1834,-757 1912.1355,-739.9559 1939.7987,-741.4787 2001,-690 2023.0355,-671.4651 2038.3882,-640.8816 2046.1541,-622.6157"/>
 <polygon fill="#191970" stroke="#191970" points="830.2613,-804.6805 820.285,-808.2473 830.3081,-811.6803 830.2613,-804.6805"/>
 </g>
-<!-- Node182 -->
+<!-- Node185 -->
 <g id="node48" class="node">
-<title>Node182</title>
+<title>Node185</title>
 <g id="a_node48"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="1709,-726.5 1709,-756.5 1825,-756.5 1825,-726.5 1709,-726.5"/>
 <text text-anchor="start" x="1717" y="-744.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -326,15 +326,15 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node182 -->
+<!-- Node4&#45;&gt;Node185 -->
 <g id="edge96" class="edge">
-<title>Node4&#45;&gt;Node182</title>
+<title>Node4&#45;&gt;Node185</title>
 <path fill="none" stroke="#191970" d="M830.2444,-803.9504C1017.0312,-791.4979 1534.2983,-757.0134 1708.713,-745.3858"/>
 <polygon fill="#191970" stroke="#191970" points="829.7544,-800.4752 820.0094,-804.6327 830.2201,-807.4597 829.7544,-800.4752"/>
 </g>
-<!-- Node195 -->
+<!-- Node198 -->
 <g id="node50" class="node">
-<title>Node195</title>
+<title>Node198</title>
 <g id="a_node50"><a xlink:href="parallel__for_8h.html" target="_top" xlink:title="An implementation to run loop in parallel. ">
 <polygon fill="#ffffff" stroke="#000000" points="2177,-726.5 2177,-756.5 2291,-756.5 2291,-726.5 2177,-726.5"/>
 <text text-anchor="start" x="2185" y="-744.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/support</text>
@@ -342,9 +342,9 @@
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node195 -->
+<!-- Node4&#45;&gt;Node198 -->
 <g id="edge120" class="edge">
-<title>Node4&#45;&gt;Node195</title>
+<title>Node4&#45;&gt;Node198</title>
 <path fill="none" stroke="#191970" d="M830.5374,-807.5984C1074.5914,-804.1353 1900.6991,-790.1834 2163,-757 2167.5061,-756.4299 2172.1489,-755.7137 2176.8009,-754.9036"/>
 <polygon fill="#191970" stroke="#191970" points="830.3343,-804.1008 820.3846,-807.7411 830.4328,-811.1001 830.3343,-804.1008"/>
 </g>
@@ -455,24 +455,24 @@
 <path fill="none" stroke="#191970" d="M1206.7723,-462.0239C1214.2334,-460.6039 1221.7944,-459.2236 1229,-458 1341.8418,-438.8383 1385.567,-480.407 1484,-422 1566.6249,-372.973 1618.7431,-260.3807 1633.0129,-226.3926"/>
 <polygon fill="#191970" stroke="#191970" points="1205.8548,-458.6364 1196.7026,-463.9737 1207.1856,-465.5088 1205.8548,-458.6364"/>
 </g>
-<!-- Node116 -->
+<!-- Node119 -->
 <g id="node10" class="node">
-<title>Node116</title>
+<title>Node119</title>
 <g id="a_node10"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="1441.5,-268.5 1441.5,-287.5 1558.5,-287.5 1558.5,-268.5 1441.5,-268.5"/>
 <text text-anchor="middle" x="1500" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/expr.h</text>
 </a>
 </g>
 </g>
-<!-- Node13&#45;&gt;Node116 -->
+<!-- Node13&#45;&gt;Node119 -->
 <g id="edge11" class="edge">
-<title>Node13&#45;&gt;Node116</title>
+<title>Node13&#45;&gt;Node119</title>
 <path fill="none" stroke="#191970" d="M1172.5527,-457.8568C1205.4169,-434.0098 1264.351,-391.2736 1265,-391 1351.4526,-354.5592 1401.3924,-415.6162 1473,-355 1493.4353,-337.7015 1498.4132,-303.9757 1499.6191,-287.5073"/>
 <polygon fill="#191970" stroke="#191970" points="1170.4649,-455.0474 1164.4271,-463.7535 1174.5762,-460.7128 1170.4649,-455.0474"/>
 </g>
-<!-- Node24 -->
+<!-- Node26 -->
 <g id="node11" class="node">
-<title>Node24</title>
+<title>Node26</title>
 <g id="a_node11"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="1313.5,-201.5 1313.5,-231.5 1420.5,-231.5 1420.5,-201.5 1313.5,-201.5"/>
 <text text-anchor="start" x="1321.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
@@ -480,15 +480,15 @@
 </a>
 </g>
 </g>
-<!-- Node13&#45;&gt;Node24 -->
+<!-- Node13&#45;&gt;Node26 -->
 <g id="edge33" class="edge">
-<title>Node13&#45;&gt;Node24</title>
+<title>Node13&#45;&gt;Node26</title>
 <path fill="none" stroke="#191970" d="M1208.1727,-461.9809C1215.1834,-460.615 1222.2522,-459.2599 1229,-458 1274.6821,-449.4706 1405.1016,-457.5765 1435,-422 1483.0463,-364.8291 1365.1967,-380.7266 1348,-355 1322.3737,-316.6625 1345.2525,-258.9406 1358.7526,-231.7259"/>
 <polygon fill="#191970" stroke="#191970" points="1207.1258,-458.6196 1197.987,-463.98 1208.4739,-465.4885 1207.1258,-458.6196"/>
 </g>
-<!-- Node50 -->
+<!-- Node53 -->
 <g id="node13" class="node">
-<title>Node50</title>
+<title>Node53</title>
 <g id="a_node13"><a xlink:href="tag_8h.html" target="_top" xlink:title="Target tag registry. ">
 <polygon fill="#ffffff" stroke="#000000" points="1277.5,-134.5 1277.5,-164.5 1384.5,-164.5 1384.5,-134.5 1277.5,-134.5"/>
 <text text-anchor="start" x="1285.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
@@ -496,36 +496,36 @@
 </a>
 </g>
 </g>
-<!-- Node13&#45;&gt;Node50 -->
+<!-- Node13&#45;&gt;Node53 -->
 <g id="edge32" class="edge">
-<title>Node13&#45;&gt;Node50</title>
+<title>Node13&#45;&gt;Node53</title>
 <path fill="none" stroke="#191970" d="M1164.3437,-455.2744C1181.19,-430.4174 1208,-383.8862 1208,-339.5 1208,-339.5 1208,-339.5 1208,-278 1208,-224.7287 1263.8475,-184.9041 1300.2792,-164.5922"/>
 <polygon fill="#191970" stroke="#191970" points="1161.3199,-453.4909 1158.4518,-463.6901 1167.0542,-457.5056 1161.3199,-453.4909"/>
 </g>
-<!-- Node13&#45;&gt;Node142 -->
+<!-- Node13&#45;&gt;Node145 -->
 <g id="edge36" class="edge">
-<title>Node13&#45;&gt;Node142</title>
+<title>Node13&#45;&gt;Node145</title>
 <path fill="none" stroke="#191970" d="M1137.6563,-455.2744C1120.81,-430.4174 1094,-383.8862 1094,-339.5 1094,-339.5 1094,-339.5 1094,-278 1094,-211.8519 1010.5586,-174.9081 961.9931,-159.0077"/>
 <polygon fill="#191970" stroke="#191970" points="1134.9458,-457.5056 1143.5482,-463.6901 1140.6801,-453.4909 1134.9458,-457.5056"/>
 </g>
-<!-- Node143 -->
+<!-- Node146 -->
 <g id="node15" class="node">
-<title>Node143</title>
+<title>Node146</title>
 <g id="a_node15"><a xlink:href="relay_2base_8h.html" target="_top" xlink:title="Base classes for the Relay IR. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="1143.5,-73 1143.5,-92 1280.5,-92 1280.5,-73 1143.5,-73"/>
 <text text-anchor="middle" x="1212" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/base.h</text>
 </a>
 </g>
 </g>
-<!-- Node13&#45;&gt;Node143 -->
+<!-- Node13&#45;&gt;Node146 -->
 <g id="edge31" class="edge">
-<title>Node13&#45;&gt;Node143</title>
+<title>Node13&#45;&gt;Node146</title>
 <path fill="none" stroke="#191970" d="M1155.5782,-453.7446C1161.2004,-427.7147 1170,-380.4355 1170,-339.5 1170,-339.5 1170,-339.5 1170,-216.5 1170,-167.9841 1195.3791,-113.924 1206.6807,-92.2555"/>
 <polygon fill="#191970" stroke="#191970" points="1152.093,-453.2927 1153.3298,-463.8151 1158.9248,-454.818 1152.093,-453.2927"/>
 </g>
-<!-- Node126 -->
+<!-- Node129 -->
 <g id="node17" class="node">
-<title>Node126</title>
+<title>Node129</title>
 <g id="a_node17"><a xlink:href="arg__info_8h.html" target="_top" xlink:title="include/tvm/meta_schedule\l/arg_info.h">
 <polygon fill="#ffffff" stroke="#ff0000" points="1378,-.5 1378,-30.5 1530,-30.5 1530,-.5 1378,-.5"/>
 <text text-anchor="start" x="1386" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/meta_schedule</text>
@@ -533,60 +533,60 @@
 </a>
 </g>
 </g>
-<!-- Node13&#45;&gt;Node126 -->
+<!-- Node13&#45;&gt;Node129 -->
 <g id="edge30" class="edge">
-<title>Node13&#45;&gt;Node126</title>
+<title>Node13&#45;&gt;Node129</title>
 <path fill="none" stroke="#191970" d="M1203.8316,-462.047C1212.2216,-460.5043 1220.8264,-459.083 1229,-458 1464.8109,-426.7537 1529.714,-468.4838 1763,-422 1875.2685,-399.6297 2007,-453.9755 2007,-339.5 2007,-339.5 2007,-339.5 2007,-149.5 2007,-52.5052 1681.6,-25.4686 1530.022,-18.1362"/>
 <polygon fill="#191970" stroke="#191970" points="1202.9127,-458.6592 1193.7476,-463.9744 1204.2269,-465.5347 1202.9127,-458.6592"/>
 </g>
-<!-- Node149 -->
+<!-- Node152 -->
 <g id="node18" class="node">
-<title>Node149</title>
+<title>Node152</title>
 <g id="a_node18"><a xlink:href="var_8h.html" target="_top" xlink:title="Variables in the TIR. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="913.5,-207 913.5,-226 1028.5,-226 1028.5,-207 913.5,-207"/>
 <text text-anchor="middle" x="971" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/var.h</text>
 </a>
 </g>
 </g>
-<!-- Node13&#45;&gt;Node149 -->
+<!-- Node13&#45;&gt;Node152 -->
 <g id="edge37" class="edge">
-<title>Node13&#45;&gt;Node149</title>
+<title>Node13&#45;&gt;Node152</title>
 <path fill="none" stroke="#191970" d="M1124.9293,-458.6827C1110.4059,-449.4925 1092.739,-436.6579 1080,-422 1023.3082,-356.7683 985.2297,-256.9942 974.2612,-226.0116"/>
 <polygon fill="#191970" stroke="#191970" points="1123.1361,-461.6886 1133.4939,-463.9176 1126.7869,-455.716 1123.1361,-461.6886"/>
 </g>
-<!-- Node151 -->
+<!-- Node154 -->
 <g id="node19" class="node">
-<title>Node151</title>
+<title>Node154</title>
 <g id="a_node19"><a xlink:href="span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="1634.5,-397 1634.5,-416 1753.5,-416 1753.5,-397 1634.5,-397"/>
 <text text-anchor="middle" x="1694" y="-404" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/span.h</text>
 </a>
 </g>
 </g>
-<!-- Node13&#45;&gt;Node151 -->
+<!-- Node13&#45;&gt;Node154 -->
 <g id="edge23" class="edge">
-<title>Node13&#45;&gt;Node151</title>
+<title>Node13&#45;&gt;Node154</title>
 <path fill="none" stroke="#191970" d="M1205.0226,-462.0065C1213.0383,-460.5217 1221.2182,-459.1283 1229,-458 1401.7069,-432.9591 1447.4245,-447.9311 1620,-422 1630.6439,-420.4007 1642.0614,-418.2356 1652.6649,-416.0313"/>
 <polygon fill="#191970" stroke="#191970" points="1204.1643,-458.6071 1194.9996,-463.9229 1205.479,-465.4825 1204.1643,-458.6071"/>
 </g>
-<!-- Node152 -->
+<!-- Node155 -->
 <g id="node20" class="node">
-<title>Node152</title>
+<title>Node155</title>
 <g id="a_node20"><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="#ff0000" points="1635,-330 1635,-349 1753,-349 1753,-330 1635,-330"/>
 <text text-anchor="middle" x="1694" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/type.h</text>
 </a>
 </g>
 </g>
-<!-- Node13&#45;&gt;Node152 -->
+<!-- Node13&#45;&gt;Node155 -->
 <g id="edge29" class="edge">
-<title>Node13&#45;&gt;Node152</title>
+<title>Node13&#45;&gt;Node155</title>
 <path fill="none" stroke="#191970" d="M1205.0328,-462.0757C1213.047,-460.5811 1221.2238,-459.1665 1229,-458 1384.9577,-434.6052 1434.8701,-478.7708 1582,-422 1587.6328,-419.8266 1652.8237,-370.6951 1681.0752,-349.3041"/>
 <polygon fill="#191970" stroke="#191970" points="1204.1719,-458.677 1195.0108,-463.999 1205.4912,-465.5515 1204.1719,-458.677"/>
 </g>
-<!-- Node23 -->
+<!-- Node25 -->
 <g id="node21" class="node">
-<title>Node23</title>
+<title>Node25</title>
 <g id="a_node21"><a xlink:href="target__kind_8h.html" target="_top" xlink:title="Target kind registry. ">
 <polygon fill="#ffffff" stroke="#000000" points="1356.5,-324.5 1356.5,-354.5 1463.5,-354.5 1463.5,-324.5 1356.5,-324.5"/>
 <text text-anchor="start" x="1364.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/target</text>
@@ -594,141 +594,141 @@
 </a>
 </g>
 </g>
-<!-- Node13&#45;&gt;Node23 -->
+<!-- Node13&#45;&gt;Node25 -->
 <g id="edge34" class="edge">
-<title>Node13&#45;&gt;Node23</title>
+<title>Node13&#45;&gt;Node25</title>
 <path fill="none" stroke="#191970" d="M1207.0738,-462.0311C1214.4388,-460.6205 1221.8936,-459.2406 1229,-458 1281.91,-448.7632 1432.9635,-462.7092 1468,-422 1486.959,-399.9714 1456.9432,-371.8223 1433.4951,-354.7526"/>
 <polygon fill="#191970" stroke="#191970" points="1206.2764,-458.6205 1197.1275,-463.9635 1207.6115,-465.492 1206.2764,-458.6205"/>
 </g>
-<!-- Node116&#45;&gt;Node16 -->
+<!-- Node119&#45;&gt;Node16 -->
 <g id="edge12" class="edge">
-<title>Node116&#45;&gt;Node16</title>
+<title>Node119&#45;&gt;Node16</title>
 <path fill="none" stroke="#191970" d="M1530.7648,-264.1895C1556.6487,-252.5701 1592.9815,-236.2601 1615.7441,-226.0419"/>
 <polygon fill="#191970" stroke="#191970" points="1529.0958,-261.1022 1521.4063,-268.3906 1531.9626,-267.4883 1529.0958,-261.1022"/>
 </g>
-<!-- Node116&#45;&gt;Node24 -->
+<!-- Node119&#45;&gt;Node26 -->
 <g id="edge13" class="edge">
-<title>Node116&#45;&gt;Node24</title>
+<title>Node119&#45;&gt;Node26</title>
 <path fill="none" stroke="#191970" d="M1470.1237,-264.185C1449.1397,-254.4819 1421.0852,-241.5093 1399.5355,-231.5446"/>
 <polygon fill="#191970" stroke="#191970" points="1468.6731,-267.3703 1479.2188,-268.3906 1471.6111,-261.0167 1468.6731,-267.3703"/>
 </g>
-<!-- Node116&#45;&gt;Node142 -->
+<!-- Node119&#45;&gt;Node145 -->
 <g id="edge17" class="edge">
-<title>Node116&#45;&gt;Node142</title>
+<title>Node119&#45;&gt;Node145</title>
 <path fill="none" stroke="#191970" d="M1489.1396,-259.7463C1477.1648,-241.4544 1456.0929,-214.1759 1430,-201 1354.1409,-162.6943 1104.9673,-152.8703 988.7233,-150.3586"/>
 <polygon fill="#191970" stroke="#191970" points="1486.2711,-261.7599 1494.5508,-268.3703 1492.2005,-258.0394 1486.2711,-261.7599"/>
 </g>
-<!-- Node116&#45;&gt;Node149 -->
+<!-- Node119&#45;&gt;Node152 -->
 <g id="edge21" class="edge">
-<title>Node116&#45;&gt;Node149</title>
+<title>Node119&#45;&gt;Node152</title>
 <path fill="none" stroke="#191970" d="M1431.1703,-269.9981C1325.9088,-257.7607 1126.843,-234.6179 1028.6884,-223.2067"/>
 <polygon fill="#191970" stroke="#191970" points="1431.0292,-273.5052 1441.3665,-271.1834 1431.8377,-266.552 1431.0292,-273.5052"/>
 </g>
-<!-- Node24&#45;&gt;Node8 -->
+<!-- Node26&#45;&gt;Node8 -->
 <g id="edge14" class="edge">
-<title>Node24&#45;&gt;Node8</title>
+<title>Node26&#45;&gt;Node8</title>
 <path fill="none" stroke="#191970" d="M1303.0463,-210.3816C1206.7031,-201.0818 1018.6147,-182.6048 859,-165 841.6039,-163.0813 822.9117,-160.9145 805.2768,-158.8225"/>
 <polygon fill="#191970" stroke="#191970" points="1302.9167,-213.8852 1313.2065,-211.3611 1303.5885,-206.9175 1302.9167,-213.8852"/>
 </g>
-<!-- Node29 -->
+<!-- Node32 -->
 <g id="node12" class="node">
-<title>Node29</title>
+<title>Node32</title>
 <g id="a_node12"><a xlink:href="interpreter_8h.html" target="_top" xlink:title="An interpreter for Relay. ">
 <polygon fill="#ffffff" stroke="#000000" points="1563.5,-140 1563.5,-159 1728.5,-159 1728.5,-140 1563.5,-140"/>
 <text text-anchor="middle" x="1646" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/interpreter.h</text>
 </a>
 </g>
 </g>
-<!-- Node24&#45;&gt;Node29 -->
+<!-- Node26&#45;&gt;Node32 -->
 <g id="edge15" class="edge">
-<title>Node24&#45;&gt;Node29</title>
+<title>Node26&#45;&gt;Node32</title>
 <path fill="none" stroke="#191970" d="M1430.6202,-201.222C1484.6719,-188.2419 1560.5695,-170.0156 1606.3409,-159.0239"/>
 <polygon fill="#191970" stroke="#191970" points="1429.7003,-197.8434 1420.794,-203.5817 1431.3349,-204.6498 1429.7003,-197.8434"/>
 </g>
-<!-- Node24&#45;&gt;Node50 -->
+<!-- Node26&#45;&gt;Node53 -->
 <g id="edge16" class="edge">
-<title>Node24&#45;&gt;Node50</title>
+<title>Node26&#45;&gt;Node53</title>
 <path fill="none" stroke="#191970" d="M1354.0957,-192.4837C1349.1073,-183.1996 1343.5498,-172.8565 1339.1366,-164.6432"/>
 <polygon fill="#191970" stroke="#191970" points="1351.0147,-194.1443 1358.831,-201.2967 1357.181,-190.8311 1351.0147,-194.1443"/>
 </g>
-<!-- Node142&#45;&gt;Node143 -->
+<!-- Node145&#45;&gt;Node146 -->
 <g id="edge18" class="edge">
-<title>Node142&#45;&gt;Node143</title>
+<title>Node145&#45;&gt;Node146</title>
 <path fill="none" stroke="#191970" d="M978.2702,-137.6405C1033.278,-124.6633 1120.3917,-104.1118 1171.2908,-92.1039"/>
 <polygon fill="#191970" stroke="#191970" points="977.3178,-134.269 968.3887,-139.9717 978.9252,-141.082 977.3178,-134.269"/>
 </g>
-<!-- Node125 -->
+<!-- Node128 -->
 <g id="node16" class="node">
-<title>Node125</title>
+<title>Node128</title>
 <g id="a_node16"><a xlink:href="tir_2function_8h.html" target="_top" xlink:title="TIR Function. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="815,-73 815,-92 955,-92 955,-73 815,-73"/>
 <text text-anchor="middle" x="885" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/function.h</text>
 </a>
 </g>
 </g>
-<!-- Node142&#45;&gt;Node125 -->
+<!-- Node145&#45;&gt;Node128 -->
 <g id="edge19" class="edge">
-<title>Node142&#45;&gt;Node125</title>
+<title>Node145&#45;&gt;Node128</title>
 <path fill="none" stroke="#191970" d="M916.4351,-131.4803C908.2963,-118.7989 897.7225,-102.3235 891.1494,-92.0817"/>
 <polygon fill="#191970" stroke="#191970" points="913.4923,-133.3751 921.8391,-139.9005 919.3834,-129.5942 913.4923,-133.3751"/>
 </g>
-<!-- Node125&#45;&gt;Node126 -->
+<!-- Node128&#45;&gt;Node129 -->
 <g id="edge20" class="edge">
-<title>Node125&#45;&gt;Node126</title>
+<title>Node128&#45;&gt;Node129</title>
 <path fill="none" stroke="#191970" d="M940.0337,-71.0511C948.0533,-69.5724 956.2254,-68.1689 964,-67 1109.7017,-45.0942 1281.1695,-29.3515 1377.7664,-21.3957"/>
 <polygon fill="#191970" stroke="#191970" points="939.1723,-67.652 929.9986,-72.9522 940.4753,-74.5296 939.1723,-67.652"/>
 </g>
-<!-- Node149&#45;&gt;Node142 -->
+<!-- Node152&#45;&gt;Node145 -->
 <g id="edge22" class="edge">
-<title>Node149&#45;&gt;Node142</title>
+<title>Node152&#45;&gt;Node145</title>
 <path fill="none" stroke="#191970" d="M959.4351,-198.4803C951.2963,-185.7989 940.7225,-169.3235 934.1494,-159.0817"/>
 <polygon fill="#191970" stroke="#191970" points="956.4923,-200.3751 964.8391,-206.9005 962.3834,-196.5942 956.4923,-200.3751"/>
 </g>
-<!-- Node151&#45;&gt;Node116 -->
+<!-- Node154&#45;&gt;Node119 -->
 <g id="edge24" class="edge">
-<title>Node151&#45;&gt;Node116</title>
+<title>Node154&#45;&gt;Node119</title>
 <path fill="none" stroke="#191970" d="M1671.0117,-391.2732C1630.5883,-364.4979 1547.899,-309.7269 1514.4861,-287.5952"/>
 <polygon fill="#191970" stroke="#191970" points="1669.1487,-394.2373 1679.4185,-396.8416 1673.0142,-388.4014 1669.1487,-394.2373"/>
 </g>
-<!-- Node151&#45;&gt;Node143 -->
+<!-- Node154&#45;&gt;Node146 -->
 <g id="edge28" class="edge">
-<title>Node151&#45;&gt;Node143</title>
+<title>Node154&#45;&gt;Node146</title>
 <path fill="none" stroke="#191970" d="M1753.89,-394.4369C1812.4914,-378.7295 1893,-344.9645 1893,-278 1893,-278 1893,-278 1893,-216.5 1893,-138.4608 1812.7053,-156.5665 1738,-134 1654.2263,-108.6941 1403.2601,-92.5072 1280.7685,-85.8996"/>
 <polygon fill="#191970" stroke="#191970" points="1752.7758,-391.1093 1743.9592,-396.9846 1754.5153,-397.8897 1752.7758,-391.1093"/>
 </g>
-<!-- Node151&#45;&gt;Node152 -->
+<!-- Node154&#45;&gt;Node155 -->
 <g id="edge25" class="edge">
-<title>Node151&#45;&gt;Node152</title>
+<title>Node154&#45;&gt;Node155</title>
 <path fill="none" stroke="#191970" d="M1694,-386.6079C1694,-374.214 1694,-358.8263 1694,-349.0817"/>
 <polygon fill="#191970" stroke="#191970" points="1690.5001,-386.9005 1694,-396.9005 1697.5001,-386.9006 1690.5001,-386.9005"/>
 </g>
-<!-- Node152&#45;&gt;Node16 -->
+<!-- Node155&#45;&gt;Node16 -->
 <g id="edge26" class="edge">
-<title>Node152&#45;&gt;Node16</title>
+<title>Node155&#45;&gt;Node16</title>
 <path fill="none" stroke="#191970" d="M1685.1687,-320.443C1672.8159,-293.7869 1650.84,-246.3653 1641.4519,-226.1068"/>
 <polygon fill="#191970" stroke="#191970" points="1682.147,-322.2469 1689.5273,-329.8484 1688.4982,-319.3036 1682.147,-322.2469"/>
 </g>
-<!-- Node152&#45;&gt;Node116 -->
+<!-- Node155&#45;&gt;Node119 -->
 <g id="edge27" class="edge">
-<title>Node152&#45;&gt;Node116</title>
+<title>Node155&#45;&gt;Node119</title>
 <path fill="none" stroke="#191970" d="M1653.7828,-326.7507C1616.9735,-315.0818 1563.3267,-298.0752 1530.0996,-287.5419"/>
 <polygon fill="#191970" stroke="#191970" points="1653.0973,-330.205 1663.6875,-329.8906 1655.2127,-323.5323 1653.0973,-330.205"/>
 </g>
-<!-- Node23&#45;&gt;Node24 -->
+<!-- Node25&#45;&gt;Node26 -->
 <g id="edge35" class="edge">
-<title>Node23&#45;&gt;Node24</title>
+<title>Node25&#45;&gt;Node26</title>
 <path fill="none" stroke="#191970" d="M1401.4208,-314.9595C1392.7402,-290.1288 1379.5925,-252.5205 1372.3158,-231.7056"/>
 <polygon fill="#191970" stroke="#191970" points="1398.1233,-316.1331 1404.7274,-324.4178 1404.7311,-313.8229 1398.1233,-316.1331"/>
 </g>
-<!-- Node154&#45;&gt;Node13 -->
+<!-- Node157&#45;&gt;Node13 -->
 <g id="edge41" class="edge">
-<title>Node154&#45;&gt;Node13</title>
+<title>Node157&#45;&gt;Node13</title>
 <path fill="none" stroke="#191970" d="M1359.1181,-528.3973C1309.8743,-515.4078 1232.648,-495.0371 1187.4089,-483.1039"/>
 <polygon fill="#191970" stroke="#191970" points="1358.3158,-531.8053 1368.8777,-530.9717 1360.1012,-525.0368 1358.3158,-531.8053"/>
 </g>
-<!-- Node155 -->
+<!-- Node158 -->
 <g id="node23" class="node">
-<title>Node155</title>
+<title>Node158</title>
 <g id="a_node23"><a xlink:href="env__func_8h.html" target="_top" xlink:title="Serializable global function used in IR. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="1557.5,-458.5 1557.5,-488.5 1662.5,-488.5 1662.5,-458.5 1557.5,-458.5"/>
 <text text-anchor="start" x="1565.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/env</text>
@@ -736,30 +736,30 @@
 </a>
 </g>
 </g>
-<!-- Node154&#45;&gt;Node155 -->
+<!-- Node157&#45;&gt;Node158 -->
 <g id="edge39" class="edge">
-<title>Node154&#45;&gt;Node155</title>
+<title>Node157&#45;&gt;Node158</title>
 <path fill="none" stroke="#191970" d="M1444.0131,-527.7494C1478.1999,-516.5761 1527.9301,-500.3229 1564.0379,-488.5218"/>
 <polygon fill="#191970" stroke="#191970" points="1442.7894,-524.4671 1434.3715,-530.9005 1444.9641,-531.1207 1442.7894,-524.4671"/>
 </g>
-<!-- Node156 -->
+<!-- Node159 -->
 <g id="node24" class="node">
-<title>Node156</title>
+<title>Node159</title>
 <g id="a_node24"><a xlink:href="instrument_8h.html" target="_top" xlink:title="include/tvm/ir/instrument.h">
 <polygon fill="#ffffff" stroke="#ff0000" points="1237.5,-464 1237.5,-483 1386.5,-483 1386.5,-464 1237.5,-464"/>
 <text text-anchor="middle" x="1312" y="-471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/instrument.h</text>
 </a>
 </g>
 </g>
-<!-- Node154&#45;&gt;Node156 -->
+<!-- Node157&#45;&gt;Node159 -->
 <g id="edge40" class="edge">
-<title>Node154&#45;&gt;Node156</title>
+<title>Node157&#45;&gt;Node159</title>
 <path fill="none" stroke="#191970" d="M1383.4992,-525.0102C1365.5333,-512.067 1340.4824,-494.0195 1325.2999,-483.0817"/>
 <polygon fill="#191970" stroke="#191970" points="1381.5158,-527.8949 1391.6754,-530.9005 1385.6075,-522.2153 1381.5158,-527.8949"/>
 </g>
-<!-- Node157 -->
+<!-- Node160 -->
 <g id="node25" class="node">
-<title>Node157</title>
+<title>Node160</title>
 <g id="a_node25"><a xlink:href="instruction_8h.html" target="_top" xlink:title="include/tvm/tir/schedule\l/instruction.h">
 <polygon fill="#ffffff" stroke="#ff0000" points="1405,-458.5 1405,-488.5 1539,-488.5 1539,-458.5 1405,-458.5"/>
 <text text-anchor="start" x="1413" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/tir/schedule</text>
@@ -767,15 +767,15 @@
 </a>
 </g>
 </g>
-<!-- Node154&#45;&gt;Node157 -->
+<!-- Node157&#45;&gt;Node160 -->
 <g id="edge42" class="edge">
-<title>Node154&#45;&gt;Node157</title>
+<title>Node157&#45;&gt;Node160</title>
 <path fill="none" stroke="#191970" d="M1421.8247,-523.6753C1432.6309,-512.8691 1446.5447,-498.9553 1456.9782,-488.5218"/>
 <polygon fill="#191970" stroke="#191970" points="1419.1957,-521.3546 1414.5995,-530.9005 1424.1454,-526.3043 1419.1957,-521.3546"/>
 </g>
-<!-- Node161 -->
+<!-- Node164 -->
 <g id="node29" class="node">
-<title>Node161</title>
+<title>Node164</title>
 <g id="a_node29"><a xlink:href="func__registry_8h.html" target="_top" xlink:title="Defines generic string&#45;based function lookup structs. ">
 <polygon fill="#ffffff" stroke="#000000" points="66,-659.5 66,-689.5 182,-689.5 182,-659.5 66,-659.5"/>
 <text text-anchor="start" x="74" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -783,15 +783,15 @@
 </a>
 </g>
 </g>
-<!-- Node160&#45;&gt;Node161 -->
+<!-- Node163&#45;&gt;Node164 -->
 <g id="edge46" class="edge">
-<title>Node160&#45;&gt;Node161</title>
+<title>Node163&#45;&gt;Node164</title>
 <path fill="none" stroke="#191970" d="M124,-716.0249C124,-707.128 124,-697.4287 124,-689.6432"/>
 <polygon fill="#191970" stroke="#191970" points="120.5001,-716.2966 124,-726.2967 127.5001,-716.2967 120.5001,-716.2966"/>
 </g>
-<!-- Node162 -->
+<!-- Node165 -->
 <g id="node30" class="node">
-<title>Node162</title>
+<title>Node165</title>
 <g id="a_node30"><a xlink:href="runtime_2crt_2module_8h.html" target="_top" xlink:title="Runtime container of the functions. ">
 <polygon fill="#ffffff" stroke="#000000" points="66,-592.5 66,-622.5 182,-622.5 182,-592.5 66,-592.5"/>
 <text text-anchor="start" x="74" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -799,63 +799,63 @@
 </a>
 </g>
 </g>
-<!-- Node160&#45;&gt;Node162 -->
+<!-- Node163&#45;&gt;Node165 -->
 <g id="edge50" class="edge">
-<title>Node160&#45;&gt;Node162</title>
+<title>Node163&#45;&gt;Node165</title>
 <path fill="none" stroke="#191970" d="M85.0797,-720.8045C73.9346,-712.781 63.1481,-702.4802 57,-690 50.9114,-677.6405 50.9114,-671.3595 57,-659 64.7152,-643.3386 79.735,-631.1093 93.6014,-622.5054"/>
 <polygon fill="#191970" stroke="#191970" points="83.3413,-723.8523 93.6014,-726.4946 87.2285,-718.0307 83.3413,-723.8523"/>
 </g>
-<!-- Node161&#45;&gt;Node162 -->
+<!-- Node164&#45;&gt;Node165 -->
 <g id="edge47" class="edge">
-<title>Node161&#45;&gt;Node162</title>
+<title>Node164&#45;&gt;Node165</title>
 <path fill="none" stroke="#191970" d="M124,-649.0249C124,-640.128 124,-630.4287 124,-622.6432"/>
 <polygon fill="#191970" stroke="#191970" points="120.5001,-649.2966 124,-659.2967 127.5001,-649.2967 120.5001,-649.2966"/>
 </g>
-<!-- Node162&#45;&gt;Node163 -->
+<!-- Node165&#45;&gt;Node166 -->
 <g id="edge48" class="edge">
-<title>Node162&#45;&gt;Node163</title>
+<title>Node165&#45;&gt;Node166</title>
 <path fill="none" stroke="#191970" d="M139.2275,-583.7735C145.2334,-574.4154 151.9551,-563.9421 157.2812,-555.6432"/>
 <polygon fill="#191970" stroke="#191970" points="136.2131,-581.9903 133.7574,-592.2967 142.1042,-585.7712 136.2131,-581.9903"/>
 </g>
-<!-- Node163&#45;&gt;Node164 -->
+<!-- Node166&#45;&gt;Node167 -->
 <g id="edge49" class="edge">
-<title>Node163&#45;&gt;Node164</title>
+<title>Node166&#45;&gt;Node167</title>
 <path fill="none" stroke="#191970" d="M134.9924,-520.0761C119.1661,-509.9774 100.3929,-497.9983 85.8487,-488.7177"/>
 <polygon fill="#191970" stroke="#191970" points="133.1232,-523.0352 143.436,-525.4639 136.8887,-517.1342 133.1232,-523.0352"/>
 </g>
-<!-- Node166&#45;&gt;Node163 -->
+<!-- Node169&#45;&gt;Node166 -->
 <g id="edge55" class="edge">
-<title>Node166&#45;&gt;Node163</title>
+<title>Node169&#45;&gt;Node166</title>
 <path fill="none" stroke="#191970" d="M277.3359,-651.6777C263.192,-634.7448 243.0107,-611.3407 224,-592 211.3788,-579.1598 196.2179,-565.5403 184.7056,-555.5341"/>
 <polygon fill="#191970" stroke="#191970" points="274.684,-653.9628 283.7627,-659.4243 280.0713,-649.4933 274.684,-653.9628"/>
 </g>
-<!-- Node167&#45;&gt;Node142 -->
+<!-- Node170&#45;&gt;Node145 -->
 <g id="edge91" class="edge">
-<title>Node167&#45;&gt;Node142</title>
+<title>Node170&#45;&gt;Node145</title>
 <path fill="none" stroke="#191970" d="M1005.6645,-738.8791C914.3232,-734.1924 758.5198,-721.6959 712,-690 683.7089,-670.7241 682.7334,-656.101 674,-623 630.6175,-458.5735 838.2628,-220.0442 855,-201 870.6655,-183.1752 893.6809,-168.2612 909.6652,-159.1455"/>
 <polygon fill="#191970" stroke="#191970" points="1005.4951,-742.3749 1015.656,-739.3738 1005.8413,-735.3835 1005.4951,-742.3749"/>
 </g>
-<!-- Node167&#45;&gt;Node149 -->
+<!-- Node170&#45;&gt;Node152 -->
 <g id="edge92" class="edge">
-<title>Node167&#45;&gt;Node149</title>
+<title>Node170&#45;&gt;Node152</title>
 <path fill="none" stroke="#191970" d="M1005.5375,-735.1919C949.031,-728.4493 867.464,-715.1368 800,-690 744.5698,-669.3469 714.4756,-674.286 685,-623 635.7675,-537.3381 903.4683,-279.655 960.484,-226.2529"/>
 <polygon fill="#191970" stroke="#191970" points="1005.4522,-738.7053 1015.7878,-736.3758 1006.2555,-731.7515 1005.4522,-738.7053"/>
 </g>
-<!-- Node167&#45;&gt;Node152 -->
+<!-- Node170&#45;&gt;Node155 -->
 <g id="edge57" class="edge">
-<title>Node167&#45;&gt;Node152</title>
+<title>Node170&#45;&gt;Node155</title>
 <path fill="none" stroke="#191970" d="M1142.1827,-727.5452C1183.86,-718.3544 1238.0094,-705.2259 1285,-690 1319.7034,-678.7554 1325.9818,-669.2222 1361,-659 1446.4396,-634.0591 1478.9765,-663.9545 1558,-623 1671.2893,-564.287 1713.5896,-539.6448 1763,-422 1768.3352,-409.2971 1769.1759,-403.3161 1763,-391 1753.2173,-371.4914 1732.1503,-357.4841 1715.8521,-349.0484"/>
 <polygon fill="#191970" stroke="#191970" points="1141.433,-724.1264 1132.4097,-729.6788 1142.9261,-730.9653 1141.433,-724.1264"/>
 </g>
-<!-- Node167&#45;&gt;Node154 -->
+<!-- Node170&#45;&gt;Node157 -->
 <g id="edge58" class="edge">
-<title>Node167&#45;&gt;Node154</title>
+<title>Node170&#45;&gt;Node157</title>
 <path fill="none" stroke="#191970" d="M1136.7912,-723.0948C1160.8651,-714.7233 1188.0447,-703.612 1211,-690 1229.1617,-679.2305 1228.2926,-668.7909 1247,-659 1303.5406,-629.4085 1341.49,-668.7314 1386,-623 1405.4775,-602.988 1406.5091,-567.2368 1405.7464,-550.1328"/>
 <polygon fill="#191970" stroke="#191970" points="1135.3856,-719.8755 1127.0367,-726.3983 1137.631,-726.5056 1135.3856,-719.8755"/>
 </g>
-<!-- Node168 -->
+<!-- Node171 -->
 <g id="node36" class="node">
-<title>Node168</title>
+<title>Node171</title>
 <g id="a_node36"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
 <polygon fill="#ffffff" stroke="#ff0000" points="1225.5,-592.5 1225.5,-622.5 1376.5,-622.5 1376.5,-592.5 1225.5,-592.5"/>
 <text text-anchor="start" x="1233.5" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/structural</text>
@@ -863,15 +863,15 @@
 </a>
 </g>
 </g>
-<!-- Node167&#45;&gt;Node168 -->
+<!-- Node170&#45;&gt;Node171 -->
 <g id="edge59" class="edge">
-<title>Node167&#45;&gt;Node168</title>
+<title>Node170&#45;&gt;Node171</title>
 <path fill="none" stroke="#191970" d="M1116.4572,-721.9162C1135.0907,-712.8523 1157.0022,-701.5459 1176,-690 1196.1332,-677.7641 1199.4589,-672.1608 1219,-659 1237.8237,-646.3224 1259.5978,-632.694 1275.9758,-622.6431"/>
 <polygon fill="#191970" stroke="#191970" points="1114.8186,-718.8205 1107.3233,-726.3086 1117.8523,-725.129 1114.8186,-718.8205"/>
 </g>
-<!-- Node169 -->
+<!-- Node172 -->
 <g id="node37" class="node">
-<title>Node169</title>
+<title>Node172</title>
 <g id="a_node37"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="include/tvm/node/structural\l_hash.h">
 <polygon fill="#ffffff" stroke="#ff0000" points="1056.5,-592.5 1056.5,-622.5 1207.5,-622.5 1207.5,-592.5 1056.5,-592.5"/>
 <text text-anchor="start" x="1064.5" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/node/structural</text>
@@ -879,27 +879,27 @@
 </a>
 </g>
 </g>
-<!-- Node167&#45;&gt;Node169 -->
+<!-- Node170&#45;&gt;Node172 -->
 <g id="edge62" class="edge">
-<title>Node167&#45;&gt;Node169</title>
+<title>Node170&#45;&gt;Node172</title>
 <path fill="none" stroke="#191970" d="M1037.3071,-720.322C1026.841,-712.2777 1016.7308,-702.0866 1011,-690 1005.0972,-677.5507 1003.4011,-670.4928 1011,-659 1022.4585,-641.6698 1041.0601,-630.1529 1060.2785,-622.5061"/>
 <polygon fill="#191970" stroke="#191970" points="1035.5263,-723.3509 1045.7,-726.3083 1039.5911,-717.652 1035.5263,-723.3509"/>
 </g>
-<!-- Node167&#45;&gt;Node170 -->
+<!-- Node170&#45;&gt;Node173 -->
 <g id="edge65" class="edge">
-<title>Node167&#45;&gt;Node170</title>
+<title>Node170&#45;&gt;Node173</title>
 <path fill="none" stroke="#191970" d="M1017.6957,-723.2759C985.0719,-712.7165 944.4875,-699.5805 913.6575,-689.6017"/>
 <polygon fill="#191970" stroke="#191970" points="1016.9533,-726.7143 1027.5452,-726.4639 1019.1089,-720.0545 1016.9533,-726.7143"/>
 </g>
-<!-- Node167&#45;&gt;Node174 -->
+<!-- Node170&#45;&gt;Node177 -->
 <g id="edge87" class="edge">
-<title>Node167&#45;&gt;Node174</title>
+<title>Node170&#45;&gt;Node177</title>
 <path fill="none" stroke="#191970" d="M1142.2441,-725.9773C1174.7588,-717.386 1213.721,-705.3183 1247,-690 1270.0691,-679.3813 1271.762,-669.2438 1295,-659 1319.5476,-648.1789 1384.4021,-631.9747 1432.8305,-620.6409"/>
 <polygon fill="#191970" stroke="#191970" points="1141.1779,-722.6378 1132.3738,-728.5317 1142.9318,-729.4146 1141.1779,-722.6378"/>
 </g>
-<!-- Node181 -->
+<!-- Node184 -->
 <g id="node47" class="node">
-<title>Node181</title>
+<title>Node184</title>
 <g id="a_node47"><a xlink:href="bytecode_8h.html" target="_top" xlink:title="The bytecode for Relay virtual machine. ">
 <polygon fill="#ffffff" stroke="#000000" points="1833,-525.5 1833,-555.5 1949,-555.5 1949,-525.5 1833,-525.5"/>
 <text text-anchor="start" x="1841" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/runtime</text>
@@ -907,117 +907,117 @@
 </a>
 </g>
 </g>
-<!-- Node167&#45;&gt;Node181 -->
+<!-- Node170&#45;&gt;Node184 -->
 <g id="edge88" class="edge">
-<title>Node167&#45;&gt;Node181</title>
+<title>Node170&#45;&gt;Node184</title>
 <path fill="none" stroke="#191970" d="M1142.4011,-732.8378C1201.0494,-724.5561 1287.4651,-710.3116 1361,-690 1398.5555,-679.6265 1405.5161,-669.6292 1443,-659 1524.0069,-636.0292 1547.3778,-643.6782 1629,-623 1707.3555,-603.1493 1796.8091,-573.4182 1848.3142,-555.5928"/>
 <polygon fill="#191970" stroke="#191970" points="1141.5683,-729.4199 1132.1463,-734.2651 1142.5333,-736.3531 1141.5683,-729.4199"/>
 </g>
-<!-- Node168&#45;&gt;Node13 -->
+<!-- Node171&#45;&gt;Node13 -->
 <g id="edge60" class="edge">
-<title>Node168&#45;&gt;Node13</title>
+<title>Node171&#45;&gt;Node13</title>
 <path fill="none" stroke="#191970" d="M1276.6211,-585.7215C1243.4798,-556.1153 1185.6082,-504.4166 1161.7509,-483.1042"/>
 <polygon fill="#191970" stroke="#191970" points="1274.2953,-588.337 1284.0847,-592.389 1278.9588,-583.1166 1274.2953,-588.337"/>
 </g>
-<!-- Node168&#45;&gt;Node154 -->
+<!-- Node171&#45;&gt;Node157 -->
 <g id="edge61" class="edge">
-<title>Node168&#45;&gt;Node154</title>
+<title>Node171&#45;&gt;Node157</title>
 <path fill="none" stroke="#191970" d="M1332.7519,-587.0445C1351.8201,-574.7601 1375.1932,-559.7025 1390.0924,-550.1039"/>
 <polygon fill="#191970" stroke="#191970" points="1330.8506,-584.1058 1324.3396,-592.4639 1334.6417,-589.9904 1330.8506,-584.1058"/>
 </g>
-<!-- Node169&#45;&gt;Node13 -->
+<!-- Node172&#45;&gt;Node13 -->
 <g id="edge63" class="edge">
-<title>Node169&#45;&gt;Node13</title>
+<title>Node172&#45;&gt;Node13</title>
 <path fill="none" stroke="#191970" d="M1135.5794,-582.2559C1139.8364,-552.2327 1146.7311,-503.6073 1149.6382,-483.1042"/>
 <polygon fill="#191970" stroke="#191970" points="1132.0812,-581.9966 1134.1426,-592.389 1139.0119,-582.9794 1132.0812,-581.9966"/>
 </g>
-<!-- Node169&#45;&gt;Node154 -->
+<!-- Node172&#45;&gt;Node157 -->
 <g id="edge64" class="edge">
-<title>Node169&#45;&gt;Node154</title>
+<title>Node172&#45;&gt;Node157</title>
 <path fill="none" stroke="#191970" d="M1203.1199,-590.0457C1255.2133,-577.2608 1323.9399,-560.3939 1366.2695,-550.0053"/>
 <polygon fill="#191970" stroke="#191970" points="1202.1441,-586.6812 1193.2665,-592.4639 1203.8126,-593.4795 1202.1441,-586.6812"/>
 </g>
-<!-- Node170&#45;&gt;Node8 -->
+<!-- Node173&#45;&gt;Node8 -->
 <g id="edge66" class="edge">
-<title>Node170&#45;&gt;Node8</title>
+<title>Node173&#45;&gt;Node8</title>
 <path fill="none" stroke="#191970" d="M867.3586,-648.7355C866.4522,-631.4338 862.9442,-608.8144 852,-592 836.4663,-568.1344 814.4223,-579.9378 799,-556 714.256,-424.4639 723.1784,-221.3333 727.6108,-164.6448"/>
 <polygon fill="#191970" stroke="#191970" points="863.8724,-649.3169 867.6306,-659.2227 870.8701,-649.1353 863.8724,-649.3169"/>
 </g>
-<!-- Node170&#45;&gt;Node125 -->
+<!-- Node173&#45;&gt;Node128 -->
 <g id="edge86" class="edge">
-<title>Node170&#45;&gt;Node125</title>
+<title>Node173&#45;&gt;Node128</title>
 <path fill="none" stroke="#191970" d="M858.4651,-649.7935C850.8612,-631.3115 837.974,-606.7753 819,-592 688.0329,-490.0137 578.7938,-604.938 460,-489 410.776,-440.9593 420,-408.2816 420,-339.5 420,-339.5 420,-339.5 420,-216.5 420,-135.3212 684.9793,-100.3437 814.8813,-88.074"/>
 <polygon fill="#191970" stroke="#191970" points="855.2834,-651.2703 862.151,-659.338 861.8134,-648.7485 855.2834,-651.2703"/>
 </g>
-<!-- Node170&#45;&gt;Node154 -->
+<!-- Node173&#45;&gt;Node157 -->
 <g id="edge67" class="edge">
-<title>Node170&#45;&gt;Node154</title>
+<title>Node173&#45;&gt;Node157</title>
 <path fill="none" stroke="#191970" d="M902.7021,-654.5334C938.3886,-635.4752 995.3767,-607.4441 1048,-592 1140.9838,-564.7107 1252.0033,-551.5951 1325.2763,-545.4892"/>
 <polygon fill="#191970" stroke="#191970" points="900.801,-651.5822 893.6637,-659.4123 904.1261,-657.7421 900.801,-651.5822"/>
 </g>
... 107435 lines suppressed ...