You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by tq...@apache.org on 2020/07/15 22:04:34 UTC

[incubator-tvm-site] branch asf-site updated: Docs build at Wed Jul 15 15:02:36 PDT 2020

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

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new cd377c8  Docs build at Wed Jul 15 15:02:36 PDT 2020
cd377c8 is described below

commit cd377c856e2fb48956ff765360eb5b0a2c242fec
Author: tqchen <tq...@octoml.ai>
AuthorDate: Wed Jul 15 15:02:36 2020 -0700

    Docs build at Wed Jul 15 15:02:36 PDT 2020
---
 .../from_tflite.py                                 |    7 +-
 .../from_tflite.ipynb                              |    4 +-
 .../deploy_prequantized_tflite.ipynb               |    6 +-
 .../tune_relay_cuda.py                             |    6 +-
 .../relay_pass_infra.ipynb                         |    2 +-
 .../tune_relay_mobile_gpu.ipynb                    |    2 +-
 .../from_coreml.ipynb                              |    4 +-
 .../from_caffe2.ipynb                              |    4 +-
 .../deploy_sparse.py                               |    5 +-
 .../deploy_model_on_android.ipynb                  |    6 +-
 .../deploy_model_on_android.py                     |   10 +-
 .../using_external_lib.py                          |   12 +-
 .../cross_compilation_and_rpc.py                   |   12 +-
 .../from_tensorflow.py                             |    8 +-
 .../relay_pass_infra.py                            |    2 +-
 .../deploy_prequantized_tflite.py                  |   10 +-
 .../using_external_lib.ipynb                       |    4 +-
 .../from_pytorch.ipynb                             |    4 +-
 .../70d345c5409f99cb5de9dc44f147ff6f/build_gcn.py  |    5 +-
 .../from_caffe2.py                                 |    6 +-
 .../tune_relay_cuda.ipynb                          |    2 +-
 .../cross_compilation_and_rpc.ipynb                |    8 +-
 .../deploy_prequantized.ipynb                      |    2 +-
 .../deploy_ssd_gluoncv.ipynb                       |    4 +-
 .../from_darknet.ipynb                             |    4 +-
 .../deploy_model_on_rasp.py                        |    8 +-
 .../deploy_sparse.ipynb                            |    2 +-
 .../deploy_prequantized.py                         |    5 +-
 .../from_darknet.py                                |    8 +-
 .../tune_relay_arm.py                              |    2 +-
 .../deploy_model_on_rasp.ipynb                     |    4 +-
 .../build_gcn.ipynb                                |    2 +-
 .../deploy_ssd_gluoncv.py                          |   13 +-
 .../from_tensorflow.ipynb                          |    4 +-
 .../tune_relay_mobile_gpu.py                       |    2 +-
 .../from_coreml.py                                 |    7 +-
 .../ea0c81cab71096d16b825a33fd276c58/from_mxnet.py |    5 +-
 .../from_mxnet.ipynb                               |    4 +-
 .../from_pytorch.py                                |    8 +-
 .../tune_relay_arm.ipynb                           |    2 +-
 docs/_sources/dev/codebase_walkthrough.rst.txt     |    4 +-
 docs/_sources/dev/relay_add_pass.rst.txt           |    6 +-
 docs/_sources/dev/virtual_machine.rst.txt          |    4 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |   16 +-
 .../tutorials/autotvm/tune_conv2d_cuda.rst.txt     |   42 +-
 .../tutorials/autotvm/tune_relay_arm.rst.txt       |    2 +-
 .../tutorials/autotvm/tune_relay_cuda.rst.txt      |    6 +-
 .../autotvm/tune_relay_mobile_gpu.rst.txt          |    2 +-
 .../tutorials/autotvm/tune_simple_template.rst.txt |   20 +-
 .../tutorials/cross_compilation_and_rpc.rst.txt    |   14 +-
 .../tutorials/dev/relay_pass_infra.rst.txt         |    2 +-
 .../tutorials/dev/sg_execution_times.rst.txt       |    6 +-
 docs/_sources/tutorials/frontend/build_gcn.rst.txt |    5 +-
 .../frontend/deploy_model_on_android.rst.txt       |   12 +-
 .../frontend/deploy_model_on_rasp.rst.txt          |    8 +-
 .../tutorials/frontend/deploy_prequantized.rst.txt |    7 +-
 .../frontend/deploy_prequantized_tflite.rst.txt    |   14 +-
 .../tutorials/frontend/deploy_sparse.rst.txt       |    5 +-
 .../tutorials/frontend/deploy_ssd_gluoncv.rst.txt  |  247 +-
 .../tutorials/frontend/from_caffe2.rst.txt         |    6 +-
 .../tutorials/frontend/from_coreml.rst.txt         |    7 +-
 .../tutorials/frontend/from_darknet.rst.txt        |    8 +-
 .../_sources/tutorials/frontend/from_mxnet.rst.txt |    5 +-
 docs/_sources/tutorials/frontend/from_onnx.rst.txt |   10 +-
 .../tutorials/frontend/from_pytorch.rst.txt        |    8 +-
 .../tutorials/frontend/from_tensorflow.rst.txt     |    8 +-
 .../tutorials/frontend/from_tflite.rst.txt         |    7 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |   38 +-
 .../tutorials/frontend/using_external_lib.rst.txt  |   14 +-
 docs/_sources/tutorials/index.rst.txt              |   32 +-
 .../tutorials/language/schedule_primitives.rst.txt |   14 +-
 .../tutorials/language/sg_execution_times.rst.txt  |   16 +-
 docs/_sources/tutorials/language/tensorize.rst.txt |    8 +-
 .../tutorials/language/tuple_inputs.rst.txt        |   30 +-
 .../tutorials/micro/sg_execution_times.rst.txt     |    4 +-
 .../tutorials/optimize/opt_conv_cuda.rst.txt       |    2 +-
 .../tutorials/optimize/opt_conv_tensorcore.rst.txt |    2 +-
 docs/_sources/tutorials/optimize/opt_gemm.rst.txt  |   28 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |   10 +-
 docs/_sources/tutorials/relay_quick_start.rst.txt  |    4 +-
 docs/_sources/tutorials/sg_execution_times.rst.txt |    8 +-
 docs/_sources/tutorials/topi/intro_topi.rst.txt    |    2 +-
 .../tutorials/topi/sg_execution_times.rst.txt      |    4 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |    4 +-
 .../vta/tutorials/autotvm/tune_relay_vta.rst.txt   |    2 +-
 .../frontend/deploy_classification.rst.txt         |    4 +-
 .../tutorials/frontend/deploy_detection.rst.txt    |    2 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |    6 +-
 .../_sources/vta/tutorials/matrix_multiply.rst.txt |    4 +-
 .../vta/tutorials/optimize/convolution_opt.rst.txt |    4 +-
 .../tutorials/optimize/matrix_multiply_opt.rst.txt |    8 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |    6 +-
 .../vta/tutorials/sg_execution_times.rst.txt       |    6 +-
 docs/api/doxygen/analyzer_8h.html                  |    2 +-
 docs/api/doxygen/analyzer_8h__dep__incl.svg        | 1324 ++--
 docs/api/doxygen/analyzer_8h_source.html           |    2 +-
 docs/api/doxygen/annotated.html                    |   32 +-
 docs/api/doxygen/attr__registry__map_8h.html       |    2 +-
 .../doxygen/attr__registry__map_8h__dep__incl.svg  |  784 +--
 .../api/doxygen/attr__registry__map_8h_source.html |    2 +-
 docs/api/doxygen/builtin_8h_source.html            |    2 +-
 docs/api/doxygen/c__backend__api_8h.html           |   19 +-
 docs/api/doxygen/c__backend__api_8h__dep__incl.svg |   80 +
 docs/api/doxygen/c__backend__api_8h_source.html    |   12 +-
 docs/api/doxygen/c__runtime__api_8h.html           |    2 +-
 docs/api/doxygen/c__runtime__api_8h__dep__incl.svg | 1411 ++---
 docs/api/doxygen/c__runtime__api_8h_source.html    |    2 +-
 docs/api/doxygen/classes.html                      |  290 +-
 docs/api/doxygen/classtvm_1_1SpanNode-members.html |    4 +-
 docs/api/doxygen/classtvm_1_1SpanNode.html         |   24 +-
 .../doxygen/classtvm_1_1SpanNode__coll__graph.svg  |    4 +-
 .../classtvm_1_1SpanNode__inherit__graph.svg       |    4 +-
 .../doxygen/classtvm_1_1TargetIdNode-members.html  |   15 +-
 docs/api/doxygen/classtvm_1_1TargetIdNode.html     |   38 +-
 .../classtvm_1_1TargetIdNode__coll__graph.svg      |  177 +-
 .../classtvm_1_1TargetIdNode__inherit__graph.svg   |   45 +-
 .../classtvm_1_1arith_1_1Analyzer-members.html     |    2 +-
 .../api/doxygen/classtvm_1_1arith_1_1Analyzer.html |   21 +-
 ...asstvm_1_1arith_1_1IntGroupBounds-members.html} |   18 +-
 .../classtvm_1_1arith_1_1IntGroupBounds.html       |  337 +
 ...vm_1_1arith_1_1IntGroupBoundsNode-members.html} |   23 +-
 .../classtvm_1_1arith_1_1IntGroupBoundsNode.html   |  358 ++
 ...1_1arith_1_1IntGroupBoundsNode__coll__graph.svg |  112 +
 ...arith_1_1IntGroupBoundsNode__inherit__graph.svg |   45 +
 ...tvm_1_1arith_1_1IntGroupBounds__coll__graph.svg |   42 +
 ..._1_1arith_1_1IntGroupBounds__inherit__graph.svg |   42 +
 .../api/doxygen/classtvm_1_1runtime_1_1Object.html |    4 +-
 .../doxygen/classtvm_1_1runtime_1_1PackedFunc.html |    2 +-
 .../classtvm_1_1runtime_1_1TVMArgs-members.html    |    4 +-
 .../doxygen/classtvm_1_1runtime_1_1TVMArgs.html    |   18 +-
 ...1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html |    2 +-
 .../classtvm_1_1runtime_1_1vm_1_1Closure.html      |    4 +-
 .../classtvm_1_1runtime_1_1vm_1_1ClosureObj.html   |    4 +-
 .../classtvm_1_1runtime_1_1vm_1_1Executable.html   |    4 +-
 .../classtvm_1_1runtime_1_1vm_1_1VMClosure.html    |    4 +-
 .../classtvm_1_1runtime_1_1vm_1_1VMClosureObj.html |    4 +-
 ...lasstvm_1_1runtime_1_1vm_1_1VirtualMachine.html |    4 +-
 docs/api/doxygen/codegen_8h_source.html            |    6 +-
 docs/api/doxygen/crt_2packed__func_8h.html         |  415 ++
 .../doxygen/crt_2packed__func_8h__dep__incl.svg    |   33 +
 docs/api/doxygen/crt_2packed__func_8h__incl.svg    |  181 +
 docs/api/doxygen/crt_2packed__func_8h_source.html  |  129 +
 docs/api/doxygen/{with_8h.html => crt_8h.html}     |   65 +-
 docs/api/doxygen/crt_8h__incl.svg                  |   33 +
 docs/api/doxygen/crt_8h_source.html                |  103 +
 docs/api/doxygen/cuda_2dense_8h_source.html        |    2 +-
 docs/api/doxygen/cuda_2injective_8h_source.html    |    2 +-
 docs/api/doxygen/cuda_2pooling_8h_source.html      |    4 +-
 docs/api/doxygen/cuda_2reduction_8h_source.html    |    4 +-
 docs/api/doxygen/cuda_2softmax_8h_source.html      |    2 +-
 docs/api/doxygen/data__layout_8h_source.html       |    2 +-
 docs/api/doxygen/data__type_8h.html                |    2 +-
 docs/api/doxygen/data__type_8h__dep__incl.svg      | 1492 ++---
 docs/api/doxygen/detail_2broadcast_8h_source.html  |    2 +-
 docs/api/doxygen/detail_2extern_8h_source.html     |    2 +-
 docs/api/doxygen/dilate_8h_source.html             |    4 +-
 docs/api/doxygen/dir_000002_000007.html            |    2 +-
 ...r_000002_000013.html => dir_000002_000014.html} |    0
 ...r_000002_000017.html => dir_000002_000018.html} |    0
 docs/api/doxygen/dir_000003_000018.html            |    4 +-
 docs/api/doxygen/dir_000003_000019.html            |    4 +-
 ...r_000003_000019.html => dir_000003_000020.html} |    0
 ...r_000004_000013.html => dir_000004_000014.html} |    0
 ...r_000004_000017.html => dir_000004_000018.html} |    0
 docs/api/doxygen/dir_000005_000004.html            |    2 +-
 docs/api/doxygen/dir_000005_000008.html            |    2 +-
 ...r_000005_000009.html => dir_000005_000010.html} |    0
 ...r_000005_000013.html => dir_000005_000014.html} |    0
 docs/api/doxygen/dir_000005_000018.html            |   90 -
 docs/api/doxygen/dir_000005_000019.html            |    4 +-
 ...r_000005_000019.html => dir_000005_000020.html} |    0
 ...r_000007_000013.html => dir_000007_000014.html} |    0
 ...r_000009_000004.html => dir_000010_000004.html} |    2 +-
 docs/api/doxygen/dir_000011_000000.html            |   90 -
 docs/api/doxygen/dir_000012_000000.html            |    6 +-
 ...r_000012_000000.html => dir_000013_000000.html} |    0
 ...r_000013_000008.html => dir_000014_000008.html} |    0
 ...r_000003_000017.html => dir_000015_000008.html} |    6 +-
 docs/api/doxygen/dir_000018_000007.html            |   90 -
 docs/api/doxygen/dir_000018_000008.html            |   90 -
 ...r_000018_000004.html => dir_000019_000004.html} |    0
 docs/api/doxygen/dir_000019_000007.html            |    6 +-
 docs/api/doxygen/dir_000019_000008.html            |    6 +-
 ...r_000018_000013.html => dir_000019_000014.html} |    0
 ...r_000018_000017.html => dir_000019_000018.html} |    0
 docs/api/doxygen/dir_000020_000000.html            |   90 -
 ...r_000019_000002.html => dir_000020_000002.html} |    0
 ...r_000019_000007.html => dir_000020_000007.html} |    0
 ...r_000019_000008.html => dir_000020_000008.html} |    0
 ...r_000019_000013.html => dir_000020_000014.html} |    0
 ...r_000019_000017.html => dir_000020_000018.html} |    0
 docs/api/doxygen/dir_000021_000000.html            |    6 +-
 docs/api/doxygen/dir_000021_000020.html            |   90 -
 docs/api/doxygen/dir_000022_000000.html            |    6 +-
 docs/api/doxygen/dir_000022_000021.html            |    6 +-
 docs/api/doxygen/dir_000023_000000.html            |    6 +-
 docs/api/doxygen/dir_000023_000020.html            |   90 -
 ...r_000022_000020.html => dir_000023_000021.html} |    0
 ...r_000022_000021.html => dir_000023_000022.html} |    0
 ...r_000022_000023.html => dir_000023_000024.html} |    0
 ...r_000022_000025.html => dir_000023_000026.html} |    0
 docs/api/doxygen/dir_000024_000000.html            |    6 +-
 docs/api/doxygen/dir_000024_000021.html            |    6 +-
 docs/api/doxygen/dir_000025_000000.html            |    6 +-
 ...r_000024_000020.html => dir_000025_000021.html} |    0
 ...r_000024_000021.html => dir_000025_000022.html} |    0
 ...r_000024_000022.html => dir_000025_000023.html} |    0
 ...r_000024_000023.html => dir_000025_000024.html} |    0
 ...r_000024_000025.html => dir_000025_000026.html} |    0
 docs/api/doxygen/dir_000026_000000.html            |    6 +-
 ...r_000025_000020.html => dir_000026_000021.html} |    0
 docs/api/doxygen/dir_000027_000000.html            |    6 +-
 ...r_000026_000020.html => dir_000027_000021.html} |    0
 ...r_000027_000000.html => dir_000028_000000.html} |    0
 ...r_000027_000020.html => dir_000028_000021.html} |    0
 .../dir_02be2c9d68e402f80df60bd528724ee5_dep.svg   |   18 +-
 .../dir_14640941691eabc830844bef8114fc0c_dep.svg   |    2 +-
 .../dir_194ecda214f05a38134392ac6a69b970_dep.svg   |   14 +-
 .../dir_404558507ed35459f0d7a6d81d8c508d.html      |   10 +-
 .../dir_404558507ed35459f0d7a6d81d8c508d_dep.svg   |   46 +
 .../dir_501163e255a572c2b8f8622055dcc830_dep.svg   |    6 +-
 .../dir_519be2d4a83a987dbf989f1de527b870.html      |    3 +
 .../dir_519be2d4a83a987dbf989f1de527b870_dep.svg   |    4 +-
 .../dir_59fae77b9344561cec492d4c84fe16f0_dep.svg   |   36 +-
 .../dir_5da96592f3a7c442b838b075c58254c2_dep.svg   |   18 +-
 .../dir_63946bee875c6d52bce55e72a67a86ad_dep.svg   |   32 +-
 .../dir_6cd4295f6ad5aa17e5b568d0e5b190e5_dep.svg   |    2 +-
 .../dir_72c2f11201cd7636dc7624de0754daa5_dep.svg   |    6 +-
 .../dir_82fbc0b750acd2d16bf657eba2735040_dep.svg   |    6 +-
 .../dir_85f3d6180da4edc5eb489febd20e807a_dep.svg   |   44 +-
 .../dir_9028d5d964ed0471973ff1d6dc49c294_dep.svg   |    6 +-
 .../dir_919d148e3bc0d2ada10274b170555243_dep.svg   |    6 +-
 .../dir_9a72de697ed8769045f2ae88dc0db9c6_dep.svg   |   24 +-
 .../dir_a2900df4deca8dd2bcded616f0fe650a.html      |   27 +
 .../dir_a2900df4deca8dd2bcded616f0fe650a_dep.svg   |   28 +
 .../dir_a99f4dc995763900c0e382b7dd5d0038_dep.svg   |    2 +-
 .../dir_b4c7d8e826c599ba55146c099a14beb5.html      |    2 +
 .../dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg   |  207 +-
 .../dir_cf1b2a4a187708c24d9394e639e6417e_dep.svg   |    6 +-
 .../dir_dc867ff9a37cad1764f1670dc7eba6c1_dep.svg   |    8 +-
 .../dir_e79ffd3285e304ad4c501fa62028ed74_dep.svg   |    2 +-
 .../dir_f97d855a3173728370e632aa77170e34_dep.svg   |   22 +-
 ...l => dir_fafc18f54a755f417c55c769623cbfef.html} |   16 +-
 ...> dir_fafc18f54a755f417c55c769623cbfef_dep.svg} |   20 +-
 docs/api/doxygen/elemwise_8h_source.html           |    2 +-
 docs/api/doxygen/env__func_8h.html                 |    2 +-
 docs/api/doxygen/env__func_8h__dep__incl.svg       |  876 ++-
 docs/api/doxygen/error__codes_8h.html              |  265 +
 docs/api/doxygen/error__codes_8h__dep__incl.svg    |   89 +
 docs/api/doxygen/error__codes_8h_source.html       |  110 +
 docs/api/doxygen/files.html                        |  288 +-
 docs/api/doxygen/func__registry_8h.html            |  415 ++
 docs/api/doxygen/func__registry_8h__dep__incl.svg  |   61 +
 docs/api/doxygen/func__registry_8h__incl.svg       |   91 +
 docs/api/doxygen/func__registry_8h_source.html     |  119 +
 docs/api/doxygen/functions.html                    |    2 +
 docs/api/doxygen/functions_a.html                  |    3 +-
 docs/api/doxygen/functions_c.html                  |   10 +-
 docs/api/doxygen/functions_d.html                  |    9 +
 docs/api/doxygen/functions_e.html                  |    5 +-
 docs/api/doxygen/functions_f.html                  |   22 +-
 docs/api/doxygen/functions_func_f.html             |   12 +-
 docs/api/doxygen/functions_func_i.html             |    9 +-
 docs/api/doxygen/functions_func_o.html             |   21 +-
 docs/api/doxygen/functions_func_p.html             |    4 +-
 docs/api/doxygen/functions_func_s.html             |   18 +-
 docs/api/doxygen/functions_func_t.html             |   12 +-
 docs/api/doxygen/functions_func_v.html             |   23 +-
 docs/api/doxygen/functions_i.html                  |    7 +-
 docs/api/doxygen/functions_k.html                  |    3 -
 docs/api/doxygen/functions_l.html                  |    7 +-
 docs/api/doxygen/functions_m.html                  |    3 +
 docs/api/doxygen/functions_n.html                  |    7 +
 docs/api/doxygen/functions_o.html                  |   27 +-
 docs/api/doxygen/functions_p.html                  |    4 +-
 docs/api/doxygen/functions_r.html                  |   11 +-
 docs/api/doxygen/functions_s.html                  |   31 +-
 docs/api/doxygen/functions_t.html                  |   15 +-
 docs/api/doxygen/functions_u.html                  |    3 +
 docs/api/doxygen/functions_v.html                  |   30 +-
 docs/api/doxygen/functions_vars.html               |    2 +
 docs/api/doxygen/functions_vars_a.html             |    1 +
 docs/api/doxygen/functions_vars_c.html             |   10 +-
 docs/api/doxygen/functions_vars_d.html             |    9 +
 docs/api/doxygen/functions_vars_e.html             |    3 +
 docs/api/doxygen/functions_vars_f.html             |   12 +
 docs/api/doxygen/functions_vars_k.html             |    3 -
 docs/api/doxygen/functions_vars_l.html             |    7 +-
 docs/api/doxygen/functions_vars_m.html             |    3 +
 docs/api/doxygen/functions_vars_n.html             |    9 +
 docs/api/doxygen/functions_vars_r.html             |    7 +
 docs/api/doxygen/functions_vars_s.html             |   13 +
 docs/api/doxygen/functions_vars_t.html             |    9 +-
 docs/api/doxygen/functions_vars_u.html             |    3 +
 docs/api/doxygen/functions_vars_v.html             |    5 +-
 docs/api/doxygen/functor_8h.html                   |    2 +-
 docs/api/doxygen/functor_8h__dep__incl.svg         |  899 +--
 docs/api/doxygen/generic_2default_8h_source.html   |    2 +-
 docs/api/doxygen/generic_2extern_8h_source.html    |    2 +-
 docs/api/doxygen/generic_2injective_8h_source.html |    2 +-
 docs/api/doxygen/globals.html                      |  562 +-
 .../doxygen/{globals_type.html => globals_d.html}  |   69 +-
 docs/api/doxygen/globals_defs.html                 |   19 +
 .../doxygen/{globals_enum.html => globals_e.html}  |   34 +-
 docs/api/doxygen/globals_enum.html                 |    7 +
 docs/api/doxygen/globals_eval.html                 |   31 +-
 .../doxygen/{globals_enum.html => globals_f.html}  |   33 +-
 docs/api/doxygen/globals_func.html                 |   69 +
 .../doxygen/{globals_enum.html => globals_g.html}  |   34 +-
 .../doxygen/{globals_enum.html => globals_i.html}  |   34 +-
 .../doxygen/{globals_eval.html => globals_k.html}  |   47 +-
 .../doxygen/{globals_enum.html => globals_p.html}  |   33 +-
 .../doxygen/{globals_type.html => globals_r.html}  |   72 +-
 .../doxygen/{globals_enum.html => globals_s.html}  |   34 +-
 docs/api/doxygen/{globals.html => globals_t.html}  |  348 +-
 docs/api/doxygen/globals_type.html                 |   33 +-
 .../doxygen/{globals_type.html => globals_u.html}  |   73 +-
 .../doxygen/{globals_type.html => globals_v.html}  |   69 +-
 .../{globals_enum.html => globals_vars.html}       |   14 +-
 docs/api/doxygen/graph__runtime_8h.html            |  446 ++
 docs/api/doxygen/graph__runtime_8h__incl.svg       |  205 +
 docs/api/doxygen/graph__runtime_8h_source.html     |  128 +
 docs/api/doxygen/hierarchy.html                    | 1204 ++--
 docs/api/doxygen/inherit_graph_125.svg             |   15 +-
 docs/api/doxygen/inherit_graph_126.svg             |   12 +-
 docs/api/doxygen/inherit_graph_127.svg             |   12 +-
 docs/api/doxygen/inherit_graph_128.svg             |   12 +-
 docs/api/doxygen/inherit_graph_129.svg             |   15 +-
 docs/api/doxygen/inherit_graph_130.svg             |   17 +-
 docs/api/doxygen/inherit_graph_131.svg             |   16 +-
 docs/api/doxygen/inherit_graph_132.svg             |   15 +-
 docs/api/doxygen/inherit_graph_133.svg             |   14 +-
 docs/api/doxygen/inherit_graph_134.svg             |   12 +-
 docs/api/doxygen/inherit_graph_135.svg             |   69 +-
 docs/api/doxygen/inherit_graph_136.svg             |   54 +-
 docs/api/doxygen/inherit_graph_137.svg             |   72 +-
 docs/api/doxygen/inherit_graph_138.svg             |   19 +-
 docs/api/doxygen/inherit_graph_139.svg             |   15 +-
 docs/api/doxygen/inherit_graph_140.svg             |   15 +-
 docs/api/doxygen/inherit_graph_141.svg             |   27 +-
 docs/api/doxygen/inherit_graph_142.svg             |   24 +-
 docs/api/doxygen/inherit_graph_143.svg             |   28 +-
 docs/api/doxygen/inherit_graph_144.svg             |   12 +-
 docs/api/doxygen/inherit_graph_146.svg             |   12 +-
 docs/api/doxygen/inherit_graph_147.svg             |   12 +-
 ...inherit_graph_147.svg => inherit_graph_148.svg} |   12 +-
 docs/api/doxygen/inherit_graph_149.svg             |   21 +
 ...inherit_graph_147.svg => inherit_graph_150.svg} |   12 +-
 ...inherit_graph_132.svg => inherit_graph_151.svg} |   12 +-
 ...inherit_graph_146.svg => inherit_graph_152.svg} |    0
 ...inherit_graph_147.svg => inherit_graph_153.svg} |    0
 docs/api/doxygen/inherit_graph_57.svg              | 1861 +++---
 docs/api/doxygen/inherit_graph_82.svg              | 6405 ++++++++++----------
 docs/api/doxygen/inherits.html                     |   58 +-
 docs/api/doxygen/int__set_8h.html                  |    2 +-
 docs/api/doxygen/int__set_8h__dep__incl.svg        | 1385 +++--
 docs/api/doxygen/int__solver_8h.html               |   26 +-
 docs/api/doxygen/int__solver_8h__incl.svg          | 1726 +++---
 docs/api/doxygen/int__solver_8h_source.html        |   60 +-
 docs/api/doxygen/interpreter_8h.html               |    2 +-
 docs/api/doxygen/interpreter_8h__incl.svg          |    2 +-
 docs/api/doxygen/interpreter_8h_source.html        |    4 +-
 docs/api/doxygen/ir_2attrs_8h.html                 |    2 +-
 docs/api/doxygen/ir_2attrs_8h__dep__incl.svg       | 1207 ++--
 docs/api/doxygen/ir_2attrs_8h_source.html          |    3 +-
 docs/api/doxygen/ir_2expr_8h.html                  |    2 +-
 docs/api/doxygen/ir_2expr_8h__dep__incl.svg        | 1189 ++--
 docs/api/doxygen/ir_2op_8h.html                    |    6 +-
 docs/api/doxygen/ir_2op_8h__dep__incl.svg          |  896 ++-
 docs/api/doxygen/ir_2op_8h_source.html             |   32 +-
 docs/api/doxygen/ir_2type_8h.html                  |    2 +-
 docs/api/doxygen/ir_2type_8h__dep__incl.svg        | 1152 ++--
 docs/api/doxygen/namespacemembers_d.html           |    5 +-
 docs/api/doxygen/namespacemembers_func_d.html      |    7 +-
 docs/api/doxygen/namespacemembers_func_g.html      |    8 +-
 docs/api/doxygen/namespacemembers_func_p.html      |    5 +-
 docs/api/doxygen/namespacemembers_func_s.html      |   11 +-
 docs/api/doxygen/namespacemembers_g.html           |   10 +-
 docs/api/doxygen/namespacemembers_p.html           |    8 +-
 docs/api/doxygen/namespacemembers_s.html           |   13 +-
 docs/api/doxygen/namespacemembers_type.html        |    3 +
 docs/api/doxygen/namespaces.html                   |   33 +-
 docs/api/doxygen/namespacetopi.html                |  320 +-
 docs/api/doxygen/namespacetvm.html                 |    2 +
 docs/api/doxygen/namespacetvm_1_1arith.html        |  115 +
 ...16f0fe650a.html => namespacetvm_1_1parser.html} |   52 +-
 docs/api/doxygen/namespacetvm_1_1relay.html        |   56 +
 .../doxygen/namespacetvm_1_1tir_1_1builtin.html    |    4 +-
 docs/api/doxygen/ndarray_8h.html                   |    2 +-
 docs/api/doxygen/ndarray_8h__dep__incl.svg         | 1216 ++--
 docs/api/doxygen/ndarray_8h_source.html            |    2 +-
 docs/api/doxygen/nn_2bnn_8h_source.html            |    6 +-
 docs/api/doxygen/nn_2dense_8h_source.html          |    2 +-
 docs/api/doxygen/nn_2pooling_8h_source.html        |    4 +-
 docs/api/doxygen/node_2container_8h.html           |    2 +-
 docs/api/doxygen/node_2container_8h__dep__incl.svg | 1162 ++--
 docs/api/doxygen/node_8h.html                      |    2 +-
 docs/api/doxygen/node_8h__dep__incl.svg            | 1222 ++--
 docs/api/doxygen/node_8h_source.html               |    3 +-
 docs/api/doxygen/object_8h.html                    |    2 +-
 docs/api/doxygen/object_8h__dep__incl.svg          | 1318 ++--
 docs/api/doxygen/op__strategy_8h_source.html       |    2 +-
 docs/api/doxygen/operation_8h_source.html          |    2 +-
 docs/api/doxygen/packed__func_8h.html              |    2 +-
 docs/api/doxygen/packed__func_8h__dep__incl.svg    | 1104 ++--
 docs/api/doxygen/packed__func_8h_source.html       |    8 +-
 docs/api/doxygen/{with_8h.html => parser_8h.html}  |   45 +-
 docs/api/doxygen/parser_8h__incl.svg               |  478 ++
 docs/api/doxygen/parser_8h_source.html             |  105 +
 .../api/doxygen/{with_8h.html => platform_8h.html} |   70 +-
 docs/api/doxygen/platform_8h__dep__incl.svg        |   47 +
 docs/api/doxygen/platform_8h_source.html           |  101 +
 docs/api/doxygen/ravel__unravel_8h_source.html     |    2 +-
 docs/api/doxygen/reflection_8h.html                |    2 +-
 docs/api/doxygen/reflection_8h__dep__incl.svg      | 1250 ++--
 docs/api/doxygen/registry_8h.html                  |    4 +-
 docs/api/doxygen/registry_8h__dep__incl.svg        |  939 ++-
 docs/api/doxygen/relay_2analysis_8h.html           |    6 +
 docs/api/doxygen/relay_2analysis_8h_source.html    |    4 +-
 docs/api/doxygen/relay_2attrs_2memory_8h.html      |    3 -
 .../doxygen/relay_2attrs_2memory_8h_source.html    |    5 +-
 .../{with_8h.html => relay_2attrs_2vm_8h.html}     |   32 +-
 docs/api/doxygen/relay_2attrs_2vm_8h__incl.svg     |  997 +++
 docs/api/doxygen/relay_2attrs_2vm_8h_source.html   |  107 +
 docs/api/doxygen/relay_2expr_8h_source.html        |    2 +-
 docs/api/doxygen/relay_2op_8h_source.html          |    2 +-
 .../doxygen/relay_2op__attr__types_8h_source.html  |    2 +-
 docs/api/doxygen/repr__printer_8h.html             |    2 +-
 docs/api/doxygen/repr__printer_8h__dep__incl.svg   | 1194 ++--
 docs/api/doxygen/rocm_2dense_8h_source.html        |    2 +-
 docs/api/doxygen/rocm_2injective_8h_source.html    |    2 +-
 docs/api/doxygen/rocm_2pooling_8h_source.html      |    2 +-
 docs/api/doxygen/rocm_2reduction_8h_source.html    |    2 +-
 docs/api/doxygen/rocm_2softmax_8h_source.html      |    2 +-
 docs/api/doxygen/runtime_2container_8h.html        |    2 +-
 .../doxygen/runtime_2container_8h__dep__incl.svg   | 1009 +--
 docs/api/doxygen/runtime_2crt_2memory_8h.html      |   30 +-
 docs/api/doxygen/runtime_2crt_2memory_8h__incl.svg |   29 +
 .../doxygen/runtime_2crt_2memory_8h_source.html    |    3 +-
 ...rinter_8h.html => runtime_2crt_2module_8h.html} |   86 +-
 .../doxygen/runtime_2crt_2module_8h__dep__incl.svg |   47 +
 docs/api/doxygen/runtime_2crt_2module_8h__incl.svg |  110 +
 ...ce.html => runtime_2crt_2module_8h_source.html} |   14 +-
 docs/api/doxygen/runtime_2memory_8h.html           |    2 +-
 docs/api/doxygen/runtime_2memory_8h__dep__incl.svg | 1053 ++--
 docs/api/doxygen/runtime_2module_8h.html           |    2 +-
 docs/api/doxygen/runtime_2module_8h__dep__incl.svg | 1102 ++--
 .../doxygen/{vm_8h.html => runtime_2vm_8h.html}    |    6 +-
 ...dep__incl.svg => runtime_2vm_8h__dep__incl.svg} |    0
 .../{vm_8h__incl.svg => runtime_2vm_8h__incl.svg}  |    0
 docs/api/doxygen/runtime_2vm_8h_source.html        |  227 +
 docs/api/doxygen/search/all_0.js                   |    4 +-
 docs/api/doxygen/search/all_1.js                   |    2 +-
 docs/api/doxygen/search/all_10.js                  |   15 +-
 docs/api/doxygen/search/all_12.js                  |    7 +-
 docs/api/doxygen/search/all_13.js                  |   44 +-
 docs/api/doxygen/search/all_14.js                  |   80 +-
 docs/api/doxygen/search/all_15.js                  |    1 +
 docs/api/doxygen/search/all_16.js                  |   24 +-
 docs/api/doxygen/search/all_3.js                   |   14 +-
 docs/api/doxygen/search/all_4.js                   |    7 +-
 docs/api/doxygen/search/all_5.js                   |    9 +-
 docs/api/doxygen/search/all_6.js                   |   18 +-
 docs/api/doxygen/search/all_7.js                   |   11 +-
 docs/api/doxygen/search/all_9.js                   |   11 +-
 docs/api/doxygen/search/all_b.js                   |    8 +-
 docs/api/doxygen/search/all_c.js                   |    8 +-
 docs/api/doxygen/search/all_d.js                   |   16 +-
 docs/api/doxygen/search/all_e.js                   |    9 +-
 docs/api/doxygen/search/all_f.js                   |    6 +-
 docs/api/doxygen/search/classes_11.js              |    7 +
 docs/api/doxygen/search/classes_13.js              |    3 +-
 docs/api/doxygen/search/classes_8.js               |    4 +-
 docs/api/doxygen/search/defines_1.js               |    1 +
 docs/api/doxygen/search/defines_7.js               |    5 +
 docs/api/doxygen/search/enums_9.js                 |    2 +
 docs/api/doxygen/search/enumvalues_4.js            |    7 +
 docs/api/doxygen/search/files_11.js                |    3 +-
 docs/api/doxygen/search/files_2.js                 |    1 +
 docs/api/doxygen/search/files_4.js                 |    5 +-
 docs/api/doxygen/search/files_5.js                 |    1 +
 docs/api/doxygen/search/files_6.js                 |    3 +-
 docs/api/doxygen/search/files_9.js                 |    7 +-
 docs/api/doxygen/search/files_c.js                 |    7 +-
 docs/api/doxygen/search/functions_10.js            |    5 +-
 docs/api/doxygen/search/functions_12.js            |   16 +-
 docs/api/doxygen/search/functions_13.js            |   26 +-
 docs/api/doxygen/search/functions_15.js            |    2 +-
 docs/api/doxygen/search/functions_4.js             |    3 +-
 docs/api/doxygen/search/functions_6.js             |    3 +-
 docs/api/doxygen/search/functions_7.js             |    2 +
 docs/api/doxygen/search/functions_9.js             |    1 +
 docs/api/doxygen/search/functions_f.js             |    6 +-
 docs/api/doxygen/search/namespaces_2.js            |    5 +-
 docs/api/doxygen/search/typedefs_b.js              |    1 +
 docs/api/doxygen/search/typedefs_e.js              |   13 +-
 docs/api/doxygen/search/variables_0.js             |    4 +-
 docs/api/doxygen/search/variables_1.js             |    2 +-
 docs/api/doxygen/search/variables_10.js            |    2 +
 docs/api/doxygen/search/variables_11.js            |    6 +-
 docs/api/doxygen/search/variables_12.js            |    3 +-
 docs/api/doxygen/search/variables_13.js            |    3 +-
 docs/api/doxygen/search/variables_14.js            |    6 +-
 docs/api/doxygen/search/variables_3.js             |    4 +-
 docs/api/doxygen/search/variables_4.js             |    3 +
 docs/api/doxygen/search/variables_5.js             |    1 +
 docs/api/doxygen/search/variables_6.js             |    4 +
 docs/api/doxygen/search/variables_7.js             |    2 +
 docs/api/doxygen/search/variables_a.js             |    1 -
 docs/api/doxygen/search/variables_b.js             |    5 +-
 docs/api/doxygen/search/variables_c.js             |    1 +
 docs/api/doxygen/search/variables_d.js             |    8 +-
 docs/api/doxygen/serializer_8h.html                |    2 +-
 docs/api/doxygen/serializer_8h__dep__incl.svg      | 1214 ++--
 docs/api/doxygen/span_8h.html                      |    2 +-
 docs/api/doxygen/span_8h__dep__incl.svg            | 1046 ++--
 docs/api/doxygen/span_8h_source.html               |   10 +-
 docs/api/doxygen/stmt_8h.html                      |    2 +-
 docs/api/doxygen/stmt_8h__dep__incl.svg            |  916 +--
 ...nfo-members.html => structTVMArgs-members.html} |   15 +-
 ...de_1_1ValueTypeInfo.html => structTVMArgs.html} |   63 +-
 docs/api/doxygen/structTVMArgs__coll__graph.svg    |   46 +
 ...025.html => structTVMFuncRegistry-members.html} |   27 +-
 ...lueTypeInfo.html => structTVMFuncRegistry.html} |   71 +-
 .../doxygen/structTVMFuncRegistry__coll__graph.svg |   23 +
 ...=> structTVMGraphRuntimeGraphAttr-members.html} |   22 +-
 .../doxygen/structTVMGraphRuntimeGraphAttr.html    |  229 +
 ...structTVMGraphRuntimeGraphAttr__coll__graph.svg |   29 +
 ...22_000025.html => structTVMModule-members.html} |   26 +-
 ..._1TVMArgs-members.html => structTVMModule.html} |   58 +-
 docs/api/doxygen/structTVMModule__coll__graph.svg  |   41 +
 ...l => structTVMMutableFuncRegistry-members.html} |   27 +-
 ...Info.html => structTVMMutableFuncRegistry.html} |   69 +-
 .../structTVMMutableFuncRegistry__coll__graph.svg  |   41 +
 ...-members.html => structTVMOpParam-members.html} |   16 +-
 ...1_1ValueTypeInfo.html => structTVMOpParam.html} |   56 +-
 docs/api/doxygen/structTVMOpParam__coll__graph.svg |   25 +
 ...mbers.html => structTVMPackedFunc-members.html} |   18 +-
 ...ValueTypeInfo.html => structTVMPackedFunc.html} |   85 +-
 .../doxygen/structTVMPackedFunc__coll__graph.svg   |   68 +
 ...1TargetIdNode_1_1ValueTypeInfo__coll__graph.svg |  121 -
 .../structtvm_1_1relay_1_1ShapeFuncAttrs.html      |    4 +-
 .../structtvm_1_1runtime_1_1vm_1_1Instruction.html |    4 +-
 .../structtvm_1_1runtime_1_1vm_1_1VMFrame.html     |    4 +-
 .../structtvm_1_1runtime_1_1vm_1_1VMFunction.html  |    4 +-
 docs/api/doxygen/structural__equal_8h.html         |    2 +-
 .../doxygen/structural__equal_8h__dep__incl.svg    |  982 ++-
 docs/api/doxygen/structural__hash_8h.html          |    2 +-
 .../api/doxygen/structural__hash_8h__dep__incl.svg |  982 ++-
 docs/api/doxygen/target_8h_source.html             |   16 +-
 docs/api/doxygen/target__id_8h.html                |    7 +-
 docs/api/doxygen/target__id_8h_source.html         |   35 +-
 docs/api/doxygen/tensor_8h_source.html             |    2 +-
 docs/api/doxygen/tensor__type_8h_source.html       |    2 +-
 docs/api/doxygen/tir_2expr_8h.html                 |    2 +-
 docs/api/doxygen/tir_2expr_8h__dep__incl.svg       |  798 +--
 docs/api/doxygen/tir_2op_8h.html                   |    2 +-
 docs/api/doxygen/tir_2op_8h__dep__incl.svg         | 1313 ++--
 .../doxygen/topi_2include_2topi_2nn_8h_source.html |    6 +-
 .../doxygen/topi_2include_2topi_2transform_8h.html |    3 +
 .../topi_2include_2topi_2transform_8h_source.html  |   27 +-
 docs/api/doxygen/type__relation_8h.html            |    2 +-
 docs/api/doxygen/type__relation_8h__dep__incl.svg  |  898 +--
 docs/api/doxygen/var_8h.html                       |    2 +-
 docs/api/doxygen/var_8h__dep__incl.svg             |  703 +--
 docs/api/doxygen/vm_8h_source.html                 |  227 -
 docs/api/doxygen/with_8h.html                      |    2 +-
 docs/api/doxygen/with_8h__dep__incl.svg            | 1314 ++--
 docs/api/doxygen/x86_2bnn_8h_source.html           |    2 +-
 docs/api/doxygen/x86_2default_8h_source.html       |    2 +-
 docs/api/doxygen/x86_2injective_8h_source.html     |    2 +-
 docs/api/python/graph_runtime.html                 |    6 +-
 docs/api/python/relay/analysis.html                |   60 +-
 docs/api/python/relay/index.html                   |    7 +-
 docs/api/python/relay/testing.html                 |    4 +-
 docs/api/python/rpc.html                           |   23 +-
 docs/api/python/target.html                        |    2 +-
 docs/api/typedoc/classes/bytestreamreader.html     |   12 +-
 docs/api/typedoc/classes/cachedcallstack.html      |   34 +-
 docs/api/typedoc/classes/dlcontext.html            |   10 +-
 docs/api/typedoc/classes/dldatatype.html           |   12 +-
 docs/api/typedoc/classes/environment.html          |   12 +-
 docs/api/typedoc/classes/ffilibrary.html           |   20 +-
 docs/api/typedoc/classes/graphruntime.html         |   16 +-
 docs/api/typedoc/classes/instance.html             |   40 +-
 docs/api/typedoc/classes/memory.html               |   34 +-
 docs/api/typedoc/classes/module.html               |   10 +-
 docs/api/typedoc/classes/ndarray.html              |   22 +-
 docs/api/typedoc/classes/packedfunccell.html       |    6 +-
 docs/api/typedoc/classes/rpcserver.html            |   14 +-
 docs/api/typedoc/classes/scalar.html               |    6 +-
 docs/api/typedoc/classes/webgpucontext.html        |   12 +-
 docs/api/typedoc/enums/argtypecode.html            |   30 +-
 docs/api/typedoc/enums/aynccallbackcode.html       |    4 +-
 docs/api/typedoc/enums/dldatatypecode.html         |    8 +-
 docs/api/typedoc/enums/rpcserverstate.html         |   12 +-
 docs/api/typedoc/enums/sizeof.html                 |   18 +-
 docs/api/typedoc/index.html                        |  114 +-
 docs/api/typedoc/interfaces/disposable.html        |    2 +-
 docs/api/typedoc/interfaces/functioninfo.html      |    6 +-
 docs/api/typedoc/interfaces/libraryprovider.html   |    4 +-
 docs/dev/codebase_walkthrough.html                 |    4 +-
 docs/dev/relay_add_pass.html                       |    4 +-
 docs/dev/virtual_machine.html                      |    4 +-
 docs/genindex.html                                 |   14 +-
 docs/objects.inv                                   |  Bin 14952 -> 14971 bytes
 docs/searchindex.js                                |    2 +-
 docs/tutorials/autotvm/sg_execution_times.html     |   14 +-
 docs/tutorials/autotvm/tune_conv2d_cuda.html       |   48 +-
 docs/tutorials/autotvm/tune_relay_arm.html         |    8 +-
 docs/tutorials/autotvm/tune_relay_cuda.html        |   16 +-
 docs/tutorials/autotvm/tune_relay_mobile_gpu.html  |    4 +-
 docs/tutorials/autotvm/tune_relay_x86.html         |   10 +-
 docs/tutorials/autotvm/tune_simple_template.html   |   22 +-
 docs/tutorials/cross_compilation_and_rpc.html      |   14 +-
 docs/tutorials/dev/relay_pass_infra.html           |    2 +-
 docs/tutorials/dev/sg_execution_times.html         |    6 +-
 docs/tutorials/frontend/build_gcn.html             |    7 +-
 .../frontend/deploy_model_on_android.html          |   16 +-
 docs/tutorials/frontend/deploy_model_on_rasp.html  |   18 +-
 docs/tutorials/frontend/deploy_prequantized.html   |   13 +-
 .../frontend/deploy_prequantized_tflite.html       |   16 +-
 docs/tutorials/frontend/deploy_quantized.html      |    2 +-
 docs/tutorials/frontend/deploy_sparse.html         |    7 +-
 docs/tutorials/frontend/deploy_ssd_gluoncv.html    |  249 +-
 docs/tutorials/frontend/from_caffe2.html           |    8 +-
 docs/tutorials/frontend/from_coreml.html           |    9 +-
 docs/tutorials/frontend/from_darknet.html          |   10 +-
 docs/tutorials/frontend/from_keras.html            |    2 +-
 docs/tutorials/frontend/from_mxnet.html            |   11 +-
 docs/tutorials/frontend/from_onnx.html             |   16 +-
 docs/tutorials/frontend/from_pytorch.html          |   18 +-
 docs/tutorials/frontend/from_tensorflow.html       |   10 +-
 docs/tutorials/frontend/from_tflite.html           |    9 +-
 docs/tutorials/frontend/sg_execution_times.html    |   38 +-
 docs/tutorials/frontend/using_external_lib.html    |   16 +-
 docs/tutorials/index.html                          |   28 +-
 docs/tutorials/language/schedule_primitives.html   |   14 +-
 docs/tutorials/language/sg_execution_times.html    |   16 +-
 docs/tutorials/language/tensorize.html             |    8 +-
 docs/tutorials/language/tuple_inputs.html          |   30 +-
 docs/tutorials/micro/sg_execution_times.html       |    4 +-
 docs/tutorials/optimize/opt_conv_cuda.html         |    2 +-
 docs/tutorials/optimize/opt_conv_tensorcore.html   |    2 +-
 docs/tutorials/optimize/opt_gemm.html              |   28 +-
 docs/tutorials/optimize/sg_execution_times.html    |   10 +-
 docs/tutorials/relay_quick_start.html              |  104 +-
 docs/tutorials/sg_execution_times.html             |    8 +-
 docs/tutorials/topi/intro_topi.html                |    2 +-
 docs/tutorials/topi/sg_execution_times.html        |    4 +-
 docs/vta/tutorials/autotvm/sg_execution_times.html |    4 +-
 docs/vta/tutorials/autotvm/tune_relay_vta.html     |  184 +-
 .../tutorials/frontend/deploy_classification.html  |   18 +-
 docs/vta/tutorials/frontend/deploy_detection.html  |    2 +-
 .../vta/tutorials/frontend/sg_execution_times.html |    6 +-
 docs/vta/tutorials/matrix_multiply.html            |    4 +-
 docs/vta/tutorials/optimize/convolution_opt.html   |    4 +-
 .../tutorials/optimize/matrix_multiply_opt.html    |    8 +-
 .../vta/tutorials/optimize/sg_execution_times.html |    6 +-
 docs/vta/tutorials/sg_execution_times.html         |    6 +-
 660 files changed, 35100 insertions(+), 28578 deletions(-)

diff --git a/docs/_downloads/02fc8627299fa0b05eb017773b471bfa/from_tflite.py b/docs/_downloads/02fc8627299fa0b05eb017773b471bfa/from_tflite.py
index 35a308c..c0b2a03 100644
--- a/docs/_downloads/02fc8627299fa0b05eb017773b471bfa/from_tflite.py
+++ b/docs/_downloads/02fc8627299fa0b05eb017773b471bfa/from_tflite.py
@@ -136,7 +136,7 @@ mod, params = relay.frontend.from_tflite(tflite_model,
 # Build the module against to x86 CPU
 target = "llvm"
 with transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build(mod, target, params=params)
+    lib = relay.build(mod, target, params=params)
 
 ######################################################################
 # Execute on TVM
@@ -146,14 +146,11 @@ from tvm import te
 from tvm.contrib import graph_runtime as runtime
 
 # Create a runtime executor module
-module = runtime.create(graph, lib, tvm.cpu())
+module = runtime.GraphModule(lib['default'](tvm.cpu()))
 
 # Feed input data
 module.set_input(input_tensor, tvm.nd.array(image_data))
 
-# Feed related params
-module.set_input(**params)
-
 # Run
 module.run()
 
diff --git a/docs/_downloads/0c30ce88b67b0e8d46494348ab36c9fb/from_tflite.ipynb b/docs/_downloads/0c30ce88b67b0e8d46494348ab36c9fb/from_tflite.ipynb
index ff25080..1860f7d 100644
--- a/docs/_downloads/0c30ce88b67b0e8d46494348ab36c9fb/from_tflite.ipynb
+++ b/docs/_downloads/0c30ce88b67b0e8d46494348ab36c9fb/from_tflite.ipynb
@@ -87,7 +87,7 @@
       },
       "outputs": [],
       "source": [
-        "# TFLite input tensor name, shape and type\ninput_tensor = \"input\"\ninput_shape = (1, 224, 224, 3)\ninput_dtype = \"float32\"\n\n# Parse TFLite model and convert it to a Relay module\nfrom tvm import relay, transform\nmod, params = relay.frontend.from_tflite(tflite_model,\n                                         shape_dict={input_tensor: input_shape},\n                                         dtype_dict={input_tensor: input_dtype})\n\n# Build the module against to x86 CPU\nta [...]
+        "# TFLite input tensor name, shape and type\ninput_tensor = \"input\"\ninput_shape = (1, 224, 224, 3)\ninput_dtype = \"float32\"\n\n# Parse TFLite model and convert it to a Relay module\nfrom tvm import relay, transform\nmod, params = relay.frontend.from_tflite(tflite_model,\n                                         shape_dict={input_tensor: input_shape},\n                                         dtype_dict={input_tensor: input_dtype})\n\n# Build the module against to x86 CPU\nta [...]
       ]
     },
     {
@@ -105,7 +105,7 @@
       },
       "outputs": [],
       "source": [
-        "import tvm\nfrom tvm import te\nfrom tvm.contrib import graph_runtime as runtime\n\n# Create a runtime executor module\nmodule = runtime.create(graph, lib, tvm.cpu())\n\n# Feed input data\nmodule.set_input(input_tensor, tvm.nd.array(image_data))\n\n# Feed related params\nmodule.set_input(**params)\n\n# Run\nmodule.run()\n\n# Get output\ntvm_output = module.get_output(0).asnumpy()"
+        "import tvm\nfrom tvm import te\nfrom tvm.contrib import graph_runtime as runtime\n\n# Create a runtime executor module\nmodule = runtime.GraphModule(lib['default'](tvm.cpu()))\n\n# Feed input data\nmodule.set_input(input_tensor, tvm.nd.array(image_data))\n\n# Run\nmodule.run()\n\n# Get output\ntvm_output = module.get_output(0).asnumpy()"
       ]
     },
     {
diff --git a/docs/_downloads/1604460dde2b82fb9db809bb388890f8/deploy_prequantized_tflite.ipynb b/docs/_downloads/1604460dde2b82fb9db809bb388890f8/deploy_prequantized_tflite.ipynb
index 3c67a09..bacd7a6 100644
--- a/docs/_downloads/1604460dde2b82fb9db809bb388890f8/deploy_prequantized_tflite.ipynb
+++ b/docs/_downloads/1604460dde2b82fb9db809bb388890f8/deploy_prequantized_tflite.ipynb
@@ -155,7 +155,7 @@
       },
       "outputs": [],
       "source": [
-        "def run_tvm(graph, lib, params):\n    from tvm.contrib import graph_runtime\n    rt_mod = graph_runtime.create(graph, lib, ctx=tvm.cpu(0))\n    rt_mod.set_input(**params)\n    rt_mod.set_input('input', data)\n    rt_mod.run()\n    tvm_res = rt_mod.get_output(0).asnumpy()\n    tvm_pred = np.squeeze(tvm_res).argsort()[-5:][::-1]\n    return tvm_pred, rt_mod"
+        "def run_tvm(lib):\n    from tvm.contrib import graph_runtime\n    rt_mod = graph_runtime.GraphModule(lib['default'](tvm.cpu(0)))\n    rt_mod.set_input('input', data)\n    rt_mod.run()\n    tvm_res = rt_mod.get_output(0).asnumpy()\n    tvm_pred = np.squeeze(tvm_res).argsort()[-5:][::-1]\n    return tvm_pred, rt_mod"
       ]
     },
     {
@@ -223,7 +223,7 @@
       },
       "outputs": [],
       "source": [
-        "target = 'llvm'\nwith tvm.transform.PassContext(opt_level=3):\n    graph, lib, params = relay.build_module.build(mod, target=target,\n                                                  params=params)"
+        "target = 'llvm'\nwith tvm.transform.PassContext(opt_level=3):\n    lib = relay.build_module.build(mod, target=target, params=params)"
       ]
     },
     {
@@ -241,7 +241,7 @@
       },
       "outputs": [],
       "source": [
-        "tvm_pred, rt_mod = run_tvm(graph, lib, params)"
+        "tvm_pred, rt_mod = run_tvm(lib)"
       ]
     },
     {
diff --git a/docs/_downloads/272a5a893d007658546dc0eaf0a7aeed/tune_relay_cuda.py b/docs/_downloads/272a5a893d007658546dc0eaf0a7aeed/tune_relay_cuda.py
index a6fe45b..6a995af 100644
--- a/docs/_downloads/272a5a893d007658546dc0eaf0a7aeed/tune_relay_cuda.py
+++ b/docs/_downloads/272a5a893d007658546dc0eaf0a7aeed/tune_relay_cuda.py
@@ -128,11 +128,7 @@ tuning_option = {
 
     'measure_option': autotvm.measure_option(
         builder=autotvm.LocalBuilder(timeout=10),
-        #runner=autotvm.LocalRunner(number=20, repeat=3, timeout=4, min_repeat_ms=150),
-        runner=autotvm.RPCRunner(
-            '1080ti',  # change the device key to your key
-            '0.0.0.0', 9190,
-            number=20, repeat=3, timeout=4, min_repeat_ms=150)
+        runner=autotvm.LocalRunner(number=20, repeat=3, timeout=4, min_repeat_ms=150),
     ),
 }
 
diff --git a/docs/_downloads/289640e7ded85c57931fc0537d443c5f/relay_pass_infra.ipynb b/docs/_downloads/289640e7ded85c57931fc0537d443c5f/relay_pass_infra.ipynb
index bc8691a..c76d6d5 100644
--- a/docs/_downloads/289640e7ded85c57931fc0537d443c5f/relay_pass_infra.ipynb
+++ b/docs/_downloads/289640e7ded85c57931fc0537d443c5f/relay_pass_infra.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\n\nHow to Use Relay Pass Infra\n===========================\n**Author**: `Zhi Chen <https://github.com/zhiics>`_\n\nAs the number of optimization passes increases in Relay, it becomes intractable to\nexecute them and maintain their dependencies manually. Therefore, we have\nintroduced an infrastructure to manage the optimization passes.\n\nThe optimizations of a Relay program could be applied at various granularity,\nnamely function-level and module-level using :py:class:`tvm.r [...]
+        "\n\nHow to Use Relay Pass Infra\n===========================\n**Author**: `Zhi Chen <https://github.com/zhiics>`_\n\nAs the number of optimization passes increases in Relay, it becomes intractable to\nexecute them and maintain their dependencies manually. Therefore, we have\nintroduced an infrastructure to manage the optimization passes.\n\nThe optimizations of a Relay program could be applied at various granularity,\nnamely function-level and module-level using :py:class:`tvm.r [...]
       ]
     },
     {
diff --git a/docs/_downloads/2c0ed53a9ebd68caf76cd8235fae2711/tune_relay_mobile_gpu.ipynb b/docs/_downloads/2c0ed53a9ebd68caf76cd8235fae2711/tune_relay_mobile_gpu.ipynb
index eacfead..07fb0ba 100644
--- a/docs/_downloads/2c0ed53a9ebd68caf76cd8235fae2711/tune_relay_mobile_gpu.ipynb
+++ b/docs/_downloads/2c0ed53a9ebd68caf76cd8235fae2711/tune_relay_mobile_gpu.ipynb
@@ -83,7 +83,7 @@
       },
       "outputs": [],
       "source": [
-        "#### DEVICE CONFIG ####\n\ntarget = tvm.target.create('opencl -device=mali')\n\n# Replace \"aarch64-linux-gnu\" with the correct target of your board.\n# This target host is used for cross compilation. You can query it by :code:`gcc -v` on your device.\ntarget_host = 'llvm -target=aarch64-linux-gnu'\n\n# Also replace this with the device key in your tracker\ndevice_key = 'rk3399'\n\n# Set this to True if you use android phone\nuse_android = False\n\n#### TUNING OPTION ####\nnetw [...]
+        "#### DEVICE CONFIG ####\n\ntarget = tvm.target.create('opencl -device=mali')\n\n# Replace \"aarch64-linux-gnu\" with the correct target of your board.\n# This target host is used for cross compilation. You can query it by :code:`gcc -v` on your device.\ntarget_host = 'llvm -mtriple=aarch64-linux-gnu'\n\n# Also replace this with the device key in your tracker\ndevice_key = 'rk3399'\n\n# Set this to True if you use android phone\nuse_android = False\n\n#### TUNING OPTION ####\nnet [...]
       ]
     },
     {
diff --git a/docs/_downloads/2f6dcf56b15f857f94b6d320c1ace6e5/from_coreml.ipynb b/docs/_downloads/2f6dcf56b15f857f94b6d320c1ace6e5/from_coreml.ipynb
index abb835c..957c3ac 100644
--- a/docs/_downloads/2f6dcf56b15f857f94b6d320c1ace6e5/from_coreml.ipynb
+++ b/docs/_downloads/2f6dcf56b15f857f94b6d320c1ace6e5/from_coreml.ipynb
@@ -80,7 +80,7 @@
       },
       "outputs": [],
       "source": [
-        "target = 'llvm'\nshape_dict = {'image': x.shape}\n\n# Parse CoreML model and convert into Relay computation graph\nmod, params = relay.frontend.from_coreml(mlmodel, shape_dict)\n\nwith tvm.transform.PassContext(opt_level=3):\n    graph, lib, params = relay.build(mod,\n                                     target,\n                                     params=params)"
+        "target = 'llvm'\nshape_dict = {'image': x.shape}\n\n# Parse CoreML model and convert into Relay computation graph\nmod, params = relay.frontend.from_coreml(mlmodel, shape_dict)\n\nwith tvm.transform.PassContext(opt_level=3):\n    lib = relay.build(mod, target, params=params)"
       ]
     },
     {
@@ -98,7 +98,7 @@
       },
       "outputs": [],
       "source": [
-        "from tvm.contrib import graph_runtime\nctx = tvm.cpu(0)\ndtype = 'float32'\nm = graph_runtime.create(graph, lib, ctx)\n# set inputs\nm.set_input('image', tvm.nd.array(x.astype(dtype)))\nm.set_input(**params)\n# execute\nm.run()\n# get outputs\ntvm_output = m.get_output(0)\ntop1 = np.argmax(tvm_output.asnumpy()[0])"
+        "from tvm.contrib import graph_runtime\nctx = tvm.cpu(0)\ndtype = 'float32'\nm = graph_runtime.GraphModule(lib['default'](ctx))\n# set inputs\nm.set_input('image', tvm.nd.array(x.astype(dtype)))\n# execute\nm.run()\n# get outputs\ntvm_output = m.get_output(0)\ntop1 = np.argmax(tvm_output.asnumpy()[0])"
       ]
     },
     {
diff --git a/docs/_downloads/30015213c2882505d466865fafaed52d/from_caffe2.ipynb b/docs/_downloads/30015213c2882505d466865fafaed52d/from_caffe2.ipynb
index 03cd570..a097a19 100644
--- a/docs/_downloads/30015213c2882505d466865fafaed52d/from_caffe2.ipynb
+++ b/docs/_downloads/30015213c2882505d466865fafaed52d/from_caffe2.ipynb
@@ -69,7 +69,7 @@
       },
       "outputs": [],
       "source": [
-        "# Caffe2 input tensor name, shape and type\ninput_name = resnet50.predict_net.op[0].input[0]\nshape_dict = {input_name: data.shape}\ndtype_dict = {input_name: data.dtype}\n\n# parse Caffe2 model and convert into Relay computation graph\nfrom tvm import relay, transform\nmod, params = relay.frontend.from_caffe2(resnet50.init_net, resnet50.predict_net, shape_dict, dtype_dict)\n\n# compile the model\n# target x86 CPU\ntarget = 'llvm'\nwith transform.PassContext(opt_level=3):\n    g [...]
+        "# Caffe2 input tensor name, shape and type\ninput_name = resnet50.predict_net.op[0].input[0]\nshape_dict = {input_name: data.shape}\ndtype_dict = {input_name: data.dtype}\n\n# parse Caffe2 model and convert into Relay computation graph\nfrom tvm import relay, transform\nmod, params = relay.frontend.from_caffe2(resnet50.init_net, resnet50.predict_net, shape_dict, dtype_dict)\n\n# compile the model\n# target x86 CPU\ntarget = 'llvm'\nwith transform.PassContext(opt_level=3):\n    l [...]
       ]
     },
     {
@@ -87,7 +87,7 @@
       },
       "outputs": [],
       "source": [
-        "import tvm\nfrom tvm import te\nfrom tvm.contrib import graph_runtime\n# context x86 CPU, use tvm.gpu(0) if you run on GPU\nctx = tvm.cpu(0)\n# create a runtime executor module\nm = graph_runtime.create(graph, lib, ctx)\n# set inputs\nm.set_input(input_name, tvm.nd.array(data.astype('float32')))\n# set related params\nm.set_input(**params)\n# execute\nm.run()\n# get outputs\ntvm_out = m.get_output(0)\ntop1_tvm = np.argmax(tvm_out.asnumpy()[0])"
+        "import tvm\nfrom tvm import te\nfrom tvm.contrib import graph_runtime\n# context x86 CPU, use tvm.gpu(0) if you run on GPU\nctx = tvm.cpu(0)\n# create a runtime executor module\nm = graph_runtime.GraphModule(lib['default'](ctx))\n# set inputs\nm.set_input(input_name, tvm.nd.array(data.astype('float32')))\n# execute\nm.run()\n# get outputs\ntvm_out = m.get_output(0)\ntop1_tvm = np.argmax(tvm_out.asnumpy()[0])"
       ]
     },
     {
diff --git a/docs/_downloads/33a19782c8aaf9fc62e565c57df5caca/deploy_sparse.py b/docs/_downloads/33a19782c8aaf9fc62e565c57df5caca/deploy_sparse.py
index 87d5e45..11cd63c 100644
--- a/docs/_downloads/33a19782c8aaf9fc62e565c57df5caca/deploy_sparse.py
+++ b/docs/_downloads/33a19782c8aaf9fc62e565c57df5caca/deploy_sparse.py
@@ -216,15 +216,14 @@ def import_graphdef(
 # tensors instead of sparse aware kernels.
 def run_relay_graph(mod, params, shape_dict, target, ctx):
     with relay.build_config(opt_level=3):
-        graph, lib, params = relay.build(mod, target=target, params=params)
+        lib = relay.build(mod, target=target, params=params)
     input_shape = shape_dict["input_1"]
     dummy_data = np.random.uniform(size=input_shape, low=0, high=input_shape[1]).astype(
         "int32"
     )
 
-    m = graph_runtime.create(graph, lib, ctx)
+    m = graph_runtime.GraphModule(lib['default'](ctx))
     m.set_input(0, dummy_data)
-    m.set_input(**params)
     m.run()
     tvm_output = m.get_output(0)
 
diff --git a/docs/_downloads/38606228ff7130fbd6473b7c0625ddcd/deploy_model_on_android.ipynb b/docs/_downloads/38606228ff7130fbd6473b7c0625ddcd/deploy_model_on_android.ipynb
index 5dfb414..6ee8c87 100644
--- a/docs/_downloads/38606228ff7130fbd6473b7c0625ddcd/deploy_model_on_android.ipynb
+++ b/docs/_downloads/38606228ff7130fbd6473b7c0625ddcd/deploy_model_on_android.ipynb
@@ -119,7 +119,7 @@
       },
       "outputs": [],
       "source": [
-        "local_demo = True\n\n# by default on CPU target will execute.\n# select 'cpu', 'opencl' and 'vulkan'\ntest_target = 'cpu'\n\n# Change target configuration.\n# Run `adb shell cat /proc/cpuinfo` to find the arch.\narch = 'arm64'\ntarget = 'llvm -target=%s-linux-android' % arch\ntarget_host = None\n\nif local_demo:\n    target_host = None\n    target = 'llvm'\nelif test_target == 'opencl':\n    target_host = target\n    target = 'opencl'\nelif test_target == 'vulkan':\n    target_h [...]
+        "local_demo = True\n\n# by default on CPU target will execute.\n# select 'cpu', 'opencl' and 'vulkan'\ntest_target = 'cpu'\n\n# Change target configuration.\n# Run `adb shell cat /proc/cpuinfo` to find the arch.\narch = 'arm64'\ntarget = 'llvm -mtriple=%s-linux-android' % arch\ntarget_host = None\n\nif local_demo:\n    target_host = None\n    target = 'llvm'\nelif test_target == 'opencl':\n    target_host = target\n    target = 'opencl'\nelif test_target == 'vulkan':\n    target_ [...]
       ]
     },
     {
@@ -137,7 +137,7 @@
       },
       "outputs": [],
       "source": [
-        "tracker_host = os.environ.get('TVM_TRACKER_HOST', '0.0.0.0')\ntracker_port = int(os.environ.get('TVM_TRACKER_PORT', 9190))\nkey = 'android'\n\nif local_demo:\n    remote = rpc.LocalSession()\nelse:\n    tracker = rpc.connect_tracker(tracker_host, tracker_port)\n    # When running a heavy model, we should increase the `session_timeout`\n    remote = tracker.request(key, priority=0,\n                             session_timeout=60)\n\nif local_demo:\n    ctx = remote.cpu(0)\nelif  [...]
+        "tracker_host = os.environ.get('TVM_TRACKER_HOST', '0.0.0.0')\ntracker_port = int(os.environ.get('TVM_TRACKER_PORT', 9190))\nkey = 'android'\n\nif local_demo:\n    remote = rpc.LocalSession()\nelse:\n    tracker = rpc.connect_tracker(tracker_host, tracker_port)\n    # When running a heavy model, we should increase the `session_timeout`\n    remote = tracker.request(key, priority=0,\n                             session_timeout=60)\n\nif local_demo:\n    ctx = remote.cpu(0)\nelif  [...]
       ]
     },
     {
@@ -155,7 +155,7 @@
       },
       "outputs": [],
       "source": [
-        "# set parameter (upload params to the remote device. This may take a while)\nmodule.set_input(**params)\n# set input data\nmodule.set_input(input_name, tvm.nd.array(x.astype(dtype)))\n# run\nmodule.run()\n# get output\nout = module.get_output(0)\n\n# get top1 result\ntop1 = np.argmax(out.asnumpy())\nprint('TVM prediction top-1: {}'.format(synset[top1]))\n\nprint('Evaluate inference time cost...')\nftimer = module.module.time_evaluator('run', ctx, number=1, repeat=10)\nprof_res = [...]
+        "# set input data\nmodule.set_input(input_name, tvm.nd.array(x.astype(dtype)))\n# run\nmodule.run()\n# get output\nout = module.get_output(0)\n\n# get top1 result\ntop1 = np.argmax(out.asnumpy())\nprint('TVM prediction top-1: {}'.format(synset[top1]))\n\nprint('Evaluate inference time cost...')\nftimer = module.module.time_evaluator('run', ctx, number=1, repeat=10)\nprof_res = np.array(ftimer().results) * 1000  # convert to millisecond\nprint('Mean inference time (std dev): %.2f  [...]
       ]
     },
     {
diff --git a/docs/_downloads/3961fdfa7abff1b6dc996faa43b4c40f/deploy_model_on_android.py b/docs/_downloads/3961fdfa7abff1b6dc996faa43b4c40f/deploy_model_on_android.py
index bc5b523..55eb3aa 100644
--- a/docs/_downloads/3961fdfa7abff1b6dc996faa43b4c40f/deploy_model_on_android.py
+++ b/docs/_downloads/3961fdfa7abff1b6dc996faa43b4c40f/deploy_model_on_android.py
@@ -246,7 +246,7 @@ test_target = 'cpu'
 # Change target configuration.
 # Run `adb shell cat /proc/cpuinfo` to find the arch.
 arch = 'arm64'
-target = 'llvm -target=%s-linux-android' % arch
+target = 'llvm -mtriple=%s-linux-android' % arch
 target_host = None
 
 if local_demo:
@@ -264,8 +264,8 @@ shape_dict = {input_name: x.shape}
 mod, params = relay.frontend.from_keras(keras_mobilenet_v2, shape_dict)
 
 with tvm.transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build(mod, target=target,
-                                     target_host=target_host, params=params)
+    lib = relay.build(mod, target=target,
+                      target_host=target_host, params=params)
 
 # After `relay.build`, you will get three return values: graph,
 # library and the new parameter, since we do some optimization that will
@@ -309,14 +309,12 @@ remote.upload(lib_fname)
 rlib = remote.load_module('net.so')
 
 # create the remote runtime module
-module = runtime.create(graph, rlib, ctx)
+module = runtime.GraphModule(rlib['default'](ctx))
 
 ######################################################################
 # Execute on TVM
 # --------------
 
-# set parameter (upload params to the remote device. This may take a while)
-module.set_input(**params)
 # set input data
 module.set_input(input_name, tvm.nd.array(x.astype(dtype)))
 # run
diff --git a/docs/_downloads/48779ddff800bd9d4b8b3bd7ef8f054c/using_external_lib.py b/docs/_downloads/48779ddff800bd9d4b8b3bd7ef8f054c/using_external_lib.py
index 7063c0e..bc47023 100644
--- a/docs/_downloads/48779ddff800bd9d4b8b3bd7ef8f054c/using_external_lib.py
+++ b/docs/_downloads/48779ddff800bd9d4b8b3bd7ef8f054c/using_external_lib.py
@@ -71,13 +71,11 @@ import logging
 logging.basicConfig(level=logging.DEBUG) # to dump TVM IR after fusion
 
 target = "cuda"
-graph, lib, params = relay.build_module.build(
-    net, target, params=params)
+lib = relay.build_module.build(net, target, params=params)
 
 ctx = tvm.context(target, 0)
 data = np.random.uniform(-1, 1, size=data_shape).astype("float32")
-module = runtime.create(graph, lib, ctx)
-module.set_input(**params)
+module = runtime.GraphModule(lib['default'](ctx))
 module.set_input("data", data)
 module.run()
 out_shape = (batch_size, out_channels, 224, 224)
@@ -494,13 +492,11 @@ out_cuda = out.asnumpy()
 # To do that, all we need to do is to append the option " -libs=cudnn" to the target string.
 net, params = testing.create_workload(simple_net)
 target = "cuda -libs=cudnn" # use cudnn for convolution
-graph, lib, params = relay.build_module.build(
-        net, target, params=params)
+lib = relay.build_module.build(net, target, params=params)
 
 ctx = tvm.context(target, 0)
 data = np.random.uniform(-1, 1, size=data_shape).astype("float32")
-module = runtime.create(graph, lib, ctx)
-module.set_input(**params)
+module = runtime.GraphModule(lib['default'](ctx))
 module.set_input("data", data)
 module.run()
 out_shape = (batch_size, out_channels, 224, 224)
diff --git a/docs/_downloads/4cb9cb94f36033c7820ba70d890df4a1/cross_compilation_and_rpc.py b/docs/_downloads/4cb9cb94f36033c7820ba70d890df4a1/cross_compilation_and_rpc.py
index 553d77d..eaf6f03 100644
--- a/docs/_downloads/4cb9cb94f36033c7820ba70d890df4a1/cross_compilation_and_rpc.py
+++ b/docs/_downloads/4cb9cb94f36033c7820ba70d890df4a1/cross_compilation_and_rpc.py
@@ -107,7 +107,7 @@ s = te.create_schedule(B.op)
 
 ######################################################################
 # Then we cross compile the kernel.
-# The target should be 'llvm -target=armv7l-linux-gnueabihf' for
+# The target should be 'llvm -mtriple=armv7l-linux-gnueabihf' for
 # Raspberry Pi 3B, but we use 'llvm' here to make this tutorial runnable
 # on our webpage building server. See the detailed note in the following block.
 
@@ -116,7 +116,7 @@ local_demo = True
 if local_demo:
     target = 'llvm'
 else:
-    target = 'llvm -target=armv7l-linux-gnueabihf'
+    target = 'llvm -mtriple=armv7l-linux-gnueabihf'
 
 func = tvm.build(s, [A, B], target=target, name='add_one')
 # save the lib at a local temp folder
@@ -131,14 +131,14 @@ func.export_library(path)
 #   to False and replace :code:`target` in :code:`build` with the appropriate
 #   target triple for your device. The target triple which might be
 #   different for different devices. For example, it is
-#   :code:`'llvm -target=armv7l-linux-gnueabihf'` for Raspberry Pi 3B and
-#   :code:`'llvm -target=aarch64-linux-gnu'` for RK3399.
+#   :code:`'llvm -mtriple=armv7l-linux-gnueabihf'` for Raspberry Pi 3B and
+#   :code:`'llvm -mtriple=aarch64-linux-gnu'` for RK3399.
 #
 #   Usually, you can query the target by running :code:`gcc -v` on your
 #   device, and looking for the line starting with :code:`Target:`
 #   (Though it may still be a loose configuration.)
 #
-#   Besides :code:`-target`, you can also set other compilation options
+#   Besides :code:`-mtriple`, you can also set other compilation options
 #   like:
 #
 #   * -mcpu=<cpuname>
@@ -224,7 +224,7 @@ print('%g secs/op' % cost)
 def run_opencl():
     # NOTE: This is the setting for my rk3399 board. You need to modify
     # them according to your environment.
-    target_host = "llvm -target=aarch64-linux-gnu"
+    target_host = "llvm -mtriple=aarch64-linux-gnu"
     opencl_device_host = '10.77.1.145'
     opencl_device_port = 9090
 
diff --git a/docs/_downloads/50b174352ccf0a0defcbd8e6b40145e2/from_tensorflow.py b/docs/_downloads/50b174352ccf0a0defcbd8e6b40145e2/from_tensorflow.py
index b7b3d69..10d505c 100644
--- a/docs/_downloads/50b174352ccf0a0defcbd8e6b40145e2/from_tensorflow.py
+++ b/docs/_downloads/50b174352ccf0a0defcbd8e6b40145e2/from_tensorflow.py
@@ -145,10 +145,7 @@ print("Tensorflow protobuf imported to relay frontend.")
 #   lib: target library which can be deployed on target with TVM runtime.
 
 with tvm.transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build(mod,
-                                     target=target,
-                                     target_host=target_host,
-                                     params=params)
+    lib = relay.build(mod, target=target, target_host=target_host, params=params)
 
 ######################################################################
 # Execute the portable graph on TVM
@@ -157,10 +154,9 @@ with tvm.transform.PassContext(opt_level=3):
 
 from tvm.contrib import graph_runtime
 dtype = 'uint8'
-m = graph_runtime.create(graph, lib, ctx)
+m = graph_runtime.GraphModule(lib['default'](ctx))
 # set inputs
 m.set_input('DecodeJpeg/contents', tvm.nd.array(x.astype(dtype)))
-m.set_input(**params)
 # execute
 m.run()
 # get outputs
diff --git a/docs/_downloads/52b04835c256bb81bbf4187f18950a0a/relay_pass_infra.py b/docs/_downloads/52b04835c256bb81bbf4187f18950a0a/relay_pass_infra.py
index df40733..ae7f544 100644
--- a/docs/_downloads/52b04835c256bb81bbf4187f18950a0a/relay_pass_infra.py
+++ b/docs/_downloads/52b04835c256bb81bbf4187f18950a0a/relay_pass_infra.py
@@ -28,7 +28,7 @@ introduced an infrastructure to manage the optimization passes.
 
 The optimizations of a Relay program could be applied at various granularity,
 namely function-level and module-level using :py:class:`tvm.relay.transform.FunctionPass`
-and py:class:`tvm.relay.transform.ModulePass`
+and :py:class:`tvm.relay.transform.ModulePass`
 respectively. Or users can rely on py:class:`tvm.transform.Sequential` to apply a sequence of passes
 on a Relay program where the dependencies between passes can be resolved by the
 pass infra. For more details about each type of these passes, please refer to
diff --git a/docs/_downloads/5c443f88ea44ce77c5ccade429af6e74/deploy_prequantized_tflite.py b/docs/_downloads/5c443f88ea44ce77c5ccade429af6e74/deploy_prequantized_tflite.py
index ecd283a..0e5f9af 100644
--- a/docs/_downloads/5c443f88ea44ce77c5ccade429af6e74/deploy_prequantized_tflite.py
+++ b/docs/_downloads/5c443f88ea44ce77c5ccade429af6e74/deploy_prequantized_tflite.py
@@ -157,10 +157,9 @@ def run_tflite_model(tflite_model_buf, input_data):
 
 ###############################################################################
 # Lets run TVM compiled pre-quantized model inference and get the TVM prediction.
-def run_tvm(graph, lib, params):
+def run_tvm(lib):
     from tvm.contrib import graph_runtime
-    rt_mod = graph_runtime.create(graph, lib, ctx=tvm.cpu(0))
-    rt_mod.set_input(**params)
+    rt_mod = graph_runtime.GraphModule(lib['default'](tvm.cpu(0)))
     rt_mod.set_input('input', data)
     rt_mod.run()
     tvm_res = rt_mod.get_output(0).asnumpy()
@@ -199,12 +198,11 @@ mod, params = relay.frontend.from_tflite(tflite_model,
 # target platform that you are interested in.
 target = 'llvm'
 with tvm.transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build_module.build(mod, target=target,
-                                                  params=params)
+    lib = relay.build_module.build(mod, target=target, params=params)
 
 ###############################################################################
 # Finally, lets call inference on the TVM compiled module.
-tvm_pred, rt_mod = run_tvm(graph, lib, params)
+tvm_pred, rt_mod = run_tvm(lib)
 
 ###############################################################################
 # Accuracy comparison
diff --git a/docs/_downloads/6be1519353297beeea03fe17712dc16f/using_external_lib.ipynb b/docs/_downloads/6be1519353297beeea03fe17712dc16f/using_external_lib.ipynb
index 9527972..fe5e4f9 100644
--- a/docs/_downloads/6be1519353297beeea03fe17712dc16f/using_external_lib.ipynb
+++ b/docs/_downloads/6be1519353297beeea03fe17712dc16f/using_external_lib.ipynb
@@ -62,7 +62,7 @@
       },
       "outputs": [],
       "source": [
-        "import logging\nlogging.basicConfig(level=logging.DEBUG) # to dump TVM IR after fusion\n\ntarget = \"cuda\"\ngraph, lib, params = relay.build_module.build(\n    net, target, params=params)\n\nctx = tvm.context(target, 0)\ndata = np.random.uniform(-1, 1, size=data_shape).astype(\"float32\")\nmodule = runtime.create(graph, lib, ctx)\nmodule.set_input(**params)\nmodule.set_input(\"data\", data)\nmodule.run()\nout_shape = (batch_size, out_channels, 224, 224)\nout = module.get_output [...]
+        "import logging\nlogging.basicConfig(level=logging.DEBUG) # to dump TVM IR after fusion\n\ntarget = \"cuda\"\nlib = relay.build_module.build(net, target, params=params)\n\nctx = tvm.context(target, 0)\ndata = np.random.uniform(-1, 1, size=data_shape).astype(\"float32\")\nmodule = runtime.GraphModule(lib['default'](ctx))\nmodule.set_input(\"data\", data)\nmodule.run()\nout_shape = (batch_size, out_channels, 224, 224)\nout = module.get_output(0, tvm.nd.empty(out_shape))\nout_cuda = [...]
       ]
     },
     {
@@ -87,7 +87,7 @@
       },
       "outputs": [],
       "source": [
-        "net, params = testing.create_workload(simple_net)\ntarget = \"cuda -libs=cudnn\" # use cudnn for convolution\ngraph, lib, params = relay.build_module.build(\n        net, target, params=params)\n\nctx = tvm.context(target, 0)\ndata = np.random.uniform(-1, 1, size=data_shape).astype(\"float32\")\nmodule = runtime.create(graph, lib, ctx)\nmodule.set_input(**params)\nmodule.set_input(\"data\", data)\nmodule.run()\nout_shape = (batch_size, out_channels, 224, 224)\nout = module.get_o [...]
+        "net, params = testing.create_workload(simple_net)\ntarget = \"cuda -libs=cudnn\" # use cudnn for convolution\nlib = relay.build_module.build(net, target, params=params)\n\nctx = tvm.context(target, 0)\ndata = np.random.uniform(-1, 1, size=data_shape).astype(\"float32\")\nmodule = runtime.GraphModule(lib['default'](ctx))\nmodule.set_input(\"data\", data)\nmodule.run()\nout_shape = (batch_size, out_channels, 224, 224)\nout = module.get_output(0, tvm.nd.empty(out_shape))\nout_cudnn [...]
       ]
     },
     {
diff --git a/docs/_downloads/6c8a9d3bc4c689f8680a968349965ee5/from_pytorch.ipynb b/docs/_downloads/6c8a9d3bc4c689f8680a968349965ee5/from_pytorch.ipynb
index 30ff482..f333463 100644
--- a/docs/_downloads/6c8a9d3bc4c689f8680a968349965ee5/from_pytorch.ipynb
+++ b/docs/_downloads/6c8a9d3bc4c689f8680a968349965ee5/from_pytorch.ipynb
@@ -98,7 +98,7 @@
       },
       "outputs": [],
       "source": [
-        "target = 'llvm'\ntarget_host = 'llvm'\nctx = tvm.cpu(0)\nwith tvm.transform.PassContext(opt_level=3):\n    graph, lib, params = relay.build(mod,\n                                     target=target,\n                                     target_host=target_host,\n                                     params=params)"
+        "target = 'llvm'\ntarget_host = 'llvm'\nctx = tvm.cpu(0)\nwith tvm.transform.PassContext(opt_level=3):\n    lib = relay.build(mod, target=target, target_host=target_host, params=params)"
       ]
     },
     {
@@ -116,7 +116,7 @@
       },
       "outputs": [],
       "source": [
-        "from tvm.contrib import graph_runtime\ndtype = 'float32'\nm = graph_runtime.create(graph, lib, ctx)\n# Set inputs\nm.set_input(input_name, tvm.nd.array(img.astype(dtype)))\nm.set_input(**params)\n# Execute\nm.run()\n# Get outputs\ntvm_output = m.get_output(0)"
+        "from tvm.contrib import graph_runtime\ndtype = 'float32'\nm = graph_runtime.GraphModule(lib['default'](ctx))\n# Set inputs\nm.set_input(input_name, tvm.nd.array(img.astype(dtype)))\n# Execute\nm.run()\n# Get outputs\ntvm_output = m.get_output(0)"
       ]
     },
     {
diff --git a/docs/_downloads/70d345c5409f99cb5de9dc44f147ff6f/build_gcn.py b/docs/_downloads/70d345c5409f99cb5de9dc44f147ff6f/build_gcn.py
index 19719a5..3f4efeb 100644
--- a/docs/_downloads/70d345c5409f99cb5de9dc44f147ff6f/build_gcn.py
+++ b/docs/_downloads/70d345c5409f99cb5de9dc44f147ff6f/build_gcn.py
@@ -337,12 +337,11 @@ mod = tvm.IRModule()
 mod["main"] = func
 # Build with Relay
 with tvm.transform.PassContext(opt_level=0): # Currently only support opt_level=0
-    graph, lib, params = relay.build(mod, target, params=params)
+    lib = relay.build(mod, target, params=params)
 
 # Generate graph runtime
 ctx = tvm.context(target, 0)
-m = graph_runtime.create(graph, lib, ctx)
-m.set_input(**params)
+m = graph_runtime.GraphModule(lib['default'](ctx))
 
 ######################################################################
 # Run the TVM model, test for accuracy and verify with DGL
diff --git a/docs/_downloads/72871483681951fd0400ddc905113f11/from_caffe2.py b/docs/_downloads/72871483681951fd0400ddc905113f11/from_caffe2.py
index 5988525..66ea0bb 100644
--- a/docs/_downloads/72871483681951fd0400ddc905113f11/from_caffe2.py
+++ b/docs/_downloads/72871483681951fd0400ddc905113f11/from_caffe2.py
@@ -89,7 +89,7 @@ mod, params = relay.frontend.from_caffe2(resnet50.init_net, resnet50.predict_net
 # target x86 CPU
 target = 'llvm'
 with transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build(mod, target, params=params)
+    lib = relay.build(mod, target, params=params)
 
 ######################################################################
 # Execute on TVM
@@ -101,11 +101,9 @@ from tvm.contrib import graph_runtime
 # context x86 CPU, use tvm.gpu(0) if you run on GPU
 ctx = tvm.cpu(0)
 # create a runtime executor module
-m = graph_runtime.create(graph, lib, ctx)
+m = graph_runtime.GraphModule(lib['default'](ctx))
 # set inputs
 m.set_input(input_name, tvm.nd.array(data.astype('float32')))
-# set related params
-m.set_input(**params)
 # execute
 m.run()
 # get outputs
diff --git a/docs/_downloads/739deb9ab034a5315ce6ba6bf7e5ff44/tune_relay_cuda.ipynb b/docs/_downloads/739deb9ab034a5315ce6ba6bf7e5ff44/tune_relay_cuda.ipynb
index f9d16a8..2ddcec4 100644
--- a/docs/_downloads/739deb9ab034a5315ce6ba6bf7e5ff44/tune_relay_cuda.ipynb
+++ b/docs/_downloads/739deb9ab034a5315ce6ba6bf7e5ff44/tune_relay_cuda.ipynb
@@ -69,7 +69,7 @@
       },
       "outputs": [],
       "source": [
-        "#### DEVICE CONFIG ####\ntarget = tvm.target.cuda()\n\n#### TUNING OPTION ####\nnetwork = 'resnet-18'\nlog_file = \"%s.log\" % network\ndtype = 'float32'\n\ntuning_option = {\n    'log_filename': log_file,\n\n    'tuner': 'xgb',\n    'n_trial': 2000,\n    'early_stopping': 600,\n\n    'measure_option': autotvm.measure_option(\n        builder=autotvm.LocalBuilder(timeout=10),\n        #runner=autotvm.LocalRunner(number=20, repeat=3, timeout=4, min_repeat_ms=150),\n        runner [...]
+        "#### DEVICE CONFIG ####\ntarget = tvm.target.cuda()\n\n#### TUNING OPTION ####\nnetwork = 'resnet-18'\nlog_file = \"%s.log\" % network\ndtype = 'float32'\n\ntuning_option = {\n    'log_filename': log_file,\n\n    'tuner': 'xgb',\n    'n_trial': 2000,\n    'early_stopping': 600,\n\n    'measure_option': autotvm.measure_option(\n        builder=autotvm.LocalBuilder(timeout=10),\n        runner=autotvm.LocalRunner(number=20, repeat=3, timeout=4, min_repeat_ms=150),\n    ),\n}"
       ]
     },
     {
diff --git a/docs/_downloads/7630fb4eead0706f214a455190118d17/cross_compilation_and_rpc.ipynb b/docs/_downloads/7630fb4eead0706f214a455190118d17/cross_compilation_and_rpc.ipynb
index 9abb6b9..4b9c4df 100644
--- a/docs/_downloads/7630fb4eead0706f214a455190118d17/cross_compilation_and_rpc.ipynb
+++ b/docs/_downloads/7630fb4eead0706f214a455190118d17/cross_compilation_and_rpc.ipynb
@@ -54,7 +54,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Then we cross compile the kernel.\nThe target should be 'llvm -target=armv7l-linux-gnueabihf' for\nRaspberry Pi 3B, but we use 'llvm' here to make this tutorial runnable\non our webpage building server. See the detailed note in the following block.\n\n"
+        "Then we cross compile the kernel.\nThe target should be 'llvm -mtriple=armv7l-linux-gnueabihf' for\nRaspberry Pi 3B, but we use 'llvm' here to make this tutorial runnable\non our webpage building server. See the detailed note in the following block.\n\n"
       ]
     },
     {
@@ -65,14 +65,14 @@
       },
       "outputs": [],
       "source": [
-        "local_demo = True\n\nif local_demo:\n    target = 'llvm'\nelse:\n    target = 'llvm -target=armv7l-linux-gnueabihf'\n\nfunc = tvm.build(s, [A, B], target=target, name='add_one')\n# save the lib at a local temp folder\ntemp = util.tempdir()\npath = temp.relpath('lib.tar')\nfunc.export_library(path)"
+        "local_demo = True\n\nif local_demo:\n    target = 'llvm'\nelse:\n    target = 'llvm -mtriple=armv7l-linux-gnueabihf'\n\nfunc = tvm.build(s, [A, B], target=target, name='add_one')\n# save the lib at a local temp folder\ntemp = util.tempdir()\npath = temp.relpath('lib.tar')\nfunc.export_library(path)"
       ]
     },
     {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "<div class=\"alert alert-info\"><h4>Note</h4><p>To run this tutorial with a real remote device, change :code:`local_demo`\n  to False and replace :code:`target` in :code:`build` with the appropriate\n  target triple for your device. The target triple which might be\n  different for different devices. For example, it is\n  :code:`'llvm -target=armv7l-linux-gnueabihf'` for Raspberry Pi 3B and\n  :code:`'llvm -target=aarch64-linux-gnu'` for RK3399.\n\n  Usually, you can query the t [...]
+        "<div class=\"alert alert-info\"><h4>Note</h4><p>To run this tutorial with a real remote device, change :code:`local_demo`\n  to False and replace :code:`target` in :code:`build` with the appropriate\n  target triple for your device. The target triple which might be\n  different for different devices. For example, it is\n  :code:`'llvm -mtriple=armv7l-linux-gnueabihf'` for Raspberry Pi 3B and\n  :code:`'llvm -mtriple=aarch64-linux-gnu'` for RK3399.\n\n  Usually, you can query the [...]
       ]
     },
     {
@@ -144,7 +144,7 @@
       },
       "outputs": [],
       "source": [
-        "def run_opencl():\n    # NOTE: This is the setting for my rk3399 board. You need to modify\n    # them according to your environment.\n    target_host = \"llvm -target=aarch64-linux-gnu\"\n    opencl_device_host = '10.77.1.145'\n    opencl_device_port = 9090\n\n    # create schedule for the above \"add one\" compute declaration\n    s = te.create_schedule(B.op)\n    xo, xi = s[B].split(B.op.axis[0], factor=32)\n    s[B].bind(xo, te.thread_axis(\"blockIdx.x\"))\n    s[B].bind(xi, [...]
+        "def run_opencl():\n    # NOTE: This is the setting for my rk3399 board. You need to modify\n    # them according to your environment.\n    target_host = \"llvm -mtriple=aarch64-linux-gnu\"\n    opencl_device_host = '10.77.1.145'\n    opencl_device_port = 9090\n\n    # create schedule for the above \"add one\" compute declaration\n    s = te.create_schedule(B.op)\n    xo, xi = s[B].split(B.op.axis[0], factor=32)\n    s[B].bind(xo, te.thread_axis(\"blockIdx.x\"))\n    s[B].bind(xi [...]
       ]
     },
     {
diff --git a/docs/_downloads/78da213eae381b8ff94cc356ee7c5423/deploy_prequantized.ipynb b/docs/_downloads/78da213eae381b8ff94cc356ee7c5423/deploy_prequantized.ipynb
index 4608363..0244980 100644
--- a/docs/_downloads/78da213eae381b8ff94cc356ee7c5423/deploy_prequantized.ipynb
+++ b/docs/_downloads/78da213eae381b8ff94cc356ee7c5423/deploy_prequantized.ipynb
@@ -51,7 +51,7 @@
       },
       "outputs": [],
       "source": [
-        "def get_transform():\n    import torchvision.transforms as transforms\n    normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],\n                                     std=[0.229, 0.224, 0.225])\n    return transforms.Compose([\n            transforms.Resize(256),\n            transforms.CenterCrop(224),\n            transforms.ToTensor(),\n            normalize,\n        ])\n\n\ndef get_real_image(im_height, im_width):\n    img_url = 'https://github.com/dmlc/mxnet.js/blob [...]
+        "def get_transform():\n    import torchvision.transforms as transforms\n    normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],\n                                     std=[0.229, 0.224, 0.225])\n    return transforms.Compose([\n            transforms.Resize(256),\n            transforms.CenterCrop(224),\n            transforms.ToTensor(),\n            normalize,\n        ])\n\n\ndef get_real_image(im_height, im_width):\n    img_url = 'https://github.com/dmlc/mxnet.js/blob [...]
       ]
     },
     {
diff --git a/docs/_downloads/8246644805c8dfcb0b33ca356cc1fafc/deploy_ssd_gluoncv.ipynb b/docs/_downloads/8246644805c8dfcb0b33ca356cc1fafc/deploy_ssd_gluoncv.ipynb
index 11356f1..8c1219f 100644
--- a/docs/_downloads/8246644805c8dfcb0b33ca356cc1fafc/deploy_ssd_gluoncv.ipynb
+++ b/docs/_downloads/8246644805c8dfcb0b33ca356cc1fafc/deploy_ssd_gluoncv.ipynb
@@ -80,7 +80,7 @@
       },
       "outputs": [],
       "source": [
-        "block = model_zoo.get_model(model_name, pretrained=True)\n\ndef build(target):\n    mod, params = relay.frontend.from_mxnet(block, {\"data\": dshape})\n    with tvm.transform.PassContext(opt_level=3):\n        graph, lib, params = relay.build(mod, target, params=params)\n    return graph, lib, params"
+        "block = model_zoo.get_model(model_name, pretrained=True)\n\ndef build(target):\n    mod, params = relay.frontend.from_mxnet(block, {\"data\": dshape})\n    with tvm.transform.PassContext(opt_level=3):\n        lib = relay.build(mod, target, params=params)\n    return lib"
       ]
     },
     {
@@ -98,7 +98,7 @@
       },
       "outputs": [],
       "source": [
-        "def run(graph, lib, params, ctx):\n    # Build TVM runtime\n    m = graph_runtime.create(graph, lib, ctx)\n    tvm_input = tvm.nd.array(x.asnumpy(), ctx=ctx)\n    m.set_input('data', tvm_input)\n    m.set_input(**params)\n    # execute\n    m.run()\n    # get outputs\n    class_IDs, scores, bounding_boxs = m.get_output(0), m.get_output(1), m.get_output(2)\n    return class_IDs, scores, bounding_boxs\n\nfor target, ctx in target_list:\n    graph, lib, params = build(target)\n     [...]
+        "def run(lib, ctx):\n    # Build TVM runtime\n    m = graph_runtime.GraphModule(lib['default'](ctx))\n    tvm_input = tvm.nd.array(x.asnumpy(), ctx=ctx)\n    m.set_input('data', tvm_input)\n    # execute\n    m.run()\n    # get outputs\n    class_IDs, scores, bounding_boxs = m.get_output(0), m.get_output(1), m.get_output(2)\n    return class_IDs, scores, bounding_boxs\n\nfor target, ctx in target_list:\n    lib = build(target)\n    class_IDs, scores, bounding_boxs = run(lib, ctx)"
       ]
     },
     {
diff --git a/docs/_downloads/835a4def1e256b7a1f711621fc031418/from_darknet.ipynb b/docs/_downloads/835a4def1e256b7a1f711621fc031418/from_darknet.ipynb
index cc1892e..9353b28 100644
--- a/docs/_downloads/835a4def1e256b7a1f711621fc031418/from_darknet.ipynb
+++ b/docs/_downloads/835a4def1e256b7a1f711621fc031418/from_darknet.ipynb
@@ -80,7 +80,7 @@
       },
       "outputs": [],
       "source": [
-        "target = 'llvm'\ntarget_host = 'llvm'\nctx = tvm.cpu(0)\ndata = np.empty([batch_size, net.c, net.h, net.w], dtype)\nshape = {'data': data.shape}\nprint(\"Compiling the model...\")\nwith tvm.transform.PassContext(opt_level=3):\n    graph, lib, params = relay.build(mod,\n                                     target=target,\n                                     target_host=target_host,\n                                     params=params)\n\n[neth, netw] = shape['data'][2:] # Current [...]
+        "target = 'llvm'\ntarget_host = 'llvm'\nctx = tvm.cpu(0)\ndata = np.empty([batch_size, net.c, net.h, net.w], dtype)\nshape = {'data': data.shape}\nprint(\"Compiling the model...\")\nwith tvm.transform.PassContext(opt_level=3):\n    lib = relay.build(mod, target=target, target_host=target_host, params=params)\n\n[neth, netw] = shape['data'][2:] # Current image shape is 608x608"
       ]
     },
     {
@@ -116,7 +116,7 @@
       },
       "outputs": [],
       "source": [
-        "from tvm.contrib import graph_runtime\n\nm = graph_runtime.create(graph, lib, ctx)\n\n# set inputs\nm.set_input('data', tvm.nd.array(data.astype(dtype)))\nm.set_input(**params)\n# execute\nprint(\"Running the test image...\")\n\n# detection\n# thresholds\nthresh = 0.5\nnms_thresh = 0.45\n\nm.run()\n# get outputs\ntvm_out = []\nif MODEL_NAME == 'yolov2':\n    layer_out = {}\n    layer_out['type'] = 'Region'\n    # Get the region layer attributes (n, out_c, out_h, out_w, classes,  [...]
+        "from tvm.contrib import graph_runtime\n\nm = graph_runtime.GraphModule(lib['default'](ctx))\n\n# set inputs\nm.set_input('data', tvm.nd.array(data.astype(dtype)))\n# execute\nprint(\"Running the test image...\")\n\n# detection\n# thresholds\nthresh = 0.5\nnms_thresh = 0.45\n\nm.run()\n# get outputs\ntvm_out = []\nif MODEL_NAME == 'yolov2':\n    layer_out = {}\n    layer_out['type'] = 'Region'\n    # Get the region layer attributes (n, out_c, out_h, out_w, classes, coords, backgr [...]
       ]
     }
   ],
diff --git a/docs/_downloads/83dedc6352b4016772e17480ef01345d/deploy_model_on_rasp.py b/docs/_downloads/83dedc6352b4016772e17480ef01345d/deploy_model_on_rasp.py
index 25df341..c9174ad 100644
--- a/docs/_downloads/83dedc6352b4016772e17480ef01345d/deploy_model_on_rasp.py
+++ b/docs/_downloads/83dedc6352b4016772e17480ef01345d/deploy_model_on_rasp.py
@@ -177,10 +177,10 @@ if local_demo:
 else:
     target = tvm.target.arm_cpu('rasp3b')
     # The above line is a simple form of
-    # target = tvm.target.create('llvm -device=arm_cpu -model=bcm2837 -target=armv7l-linux-gnueabihf -mattr=+neon')
+    # target = tvm.target.create('llvm -device=arm_cpu -model=bcm2837 -mtriple=armv7l-linux-gnueabihf -mattr=+neon')
 
 with tvm.transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build(func, target, params=params)
+    lib = relay.build(func, target, params=params)
 
 # After `relay.build`, you will get three return values: graph,
 # library and the new parameter, since we do some optimization that will
@@ -212,9 +212,7 @@ rlib = remote.load_module('net.tar')
 
 # create the remote runtime module
 ctx = remote.cpu(0)
-module = runtime.create(graph, rlib, ctx)
-# set parameter (upload params to the remote device. This may take a while)
-module.set_input(**params)
+module = runtime.GraphModule(rlib['default'](ctx))
 # set input data
 module.set_input('data', tvm.nd.array(x.astype('float32')))
 # run
diff --git a/docs/_downloads/87b9e8307245d848689e4cdc3e6fa9bf/deploy_sparse.ipynb b/docs/_downloads/87b9e8307245d848689e4cdc3e6fa9bf/deploy_sparse.ipynb
index d6157fe..a6d012c 100644
--- a/docs/_downloads/87b9e8307245d848689e4cdc3e6fa9bf/deploy_sparse.ipynb
+++ b/docs/_downloads/87b9e8307245d848689e4cdc3e6fa9bf/deploy_sparse.ipynb
@@ -105,7 +105,7 @@
       },
       "outputs": [],
       "source": [
-        "def run_relay_graph(mod, params, shape_dict, target, ctx):\n    with relay.build_config(opt_level=3):\n        graph, lib, params = relay.build(mod, target=target, params=params)\n    input_shape = shape_dict[\"input_1\"]\n    dummy_data = np.random.uniform(size=input_shape, low=0, high=input_shape[1]).astype(\n        \"int32\"\n    )\n\n    m = graph_runtime.create(graph, lib, ctx)\n    m.set_input(0, dummy_data)\n    m.set_input(**params)\n    m.run()\n    tvm_output = m.get_ [...]
+        "def run_relay_graph(mod, params, shape_dict, target, ctx):\n    with relay.build_config(opt_level=3):\n        lib = relay.build(mod, target=target, params=params)\n    input_shape = shape_dict[\"input_1\"]\n    dummy_data = np.random.uniform(size=input_shape, low=0, high=input_shape[1]).astype(\n        \"int32\"\n    )\n\n    m = graph_runtime.GraphModule(lib['default'](ctx))\n    m.set_input(0, dummy_data)\n    m.run()\n    tvm_output = m.get_output(0)\n\n    ftimer = m.modul [...]
       ]
     },
     {
diff --git a/docs/_downloads/8a7f17665207908e373e8146da09443a/deploy_prequantized.py b/docs/_downloads/8a7f17665207908e373e8146da09443a/deploy_prequantized.py
index d6183d6..ca741b3 100644
--- a/docs/_downloads/8a7f17665207908e373e8146da09443a/deploy_prequantized.py
+++ b/docs/_downloads/8a7f17665207908e373e8146da09443a/deploy_prequantized.py
@@ -82,10 +82,9 @@ def get_synset():
 
 def run_tvm_model(mod, params, input_name, inp, target="llvm"):
     with tvm.transform.PassContext(opt_level=3):
-        json, lib, params = relay.build(mod, target=target, params=params)
+        lib = relay.build(mod, target=target, params=params)
 
-    runtime = tvm.contrib.graph_runtime.create(json, lib, tvm.context(target, 0))
-    runtime.set_input(**params)
+    runtime = tvm.contrib.graph_runtime.GraphModule(lib['default'](tvm.context(target, 0)))
 
     runtime.set_input(input_name, inp)
     runtime.run()
diff --git a/docs/_downloads/a7ce44923ffcc359fd2e532ac1f62c9e/from_darknet.py b/docs/_downloads/a7ce44923ffcc359fd2e532ac1f62c9e/from_darknet.py
index 6d84463..c49fc8b 100644
--- a/docs/_downloads/a7ce44923ffcc359fd2e532ac1f62c9e/from_darknet.py
+++ b/docs/_downloads/a7ce44923ffcc359fd2e532ac1f62c9e/from_darknet.py
@@ -101,10 +101,7 @@ data = np.empty([batch_size, net.c, net.h, net.w], dtype)
 shape = {'data': data.shape}
 print("Compiling the model...")
 with tvm.transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build(mod,
-                                     target=target,
-                                     target_host=target_host,
-                                     params=params)
+    lib = relay.build(mod, target=target, target_host=target_host, params=params)
 
 [neth, netw] = shape['data'][2:] # Current image shape is 608x608
 ######################################################################
@@ -122,11 +119,10 @@ data = tvm.relay.testing.darknet.load_image(img_path, netw, neth)
 # The process is no different from other examples.
 from tvm.contrib import graph_runtime
 
-m = graph_runtime.create(graph, lib, ctx)
+m = graph_runtime.GraphModule(lib['default'](ctx))
 
 # set inputs
 m.set_input('data', tvm.nd.array(data.astype(dtype)))
-m.set_input(**params)
 # execute
 print("Running the test image...")
 
diff --git a/docs/_downloads/baf1373314e0e040008107ff2571b4cd/tune_relay_arm.py b/docs/_downloads/baf1373314e0e040008107ff2571b4cd/tune_relay_arm.py
index 3b07097..d7529b2 100644
--- a/docs/_downloads/baf1373314e0e040008107ff2571b4cd/tune_relay_arm.py
+++ b/docs/_downloads/baf1373314e0e040008107ff2571b4cd/tune_relay_arm.py
@@ -190,7 +190,7 @@ def get_network(name, batch_size):
 
 # Replace "aarch64-linux-gnu" with the correct target of your board.
 # This target is used for cross compilation. You can query it by :code:`gcc -v` on your device.
-target = tvm.target.create('llvm -device=arm_cpu -target=aarch64-linux-gnu')
+target = tvm.target.create('llvm -device=arm_cpu -mtriple=aarch64-linux-gnu')
 
 # Also replace this with the device key in your tracker
 device_key = 'rk3399'
diff --git a/docs/_downloads/beb2188d497d67b66bcfbc2c254dccb7/deploy_model_on_rasp.ipynb b/docs/_downloads/beb2188d497d67b66bcfbc2c254dccb7/deploy_model_on_rasp.ipynb
index f22dcd8..d152c98 100644
--- a/docs/_downloads/beb2188d497d67b66bcfbc2c254dccb7/deploy_model_on_rasp.ipynb
+++ b/docs/_downloads/beb2188d497d67b66bcfbc2c254dccb7/deploy_model_on_rasp.ipynb
@@ -155,7 +155,7 @@
       },
       "outputs": [],
       "source": [
-        "local_demo = True\n\nif local_demo:\n    target = tvm.target.create('llvm')\nelse:\n    target = tvm.target.arm_cpu('rasp3b')\n    # The above line is a simple form of\n    # target = tvm.target.create('llvm -device=arm_cpu -model=bcm2837 -target=armv7l-linux-gnueabihf -mattr=+neon')\n\nwith tvm.transform.PassContext(opt_level=3):\n    graph, lib, params = relay.build(func, target, params=params)\n\n# After `relay.build`, you will get three return values: graph,\n# library and t [...]
+        "local_demo = True\n\nif local_demo:\n    target = tvm.target.create('llvm')\nelse:\n    target = tvm.target.arm_cpu('rasp3b')\n    # The above line is a simple form of\n    # target = tvm.target.create('llvm -device=arm_cpu -model=bcm2837 -mtriple=armv7l-linux-gnueabihf -mattr=+neon')\n\nwith tvm.transform.PassContext(opt_level=3):\n    lib = relay.build(func, target, params=params)\n\n# After `relay.build`, you will get three return values: graph,\n# library and the new paramet [...]
       ]
     },
     {
@@ -173,7 +173,7 @@
       },
       "outputs": [],
       "source": [
-        "# obtain an RPC session from remote device.\nif local_demo:\n    remote = rpc.LocalSession()\nelse:\n    # The following is my environment, change this to the IP address of your target device\n    host = '10.77.1.162'\n    port = 9090\n    remote = rpc.connect(host, port)\n\n# upload the library to remote device and load it\nremote.upload(lib_fname)\nrlib = remote.load_module('net.tar')\n\n# create the remote runtime module\nctx = remote.cpu(0)\nmodule = runtime.create(graph, rl [...]
+        "# obtain an RPC session from remote device.\nif local_demo:\n    remote = rpc.LocalSession()\nelse:\n    # The following is my environment, change this to the IP address of your target device\n    host = '10.77.1.162'\n    port = 9090\n    remote = rpc.connect(host, port)\n\n# upload the library to remote device and load it\nremote.upload(lib_fname)\nrlib = remote.load_module('net.tar')\n\n# create the remote runtime module\nctx = remote.cpu(0)\nmodule = runtime.GraphModule(rlib [...]
       ]
     }
   ],
diff --git a/docs/_downloads/c316f4b828b813e437473ee752bacdf9/build_gcn.ipynb b/docs/_downloads/c316f4b828b813e437473ee752bacdf9/build_gcn.ipynb
index ed1884c..efd45fa 100644
--- a/docs/_downloads/c316f4b828b813e437473ee752bacdf9/build_gcn.ipynb
+++ b/docs/_downloads/c316f4b828b813e437473ee752bacdf9/build_gcn.ipynb
@@ -177,7 +177,7 @@
       },
       "outputs": [],
       "source": [
-        "model_params = {}\nfor param_tensor in torch_model.state_dict():\n    model_params[param_tensor] = torch_model.state_dict()[param_tensor].numpy()\n\nfor i in range(num_layers+1):\n    params[\"layers.%d.weight\"%(i)] = model_params[\"layers.%d.weight\"%(i)]\n    params[\"layers.%d.bias\"%(i)] = model_params[\"layers.%d.bias\"%(i)]\n\n# Set the TVM build target\ntarget = 'llvm' # Currently only support `llvm` as target\n\nfunc = relay.Function(relay.analysis.free_vars(output), ou [...]
+        "model_params = {}\nfor param_tensor in torch_model.state_dict():\n    model_params[param_tensor] = torch_model.state_dict()[param_tensor].numpy()\n\nfor i in range(num_layers+1):\n    params[\"layers.%d.weight\"%(i)] = model_params[\"layers.%d.weight\"%(i)]\n    params[\"layers.%d.bias\"%(i)] = model_params[\"layers.%d.bias\"%(i)]\n\n# Set the TVM build target\ntarget = 'llvm' # Currently only support `llvm` as target\n\nfunc = relay.Function(relay.analysis.free_vars(output), ou [...]
       ]
     },
     {
diff --git a/docs/_downloads/ca08de6c440df207921d807474d26f06/deploy_ssd_gluoncv.py b/docs/_downloads/ca08de6c440df207921d807474d26f06/deploy_ssd_gluoncv.py
index e2fc3c5..46162e1 100644
--- a/docs/_downloads/ca08de6c440df207921d807474d26f06/deploy_ssd_gluoncv.py
+++ b/docs/_downloads/ca08de6c440df207921d807474d26f06/deploy_ssd_gluoncv.py
@@ -88,18 +88,17 @@ block = model_zoo.get_model(model_name, pretrained=True)
 def build(target):
     mod, params = relay.frontend.from_mxnet(block, {"data": dshape})
     with tvm.transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(mod, target, params=params)
-    return graph, lib, params
+        lib = relay.build(mod, target, params=params)
+    return lib
 
 ######################################################################
 # Create TVM runtime and do inference
 
-def run(graph, lib, params, ctx):
+def run(lib, ctx):
     # Build TVM runtime
-    m = graph_runtime.create(graph, lib, ctx)
+    m = graph_runtime.GraphModule(lib['default'](ctx))
     tvm_input = tvm.nd.array(x.asnumpy(), ctx=ctx)
     m.set_input('data', tvm_input)
-    m.set_input(**params)
     # execute
     m.run()
     # get outputs
@@ -107,8 +106,8 @@ def run(graph, lib, params, ctx):
     return class_IDs, scores, bounding_boxs
 
 for target, ctx in target_list:
-    graph, lib, params = build(target)
-    class_IDs, scores, bounding_boxs = run(graph, lib, params, ctx)
+    lib = build(target)
+    class_IDs, scores, bounding_boxs = run(lib, ctx)
 
 ######################################################################
 # Display result
diff --git a/docs/_downloads/e09aef52edc37570c0178591a87d328c/from_tensorflow.ipynb b/docs/_downloads/e09aef52edc37570c0178591a87d328c/from_tensorflow.ipynb
index 23ee2ad..6e90654 100644
--- a/docs/_downloads/e09aef52edc37570c0178591a87d328c/from_tensorflow.ipynb
+++ b/docs/_downloads/e09aef52edc37570c0178591a87d328c/from_tensorflow.ipynb
@@ -134,7 +134,7 @@
       },
       "outputs": [],
       "source": [
-        "with tvm.transform.PassContext(opt_level=3):\n    graph, lib, params = relay.build(mod,\n                                     target=target,\n                                     target_host=target_host,\n                                     params=params)"
+        "with tvm.transform.PassContext(opt_level=3):\n    lib = relay.build(mod, target=target, target_host=target_host, params=params)"
       ]
     },
     {
@@ -152,7 +152,7 @@
       },
       "outputs": [],
       "source": [
-        "from tvm.contrib import graph_runtime\ndtype = 'uint8'\nm = graph_runtime.create(graph, lib, ctx)\n# set inputs\nm.set_input('DecodeJpeg/contents', tvm.nd.array(x.astype(dtype)))\nm.set_input(**params)\n# execute\nm.run()\n# get outputs\ntvm_output = m.get_output(0, tvm.nd.empty(((1, 1008)), 'float32'))"
+        "from tvm.contrib import graph_runtime\ndtype = 'uint8'\nm = graph_runtime.GraphModule(lib['default'](ctx))\n# set inputs\nm.set_input('DecodeJpeg/contents', tvm.nd.array(x.astype(dtype)))\n# execute\nm.run()\n# get outputs\ntvm_output = m.get_output(0, tvm.nd.empty(((1, 1008)), 'float32'))"
       ]
     },
     {
diff --git a/docs/_downloads/e41367a7f459e4f4dca82180009c1539/tune_relay_mobile_gpu.py b/docs/_downloads/e41367a7f459e4f4dca82180009c1539/tune_relay_mobile_gpu.py
index 4748f41..5f5e523 100644
--- a/docs/_downloads/e41367a7f459e4f4dca82180009c1539/tune_relay_mobile_gpu.py
+++ b/docs/_downloads/e41367a7f459e4f4dca82180009c1539/tune_relay_mobile_gpu.py
@@ -191,7 +191,7 @@ target = tvm.target.create('opencl -device=mali')
 
 # Replace "aarch64-linux-gnu" with the correct target of your board.
 # This target host is used for cross compilation. You can query it by :code:`gcc -v` on your device.
-target_host = 'llvm -target=aarch64-linux-gnu'
+target_host = 'llvm -mtriple=aarch64-linux-gnu'
 
 # Also replace this with the device key in your tracker
 device_key = 'rk3399'
diff --git a/docs/_downloads/e732d71c83de9fd8c6c7a72184d3ee0a/from_coreml.py b/docs/_downloads/e732d71c83de9fd8c6c7a72184d3ee0a/from_coreml.py
index beac483..f5db0f5 100644
--- a/docs/_downloads/e732d71c83de9fd8c6c7a72184d3ee0a/from_coreml.py
+++ b/docs/_downloads/e732d71c83de9fd8c6c7a72184d3ee0a/from_coreml.py
@@ -75,9 +75,7 @@ shape_dict = {'image': x.shape}
 mod, params = relay.frontend.from_coreml(mlmodel, shape_dict)
 
 with tvm.transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build(mod,
-                                     target,
-                                     params=params)
+    lib = relay.build(mod, target, params=params)
 
 ######################################################################
 # Execute on TVM
@@ -86,10 +84,9 @@ with tvm.transform.PassContext(opt_level=3):
 from tvm.contrib import graph_runtime
 ctx = tvm.cpu(0)
 dtype = 'float32'
-m = graph_runtime.create(graph, lib, ctx)
+m = graph_runtime.GraphModule(lib['default'](ctx))
 # set inputs
 m.set_input('image', tvm.nd.array(x.astype(dtype)))
-m.set_input(**params)
 # execute
 m.run()
 # get outputs
diff --git a/docs/_downloads/ea0c81cab71096d16b825a33fd276c58/from_mxnet.py b/docs/_downloads/ea0c81cab71096d16b825a33fd276c58/from_mxnet.py
index 6e6b2d7..d75ec00 100644
--- a/docs/_downloads/ea0c81cab71096d16b825a33fd276c58/from_mxnet.py
+++ b/docs/_downloads/ea0c81cab71096d16b825a33fd276c58/from_mxnet.py
@@ -91,7 +91,7 @@ func = relay.Function(func.params, relay.nn.softmax(func.body), None, func.type_
 # now compile the graph
 target = 'cuda'
 with tvm.transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build(func, target, params=params)
+    lib = relay.build(func, target, params=params)
 
 ######################################################################
 # Execute the portable graph on TVM
@@ -100,10 +100,9 @@ with tvm.transform.PassContext(opt_level=3):
 from tvm.contrib import graph_runtime
 ctx = tvm.gpu(0)
 dtype = 'float32'
-m = graph_runtime.create(graph, lib, ctx)
+m = graph_runtime.GraphModule(lib['default'](ctx))
 # set inputs
 m.set_input('data', tvm.nd.array(x.astype(dtype)))
-m.set_input(**params)
 # execute
 m.run()
 # get outputs
diff --git a/docs/_downloads/f2f3dea1548903b315df5847ee60f87d/from_mxnet.ipynb b/docs/_downloads/f2f3dea1548903b315df5847ee60f87d/from_mxnet.ipynb
index 7e5d275..732dc40 100644
--- a/docs/_downloads/f2f3dea1548903b315df5847ee60f87d/from_mxnet.ipynb
+++ b/docs/_downloads/f2f3dea1548903b315df5847ee60f87d/from_mxnet.ipynb
@@ -80,7 +80,7 @@
       },
       "outputs": [],
       "source": [
-        "target = 'cuda'\nwith tvm.transform.PassContext(opt_level=3):\n    graph, lib, params = relay.build(func, target, params=params)"
+        "target = 'cuda'\nwith tvm.transform.PassContext(opt_level=3):\n    lib = relay.build(func, target, params=params)"
       ]
     },
     {
@@ -98,7 +98,7 @@
       },
       "outputs": [],
       "source": [
-        "from tvm.contrib import graph_runtime\nctx = tvm.gpu(0)\ndtype = 'float32'\nm = graph_runtime.create(graph, lib, ctx)\n# set inputs\nm.set_input('data', tvm.nd.array(x.astype(dtype)))\nm.set_input(**params)\n# execute\nm.run()\n# get outputs\ntvm_output = m.get_output(0)\ntop1 = np.argmax(tvm_output.asnumpy()[0])\nprint('TVM prediction top-1:', top1, synset[top1])"
+        "from tvm.contrib import graph_runtime\nctx = tvm.gpu(0)\ndtype = 'float32'\nm = graph_runtime.GraphModule(lib['default'](ctx))\n# set inputs\nm.set_input('data', tvm.nd.array(x.astype(dtype)))\n# execute\nm.run()\n# get outputs\ntvm_output = m.get_output(0)\ntop1 = np.argmax(tvm_output.asnumpy()[0])\nprint('TVM prediction top-1:', top1, synset[top1])"
       ]
     },
     {
diff --git a/docs/_downloads/f83f0c3da8a2ab10657c61e034b7218d/from_pytorch.py b/docs/_downloads/f83f0c3da8a2ab10657c61e034b7218d/from_pytorch.py
index 53d29a9..b0639f5 100644
--- a/docs/_downloads/f83f0c3da8a2ab10657c61e034b7218d/from_pytorch.py
+++ b/docs/_downloads/f83f0c3da8a2ab10657c61e034b7218d/from_pytorch.py
@@ -102,10 +102,7 @@ target = 'llvm'
 target_host = 'llvm'
 ctx = tvm.cpu(0)
 with tvm.transform.PassContext(opt_level=3):
-    graph, lib, params = relay.build(mod,
-                                     target=target,
-                                     target_host=target_host,
-                                     params=params)
+    lib = relay.build(mod, target=target, target_host=target_host, params=params)
 
 ######################################################################
 # Execute the portable graph on TVM
@@ -113,10 +110,9 @@ with tvm.transform.PassContext(opt_level=3):
 # Now we can try deploying the compiled model on target.
 from tvm.contrib import graph_runtime
 dtype = 'float32'
-m = graph_runtime.create(graph, lib, ctx)
+m = graph_runtime.GraphModule(lib['default'](ctx))
 # Set inputs
 m.set_input(input_name, tvm.nd.array(img.astype(dtype)))
-m.set_input(**params)
 # Execute
 m.run()
 # Get outputs
diff --git a/docs/_downloads/f8f7a2adf30f5033603d79cdbacd9235/tune_relay_arm.ipynb b/docs/_downloads/f8f7a2adf30f5033603d79cdbacd9235/tune_relay_arm.ipynb
index 2fa3551..e93e90d 100644
--- a/docs/_downloads/f8f7a2adf30f5033603d79cdbacd9235/tune_relay_arm.ipynb
+++ b/docs/_downloads/f8f7a2adf30f5033603d79cdbacd9235/tune_relay_arm.ipynb
@@ -83,7 +83,7 @@
       },
       "outputs": [],
       "source": [
-        "#### DEVICE CONFIG ####\n\n# Replace \"aarch64-linux-gnu\" with the correct target of your board.\n# This target is used for cross compilation. You can query it by :code:`gcc -v` on your device.\ntarget = tvm.target.create('llvm -device=arm_cpu -target=aarch64-linux-gnu')\n\n# Also replace this with the device key in your tracker\ndevice_key = 'rk3399'\n\n# Set this to True if you use android phone\nuse_android = False\n\n#### TUNING OPTION ####\nnetwork = 'resnet-18'\nlog_file  [...]
+        "#### DEVICE CONFIG ####\n\n# Replace \"aarch64-linux-gnu\" with the correct target of your board.\n# This target is used for cross compilation. You can query it by :code:`gcc -v` on your device.\ntarget = tvm.target.create('llvm -device=arm_cpu -mtriple=aarch64-linux-gnu')\n\n# Also replace this with the device key in your tracker\ndevice_key = 'rk3399'\n\n# Set this to True if you use android phone\nuse_android = False\n\n#### TUNING OPTION ####\nnetwork = 'resnet-18'\nlog_file [...]
       ]
     },
     {
diff --git a/docs/_sources/dev/codebase_walkthrough.rst.txt b/docs/_sources/dev/codebase_walkthrough.rst.txt
index 8674c8e..7a00339 100644
--- a/docs/_sources/dev/codebase_walkthrough.rst.txt
+++ b/docs/_sources/dev/codebase_walkthrough.rst.txt
@@ -73,11 +73,11 @@ You can also checkout `FFI Navigator <https://github.com/tqchen/ffi-navigator>`_
 
 A ``Tensor`` object has an ``Operation`` object associated with it, defined in ``python/tvm/te/tensor.py``, ``include/tvm/te/operation.h``, and ``src/tvm/te/operation`` subdirectory. A ``Tensor`` is an output of its ``Operation`` object. Each ``Operation`` object has in turn ``input_tensors()`` method, which returns a list of input ``Tensor`` to it. This way we can keep track of dependencies between ``Operation``.
 
-We pass the operation corresponding to the output tensor ``C`` to ``tvm.create_schedule()`` function in ``python/tvm/te/schedule.py``.
+We pass the operation corresponding to the output tensor ``C`` to ``tvm.te.create_schedule()`` function in ``python/tvm/te/schedule.py``.
 
 ::
 
-   s = tvm.create_schedule(C.op)
+   s = tvm.te.create_schedule(C.op)
 
 This function is mapped to the C++ function in ``include/tvm/schedule.h``.
 
diff --git a/docs/_sources/dev/relay_add_pass.rst.txt b/docs/_sources/dev/relay_add_pass.rst.txt
index a82ae4f..fc26559 100644
--- a/docs/_sources/dev/relay_add_pass.rst.txt
+++ b/docs/_sources/dev/relay_add_pass.rst.txt
@@ -181,7 +181,7 @@ Example: Constant Folding
 -------------------------
 
 In order to better understand the process of writing a pass, we will look at
-the constant folding pass (found in `src/relay/pass/fold_constant.cc`_)
+the constant folding pass (found in `src/relay/transforms/fold_constant.cc`_)
 as a guide, because it is a relatively simple pass that incorporates
 both types of traversals.
 
@@ -329,7 +329,7 @@ Now, we construct a more convenient interface ``FoldConstant`` for our constant
 folder. ``FoldConstant`` is a standalone function outside of the ``ConstantFolder``
 class that takes an expression and internally creates and uses a
 ``ConstantFolder`` instance (the full definition can be found in
-`src/relay/pass/fold_constant.cc`_).
+`src/relay/transforms/fold_constant.cc`_).
 
 
 Registering a Pass with the Pass Manager
@@ -403,4 +403,4 @@ in `src/relay/pass/`_.
 
 .. _src/relay/pass/: https://github.com/apache/incubator-tvm/tree/master/src/relay/pass
 
-.. _src/relay/pass/fold_constant.cc: https://github.com/apache/incubator-tvm/blob/master/src/relay/pass/fold_constant.cc
+.. _src/relay/transforms/fold_constant.cc: https://github.com/apache/incubator-tvm/blob/master/src/relay/transforms/fold_constant.cc
diff --git a/docs/_sources/dev/virtual_machine.rst.txt b/docs/_sources/dev/virtual_machine.rst.txt
index 5bb5ade..5878003 100644
--- a/docs/_sources/dev/virtual_machine.rst.txt
+++ b/docs/_sources/dev/virtual_machine.rst.txt
@@ -38,8 +38,8 @@ them on the runtime. Graph runtime provides a fast execution experience but only
 subset of Relay programs.
 
 An alternative but not-standard approach is Relay's ahead-of-time compiler,
-which compiles a Relay program into a shared library containing an ahead-
-of-time implementation. The ahead-of-time compiler provides compelling performance
+which compiles a Relay program into a shared library containing an ahead-of-time
+implementation. The ahead-of-time compiler provides compelling performance
 but is difficult to extend and instrument, which can only be done by modifying the
 code generation and optimization mechanisms.
 
diff --git a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
index 09f15f8..f0ceb69 100644
--- a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,11 +5,11 @@
 
 Computation times
 =================
-**00:47.023** total execution time for **tutorials_autotvm** files:
-
-- **00:26.532**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
-- **00:19.876**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
-- **00:00.180**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
-- **00:00.148**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
-- **00:00.145**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
-- **00:00.142**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+**00:48.125** total execution time for **tutorials_autotvm** files:
+
+- **00:26.526**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
+- **00:20.990**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:00.156**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
+- **00:00.154**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.154**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+- **00:00.145**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
diff --git a/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
index 5bdc8b8..b8ef167 100644
--- a/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
@@ -234,26 +234,26 @@ for this template
        7 unroll_explicit: OtherOption([0, 1]) len=2
     )
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 6   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 7   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 8   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 9   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 10  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 11  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 12  GFLOPS: 71.32/71.32     result: MeasureResult(costs=(0.0032459606750000003,), error_no=0, all_cost=1.6292922496795654, timestamp=1593745237.4247222)    [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8533140
-    No: 13  GFLOPS: 0.00/71.32      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 14  GFLOPS: 0.00/71.32      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 15  GFLOPS: 0.00/71.32      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 16  GFLOPS: 0.00/71.32      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 17  GFLOPS: 0.00/71.32      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 18  GFLOPS: 0.00/71.32      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (3) /workspace/build/libtvm.so(+0x4ed7d7) [0x7f16248497d7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f1624849276]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 19  GFLOPS: 793.41/793.41   result: MeasureResult(costs=(0.0002917792207505519,), error_no=0, all_cost=2.0187714099884033, timestamp=1593745241.1444745)    [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
-    No: 20  GFLOPS: 6.99/793.41     result: MeasureResult(costs=(0.033099542,), error_no=0, all_cost=1.5997724533081055, timestamp=1593745241.9657192)      [('tile_f', [-1, 2, 1, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7502165
+    No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 6   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 7   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 8   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 9   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 10  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 11  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 12  GFLOPS: 65.50/65.50     result: MeasureResult(costs=(0.0035342738749999996,), error_no=0, all_cost=1.604149341583252, timestamp=1594838916.341495)      [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8533140
+    No: 13  GFLOPS: 0.00/65.50      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 14  GFLOPS: 0.00/65.50      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 15  GFLOPS: 0.00/65.50      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 16  GFLOPS: 0.00/65.50      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 17  GFLOPS: 0.00/65.50      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 18  GFLOPS: 0.00/65.50      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (3) /workspace/build/libtvm.so(+0x56bde7) [0x7f3eca036de7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f3eca036886]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 19  GFLOPS: 757.03/757.03   result: MeasureResult(costs=(0.0003058017539503386,), error_no=0, all_cost=1.966531753540039, timestamp=1594838920.344363)      [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
+    No: 20  GFLOPS: 6.96/757.03     result: MeasureResult(costs=(0.033247296,), error_no=0, all_cost=1.6596012115478516, timestamp=1594838921.1786706)      [('tile_f', [-1, 2, 1, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7502165
 
 
 
@@ -307,7 +307,7 @@ and measure running time.
 
     Best config:
     [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
-    Time cost of this operator: 0.000355
+    Time cost of this operator: 0.000356
 
 
 
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt
index 1f7addb..897d8e7 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt
@@ -200,7 +200,7 @@ set :code:`use_android` to True if you use android phone.
 
     # Replace "aarch64-linux-gnu" with the correct target of your board.
     # This target is used for cross compilation. You can query it by :code:`gcc -v` on your device.
-    target = tvm.target.create('llvm -device=arm_cpu -target=aarch64-linux-gnu')
+    target = tvm.target.create('llvm -device=arm_cpu -mtriple=aarch64-linux-gnu')
 
     # Also replace this with the device key in your tracker
     device_key = 'rk3399'
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt
index 8f83263..4f96af3 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt
@@ -140,11 +140,7 @@ Before tuning, we apply some configurations.
 
         'measure_option': autotvm.measure_option(
             builder=autotvm.LocalBuilder(timeout=10),
-            #runner=autotvm.LocalRunner(number=20, repeat=3, timeout=4, min_repeat_ms=150),
-            runner=autotvm.RPCRunner(
-                '1080ti',  # change the device key to your key
-                '0.0.0.0', 9190,
-                number=20, repeat=3, timeout=4, min_repeat_ms=150)
+            runner=autotvm.LocalRunner(number=20, repeat=3, timeout=4, min_repeat_ms=150),
         ),
     }
 
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_mobile_gpu.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_mobile_gpu.rst.txt
index f343f9f..73cdd7c 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_mobile_gpu.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_mobile_gpu.rst.txt
@@ -201,7 +201,7 @@ set :code:`use_android` to True if you use android phone.
 
     # Replace "aarch64-linux-gnu" with the correct target of your board.
     # This target host is used for cross compilation. You can query it by :code:`gcc -v` on your device.
-    target_host = 'llvm -target=aarch64-linux-gnu'
+    target_host = 'llvm -mtriple=aarch64-linux-gnu'
 
     # Also replace this with the device key in your tracker
     device_key = 'rk3399'
diff --git a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
index cba0e45..2b981b0 100644
--- a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
@@ -361,16 +361,16 @@ used to get the best config later.
  .. code-block:: none
 
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 6.78/6.78       result: MeasureResult(costs=(0.039591604,), error_no=0, all_cost=1.0488479137420654, timestamp=1593745207.5358753)      [('tile_y', [-1, 8]), ('tile_x', [-1, 8])],None,33
-    No: 2   GFLOPS: 2.24/6.78       result: MeasureResult(costs=(0.1196258708,), error_no=0, all_cost=2.235098361968994, timestamp=1593745209.7621841)      [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
-    No: 3   GFLOPS: 7.30/7.30       result: MeasureResult(costs=(0.0367613626,), error_no=0, all_cost=1.3152332305908203, timestamp=1593745210.7636383)     [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
-    No: 4   GFLOPS: 4.46/7.30       result: MeasureResult(costs=(0.060166502600000005,), error_no=0, all_cost=1.3689393997192383, timestamp=1593745212.0622144)     [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
-    No: 5   GFLOPS: 5.89/7.30       result: MeasureResult(costs=(0.0455629548,), error_no=0, all_cost=1.023970127105713, timestamp=1593745213.1131737)      [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
-    No: 6   GFLOPS: 6.05/7.30       result: MeasureResult(costs=(0.0443622662,), error_no=0, all_cost=1.5819377899169922, timestamp=1593745214.1444423)     [('tile_y', [-1, 64]), ('tile_x', [-1, 8])],None,36
-    No: 7   GFLOPS: 25.76/25.76     result: MeasureResult(costs=(0.010421797600000001,), error_no=0, all_cost=0.6426005363464355, timestamp=1593745214.6381452)     [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
-    No: 8   GFLOPS: 21.44/25.76     result: MeasureResult(costs=(0.0125213934,), error_no=0, all_cost=0.611748218536377, timestamp=1593745215.1676252)      [('tile_y', [-1, 4]), ('tile_x', [-1, 512])],None,92
-    No: 9   GFLOPS: 0.88/25.76      result: MeasureResult(costs=(0.3052182662,), error_no=0, all_cost=5.2150187492370605, timestamp=1593745220.3343065)     [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
-    No: 10  GFLOPS: 0.00/25.76      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f16252121a1]\n  [bt] (4) /workspace/build/libtvm.so(+0xee55a2) [0x7f16252415a2]\n  [bt] (3) /workspace/build/libtvm.so(tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x26b) [0x7f162524491b]\n  [bt] (2) /workspace/build/libtvm.so(tvm::runtime::RPCClientSession::CallF [...]
+    No: 1   GFLOPS: 6.81/6.81       result: MeasureResult(costs=(0.039431393599999996,), error_no=0, all_cost=0.8926143646240234, timestamp=1594838886.2628007)     [('tile_y', [-1, 8]), ('tile_x', [-1, 8])],None,33
+    No: 2   GFLOPS: 2.24/6.81       result: MeasureResult(costs=(0.11989471519999999,), error_no=0, all_cost=2.2794392108917236, timestamp=1594838888.51563)        [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
+    No: 3   GFLOPS: 7.30/7.30       result: MeasureResult(costs=(0.0367874284,), error_no=0, all_cost=1.3788068294525146, timestamp=1594838889.4407125)     [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
+    No: 4   GFLOPS: 4.25/7.30       result: MeasureResult(costs=(0.06320074319999999,), error_no=0, all_cost=1.3663620948791504, timestamp=1594838890.7862232)      [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
+    No: 5   GFLOPS: 6.02/7.30       result: MeasureResult(costs=(0.044613433,), error_no=0, all_cost=1.0256812572479248, timestamp=1594838891.8365152)      [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
+    No: 6   GFLOPS: 6.09/7.30       result: MeasureResult(costs=(0.0441040612,), error_no=0, all_cost=1.0365724563598633, timestamp=1594838892.8824277)     [('tile_y', [-1, 64]), ('tile_x', [-1, 8])],None,36
+    No: 7   GFLOPS: 24.79/24.79     result: MeasureResult(costs=(0.0108270606,), error_no=0, all_cost=0.6016161441802979, timestamp=1594838893.3945599)     [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
+    No: 8   GFLOPS: 20.88/24.79     result: MeasureResult(costs=(0.012858057400000001,), error_no=0, all_cost=0.719602108001709, timestamp=1594838893.936547)       [('tile_y', [-1, 4]), ('tile_x', [-1, 512])],None,92
+    No: 9   GFLOPS: 0.92/24.79      result: MeasureResult(costs=(0.292011726,), error_no=0, all_cost=5.070920705795288, timestamp=1594838898.9400105)       [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
+    No: 10  GFLOPS: 0.00/24.79      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f3ecaa32ad1]\n  [bt] (4) /workspace/build/libtvm.so(+0xf96ed2) [0x7f3ecaa61ed2]\n  [bt] (3) /workspace/build/libtvm.so(tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x26b) [0x7f3ecaa6524b]\n  [bt] (2) /workspace/build/libtvm.so(tvm::runtime::RPCClientSession::CallF [...]
 
 
 
diff --git a/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
index a8d1709..96f3a01 100644
--- a/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
@@ -104,7 +104,7 @@ Here we will declare a simple kernel on the local machine:
 
 
 Then we cross compile the kernel.
-The target should be 'llvm -target=armv7l-linux-gnueabihf' for
+The target should be 'llvm -mtriple=armv7l-linux-gnueabihf' for
 Raspberry Pi 3B, but we use 'llvm' here to make this tutorial runnable
 on our webpage building server. See the detailed note in the following block.
 
@@ -117,7 +117,7 @@ on our webpage building server. See the detailed note in the following block.
     if local_demo:
         target = 'llvm'
     else:
-        target = 'llvm -target=armv7l-linux-gnueabihf'
+        target = 'llvm -mtriple=armv7l-linux-gnueabihf'
 
     func = tvm.build(s, [A, B], target=target, name='add_one')
     # save the lib at a local temp folder
@@ -137,14 +137,14 @@ on our webpage building server. See the detailed note in the following block.
   to False and replace :code:`target` in :code:`build` with the appropriate
   target triple for your device. The target triple which might be
   different for different devices. For example, it is
-  :code:`'llvm -target=armv7l-linux-gnueabihf'` for Raspberry Pi 3B and
-  :code:`'llvm -target=aarch64-linux-gnu'` for RK3399.
+  :code:`'llvm -mtriple=armv7l-linux-gnueabihf'` for Raspberry Pi 3B and
+  :code:`'llvm -mtriple=aarch64-linux-gnu'` for RK3399.
 
   Usually, you can query the target by running :code:`gcc -v` on your
   device, and looking for the line starting with :code:`Target:`
   (Though it may still be a loose configuration.)
 
-  Besides :code:`-target`, you can also set other compilation options
+  Besides :code:`-mtriple`, you can also set other compilation options
   like:
 
   * -mcpu=<cpuname>
@@ -235,7 +235,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.693e-07 secs/op
+    1.754e-07 secs/op
 
 
 
@@ -268,7 +268,7 @@ The following function shows how we run an OpenCL kernel remotely
     def run_opencl():
         # NOTE: This is the setting for my rk3399 board. You need to modify
         # them according to your environment.
-        target_host = "llvm -target=aarch64-linux-gnu"
+        target_host = "llvm -mtriple=aarch64-linux-gnu"
         opencl_device_host = '10.77.1.145'
         opencl_device_port = 9090
 
diff --git a/docs/_sources/tutorials/dev/relay_pass_infra.rst.txt b/docs/_sources/tutorials/dev/relay_pass_infra.rst.txt
index b758cc8..f813330 100644
--- a/docs/_sources/tutorials/dev/relay_pass_infra.rst.txt
+++ b/docs/_sources/tutorials/dev/relay_pass_infra.rst.txt
@@ -19,7 +19,7 @@ introduced an infrastructure to manage the optimization passes.
 
 The optimizations of a Relay program could be applied at various granularity,
 namely function-level and module-level using :py:class:`tvm.relay.transform.FunctionPass`
-and py:class:`tvm.relay.transform.ModulePass`
+and :py:class:`tvm.relay.transform.ModulePass`
 respectively. Or users can rely on py:class:`tvm.transform.Sequential` to apply a sequence of passes
 on a Relay program where the dependencies between passes can be resolved by the
 pass infra. For more details about each type of these passes, please refer to
diff --git a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
index e2fb71b..63b9694 100644
--- a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:00.458** total execution time for **tutorials_dev** files:
+**00:00.479** total execution time for **tutorials_dev** files:
 
-- **00:00.314**: :ref:`sphx_glr_tutorials_dev_relay_pass_infra.py` (``relay_pass_infra.py``)
-- **00:00.143**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
+- **00:00.331**: :ref:`sphx_glr_tutorials_dev_relay_pass_infra.py` (``relay_pass_infra.py``)
+- **00:00.147**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
diff --git a/docs/_sources/tutorials/frontend/build_gcn.rst.txt b/docs/_sources/tutorials/frontend/build_gcn.rst.txt
index d364c9c..8d9e4fd 100644
--- a/docs/_sources/tutorials/frontend/build_gcn.rst.txt
+++ b/docs/_sources/tutorials/frontend/build_gcn.rst.txt
@@ -431,12 +431,11 @@ Export the weigths from PyTorch model to Python Dict
     mod["main"] = func
     # Build with Relay
     with tvm.transform.PassContext(opt_level=0): # Currently only support opt_level=0
-        graph, lib, params = relay.build(mod, target, params=params)
+        lib = relay.build(mod, target, params=params)
 
     # Generate graph runtime
     ctx = tvm.context(target, 0)
-    m = graph_runtime.create(graph, lib, ctx)
-    m.set_input(**params)
+    m = graph_runtime.GraphModule(lib['default'](ctx))
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
index 1ad02a0..87abfa3 100644
--- a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
@@ -297,7 +297,7 @@ to run this tutorial with a real device.
     # Change target configuration.
     # Run `adb shell cat /proc/cpuinfo` to find the arch.
     arch = 'arm64'
-    target = 'llvm -target=%s-linux-android' % arch
+    target = 'llvm -mtriple=%s-linux-android' % arch
     target_host = None
 
     if local_demo:
@@ -315,8 +315,8 @@ to run this tutorial with a real device.
     mod, params = relay.frontend.from_keras(keras_mobilenet_v2, shape_dict)
 
     with tvm.transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(mod, target=target,
-                                         target_host=target_host, params=params)
+        lib = relay.build(mod, target=target,
+                          target_host=target_host, params=params)
 
     # After `relay.build`, you will get three return values: graph,
     # library and the new parameter, since we do some optimization that will
@@ -369,7 +369,7 @@ to the remote android device.
     rlib = remote.load_module('net.so')
 
     # create the remote runtime module
-    module = runtime.create(graph, rlib, ctx)
+    module = runtime.GraphModule(rlib['default'](ctx))
 
 
 
@@ -384,8 +384,6 @@ Execute on TVM
 .. code-block:: default
 
 
-    # set parameter (upload params to the remote device. This may take a while)
-    module.set_input(**params)
     # set input data
     module.set_input(input_name, tvm.nd.array(x.astype(dtype)))
     # run
@@ -415,7 +413,7 @@ Execute on TVM
 
     TVM prediction top-1: tiger cat
     Evaluate inference time cost...
-    Mean inference time (std dev): 4.31 ms (0.46 ms)
+    Mean inference time (std dev): 5.22 ms (0.02 ms)
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt b/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt
index e5c3dea..b027aed 100644
--- a/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt
@@ -238,10 +238,10 @@ to run this tutorial with a real device.
     else:
         target = tvm.target.arm_cpu('rasp3b')
         # The above line is a simple form of
-        # target = tvm.target.create('llvm -device=arm_cpu -model=bcm2837 -target=armv7l-linux-gnueabihf -mattr=+neon')
+        # target = tvm.target.create('llvm -device=arm_cpu -model=bcm2837 -mtriple=armv7l-linux-gnueabihf -mattr=+neon')
 
     with tvm.transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(func, target, params=params)
+        lib = relay.build(func, target, params=params)
 
     # After `relay.build`, you will get three return values: graph,
     # library and the new parameter, since we do some optimization that will
@@ -282,9 +282,7 @@ to the remote device.
 
     # create the remote runtime module
     ctx = remote.cpu(0)
-    module = runtime.create(graph, rlib, ctx)
-    # set parameter (upload params to the remote device. This may take a while)
-    module.set_input(**params)
+    module = runtime.GraphModule(rlib['default'](ctx))
     # set input data
     module.set_input('data', tvm.nd.array(x.astype('float32')))
     # run
diff --git a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
index 8e07388..96c575a 100644
--- a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
@@ -85,10 +85,9 @@ Helper functions to run the demo
 
     def run_tvm_model(mod, params, input_name, inp, target="llvm"):
         with tvm.transform.PassContext(opt_level=3):
-            json, lib, params = relay.build(mod, target=target, params=params)
+            lib = relay.build(mod, target=target, params=params)
 
-        runtime = tvm.contrib.graph_runtime.create(json, lib, tvm.context(target, 0))
-        runtime.set_input(**params)
+        runtime = tvm.contrib.graph_runtime.GraphModule(lib['default'](tvm.context(target, 0)))
 
         runtime.set_input(input_name, inp)
         runtime.run()
@@ -352,7 +351,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
  .. code-block:: none
 
-    Elapsed average ms: 13.114505149999998
+    Elapsed average ms: 19.127417110000003
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt b/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
index f84690e..732df94 100644
--- a/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
@@ -219,10 +219,9 @@ Lets run TVM compiled pre-quantized model inference and get the TVM prediction.
 
 .. code-block:: default
 
-    def run_tvm(graph, lib, params):
+    def run_tvm(lib):
         from tvm.contrib import graph_runtime
-        rt_mod = graph_runtime.create(graph, lib, ctx=tvm.cpu(0))
-        rt_mod.set_input(**params)
+        rt_mod = graph_runtime.GraphModule(lib['default'](tvm.cpu(0)))
         rt_mod.set_input('input', data)
         rt_mod.run()
         tvm_res = rt_mod.get_output(0).asnumpy()
@@ -286,8 +285,7 @@ target platform that you are interested in.
 
     target = 'llvm'
     with tvm.transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build_module.build(mod, target=target,
-                                                      params=params)
+        lib = relay.build_module.build(mod, target=target, params=params)
 
 
 
@@ -300,7 +298,7 @@ Finally, lets call inference on the TVM compiled module.
 
 .. code-block:: default
 
-    tvm_pred, rt_mod = run_tvm(graph, lib, params)
+    tvm_pred, rt_mod = run_tvm(lib)
 
 
 
@@ -361,7 +359,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
  .. code-block:: none
 
-    Elapsed average ms: 33.84403376999999
+    Elapsed average ms: 35.17905105
 
 
 
@@ -394,7 +392,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  4.482 seconds)
+   **Total running time of the script:** ( 2 minutes  6.650 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_prequantized_tflite.py:
diff --git a/docs/_sources/tutorials/frontend/deploy_sparse.rst.txt b/docs/_sources/tutorials/frontend/deploy_sparse.rst.txt
index c5d2b43..b6e778f 100644
--- a/docs/_sources/tutorials/frontend/deploy_sparse.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_sparse.rst.txt
@@ -246,15 +246,14 @@ tensors instead of sparse aware kernels.
 
     def run_relay_graph(mod, params, shape_dict, target, ctx):
         with relay.build_config(opt_level=3):
-            graph, lib, params = relay.build(mod, target=target, params=params)
+            lib = relay.build(mod, target=target, params=params)
         input_shape = shape_dict["input_1"]
         dummy_data = np.random.uniform(size=input_shape, low=0, high=input_shape[1]).astype(
             "int32"
         )
 
-        m = graph_runtime.create(graph, lib, ctx)
+        m = graph_runtime.GraphModule(lib['default'](ctx))
         m.set_input(0, dummy_data)
-        m.set_input(**params)
         m.run()
         tvm_output = m.get_output(0)
 
diff --git a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
index e340eae..b121041 100644
--- a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
@@ -118,8 +118,8 @@ Convert and compile model for CPU.
     def build(target):
         mod, params = relay.frontend.from_mxnet(block, {"data": dshape})
         with tvm.transform.PassContext(opt_level=3):
-            graph, lib, params = relay.build(mod, target, params=params)
-        return graph, lib, params
+            lib = relay.build(mod, target, params=params)
+        return lib
 
 
 
@@ -143,12 +143,11 @@ Create TVM runtime and do inference
 .. code-block:: default
 
 
-    def run(graph, lib, params, ctx):
+    def run(lib, ctx):
         # Build TVM runtime
-        m = graph_runtime.create(graph, lib, ctx)
+        m = graph_runtime.GraphModule(lib['default'](ctx))
         tvm_input = tvm.nd.array(x.asnumpy(), ctx=ctx)
         m.set_input('data', tvm_input)
-        m.set_input(**params)
         # execute
         m.run()
         # get outputs
@@ -156,8 +155,8 @@ Create TVM runtime and do inference
         return class_IDs, scores, bounding_boxs
 
     for target, ctx in target_list:
-        graph, lib, params = build(target)
-        class_IDs, scores, bounding_boxs = run(graph, lib, params, ctx)
+        lib = build(target)
+        class_IDs, scores, bounding_boxs = run(lib, ctx)
 
 
 
@@ -169,123 +168,123 @@ Create TVM runtime and do inference
 
  .. code-block:: none
 
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (256, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (64, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (128, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (512, 128, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (512, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (128, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (1024, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (1024, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (256, 1024, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (84, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (512, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (2048, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (2048, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (512, 2048, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (126, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 4, 4), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (16, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (24, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32, 4), 'float32'), ('TENSOR', (12, 256, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 32, 32, 8), 'float32'), ('TENSOR', (128, 32, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 32, 32, 8), 'float32'), ('TENSOR', (32, 32, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 32, 32, 8), 'float32'), ('TENSOR', (32, 128, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 64, 64, 8), 'float32'), ('TENSOR', (32, 64, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 16, 64, 64, 8), 'float32'), ('TENSOR', (64, 16, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 16, 64, 64, 8), 'float32'), ('TENSOR', (16, 16, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 64, 64, 8), 'float32'), ('TENSOR', (16, 64, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 128, 128, 8), 'float32'), ('TENSOR', (16, 32, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 8, 128, 128, 8), 'float32'), ('TENSOR', (32, 8, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 8, 128, 128, 8), 'float32'), ('TENSOR', (8, 8, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 128, 128, 8), 'float32'), ('TENSOR', (8, 32, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 8, 128, 128, 8), 'float32'), ('TENSOR', (8, 8, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1, 512, 512, 3), 'float32'), ('TENSOR', (8, 1, 7, 7, 3, 8), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'NCHW3c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 128, 128, 8), 'float32'), ('TENSOR', (64, 32, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 64, 64, 8), 'float32'), ('TENSOR', (128, 64, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16, 4), 'float32'), ('TENSOR', (18, 512, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 16, 16, 8), 'float32'), ('TENSOR', (256, 64, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 16, 16, 8), 'float32'), ('TENSOR', (64, 64, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 16, 16, 8), 'float32'), ('TENSOR', (64, 256, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 32, 32, 8), 'float32'), ('TENSOR', (64, 128, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 32, 32, 8), 'float32'), ('TENSOR', (256, 128, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 8, 8, 4), 'float32'), ('TENSOR', (18, 128, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 16, 16, 8), 'float32'), ('TENSOR', (64, 64, 3, 3, 8, 8), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 4, 4, 4), 'float32'), ('TENSOR', (18, 128, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 8, 8, 8), 'float32'), ('TENSOR', (64, 64, 3, 3, 8, 8), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 8, 8, 8), 'float32'), ('TENSOR', (64, 64, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 2, 2, 4), 'float32'), ('TENSOR', (12, 64, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 4, 4, 8), 'float32'), ('TENSOR', (32, 32, 3, 3, 8, 8), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 4, 4, 8), 'float32'), ('TENSOR', (32, 64, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 1, 1, 4), 'float32'), ('TENSOR', (12, 64, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 2, 2, 8), 'float32'), ('TENSOR', (32, 32, 3, 3, 8, 8), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 2, 2, 8), 'float32'), ('TENSOR', (32, 32, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 32, 32, 8), 'float32'), ('TENSOR', (2, 128, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 16, 16, 8), 'float32'), ('TENSOR', (3, 256, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 8, 8, 8), 'float32'), ('TENSOR', (3, 64, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 4, 4, 8), 'float32'), ('TENSOR', (3, 64, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 2, 2, 8), 'float32'), ('TENSOR', (2, 32, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 1, 1, 8), 'float32'), ('TENSOR', (2, 32, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (256, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (64, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (128, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (512, 128, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (512, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (128, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (1024, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (1024, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (256, 1024, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (84, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (512, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (2048, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (2048, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (512, 2048, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (126, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 4, 4), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (16, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (24, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (256, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (64, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (128, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (512, 128, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (512, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (128, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (1024, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (1024, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (256, 1024, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (84, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (512, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (2048, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (2048, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (512, 2048, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (126, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 4, 4), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (16, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (24, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (256, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (64, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (128, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (512, 128, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (512, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (128, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (1024, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (1024, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (256, 1024, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (84, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (512, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (2048, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (2048, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (512, 2048, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (126, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 4, 4), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (16, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (24, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 32, 32, 4), 'float32'), ('TENSOR', (12, 256, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 32, 32, 8), 'float32'), ('TENSOR', (128, 32, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 32, 32, 8), 'float32'), ('TENSOR', (32, 32, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 32, 32, 8), 'float32'), ('TENSOR', (32, 128, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 64, 64, 8), 'float32'), ('TENSOR', (32, 64, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 16, 64, 64, 8), 'float32'), ('TENSOR', (64, 16, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 16, 64, 64, 8), 'float32'), ('TENSOR', (16, 16, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 64, 64, 8), 'float32'), ('TENSOR', (16, 64, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 128, 128, 8), 'float32'), ('TENSOR', (16, 32, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 8, 128, 128, 8), 'float32'), ('TENSOR', (32, 8, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 8, 128, 128, 8), 'float32'), ('TENSOR', (8, 8, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 128, 128, 8), 'float32'), ('TENSOR', (8, 32, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 8, 128, 128, 8), 'float32'), ('TENSOR', (8, 8, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1, 512, 512, 3), 'float32'), ('TENSOR', (8, 1, 7, 7, 3, 8), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'NCHW3c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 128, 128, 8), 'float32'), ('TENSOR', (64, 32, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 64, 64, 8), 'float32'), ('TENSOR', (128, 64, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 512, 16, 16, 4), 'float32'), ('TENSOR', (18, 512, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 16, 16, 8), 'float32'), ('TENSOR', (256, 64, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 16, 16, 8), 'float32'), ('TENSOR', (64, 64, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 16, 16, 8), 'float32'), ('TENSOR', (64, 256, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 32, 32, 8), 'float32'), ('TENSOR', (64, 128, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 32, 32, 8), 'float32'), ('TENSOR', (256, 128, 1, 1, 8, 8), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 8, 8, 4), 'float32'), ('TENSOR', (18, 128, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 16, 16, 8), 'float32'), ('TENSOR', (64, 64, 3, 3, 8, 8), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 4, 4, 4), 'float32'), ('TENSOR', (18, 128, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 8, 8, 8), 'float32'), ('TENSOR', (64, 64, 3, 3, 8, 8), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 8, 8, 8), 'float32'), ('TENSOR', (64, 64, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 2, 2, 4), 'float32'), ('TENSOR', (12, 64, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 4, 4, 8), 'float32'), ('TENSOR', (32, 32, 3, 3, 8, 8), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 4, 4, 8), 'float32'), ('TENSOR', (32, 64, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 1, 1, 4), 'float32'), ('TENSOR', (12, 64, 3, 3, 4, 7), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW4c', 'NCHW7c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 2, 2, 8), 'float32'), ('TENSOR', (32, 32, 3, 3, 8, 8), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 2, 2, 8), 'float32'), ('TENSOR', (32, 32, 1, 1, 8, 8), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 128, 32, 32, 8), 'float32'), ('TENSOR', (2, 128, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 256, 16, 16, 8), 'float32'), ('TENSOR', (3, 256, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 8, 8, 8), 'float32'), ('TENSOR', (3, 64, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 4, 4, 8), 'float32'), ('TENSOR', (3, 64, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 2, 2, 8), 'float32'), ('TENSOR', (2, 32, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 1, 1, 8), 'float32'), ('TENSOR', (2, 32, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
 
 
 
diff --git a/docs/_sources/tutorials/frontend/from_caffe2.rst.txt b/docs/_sources/tutorials/frontend/from_caffe2.rst.txt
index ddb9a53..1ea013f 100644
--- a/docs/_sources/tutorials/frontend/from_caffe2.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_caffe2.rst.txt
@@ -112,7 +112,7 @@ Compile the model on Relay
     # target x86 CPU
     target = 'llvm'
     with transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(mod, target, params=params)
+        lib = relay.build(mod, target, params=params)
 
 
 
@@ -133,11 +133,9 @@ The process is no different from other examples.
     # context x86 CPU, use tvm.gpu(0) if you run on GPU
     ctx = tvm.cpu(0)
     # create a runtime executor module
-    m = graph_runtime.create(graph, lib, ctx)
+    m = graph_runtime.GraphModule(lib['default'](ctx))
     # set inputs
     m.set_input(input_name, tvm.nd.array(data.astype('float32')))
-    # set related params
-    m.set_input(**params)
     # execute
     m.run()
     # get outputs
diff --git a/docs/_sources/tutorials/frontend/from_coreml.rst.txt b/docs/_sources/tutorials/frontend/from_coreml.rst.txt
index eb48cb6..93a11fe 100644
--- a/docs/_sources/tutorials/frontend/from_coreml.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_coreml.rst.txt
@@ -111,9 +111,7 @@ We should be familiar with the process right now.
     mod, params = relay.frontend.from_coreml(mlmodel, shape_dict)
 
     with tvm.transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(mod,
-                                         target,
-                                         params=params)
+        lib = relay.build(mod, target, params=params)
 
 
 
@@ -131,10 +129,9 @@ The process is no different from other example
     from tvm.contrib import graph_runtime
     ctx = tvm.cpu(0)
     dtype = 'float32'
-    m = graph_runtime.create(graph, lib, ctx)
+    m = graph_runtime.GraphModule(lib['default'](ctx))
     # set inputs
     m.set_input('image', tvm.nd.array(x.astype(dtype)))
-    m.set_input(**params)
     # execute
     m.run()
     # get outputs
diff --git a/docs/_sources/tutorials/frontend/from_darknet.rst.txt b/docs/_sources/tutorials/frontend/from_darknet.rst.txt
index af3f0c7..e645351 100644
--- a/docs/_sources/tutorials/frontend/from_darknet.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_darknet.rst.txt
@@ -134,10 +134,7 @@ compile the model
     shape = {'data': data.shape}
     print("Compiling the model...")
     with tvm.transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(mod,
-                                         target=target,
-                                         target_host=target_host,
-                                         params=params)
+        lib = relay.build(mod, target=target, target_host=target_host, params=params)
 
     [neth, netw] = shape['data'][2:] # Current image shape is 608x608
 
@@ -190,11 +187,10 @@ The process is no different from other examples.
 
     from tvm.contrib import graph_runtime
 
-    m = graph_runtime.create(graph, lib, ctx)
+    m = graph_runtime.GraphModule(lib['default'](ctx))
 
     # set inputs
     m.set_input('data', tvm.nd.array(data.astype(dtype)))
-    m.set_input(**params)
     # execute
     print("Running the test image...")
 
diff --git a/docs/_sources/tutorials/frontend/from_mxnet.rst.txt b/docs/_sources/tutorials/frontend/from_mxnet.rst.txt
index b24a761..efb8f3b 100644
--- a/docs/_sources/tutorials/frontend/from_mxnet.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_mxnet.rst.txt
@@ -125,7 +125,7 @@ now compile the graph
 
     target = 'cuda'
     with tvm.transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(func, target, params=params)
+        lib = relay.build(func, target, params=params)
 
 
 
@@ -143,10 +143,9 @@ Now, we would like to reproduce the same forward computation using TVM.
     from tvm.contrib import graph_runtime
     ctx = tvm.gpu(0)
     dtype = 'float32'
-    m = graph_runtime.create(graph, lib, ctx)
+    m = graph_runtime.GraphModule(lib['default'](ctx))
     # set inputs
     m.set_input('data', tvm.nd.array(x.astype(dtype)))
-    m.set_input(**params)
     # execute
     m.run()
     # get outputs
diff --git a/docs/_sources/tutorials/frontend/from_onnx.rst.txt b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
index c6c05d6..da49da2 100644
--- a/docs/_sources/tutorials/frontend/from_onnx.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
@@ -125,7 +125,7 @@ Compile the model with relay
 
  .. code-block:: none
 
-    /workspace/docs/../python/tvm/relay/frontend/onnx.py:2287: UserWarning: Mismatched attribute type in ' : kernel_shape'
+    /workspace/docs/../python/tvm/relay/frontend/onnx.py:2409: UserWarning: Mismatched attribute type in ' : kernel_shape'
 
     ==> Context: Bad node spec: input: "1" input: "2" output: "11" op_type: "Conv" attribute { name: "kernel_shape" ints: 5 ints: 5 } attribute { name: "strides" ints: 1 ints: 1 } attribute { name: "pads" ints: 2 ints: 2 ints: 2 ints: 2 } attribute { name: "dilations" ints: 1 ints: 1 } attribute { name: "group" i: 1 }
       warnings.warn(str(e))
@@ -151,10 +151,10 @@ Execute on TVM
 
  .. code-block:: none
 
-
    ...47%, 0.01 MB, 47 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 94 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 141 KB/s, 0 seconds passed
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 224, 224), 'float32'), ('TENSOR', (9, 32, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 224, 224), 'float32'), ('TENSOR', (32, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1, 224, 224), 'float32'), ('TENSOR', (64, 1, 5, 5), 'float32'), (1, 1), (2, 2, 2, 2), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+
    ...47%, 0.01 MB, 823 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 1522 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 2253 KB/s, 0 seconds passed
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 224, 224), 'float32'), ('TENSOR', (9, 32, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 224, 224), 'float32'), ('TENSOR', (32, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1, 224, 224), 'float32'), ('TENSOR', (64, 1, 5, 5), 'float32'), (1, 1), (2, 2, 2, 2), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
 
 
 
diff --git a/docs/_sources/tutorials/frontend/from_pytorch.rst.txt b/docs/_sources/tutorials/frontend/from_pytorch.rst.txt
index dbd520b..0b360f6 100644
--- a/docs/_sources/tutorials/frontend/from_pytorch.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_pytorch.rst.txt
@@ -150,10 +150,7 @@ Compile the graph to llvm target with given input specification.
     target_host = 'llvm'
     ctx = tvm.cpu(0)
     with tvm.transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(mod,
-                                         target=target,
-                                         target_host=target_host,
-                                         params=params)
+        lib = relay.build(mod, target=target, target_host=target_host, params=params)
 
 
 
@@ -170,10 +167,9 @@ Now we can try deploying the compiled model on target.
 
     from tvm.contrib import graph_runtime
     dtype = 'float32'
-    m = graph_runtime.create(graph, lib, ctx)
+    m = graph_runtime.GraphModule(lib['default'](ctx))
     # Set inputs
     m.set_input(input_name, tvm.nd.array(img.astype(dtype)))
-    m.set_input(**params)
     # Execute
     m.run()
     # Get outputs
diff --git a/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
index 64ef6e7..5ffa6a4 100644
--- a/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
@@ -219,10 +219,7 @@ Results:
 
 
     with tvm.transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(mod,
-                                         target=target,
-                                         target_host=target_host,
-                                         params=params)
+        lib = relay.build(mod, target=target, target_host=target_host, params=params)
 
 
 
@@ -240,10 +237,9 @@ Now we can try deploying the compiled model on target.
 
     from tvm.contrib import graph_runtime
     dtype = 'uint8'
-    m = graph_runtime.create(graph, lib, ctx)
+    m = graph_runtime.GraphModule(lib['default'](ctx))
     # set inputs
     m.set_input('DecodeJpeg/contents', tvm.nd.array(x.astype(dtype)))
-    m.set_input(**params)
     # execute
     m.run()
     # get outputs
diff --git a/docs/_sources/tutorials/frontend/from_tflite.rst.txt b/docs/_sources/tutorials/frontend/from_tflite.rst.txt
index a23bc38..6a003d6 100644
--- a/docs/_sources/tutorials/frontend/from_tflite.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_tflite.rst.txt
@@ -178,7 +178,7 @@ Compile the model with relay
     # Build the module against to x86 CPU
     target = "llvm"
     with transform.PassContext(opt_level=3):
-        graph, lib, params = relay.build(mod, target, params=params)
+        lib = relay.build(mod, target, params=params)
 
 
 
@@ -197,14 +197,11 @@ Execute on TVM
     from tvm.contrib import graph_runtime as runtime
 
     # Create a runtime executor module
-    module = runtime.create(graph, lib, tvm.cpu())
+    module = runtime.GraphModule(lib['default'](tvm.cpu()))
 
     # Feed input data
     module.set_input(input_tensor, tvm.nd.array(image_data))
 
-    # Feed related params
-    module.set_input(**params)
-
     # Run
     module.run()
 
diff --git a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
index 051dbd5..c79d117 100644
--- a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,23 +5,23 @@
 
 Computation times
 =================
-**05:27.339** total execution time for **tutorials_frontend** files:
+**05:40.551** total execution time for **tutorials_frontend** files:
 
-- **02:04.482**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
-- **00:29.629**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
-- **00:29.048**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized.py` (``deploy_prequantized.py``)
-- **00:26.466**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
-- **00:20.677**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
-- **00:18.378**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
-- **00:16.755**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
-- **00:10.554**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
-- **00:09.594**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
-- **00:08.537**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
-- **00:06.934**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
-- **00:06.808**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
-- **00:06.118**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
-- **00:04.935**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
-- **00:04.635**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
-- **00:02.086**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
-- **00:01.550**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
-- **00:00.152**: :ref:`sphx_glr_tutorials_frontend_deploy_sparse.py` (``deploy_sparse.py``)
+- **02:06.650**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
+- **00:31.429**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized.py` (``deploy_prequantized.py``)
+- **00:30.305**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **00:27.478**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
+- **00:21.411**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
+- **00:19.452**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
+- **00:17.016**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
+- **00:11.026**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
+- **00:10.302**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:09.392**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:09.021**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
+- **00:07.264**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
+- **00:06.329**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
+- **00:05.102**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
+- **00:04.732**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
+- **00:02.053**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
+- **00:01.433**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
+- **00:00.157**: :ref:`sphx_glr_tutorials_frontend_deploy_sparse.py` (``deploy_sparse.py``)
diff --git a/docs/_sources/tutorials/frontend/using_external_lib.rst.txt b/docs/_sources/tutorials/frontend/using_external_lib.rst.txt
index 1cd717a..6cf0bff 100644
--- a/docs/_sources/tutorials/frontend/using_external_lib.rst.txt
+++ b/docs/_sources/tutorials/frontend/using_external_lib.rst.txt
@@ -84,13 +84,11 @@ By setting the logging level to DEBUG, the result of Relay graph compilation wil
     logging.basicConfig(level=logging.DEBUG) # to dump TVM IR after fusion
 
     target = "cuda"
-    graph, lib, params = relay.build_module.build(
-        net, target, params=params)
+    lib = relay.build_module.build(net, target, params=params)
 
     ctx = tvm.context(target, 0)
     data = np.random.uniform(-1, 1, size=data_shape).astype("float32")
-    module = runtime.create(graph, lib, ctx)
-    module.set_input(**params)
+    module = runtime.GraphModule(lib['default'](ctx))
     module.set_input("data", data)
     module.run()
     out_shape = (batch_size, out_channels, 224, 224)
@@ -113,7 +111,7 @@ By setting the logging level to DEBUG, the result of Relay graph compilation wil
     INFO:compile_engine:Use implementation injective.cpu for op multiply
     INFO:compile_engine:Use implementation injective.cpu for op negative
     INFO:compile_engine:Use implementation injective.cpu for op add
-    WARNING:autotvm:Cannot find config for target=cuda, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 3, 224, 224), 'float32'), ('TENSOR', (16, 3, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    WARNING:autotvm:Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 3, 224, 224), 'float32'), ('TENSOR', (16, 3, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     INFO:compile_engine:Use implementation conv2d_nchw.cuda for op nn.conv2d
     INFO:compile_engine:Use implementation injective.cuda for op multiply
     INFO:compile_engine:Use implementation injective.cuda for op add
@@ -534,13 +532,11 @@ To do that, all we need to do is to append the option " -libs=cudnn" to the targ
 
     net, params = testing.create_workload(simple_net)
     target = "cuda -libs=cudnn" # use cudnn for convolution
-    graph, lib, params = relay.build_module.build(
-            net, target, params=params)
+    lib = relay.build_module.build(net, target, params=params)
 
     ctx = tvm.context(target, 0)
     data = np.random.uniform(-1, 1, size=data_shape).astype("float32")
-    module = runtime.create(graph, lib, ctx)
-    module.set_input(**params)
+    module = runtime.GraphModule(lib['default'](ctx))
     module.set_input("data", data)
     module.run()
     out_shape = (batch_size, out_channels, 224, 224)
diff --git a/docs/_sources/tutorials/index.rst.txt b/docs/_sources/tutorials/index.rst.txt
index ec1dc46..d77c32c 100644
--- a/docs/_sources/tutorials/index.rst.txt
+++ b/docs/_sources/tutorials/index.rst.txt
@@ -246,13 +246,13 @@ Compile Deep Learning Models
 
 .. raw:: html
 
-    <div class="sphx-glr-thumbcontainer" tooltip="This is an example of using Relay to compile a ResNet model and deploy it on Raspberry Pi. ">
+    <div class="sphx-glr-thumbcontainer" tooltip="This article is an introductory tutorial to deploy PyTorch models with Relay.">
 
 .. only:: html
 
-    .. figure:: /tutorials/frontend/images/thumb/sphx_glr_deploy_model_on_rasp_thumb.png
+    .. figure:: /tutorials/frontend/images/thumb/sphx_glr_from_pytorch_thumb.png
 
-        :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py`
+        :ref:`sphx_glr_tutorials_frontend_from_pytorch.py`
 
 .. raw:: html
 
@@ -262,17 +262,17 @@ Compile Deep Learning Models
 .. toctree::
    :hidden:
 
-   /tutorials/frontend/deploy_model_on_rasp
+   /tutorials/frontend/from_pytorch
 
 .. raw:: html
 
-    <div class="sphx-glr-thumbcontainer" tooltip="This article is an introductory tutorial to deploy PyTorch models with Relay.">
+    <div class="sphx-glr-thumbcontainer" tooltip="This is an example of using Relay to compile a ResNet model and deploy it on Raspberry Pi. ">
 
 .. only:: html
 
-    .. figure:: /tutorials/frontend/images/thumb/sphx_glr_from_pytorch_thumb.png
+    .. figure:: /tutorials/frontend/images/thumb/sphx_glr_deploy_model_on_rasp_thumb.png
 
-        :ref:`sphx_glr_tutorials_frontend_from_pytorch.py`
+        :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py`
 
 .. raw:: html
 
@@ -282,7 +282,7 @@ Compile Deep Learning Models
 .. toctree::
    :hidden:
 
-   /tutorials/frontend/from_pytorch
+   /tutorials/frontend/deploy_model_on_rasp
 
 .. raw:: html
 
@@ -764,13 +764,13 @@ Auto tuning
 
 .. raw:: html
 
-    <div class="sphx-glr-thumbcontainer" tooltip="This is a tutorial about how to tune convolution neural network for x86 CPU. ">
+    <div class="sphx-glr-thumbcontainer" tooltip="Auto-tuning for specific devices and workloads is critical for getting the best performance. Th...">
 
 .. only:: html
 
-    .. figure:: /tutorials/autotvm/images/thumb/sphx_glr_tune_relay_x86_thumb.png
+    .. figure:: /tutorials/autotvm/images/thumb/sphx_glr_tune_relay_cuda_thumb.png
 
-        :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py`
+        :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py`
 
 .. raw:: html
 
@@ -780,17 +780,17 @@ Auto tuning
 .. toctree::
    :hidden:
 
-   /tutorials/autotvm/tune_relay_x86
+   /tutorials/autotvm/tune_relay_cuda
 
 .. raw:: html
 
-    <div class="sphx-glr-thumbcontainer" tooltip="Auto-tuning for specific devices and workloads is critical for getting the best performance. Th...">
+    <div class="sphx-glr-thumbcontainer" tooltip="This is a tutorial about how to tune convolution neural network for x86 CPU. ">
 
 .. only:: html
 
-    .. figure:: /tutorials/autotvm/images/thumb/sphx_glr_tune_relay_cuda_thumb.png
+    .. figure:: /tutorials/autotvm/images/thumb/sphx_glr_tune_relay_x86_thumb.png
 
-        :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py`
+        :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py`
 
 .. raw:: html
 
@@ -800,7 +800,7 @@ Auto tuning
 .. toctree::
    :hidden:
 
-   /tutorials/autotvm/tune_relay_cuda
+   /tutorials/autotvm/tune_relay_x86
 
 .. raw:: html
 
diff --git a/docs/_sources/tutorials/language/schedule_primitives.rst.txt b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
index 52f46b2..d677ac1 100644
--- a/docs/_sources/tutorials/language/schedule_primitives.rst.txt
+++ b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
@@ -449,13 +449,13 @@ of computation of `C`.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: handle, float32, [m: int32], [stride: int32], type="auto"),
-                 B: Buffer(B_2: handle, float32, [m], [stride_1: int32], type="auto"),
+      buffers = {B: Buffer(B_2: handle, float32, [m: int32], [stride: int32], type="auto"),
+                 C: Buffer(C_2: handle, float32, [m], [stride_1: int32], type="auto"),
                  A: Buffer(A_2: handle, float32, [m], [stride_2: int32], type="auto")}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i: int32, 0, m) {
-        B_2[(i*stride_1)] = ((float32*)A_2[(i*stride_2)] + 1f32)
-        C_2[(i*stride)] = ((float32*)B_2[(i*stride_1)]*2f32)
+        B_2[(i*stride)] = ((float32*)A_2[(i*stride_2)] + 1f32)
+        C_2[(i*stride_1)] = ((float32*)B_2[(i*stride)]*2f32)
       }
     }
 
@@ -492,12 +492,12 @@ tensor is required.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: handle, float32, [m: int32], [stride: int32], type="auto"),
-                 C: Buffer(C_2: handle, float32, [m], [stride_1: int32], type="auto"),
+      buffers = {C: Buffer(C_2: handle, float32, [m: int32], [stride: int32], type="auto"),
+                 B: Buffer(B_2: handle, float32, [m], [stride_1: int32], type="auto"),
                  A: Buffer(A_2: handle, float32, [m], [stride_2: int32], type="auto")}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i: int32, 0, m) {
-        C_2[(i*stride_1)] = (((float32*)A_2[(i*stride_2)] + 1f32)*2f32)
+        C_2[(i*stride)] = (((float32*)A_2[(i*stride_2)] + 1f32)*2f32)
       }
     }
 
diff --git a/docs/_sources/tutorials/language/sg_execution_times.rst.txt b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
index faff215..0457fd1 100644
--- a/docs/_sources/tutorials/language/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
@@ -5,13 +5,13 @@
 
 Computation times
 =================
-**00:03.276** total execution time for **tutorials_language** files:
+**00:03.541** total execution time for **tutorials_language** files:
 
-- **00:01.150**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
-- **00:00.555**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
-- **00:00.450**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
-- **00:00.413**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
-- **00:00.226**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
-- **00:00.165**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
-- **00:00.164**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
+- **00:01.258**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
+- **00:00.591**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
+- **00:00.489**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
+- **00:00.452**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
+- **00:00.247**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
+- **00:00.180**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.170**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
 - **00:00.154**: :ref:`sphx_glr_tutorials_language_tuple_inputs.py` (``tuple_inputs.py``)
diff --git a/docs/_sources/tutorials/language/tensorize.rst.txt b/docs/_sources/tutorials/language/tensorize.rst.txt
index ed11121..d7bdf99 100644
--- a/docs/_sources/tutorials/language/tensorize.rst.txt
+++ b/docs/_sources/tutorials/language/tensorize.rst.txt
@@ -236,8 +236,8 @@ such placeholder can be put to let TVM automatically bind the inferred value for
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: handle, float32, [1024, 512], []),
-                 B: Buffer(B_2: handle, float32, [512, 64], []),
+      buffers = {B: Buffer(B_2: handle, float32, [512, 64], []),
+                 C: Buffer(C_2: handle, float32, [1024, 512], []),
                  A: Buffer(A_2: handle, float32, [1024, 64], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i: int32, 0, 1024) {
@@ -310,8 +310,8 @@ The importing needs to happen before the tensorized GEMV being executed.
                  B: Buffer(B_2: handle, float32, [512, 64], []),
                  A: Buffer(A_2: handle, float32, [1024, 64], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
-      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpmel936f0/input0.cc'
-    source_filename = "/tmp/tmpmel936f0/input0.cc"
+      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpu5z0lc8e/input0.cc'
+    source_filename = "/tmp/tmpu5z0lc8e/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/tutorials/language/tuple_inputs.rst.txt b/docs/_sources/tutorials/language/tuple_inputs.rst.txt
index 0ed5d9c..b74c9b6 100644
--- a/docs/_sources/tutorials/language/tuple_inputs.rst.txt
+++ b/docs/_sources/tutorials/language/tuple_inputs.rst.txt
@@ -64,15 +64,15 @@ together in the next schedule procedure.
 
     primfn(A0_1: handle, A1_1: handle, B.v0_1: handle, B.v1_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B.v0: Buffer(B.v0_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 A1: Buffer(A1_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
-                 B.v1: Buffer(B.v1_2: handle, float32, [m, n], [stride_4: int32, stride_5: int32], type="auto"),
+      buffers = {B.v1: Buffer(B.v1_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 B.v0: Buffer(B.v0_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+                 A1: Buffer(A1_2: handle, float32, [m, n], [stride_4: int32, stride_5: int32], type="auto"),
                  A0: Buffer(A0_2: handle, float32, [m, n], [stride_6: int32, stride_7: int32], type="auto")}
       buffer_map = {A0_1: A0, A1_1: A1, B.v0_1: B.v0, B.v1_1: B.v1} {
       for (i: int32, 0, m) {
         for (j: int32, 0, n) {
-          B.v0_2[((i*stride) + (j*stride_1))] = ((float32*)A0_2[((i*stride_6) + (j*stride_7))] + 2f32)
-          B.v1_2[((i*stride_4) + (j*stride_5))] = ((float32*)A1_2[((i*stride_2) + (j*stride_3))]*3f32)
+          B.v0_2[((i*stride_2) + (j*stride_3))] = ((float32*)A0_2[((i*stride_6) + (j*stride_7))] + 2f32)
+          B.v1_2[((i*stride) + (j*stride_1))] = ((float32*)A1_2[((i*stride_4) + (j*stride_5))]*3f32)
         }
       }
     }
@@ -133,17 +133,17 @@ with :py:func:`te.comm_reducer` as below:
 
     primfn(idx_1: handle, val_1: handle, T.v0_1: handle, T.v1_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {T.v1: Buffer(T.v1_2: handle, int32, [m: int32], [stride: int32], type="auto"),
-                 T.v0: Buffer(T.v0_2: handle, int32, [m], [stride_1: int32], type="auto"),
-                 val: Buffer(val_2: handle, int32, [m, n: int32], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {T.v0: Buffer(T.v0_2: handle, int32, [m: int32], [stride: int32], type="auto"),
+                 val: Buffer(val_2: handle, int32, [m, n: int32], [stride_1: int32, stride_2: int32], type="auto"),
+                 T.v1: Buffer(T.v1_2: handle, int32, [m], [stride_3: int32], type="auto"),
                  idx: Buffer(idx_2: handle, int32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {idx_1: idx, val_1: val, T.v0_1: T.v0, T.v1_1: T.v1} {
       for (i: int32, 0, m) {
-        T.v0_2[(i*stride_1)] = -1
-        T.v1_2[(i*stride)] = -2147483648
+        T.v0_2[(i*stride)] = -1
+        T.v1_2[(i*stride_3)] = -2147483648
         for (k: int32, 0, n) {
-          T.v0_2[(i*stride_1)] = @tir.if_then_else(((int32*)val_2[((i*stride_2) + (k*stride_3))] <= (int32*)T.v1_2[(i*stride)]), (int32*)T.v0_2[(i*stride_1)], (int32*)idx_2[((i*stride_4) + (k*stride_5))], dtype=int32)
-          T.v1_2[(i*stride)] = @tir.if_then_else(((int32*)val_2[((i*stride_2) + (k*stride_3))] <= (int32*)T.v1_2[(i*stride)]), (int32*)T.v1_2[(i*stride)], (int32*)val_2[((i*stride_2) + (k*stride_3))], dtype=int32)
+          T.v0_2[(i*stride)] = @tir.if_then_else(((int32*)val_2[((i*stride_1) + (k*stride_2))] <= (int32*)T.v1_2[(i*stride_3)]), (int32*)T.v0_2[(i*stride)], (int32*)idx_2[((i*stride_4) + (k*stride_5))], dtype=int32)
+          T.v1_2[(i*stride_3)] = @tir.if_then_else(((int32*)val_2[((i*stride_1) + (k*stride_2))] <= (int32*)T.v1_2[(i*stride_3)]), (int32*)T.v1_2[(i*stride_3)], (int32*)val_2[((i*stride_1) + (k*stride_2))], dtype=int32)
         }
       }
     }
@@ -191,8 +191,8 @@ in terms of operation.
 
     primfn(A0_1: handle, A1_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 A1: Buffer(A1_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {A1: Buffer(A1_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 C: Buffer(C_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
                  A0: Buffer(A0_2: handle, float32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {A0_1: A0, A1_1: A1, C_1: C} {
       attr [B.v0: handle] "storage_scope" = "global";
@@ -205,7 +205,7 @@ in terms of operation.
           B.v1[j] = ((float32*)A0_2[((i*stride_4) + (j*stride_5))]*3f32)
         }
         for (j_1: int32, 0, n) {
-          C_2[((i*stride) + (j_1*stride_1))] = ((float32*)A1_2[((i*stride_2) + (j_1*stride_3))] + (float32*)B.v0[j_1])
+          C_2[((i*stride_2) + (j_1*stride_3))] = ((float32*)A1_2[((i*stride) + (j_1*stride_1))] + (float32*)B.v0[j_1])
         }
       }
     }
diff --git a/docs/_sources/tutorials/micro/sg_execution_times.rst.txt b/docs/_sources/tutorials/micro/sg_execution_times.rst.txt
index b7fde98..0252f31 100644
--- a/docs/_sources/tutorials/micro/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/micro/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:00.155** total execution time for **tutorials_micro** files:
+**00:00.158** total execution time for **tutorials_micro** files:
 
-- **00:00.155**: :ref:`sphx_glr_tutorials_micro_micro_tflite.py` (``micro_tflite.py``)
+- **00:00.158**: :ref:`sphx_glr_tutorials_micro_micro_tflite.py` (``micro_tflite.py``)
diff --git a/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
index e04350e..b886529 100644
--- a/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
@@ -293,7 +293,7 @@ latency of convolution.
 
  .. code-block:: none
 
-    Convolution: 19.549104 ms
+    Convolution: 19.571479 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
index 795f5c0..d4dee5d 100644
--- a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
@@ -563,7 +563,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 6.305341 ms
+    conv2d with tensor core: 6.307450 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
index 6d12cd1..030310a 100644
--- a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
@@ -118,8 +118,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 
  .. code-block:: none
 
-    Numpy running time: 0.007645
-    Baseline: 5.973757
+    Numpy running time: 0.006930
+    Baseline: 5.950333
 
 
 
@@ -206,7 +206,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.109398
+    Opt1: 0.127129
 
 
 
@@ -300,7 +300,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.118614
+    Opt2: 0.141108
 
 
 
@@ -389,7 +389,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.062121
+    Opt3: 0.070495
 
 
 
@@ -413,8 +413,8 @@ Here is the generated IR after loop permutation.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: handle, float32, [1024, 1024], []),
-                 B: Buffer(B_2: handle, float32, [1024, 1024], []),
+      buffers = {B: Buffer(B_2: handle, float32, [1024, 1024], []),
+                 C: Buffer(C_2: handle, float32, [1024, 1024], []),
                  A: Buffer(A_2: handle, float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (x.outer: int32, 0, 32) {
@@ -497,7 +497,7 @@ the corresponding value from the packed array.
 
  .. code-block:: none
 
-    Opt4: 0.063075
+    Opt4: 0.068150
 
 
 
@@ -521,8 +521,8 @@ Here is the generated IR after array packing.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: handle, float32, [1024, 1024], []),
-                 C: Buffer(C_2: handle, float32, [1024, 1024], []),
+      buffers = {C: Buffer(C_2: handle, float32, [1024, 1024], []),
+                 B: Buffer(B_2: handle, float32, [1024, 1024], []),
                  A: Buffer(A_2: handle, float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [packedB: handle] "storage_scope" = "global";
@@ -607,7 +607,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.065756
+    Opt5: 0.061840
 
 
 
@@ -723,7 +723,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
 
  .. code-block:: none
 
-    Opt6: 0.016878
+    Opt6: 0.017352
 
 
 
@@ -747,8 +747,8 @@ Here is the generated IR after parallelization.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: handle, float32, [1024, 1024], []),
-                 B: Buffer(B_2: handle, float32, [1024, 1024], []),
+      buffers = {B: Buffer(B_2: handle, float32, [1024, 1024], []),
+                 C: Buffer(C_2: handle, float32, [1024, 1024], []),
                  A: Buffer(A_2: handle, float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [packedB: handle] "storage_scope" = "global";
diff --git a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
index 8245160..ad44083 100644
--- a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,9 +5,9 @@
 
 Computation times
 =================
-**00:27.059** total execution time for **tutorials_optimize** files:
+**00:27.636** total execution time for **tutorials_optimize** files:
 
-- **00:25.353**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
-- **00:00.888**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
-- **00:00.664**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
-- **00:00.155**: :ref:`sphx_glr_tutorials_optimize_opt_matmul_auto_tensorcore.py` (``opt_matmul_auto_tensorcore.py``)
+- **00:25.842**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
+- **00:00.962**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:00.669**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:00.163**: :ref:`sphx_glr_tutorials_optimize_opt_matmul_auto_tensorcore.py` (``opt_matmul_auto_tensorcore.py``)
diff --git a/docs/_sources/tutorials/relay_quick_start.rst.txt b/docs/_sources/tutorials/relay_quick_start.rst.txt
index 310518f..c3d79b7 100644
--- a/docs/_sources/tutorials/relay_quick_start.rst.txt
+++ b/docs/_sources/tutorials/relay_quick_start.rst.txt
@@ -223,8 +223,8 @@ in this example. Then the machine code will be generated as the module library.
 
  .. code-block:: none
 
-
    ...1%, 0.01 MB, 37 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 75 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 113 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 150 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 187 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 224 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 261 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 298 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 335 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 372 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 409 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 445 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 481 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 518 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 554 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 590 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 626 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 662 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 698 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 734 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 770 KB/s, 0 seconds pa
 ssed
    ...43%, 0.17 MB, 804 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 840 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 876 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 912 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 948 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 981 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 1017 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 1052 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 1087 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 1121 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 1157 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 1192 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 1228 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 1262 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 1297 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 1332 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 1367 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 1399 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 1434 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 1469 KB/s, 0 seconds passed
    ...83%, 0.33 M
 B, 1504 KB/s, 0 seconds passed
    ...85%, 0.34 MB, 1539 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 1575 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 1606 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 1641 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 1676 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 1711 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 1745 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 1780 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 1814 KB/s, 0 seconds passed
-    Cannot find config for target=cuda -model=unknown, workload=('dense_small_batch.cuda', ('TENSOR', (1, 512), 'float32'), ('TENSOR', (1000, 512), 'float32'), None, 'float32'). A fallback configuration is used, which may bring great performance regression.
+
    ...1%, 0.01 MB, 21 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 42 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 63 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 84 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 105 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 125 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 146 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 167 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 188 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 208 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 229 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 250 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 269 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 289 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 310 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 331 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 351 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 372 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 392 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 412 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 433 KB/s, 0 seconds pass
 ed
    ...43%, 0.17 MB, 453 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 473 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 493 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 513 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 533 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 553 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 573 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 592 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 612 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 632 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 652 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 672 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 692 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 711 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 731 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 751 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 770 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 790 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 810 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 828 KB/s, 0 seconds passed
    ...83%, 0.33 MB, 848 KB/s, 0 s
 econds passed
    ...85%, 0.34 MB, 867 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 887 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 907 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 926 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 945 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 965 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 983 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 1003 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 1022 KB/s, 0 seconds passed
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -model=unknown -thread_warp_size=32, workload=('dense_small_batch.cuda', ('TENSOR', (1, 512), 'float32'), ('TENSOR', (1000, 512), 'float32'), None, 'float32'). A fallback configuration is used, which may bring great performance regression.
 
 
 
diff --git a/docs/_sources/tutorials/sg_execution_times.rst.txt b/docs/_sources/tutorials/sg_execution_times.rst.txt
index c8197f8..b7ceee9 100644
--- a/docs/_sources/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/sg_execution_times.rst.txt
@@ -5,8 +5,8 @@
 
 Computation times
 =================
-**00:09.684** total execution time for **tutorials** files:
+**00:10.247** total execution time for **tutorials** files:
 
-- **00:09.247**: :ref:`sphx_glr_tutorials_relay_quick_start.py` (``relay_quick_start.py``)
-- **00:00.309**: :ref:`sphx_glr_tutorials_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
-- **00:00.129**: :ref:`sphx_glr_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
+- **00:09.779**: :ref:`sphx_glr_tutorials_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:00.336**: :ref:`sphx_glr_tutorials_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:00.132**: :ref:`sphx_glr_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
diff --git a/docs/_sources/tutorials/topi/intro_topi.rst.txt b/docs/_sources/tutorials/topi/intro_topi.rst.txt
index 1229000..4023bd1 100644
--- a/docs/_sources/tutorials/topi/intro_topi.rst.txt
+++ b/docs/_sources/tutorials/topi/intro_topi.rst.txt
@@ -230,7 +230,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, 0x1230f5830), stage(b, 0x14e175730), stage(T_add, 0x11b48e260), stage(T_multiply, 0xa6350d70), stage(T_elemwise_sum, 0x12868aef0), stage(T_divide, 0x14ac01630), stage(T_divide_red.rf, 0xc7c0ebb0), stage(T_divide_red, 0x128535490)]
+    [stage(a, 0x17c5dfaf0), stage(b, 0x1599bdfe0), stage(T_add, 0x18115f990), stage(T_multiply, 0x156b5edc0), stage(T_elemwise_sum, 0x1599bd5a0), stage(T_divide, 0x16551b0e0), stage(T_divide_red.rf, 0x1811612f0), stage(T_divide_red, 0x15a442880)]
 
 
 
diff --git a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
index c861977..e8da589 100644
--- a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:00.491** total execution time for **tutorials_topi** files:
+**00:00.507** total execution time for **tutorials_topi** files:
 
-- **00:00.491**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
+- **00:00.507**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
diff --git a/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
index e671bc9..836b040 100644
--- a/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:03.730** total execution time for **vta_tutorials_autotvm** files:
+**00:03.715** total execution time for **vta_tutorials_autotvm** files:
 
-- **00:03.730**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:03.715**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
diff --git a/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt b/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
index 847eab9..2e9c5d8 100644
--- a/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
+++ b/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
@@ -481,7 +481,7 @@ Finally, we launch tuning jobs and evaluate the end-to-end performance.
  .. code-block:: none
 
     Extract tasks...
-
    ...1%, 0.01 MB, 37 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 74 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 111 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 148 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 184 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 221 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 257 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 294 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 329 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 366 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 402 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 438 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 474 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 509 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 545 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 580 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 616 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 651 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 687 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 722 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 757 KB/s, 0 seconds passed
 
    ...23%, 0.17 MB, 792 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 827 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 863 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 897 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 932 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 967 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 1002 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 1037 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 1071 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 1106 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 1139 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 1174 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 1208 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 1243 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 1278 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 1313 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 1344 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 1379 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 1413 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 1447 KB/s, 0 seconds passed
    ...45%, 0.33 MB, 1
 479 KB/s, 0 seconds passed
    ...46%, 0.34 MB, 1514 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 1548 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 1583 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 1616 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 1650 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 1682 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 1716 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 1749 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 1783 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 1817 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 1851 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 1882 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 1917 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 1949 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 1983 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 2015 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 2049 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 2080 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 2113 KB/s, 0 seconds passed
    ...67%, 0.48 MB, 2146 KB/s, 0 secon
 ds passed
    ...68%, 0.49 MB, 2180 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 2211 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 2244 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 2272 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 2305 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 2338 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 2372 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 2405 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 2438 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 2468 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 2502 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 2535 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 2568 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 2601 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 2634 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 2662 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 2695 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 2727 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 2760 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 2793 KB/s, 0 seconds passed
    ...
 90%, 0.65 MB, 2826 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 2858 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 2891 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 2920 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 2953 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 2986 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 3018 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 3049 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 3081 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 3112 KB/s, 0 seconds passed
+
    ...1%, 0.01 MB, 39 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 78 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 117 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 156 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 195 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 233 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 271 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 310 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 348 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 386 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 423 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 462 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 499 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 537 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 574 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 612 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 649 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 687 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 724 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 761 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 798 KB/s, 0 seconds passed
 
    ...23%, 0.17 MB, 835 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 872 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 909 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 945 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 982 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 1018 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 1055 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 1091 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 1127 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 1164 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 1199 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 1236 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 1272 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 1309 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 1342 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 1379 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 1415 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 1452 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 1485 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 1521 KB/s, 0 seconds passed
    ...45%, 0.33 MB, 
 1557 KB/s, 0 seconds passed
    ...46%, 0.34 MB, 1594 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 1629 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 1665 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 1697 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 1733 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 1768 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 1804 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 1839 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 1875 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 1907 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 1942 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 1978 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 2013 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 2049 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 2085 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 2117 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 2153 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 2187 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 2222 KB/s, 0 seconds passed
    ...67%, 0.48 MB, 2257 KB/s, 0 seco
 nds passed
    ...68%, 0.49 MB, 2292 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 2323 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 2358 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 2393 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 2428 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 2462 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 2497 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 2530 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 2565 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 2599 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 2634 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 2667 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 2702 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 2733 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 2767 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 2797 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 2832 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 2866 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 2900 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 2935 KB/s, 0 seconds passed
    ..
 .90%, 0.65 MB, 2969 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 3003 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 3038 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 3038 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 3071 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 3105 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 3139 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 3168 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 3202 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 3233 KB/s, 0 seconds passed
     Extracted 10 conv2d tasks:
     (1, 14, 14, 256, 512, 1, 1, 0, 0, 2, 2)
     (1, 28, 28, 128, 256, 1, 1, 0, 0, 2, 2)
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
index dca7412..c4e5551 100644
--- a/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -243,8 +243,8 @@ The compilation steps are:
 
  .. code-block:: none
 
-
    ...12%, 0.01 MB, 41 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 82 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 123 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 164 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 205 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 245 KB/s, 0 seconds passed
    ...89%, 0.05 MB, 286 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 326 KB/s, 0 seconds passed
-    resnet18_v1 inference graph built in 3.97s!
+
    ...12%, 0.01 MB, 47 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 94 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 141 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 188 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 235 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 281 KB/s, 0 seconds passed
    ...89%, 0.05 MB, 328 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 374 KB/s, 0 seconds passed
+    resnet18_v1 inference graph built in 4.12s!
 
 
 
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
index e995f53..def0002 100644
--- a/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -315,7 +315,7 @@ The compilation steps are:
 
  .. code-block:: none
 
-    yolov3-tiny inference graph built in 5.40s!
+    yolov3-tiny inference graph built in 5.07s!
 
 
 
diff --git a/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
index f4d2a0f..a378d70 100644
--- a/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:53.024** total execution time for **vta_tutorials_frontend** files:
+**00:52.876** total execution time for **vta_tutorials_frontend** files:
 
-- **00:31.870**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
-- **00:21.153**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
+- **00:31.536**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
+- **00:21.340**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
diff --git a/docs/_sources/vta/tutorials/matrix_multiply.rst.txt b/docs/_sources/vta/tutorials/matrix_multiply.rst.txt
index 565e62e..cd0584a 100644
--- a/docs/_sources/vta/tutorials/matrix_multiply.rst.txt
+++ b/docs/_sources/vta/tutorials/matrix_multiply.rst.txt
@@ -304,8 +304,8 @@ After we construct the schedule, by default the schedule computes
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: handle, int8, [16, 16, 16, 16], []),
-                 C: Buffer(C_2: handle, int8, [1, 16, 1, 16], []),
+      buffers = {C: Buffer(C_2: handle, int8, [1, 16, 1, 16], []),
+                 B: Buffer(B_2: handle, int8, [16, 16, 16, 16], []),
                  A: Buffer(A_2: handle, int8, [1, 16, 1, 16], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [A_buf: handle] "storage_scope" = "global";
diff --git a/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt b/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
index 808f397..ce0e246 100644
--- a/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
@@ -257,8 +257,8 @@ Those include:
 
     primfn(data_1: handle, kernel_1: handle, res_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {res: Buffer(res_2: handle, int8, [1, 16, 14, 14, 1, 16], []),
-                 kernel: Buffer(kernel_2: handle, int8, [16, 16, 3, 3, 16, 16], []),
+      buffers = {kernel: Buffer(kernel_2: handle, int8, [16, 16, 3, 3, 16, 16], []),
+                 res: Buffer(res_2: handle, int8, [1, 16, 14, 14, 1, 16], []),
                  data: Buffer(data_2: handle, int8, [1, 16, 14, 14, 1, 16], [])}
       buffer_map = {data_1: data, kernel_1: kernel, res_1: res} {
       attr [data_buf: handle] "storage_scope" = "global";
diff --git a/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt b/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
index 0510a2b..5d93faa 100644
--- a/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
@@ -364,8 +364,8 @@ below:
 
     primfn(data_1: handle, weight_1: handle, res_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {weight: Buffer(weight_2: handle, int8, [64, 64, 16, 16], []),
-                 res: Buffer(res_2: handle, int8, [1, 64, 1, 16], []),
+      buffers = {res: Buffer(res_2: handle, int8, [1, 64, 1, 16], []),
+                 weight: Buffer(weight_2: handle, int8, [64, 64, 16, 16], []),
                  data: Buffer(data_2: handle, int8, [1, 64, 1, 16], [])}
       buffer_map = {data_1: data, weight_1: weight, res_1: res} {
       attr [data_buf: handle] "storage_scope" = "global";
@@ -507,8 +507,8 @@ and mapping the shift, and clipping computation to the vector ALU.
 
     primfn(data_1: handle, weight_1: handle, res_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {res: Buffer(res_2: handle, int8, [1, 64, 1, 16], []),
-                 weight: Buffer(weight_2: handle, int8, [64, 64, 16, 16], []),
+      buffers = {weight: Buffer(weight_2: handle, int8, [64, 64, 16, 16], []),
+                 res: Buffer(res_2: handle, int8, [1, 64, 1, 16], []),
                  data: Buffer(data_2: handle, int8, [1, 64, 1, 16], [])}
       buffer_map = {data_1: data, weight_1: weight, res_1: res} {
       attr [res_gem: handle] "storage_scope" = "local.acc_buffer";
diff --git a/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
index 6f79a02..f7e3241 100644
--- a/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:02.952** total execution time for **vta_tutorials_optimize** files:
+**00:02.967** total execution time for **vta_tutorials_optimize** files:
 
-- **00:02.600**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
-- **00:00.352**: :ref:`sphx_glr_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
+- **00:02.605**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.361**: :ref:`sphx_glr_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
diff --git a/docs/_sources/vta/tutorials/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
index 8a25e95..6efd822 100644
--- a/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:00.647** total execution time for **vta_tutorials** files:
+**00:00.651** total execution time for **vta_tutorials** files:
 
-- **00:00.326**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
-- **00:00.320**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
+- **00:00.338**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.312**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
diff --git a/docs/api/doxygen/analyzer_8h.html b/docs/api/doxygen/analyzer_8h.html
index 6314c53..42ada3b 100644
--- a/docs/api/doxygen/analyzer_8h.html
+++ b/docs/api/doxygen/analyzer_8h.html
@@ -111,7 +111,7 @@ Include dependency graph for analyzer.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="analyzer_8h__dep__incl.svg" width="4788" height="648"><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="analyzer_8h__dep__incl.svg" width="4788" 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/api/doxygen/analyzer_8h__dep__incl.svg b/docs/api/doxygen/analyzer_8h__dep__incl.svg
index ce57914..b1d942b 100644
--- a/docs/api/doxygen/analyzer_8h__dep__incl.svg
+++ b/docs/api/doxygen/analyzer_8h__dep__incl.svg
@@ -4,929 +4,943 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/arith/analyzer.h Pages: 1 -->
-<svg width="3591pt" height="486pt"
- viewBox="0.00 0.00 3590.99 486.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 482)">
+<svg width="3591pt" height="497pt"
+ viewBox="0.00 0.00 3591.03 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/arith/analyzer.h</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-482 3586.99,-482 3586.99,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-493 3587.03,-493 3587.03,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="3402.49,-458.5 3402.49,-477.5 3551.49,-477.5 3551.49,-458.5 3402.49,-458.5"/>
-<text text-anchor="middle" x="3476.99" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/analyzer.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="3350.53,-469.5 3350.53,-488.5 3499.53,-488.5 3499.53,-469.5 3350.53,-469.5"/>
+<text text-anchor="middle" x="3425.03" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/analyzer.h</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
-<g id="a_node2"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
-<polygon fill="white" stroke="black" points="1876.49,-402.5 1876.49,-421.5 2019.49,-421.5 2019.49,-402.5 1876.49,-402.5"/>
-<text text-anchor="middle" x="1947.99" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
+<g id="a_node2"><a xlink:href="int__solver_8h.html" target="_top" xlink:title="integer constraints data structures and solvers ">
+<polygon fill="white" stroke="black" points="1765.03,-402.5 1765.03,-432.5 1877.03,-432.5 1877.03,-402.5 1765.03,-402.5"/>
+<text text-anchor="start" x="1773.03" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
+<text text-anchor="middle" x="1821.03" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">_solver.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M3392.26,-464.008C3120.22,-454.4 2271.98,-424.442 2019.55,-415.527"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3392.35,-467.513 3402.47,-464.368 3392.6,-460.517 3392.35,-467.513"/>
+<path fill="none" stroke="midnightblue" d="M3340.11,-477.644C3060.57,-476.137 2170.79,-468.596 1886.03,-433 1883.16,-432.641 1880.23,-432.215 1877.29,-431.736"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3340.17,-481.144 3350.19,-477.697 3340.21,-474.144 3340.17,-481.144"/>
 </g>
-<!-- Node21 -->
-<g id="node21" class="node"><title>Node21</title>
-<g id="a_node21"><a xlink:href="nn_2pooling_8h.html" target="_top" xlink:title="Pooling op constructions. ">
-<polygon fill="white" stroke="black" points="3109.49,-0.5 3109.49,-30.5 3216.49,-30.5 3216.49,-0.5 3109.49,-0.5"/>
-<text text-anchor="start" x="3117.49" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="3162.99" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
+<!-- Node3 -->
+<g id="node3" class="node"><title>Node3</title>
+<g id="a_node3"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
+<polygon fill="white" stroke="black" points="1895.53,-408 1895.53,-427 2038.53,-427 2038.53,-408 1895.53,-408"/>
+<text text-anchor="middle" x="1967.03" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node21 -->
-<g id="edge102" class="edge"><title>Node1&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M3502.74,-453.566C3534.11,-435.129 3582.99,-398.813 3582.99,-351.5 3582.99,-351.5 3582.99,-351.5 3582.99,-148.5 3582.99,-72.5446 3329.84,-34.9653 3216.61,-21.956"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3501,-450.527 3494.02,-458.497 3504.45,-456.619 3501,-450.527"/>
+<!-- Node1&#45;&gt;Node3 -->
+<g id="edge2" class="edge"><title>Node1&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M3340.24,-474.54C3077.83,-463.831 2282.01,-431.354 2038.56,-421.419"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3340.34,-478.047 3350.47,-474.957 3340.62,-471.052 3340.34,-478.047"/>
 </g>
-<!-- Node25 -->
-<g id="node25" class="node"><title>Node25</title>
-<g id="a_node25"><a xlink:href="constant__utils_8h.html" target="_top" xlink:title="Utility functions for handling constants in TVM expressions. ">
-<polygon fill="white" stroke="black" points="3154.99,-335.5 3154.99,-365.5 3276.99,-365.5 3276.99,-335.5 3154.99,-335.5"/>
-<text text-anchor="start" x="3162.99" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="3215.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/constant_utils.h</text>
+<!-- Node22 -->
+<g id="node22" class="node"><title>Node22</title>
+<g id="a_node22"><a xlink:href="nn_2pooling_8h.html" target="_top" xlink:title="Pooling op constructions. ">
+<polygon fill="white" stroke="black" points="3109.53,-0.5 3109.53,-30.5 3216.53,-30.5 3216.53,-0.5 3109.53,-0.5"/>
+<text text-anchor="start" x="3117.53" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="3163.03" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node25 -->
-<g id="edge99" class="edge"><title>Node1&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M3447.93,-454.138C3398.59,-432.303 3298.83,-388.158 3247.73,-365.545"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3446.81,-457.473 3457.37,-458.319 3449.65,-451.071 3446.81,-457.473"/>
+<!-- Node1&#45;&gt;Node22 -->
+<g id="edge103" class="edge"><title>Node1&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M3478.14,-466.571C3499.94,-459.747 3524.2,-449.153 3542.03,-433 3572.08,-405.781 3583.03,-392.047 3583.03,-351.5 3583.03,-351.5 3583.03,-351.5 3583.03,-148.5 3583.03,-72.5446 3329.88,-34.9653 3216.65,-21.956"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3476.94,-463.276 3468.33,-469.448 3478.91,-469.993 3476.94,-463.276"/>
 </g>
 <!-- Node26 -->
 <g id="node26" class="node"><title>Node26</title>
-<g id="a_node26"><a xlink:href="nn_2bnn_8h.html" target="_top" xlink:title="Binary op constructions. ">
-<polygon fill="white" stroke="black" points="3162.49,-268.5 3162.49,-298.5 3269.49,-298.5 3269.49,-268.5 3162.49,-268.5"/>
-<text text-anchor="start" x="3170.49" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="3215.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bnn.h</text>
+<g id="a_node26"><a xlink:href="constant__utils_8h.html" target="_top" xlink:title="Utility functions for handling constants in TVM expressions. ">
+<polygon fill="white" stroke="black" points="3155.03,-335.5 3155.03,-365.5 3277.03,-365.5 3277.03,-335.5 3155.03,-335.5"/>
+<text text-anchor="start" x="3163.03" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="3216.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/constant_utils.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node26 -->
 <g id="edge100" class="edge"><title>Node1&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M3485.47,-449.022C3497.23,-421.125 3514.16,-367.272 3486.99,-335 3456.78,-299.113 3324.98,-308.264 3278.99,-299 3275.91,-298.379 3272.75,-297.721 3269.56,-297.041"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3482.19,-447.784 3481.32,-458.343 3488.58,-450.632 3482.19,-447.784"/>
+<path fill="none" stroke="midnightblue" d="M3401.87,-463.979C3361.75,-439.696 3279.77,-390.077 3239.46,-365.682"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3400.3,-467.121 3410.67,-469.305 3403.92,-461.133 3400.3,-467.121"/>
 </g>
-<!-- Node28 -->
-<g id="node28" class="node"><title>Node28</title>
-<g id="a_node28"><a xlink:href="topi_2include_2topi_2nn_8h.html" target="_top" xlink:title="NN op constructions. ">
-<polygon fill="white" stroke="black" points="3287.99,-274 3287.99,-293 3403.99,-293 3403.99,-274 3287.99,-274"/>
-<text text-anchor="middle" x="3345.99" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
+<!-- Node27 -->
+<g id="node27" class="node"><title>Node27</title>
+<g id="a_node27"><a xlink:href="nn_2bnn_8h.html" target="_top" xlink:title="Binary op constructions. ">
+<polygon fill="white" stroke="black" points="3162.53,-268.5 3162.53,-298.5 3269.53,-298.5 3269.53,-268.5 3162.53,-268.5"/>
+<text text-anchor="start" x="3170.53" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="3216.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bnn.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node28 -->
-<g id="edge103" class="edge"><title>Node1&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M3497.7,-451.951C3506.66,-444.144 3516.19,-433.775 3520.99,-422 3535.59,-386.194 3544.24,-365.9 3520.99,-335 3506.45,-315.668 3446.78,-301.406 3401.12,-293.058"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3495.34,-449.355 3489.77,-458.369 3499.75,-454.795 3495.34,-449.355"/>
+<!-- Node1&#45;&gt;Node27 -->
+<g id="edge101" class="edge"><title>Node1&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M3442,-462.302C3470.39,-434.175 3521.26,-374.446 3488.03,-335 3457.67,-298.958 3325.23,-308.289 3279.03,-299 3275.95,-298.381 3272.79,-297.723 3269.6,-297.044"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3439.45,-459.896 3434.68,-469.355 3444.31,-464.938 3439.45,-459.896"/>
 </g>
-<!-- Node43 -->
-<g id="node43" class="node"><title>Node43</title>
-<g id="a_node43"><a xlink:href="dilate_8h.html" target="_top" xlink:title="Dilate op constructions. ">
-<polygon fill="white" stroke="black" points="3371.49,-335.5 3371.49,-365.5 3478.49,-365.5 3478.49,-335.5 3371.49,-335.5"/>
-<text text-anchor="start" x="3379.49" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="3424.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dilate.h</text>
+<!-- Node29 -->
+<g id="node29" class="node"><title>Node29</title>
+<g id="a_node29"><a xlink:href="topi_2include_2topi_2nn_8h.html" target="_top" xlink:title="NN op constructions. ">
+<polygon fill="white" stroke="black" points="3288.03,-274 3288.03,-293 3404.03,-293 3404.03,-274 3288.03,-274"/>
+<text text-anchor="middle" x="3346.03" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node43 -->
-<g id="edge101" class="edge"><title>Node1&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M3468.89,-449.011C3458.52,-425.967 3440.75,-386.506 3431.31,-365.545"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3465.79,-450.637 3473.08,-458.319 3472.17,-447.763 3465.79,-450.637"/>
+<!-- Node1&#45;&gt;Node29 -->
+<g id="edge104" class="edge"><title>Node1&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M3476.05,-466.125C3493.35,-459.397 3510.87,-448.99 3521.03,-433 3544.4,-396.242 3547.21,-369.807 3521.03,-335 3506.49,-315.668 3446.82,-301.406 3401.16,-293.058"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3474.76,-462.866 3466.5,-469.497 3477.1,-469.467 3474.76,-462.866"/>
 </g>
-<!-- Node3 -->
-<g id="node3" class="node"><title>Node3</title>
-<g id="a_node3"><a xlink:href="cublas_8h.html" target="_top" xlink:title="External function interface to cuBLAS libraries. ">
-<polygon fill="white" stroke="black" points="1718.99,-268.5 1718.99,-298.5 1846.99,-298.5 1846.99,-268.5 1718.99,-268.5"/>
-<text text-anchor="start" x="1726.99" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
-<text text-anchor="middle" x="1782.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/cublas.h</text>
+<!-- Node44 -->
+<g id="node44" class="node"><title>Node44</title>
+<g id="a_node44"><a xlink:href="dilate_8h.html" target="_top" xlink:title="Dilate op constructions. ">
+<polygon fill="white" stroke="black" points="3371.53,-335.5 3371.53,-365.5 3478.53,-365.5 3478.53,-335.5 3371.53,-335.5"/>
+<text text-anchor="start" x="3379.53" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="3425.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dilate.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node3 -->
-<g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1865.77,-407.303C1756.9,-401.551 1576.23,-388.69 1555.99,-366 1546.82,-355.717 1547.37,-345.748 1555.99,-335 1558.6,-331.742 1652.71,-311.591 1718.92,-297.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1865.9,-410.815 1876.07,-407.838 1866.27,-403.824 1865.9,-410.815"/>
+<!-- Node1&#45;&gt;Node44 -->
+<g id="edge102" class="edge"><title>Node1&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M3425.03,-459.108C3425.03,-433.629 3425.03,-388.811 3425.03,-365.888"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3421.53,-459.305 3425.03,-469.305 3428.53,-459.305 3421.53,-459.305"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
-<g id="a_node4"><a xlink:href="cuda_2dense_8h.html" target="_top" xlink:title="CUDA schedule for dense operation. ">
-<polygon fill="white" stroke="black" points="150.491,-134.5 150.491,-164.5 269.491,-164.5 269.491,-134.5 150.491,-134.5"/>
-<text text-anchor="start" x="158.491" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="209.991" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
+<g id="a_node4"><a xlink:href="cublas_8h.html" target="_top" xlink:title="External function interface to cuBLAS libraries. ">
+<polygon fill="white" stroke="black" points="1719.03,-268.5 1719.03,-298.5 1847.03,-298.5 1847.03,-268.5 1719.03,-268.5"/>
+<text text-anchor="start" x="1727.03" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
+<text text-anchor="middle" x="1783.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/cublas.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node4 -->
-<g id="edge7" class="edge"><title>Node2&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1866.16,-410.475C1505.15,-407.986 71.2443,-396.212 35.9913,-366 -19.8147,-318.174 -5.75813,-252.178 46.9913,-201 74.633,-174.182 116.234,-161.578 150.49,-155.668"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.25,-413.976 1876.27,-410.544 1866.3,-406.976 1866.25,-413.976"/>
+<!-- Node3&#45;&gt;Node4 -->
+<g id="edge3" class="edge"><title>Node3&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1912.66,-406.24C1903.78,-404.715 1894.66,-403.242 1886.03,-402 1813.01,-391.494 1605.28,-420.918 1556.03,-366 1546.83,-355.743 1547.41,-345.748 1556.03,-335 1558.64,-331.742 1652.75,-311.591 1718.96,-297.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1912.1,-409.695 1922.56,-407.973 1913.31,-402.8 1912.1,-409.695"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
-<g id="a_node5"><a xlink:href="rocm_2dense_8h.html" target="_top" xlink:title="rocm schedule for dense operation ">
-<polygon fill="white" stroke="black" points="681.991,-67.5 681.991,-97.5 801.991,-97.5 801.991,-67.5 681.991,-67.5"/>
-<text text-anchor="start" x="689.991" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="741.991" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
+<g id="a_node5"><a xlink:href="cuda_2dense_8h.html" target="_top" xlink:title="CUDA schedule for dense operation. ">
+<polygon fill="white" stroke="black" points="150.531,-134.5 150.531,-164.5 269.531,-164.5 269.531,-134.5 150.531,-134.5"/>
+<text text-anchor="start" x="158.531" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="210.031" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node5 -->
-<g id="edge88" class="edge"><title>Node2&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1966.04,-395.813C1996.87,-368.083 2053.18,-308.396 2018.99,-268 1938.99,-173.481 1044.43,-104.592 802.178,-87.5769"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1963.69,-393.223 1958.47,-402.444 1968.3,-398.489 1963.69,-393.223"/>
+<!-- Node3&#45;&gt;Node5 -->
+<g id="edge8" class="edge"><title>Node3&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M1916.54,-406.196C1906.47,-404.499 1895.95,-402.978 1886.03,-402 1834.88,-396.956 75.1262,-399.367 36.0308,-366 -19.8725,-318.287 -5.7186,-252.178 47.0308,-201 74.6725,-174.182 116.274,-161.578 150.529,-155.668"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.96,-409.647 1926.41,-407.936 1917.17,-402.753 1915.96,-409.647"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node"><title>Node6</title>
-<g id="a_node6"><a xlink:href="rocblas_8h.html" target="_top" xlink:title="topi/include/topi/contrib\l/rocblas.h">
-<polygon fill="white" stroke="black" points="1864.99,-268.5 1864.99,-298.5 1992.99,-298.5 1992.99,-268.5 1864.99,-268.5"/>
-<text text-anchor="start" x="1872.99" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
-<text text-anchor="middle" x="1928.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/rocblas.h</text>
+<g id="a_node6"><a xlink:href="rocm_2dense_8h.html" target="_top" xlink:title="rocm schedule for dense operation ">
+<polygon fill="white" stroke="black" points="675.031,-67.5 675.031,-97.5 795.031,-97.5 795.031,-67.5 675.031,-67.5"/>
+<text text-anchor="start" x="683.031" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="735.031" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node6 -->
-<g id="edge5" class="edge"><title>Node2&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M1945.15,-392.108C1941.33,-366.629 1934.6,-321.811 1931.15,-298.888"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1941.74,-392.936 1946.69,-402.305 1948.66,-391.896 1941.74,-392.936"/>
+<!-- Node3&#45;&gt;Node6 -->
+<g id="edge89" class="edge"><title>Node3&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M1982.21,-399.982C2007.57,-370.373 2052.6,-307.661 2019.03,-268 1786.12,7.16988 1576.26,-182.507 1219.03,-134 1066.88,-113.34 886.813,-96.5611 795.16,-88.5663"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1979.37,-397.915 1975.38,-407.728 1984.62,-402.548 1979.37,-397.915"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node"><title>Node7</title>
-<g id="a_node7"><a xlink:href="cuda_2injective_8h.html" target="_top" xlink:title="CUDA schedule for injective operations. ">
-<polygon fill="white" stroke="black" points="534.491,-268.5 534.491,-298.5 653.491,-298.5 653.491,-268.5 534.491,-268.5"/>
-<text text-anchor="start" x="542.491" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="593.991" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
+<g id="a_node7"><a xlink:href="rocblas_8h.html" target="_top" xlink:title="topi/include/topi/contrib\l/rocblas.h">
+<polygon fill="white" stroke="black" points="1865.03,-268.5 1865.03,-298.5 1993.03,-298.5 1993.03,-268.5 1865.03,-268.5"/>
+<text text-anchor="start" x="1873.03" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
+<text text-anchor="middle" x="1929.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/rocblas.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node7 -->
-<g id="edge8" class="edge"><title>Node2&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1866.13,-409.564C1618.61,-404.979 888.577,-389.599 783.991,-366 721.494,-351.898 653.777,-317.838 618.504,-298.508"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.08,-413.063 1876.14,-409.748 1866.21,-406.064 1866.08,-413.063"/>
+<!-- Node3&#45;&gt;Node7 -->
+<g id="edge6" class="edge"><title>Node3&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1961.67,-397.889C1954,-371.244 1940.06,-322.798 1933.14,-298.783"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1958.41,-399.198 1964.54,-407.839 1965.13,-397.261 1958.41,-399.198"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node"><title>Node8</title>
-<g id="a_node8"><a xlink:href="rocm_2injective_8h.html" target="_top" xlink:title="rocm schedule for injective operations ">
-<polygon fill="white" stroke="black" points="533.991,-201.5 533.991,-231.5 653.991,-231.5 653.991,-201.5 533.991,-201.5"/>
-<text text-anchor="start" x="541.991" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="593.991" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
+<g id="a_node8"><a xlink:href="cuda_2injective_8h.html" target="_top" xlink:title="CUDA schedule for injective operations. ">
+<polygon fill="white" stroke="black" points="534.531,-268.5 534.531,-298.5 653.531,-298.5 653.531,-268.5 534.531,-268.5"/>
+<text text-anchor="start" x="542.531" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="594.031" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node8 -->
-<g id="edge89" class="edge"><title>Node2&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1865.91,-409.725C1604.86,-405.438 804.202,-390.431 689.991,-366 612.594,-349.444 569.193,-364.656 524.991,-299 517.297,-287.571 518.758,-280.287 524.991,-268 533.051,-252.114 548.716,-240.025 563.085,-231.664"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.02,-413.227 1876.08,-409.891 1866.14,-406.228 1866.02,-413.227"/>
+<!-- Node3&#45;&gt;Node8 -->
+<g id="edge9" class="edge"><title>Node3&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1915.89,-406.192C1906.02,-404.529 1895.73,-403.021 1886.03,-402 1642.36,-376.345 1023.2,-419.215 784.031,-366 721.492,-352.085 653.791,-317.951 618.532,-298.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.53,-409.682 1925.99,-407.966 1916.75,-402.788 1915.53,-409.682"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node"><title>Node9</title>
-<g id="a_node9"><a xlink:href="cuda_2normalization_8h.html" target="_top" xlink:title="CUDA schedule for LRN and l2 normalization operations. ">
-<polygon fill="white" stroke="black" points="1705.49,-335.5 1705.49,-365.5 1824.49,-365.5 1824.49,-335.5 1705.49,-335.5"/>
-<text text-anchor="start" x="1713.49" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="1764.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
+<g id="a_node9"><a xlink:href="rocm_2injective_8h.html" target="_top" xlink:title="rocm schedule for injective operations ">
+<polygon fill="white" stroke="black" points="534.031,-201.5 534.031,-231.5 654.031,-231.5 654.031,-201.5 534.031,-201.5"/>
+<text text-anchor="start" x="542.031" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="594.031" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node9 -->
-<g id="edge10" class="edge"><title>Node2&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1912.18,-399.357C1882.36,-389.662 1839.81,-375.826 1808.12,-365.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1911.18,-402.711 1921.77,-402.475 1913.34,-396.055 1911.18,-402.711"/>
+<!-- Node3&#45;&gt;Node9 -->
+<g id="edge90" class="edge"><title>Node3&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1915.89,-406.172C1906.02,-404.511 1895.73,-403.009 1886.03,-402 1621.56,-374.499 950.203,-420.884 690.031,-366 612.587,-349.663 569.233,-364.656 525.031,-299 517.336,-287.571 518.797,-280.287 525.031,-268 533.09,-252.114 548.755,-240.025 563.125,-231.664"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.54,-409.662 1925.99,-407.946 1916.75,-402.768 1915.54,-409.662"/>
 </g>
 <!-- Node10 -->
 <g id="node10" class="node"><title>Node10</title>
-<g id="a_node10"><a xlink:href="cuda_2pooling_8h.html" target="_top" xlink:title="CUDA schedule for pooling operations. ">
-<polygon fill="white" stroke="black" points="320.491,-268.5 320.491,-298.5 439.491,-298.5 439.491,-268.5 320.491,-268.5"/>
-<text text-anchor="start" x="328.491" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="379.991" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
+<g id="a_node10"><a xlink:href="cuda_2normalization_8h.html" target="_top" xlink:title="CUDA schedule for LRN and l2 normalization operations. ">
+<polygon fill="white" stroke="black" points="1705.53,-335.5 1705.53,-365.5 1824.53,-365.5 1824.53,-335.5 1705.53,-335.5"/>
+<text text-anchor="start" x="1713.53" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="1765.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node10 -->
-<g id="edge11" class="edge"><title>Node2&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M1865.73,-411.281C1577.21,-411.878 621.753,-410.444 491.991,-366 451.496,-352.13 413.167,-318.146 393.57,-298.725"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.12,-414.78 1876.11,-411.258 1866.11,-407.78 1866.12,-414.78"/>
+<!-- Node3&#45;&gt;Node10 -->
+<g id="edge11" class="edge"><title>Node3&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1930.59,-404.775C1896.34,-393.753 1845.03,-377.244 1808.63,-365.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1929.62,-408.137 1940.21,-407.869 1931.76,-401.474 1929.62,-408.137"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node"><title>Node11</title>
-<g id="a_node11"><a xlink:href="rocm_2pooling_8h.html" target="_top" xlink:title="rocm schedule for pooling operations ">
-<polygon fill="white" stroke="black" points="310.991,-201.5 310.991,-231.5 430.991,-231.5 430.991,-201.5 310.991,-201.5"/>
-<text text-anchor="start" x="318.991" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="370.991" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
+<g id="a_node11"><a xlink:href="cuda_2pooling_8h.html" target="_top" xlink:title="CUDA schedule for pooling operations. ">
+<polygon fill="white" stroke="black" points="320.531,-268.5 320.531,-298.5 439.531,-298.5 439.531,-268.5 320.531,-268.5"/>
+<text text-anchor="start" x="328.531" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="380.031" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node11 -->
-<g id="edge91" class="edge"><title>Node2&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1866.13,-411.22C1538.67,-411.789 332.736,-410.794 167.991,-366 108.673,-349.871 78.2025,-351.959 46.9913,-299 39.9959,-287.13 38.0305,-278.466 46.9913,-268 63.9074,-248.243 221.784,-230.959 310.747,-222.685"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.49,-414.72 1876.49,-411.201 1866.48,-407.72 1866.49,-414.72"/>
+<!-- Node3&#45;&gt;Node11 -->
+<g id="edge12" class="edge"><title>Node3&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1916.53,-406.246C1906.47,-404.545 1895.94,-403.009 1886.03,-402 1731.89,-386.304 638.739,-415.832 492.031,-366 451.5,-352.233 413.185,-318.209 393.599,-298.753"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.95,-409.697 1926.41,-407.987 1917.17,-402.803 1915.95,-409.697"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node"><title>Node12</title>
-<g id="a_node12"><a xlink:href="cuda_2reduction_8h.html" target="_top" xlink:title="CUDA schedule for reduction operations. ">
-<polygon fill="white" stroke="black" points="710.491,-268.5 710.491,-298.5 829.491,-298.5 829.491,-268.5 710.491,-268.5"/>
-<text text-anchor="start" x="718.491" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="769.991" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
+<g id="a_node12"><a xlink:href="rocm_2pooling_8h.html" target="_top" xlink:title="rocm schedule for pooling operations ">
+<polygon fill="white" stroke="black" points="311.031,-201.5 311.031,-231.5 431.031,-231.5 431.031,-201.5 311.031,-201.5"/>
+<text text-anchor="start" x="319.031" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="371.031" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node12 -->
-<g id="edge13" class="edge"><title>Node2&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1866.17,-409.984C1613.1,-406.55 857.392,-393.99 812.991,-366 789.037,-350.9 777.651,-317.72 772.905,-298.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.35,-413.487 1876.4,-410.121 1866.45,-406.487 1866.35,-413.487"/>
+<!-- Node3&#45;&gt;Node12 -->
+<g id="edge92" class="edge"><title>Node3&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1916.54,-406.207C1906.47,-404.51 1895.95,-402.985 1886.03,-402 1696.04,-383.12 352.38,-415.697 168.031,-366 108.678,-350 78.242,-351.959 47.0308,-299 40.0354,-287.13 38.07,-278.466 47.0308,-268 63.947,-248.243 221.824,-230.959 310.786,-222.685"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.96,-409.659 1926.41,-407.948 1917.17,-402.765 1915.96,-409.659"/>
 </g>
 <!-- Node13 -->
 <g id="node13" class="node"><title>Node13</title>
-<g id="a_node13"><a xlink:href="rocm_2reduction_8h.html" target="_top" xlink:title="rocm schedule for reduction operations ">
-<polygon fill="white" stroke="black" points="835.991,-201.5 835.991,-231.5 955.991,-231.5 955.991,-201.5 835.991,-201.5"/>
-<text text-anchor="start" x="843.991" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="895.991" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
+<g id="a_node13"><a xlink:href="cuda_2reduction_8h.html" target="_top" xlink:title="CUDA schedule for reduction operations. ">
+<polygon fill="white" stroke="black" points="710.531,-268.5 710.531,-298.5 829.531,-298.5 829.531,-268.5 710.531,-268.5"/>
+<text text-anchor="start" x="718.531" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="770.031" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node13 -->
-<g id="edge92" class="edge"><title>Node2&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1866.09,-408.997C1696.78,-404.394 1313.34,-391.447 1184.99,-366 1095.51,-348.26 1070.12,-344.388 990.991,-299 958.381,-280.294 926.461,-249.651 909.191,-231.747"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.1,-412.499 1876.19,-409.269 1866.29,-405.501 1866.1,-412.499"/>
+<!-- Node3&#45;&gt;Node13 -->
+<g id="edge14" class="edge"><title>Node3&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1915.89,-406.199C1906.02,-404.536 1895.73,-403.026 1886.03,-402 1826.72,-395.729 863.583,-397.653 813.031,-366 789.031,-350.973 777.663,-317.765 772.932,-298.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.53,-409.689 1925.99,-407.973 1916.74,-402.795 1915.53,-409.689"/>
 </g>
 <!-- Node14 -->
 <g id="node14" class="node"><title>Node14</title>
-<g id="a_node14"><a xlink:href="cuda_2softmax_8h.html" target="_top" xlink:title="topi/include/topi/cuda\l/softmax.h">
-<polygon fill="white" stroke="black" points="1000.49,-268.5 1000.49,-298.5 1119.49,-298.5 1119.49,-268.5 1000.49,-268.5"/>
-<text text-anchor="start" x="1008.49" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="1059.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
+<g id="a_node14"><a xlink:href="rocm_2reduction_8h.html" target="_top" xlink:title="rocm schedule for reduction operations ">
+<polygon fill="white" stroke="black" points="836.031,-201.5 836.031,-231.5 956.031,-231.5 956.031,-201.5 836.031,-201.5"/>
+<text text-anchor="start" x="844.031" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="896.031" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node14 -->
-<g id="edge15" class="edge"><title>Node2&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1866.24,-408.115C1715.71,-402.349 1400.3,-388.035 1292.99,-366 1218.69,-350.742 1135.75,-317.622 1091.64,-298.634"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.22,-411.617 1876.35,-408.499 1866.49,-404.622 1866.22,-411.617"/>
+<!-- Node3&#45;&gt;Node14 -->
+<g id="edge93" class="edge"><title>Node3&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1915.23,-406.229C1905.56,-404.595 1895.51,-403.088 1886.03,-402 1576.1,-366.444 1491.27,-425.507 1185.03,-366 1095.49,-348.6 1070.16,-344.388 991.031,-299 958.421,-280.294 926.501,-249.651 909.23,-231.747"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1914.68,-409.686 1925.14,-407.965 1915.89,-402.791 1914.68,-409.686"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node"><title>Node15</title>
-<g id="a_node15"><a xlink:href="rocm_2softmax_8h.html" target="_top" xlink:title="topi/include/topi/rocm\l/softmax.h">
-<polygon fill="white" stroke="black" points="986.991,-201.5 986.991,-231.5 1106.99,-231.5 1106.99,-201.5 986.991,-201.5"/>
-<text text-anchor="start" x="994.991" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="1046.99" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
+<g id="a_node15"><a xlink:href="cuda_2softmax_8h.html" target="_top" xlink:title="topi/include/topi/cuda\l/softmax.h">
+<polygon fill="white" stroke="black" points="1000.53,-268.5 1000.53,-298.5 1119.53,-298.5 1119.53,-268.5 1000.53,-268.5"/>
+<text text-anchor="start" x="1008.53" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="1060.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node15 -->
-<g id="edge93" class="edge"><title>Node2&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1866.27,-406.483C1766.19,-400.148 1602.93,-386.991 1545.99,-366 1496.14,-347.622 1489.82,-330.442 1446.99,-299 1429.14,-285.896 1428.42,-276.547 1407.99,-268 1285.74,-216.842 1242.6,-254.454 1111.99,-232 1110.4,-231.726 1108.78,-231.438 1107.15,-231.139"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.16,-409.982 1876.35,-407.111 1866.59,-402.996 1866.16,-409.982"/>
+<!-- Node3&#45;&gt;Node15 -->
+<g id="edge16" class="edge"><title>Node3&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M1914.6,-406.195C1905.12,-404.595 1895.3,-403.107 1886.03,-402 1623.85,-370.683 1551.88,-418.084 1293.03,-366 1218.46,-350.995 1135.28,-317.617 1091.28,-298.558"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1914.26,-409.689 1924.71,-407.964 1915.46,-402.793 1914.26,-409.689"/>
 </g>
 <!-- Node16 -->
 <g id="node16" class="node"><title>Node16</title>
-<g id="a_node16"><a xlink:href="array__utils_8h.html" target="_top" xlink:title="Utility functions for handling arrays. ">
-<polygon fill="white" stroke="black" points="230.991,-335.5 230.991,-365.5 352.991,-365.5 352.991,-335.5 230.991,-335.5"/>
-<text text-anchor="start" x="238.991" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="291.991" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/array_utils.h</text>
+<g id="a_node16"><a xlink:href="rocm_2softmax_8h.html" target="_top" xlink:title="topi/include/topi/rocm\l/softmax.h">
+<polygon fill="white" stroke="black" points="987.031,-201.5 987.031,-231.5 1107.03,-231.5 1107.03,-201.5 987.031,-201.5"/>
+<text text-anchor="start" x="995.031" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="1047.03" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node16 -->
-<g id="edge17" class="edge"><title>Node2&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1865.95,-411.25C1636,-411.378 965.808,-407.835 410.991,-366 392.106,-364.576 371.61,-362.332 353.035,-360.031"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.24,-414.75 1876.24,-411.241 1866.23,-407.75 1866.24,-414.75"/>
+<!-- Node3&#45;&gt;Node16 -->
+<g id="edge94" class="edge"><title>Node3&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M1912.67,-406.216C1903.78,-404.695 1894.66,-403.228 1886.03,-402 1735.59,-380.598 1688.76,-418.138 1546.03,-366 1496.13,-347.771 1489.86,-330.442 1447.03,-299 1429.18,-285.896 1428.46,-276.547 1408.03,-268 1285.78,-216.842 1242.64,-254.454 1112.03,-232 1110.44,-231.726 1108.82,-231.438 1107.19,-231.139"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1912.11,-409.671 1922.56,-407.948 1913.31,-402.776 1912.11,-409.671"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node"><title>Node17</title>
-<g id="a_node17"><a xlink:href="detail_2broadcast_8h.html" target="_top" xlink:title="Detail broadcast. ">
-<polygon fill="white" stroke="black" points="2666.99,-268.5 2666.99,-298.5 2788.99,-298.5 2788.99,-268.5 2666.99,-268.5"/>
-<text text-anchor="start" x="2674.99" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="2727.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/broadcast.h</text>
+<g id="a_node17"><a xlink:href="array__utils_8h.html" target="_top" xlink:title="Utility functions for handling arrays. ">
+<polygon fill="white" stroke="black" points="231.031,-335.5 231.031,-365.5 353.031,-365.5 353.031,-335.5 231.031,-335.5"/>
+<text text-anchor="start" x="239.031" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="292.031" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/array_utils.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node17 -->
-<g id="edge22" class="edge"><title>Node2&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M2029.61,-409.887C2172.76,-407.124 2463.01,-397.681 2558.99,-366 2583.46,-357.923 2585.15,-346.928 2607.99,-335 2634.74,-321.033 2666.22,-307.9 2690.23,-298.529"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.49,-406.389 2019.56,-410.075 2029.62,-413.387 2029.49,-406.389"/>
+<!-- Node3&#45;&gt;Node17 -->
+<g id="edge18" class="edge"><title>Node3&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1916.54,-406.234C1906.47,-404.535 1895.94,-403.002 1886.03,-402 1233.61,-336.032 1065.04,-413.714 411.031,-366 392.142,-364.622 371.645,-362.391 353.07,-360.089"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.95,-409.686 1926.41,-407.976 1917.17,-402.792 1915.95,-409.686"/>
 </g>
-<!-- Node20 -->
-<g id="node20" class="node"><title>Node20</title>
-<g id="a_node20"><a xlink:href="reduction_8h.html" target="_top" xlink:title="Reduction op constructors. ">
-<polygon fill="white" stroke="black" points="2444.49,-73 2444.49,-92 2593.49,-92 2593.49,-73 2444.49,-73"/>
-<text text-anchor="middle" x="2518.99" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/reduction.h</text>
+<!-- Node18 -->
+<g id="node18" class="node"><title>Node18</title>
+<g id="a_node18"><a xlink:href="detail_2broadcast_8h.html" target="_top" xlink:title="Detail broadcast. ">
+<polygon fill="white" stroke="black" points="2667.03,-268.5 2667.03,-298.5 2789.03,-298.5 2789.03,-268.5 2667.03,-268.5"/>
+<text text-anchor="start" x="2675.03" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="2728.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/broadcast.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node20 -->
-<g id="edge87" class="edge"><title>Node2&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1985.73,-399.099C2007.47,-391.36 2034.81,-380.087 2056.99,-366 2186.05,-284.03 2176.03,-205.843 2310.99,-134 2352.81,-111.737 2404.57,-99.1233 2445.99,-92.0698"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1984.47,-395.829 1976.17,-402.404 1986.76,-402.445 1984.47,-395.829"/>
+<!-- Node3&#45;&gt;Node18 -->
+<g id="edge23" class="edge"><title>Node3&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M2048.97,-414.305C2188.66,-409.768 2466.75,-397.051 2559.03,-366 2583.46,-357.781 2585.19,-346.928 2608.03,-335 2634.78,-321.033 2666.26,-307.9 2690.27,-298.529"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.63,-410.814 2038.75,-414.631 2048.85,-417.811 2048.63,-410.814"/>
 </g>
-<!-- Node22 -->
-<g id="node22" class="node"><title>Node22</title>
-<g id="a_node22"><a xlink:href="nn_2softmax_8h.html" target="_top" xlink:title="Softmax op constructions. ">
-<polygon fill="white" stroke="black" points="2605.49,-0.5 2605.49,-30.5 2712.49,-30.5 2712.49,-0.5 2605.49,-0.5"/>
-<text text-anchor="start" x="2613.49" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2658.99" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
+<!-- Node21 -->
+<g id="node21" class="node"><title>Node21</title>
+<g id="a_node21"><a xlink:href="reduction_8h.html" target="_top" xlink:title="Reduction op constructors. ">
+<polygon fill="white" stroke="black" points="2444.53,-73 2444.53,-92 2593.53,-92 2593.53,-73 2444.53,-73"/>
+<text text-anchor="middle" x="2519.03" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/reduction.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node22 -->
-<g id="edge85" class="edge"><title>Node2&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M2029.95,-411.861C2152.15,-411.769 2375.04,-405.892 2442.99,-366 2488.49,-339.287 2465.75,-296.755 2509.99,-268 2584.25,-219.731 2649.3,-300.049 2705.99,-232 2756.6,-171.245 2694.98,-68.2857 2669.26,-30.7409"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.89,-408.361 2019.88,-411.855 2029.88,-415.361 2029.89,-408.361"/>
+<!-- Node3&#45;&gt;Node21 -->
+<g id="edge88" class="edge"><title>Node3&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1994.01,-403.424C2012.42,-394.016 2037,-380.477 2057.03,-366 2180.95,-276.451 2176.07,-205.843 2311.03,-134 2352.85,-111.737 2404.61,-99.1233 2446.03,-92.0698"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1992.37,-400.332 1985.01,-407.95 1995.51,-406.587 1992.37,-400.332"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node"><title>Node23</title>
-<g id="a_node23"><a xlink:href="reorg_8h.html" target="_top" xlink:title="Reorg op constructions. ">
-<polygon fill="white" stroke="black" points="2356.99,-0.5 2356.99,-30.5 2478.99,-30.5 2478.99,-0.5 2356.99,-0.5"/>
-<text text-anchor="start" x="2364.99" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/vision</text>
-<text text-anchor="middle" x="2417.99" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reorg.h</text>
+<g id="a_node23"><a xlink:href="nn_2softmax_8h.html" target="_top" xlink:title="Softmax op constructions. ">
+<polygon fill="white" stroke="black" points="2605.53,-0.5 2605.53,-30.5 2712.53,-30.5 2712.53,-0.5 2605.53,-0.5"/>
+<text text-anchor="start" x="2613.53" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2659.03" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node23 -->
-<g id="edge95" class="edge"><title>Node2&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M1977.14,-397.774C1991.68,-390.083 2008.73,-379.278 2020.99,-366 2071.3,-311.535 2096.99,-291.641 2096.99,-217.5 2096.99,-217.5 2096.99,-217.5 2096.99,-148.5 2096.99,-92.9129 2263.72,-48.8869 2356.86,-28.6304"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1975.38,-394.744 1968.02,-402.373 1978.53,-400.993 1975.38,-394.744"/>
+<!-- Node3&#45;&gt;Node23 -->
+<g id="edge86" class="edge"><title>Node3&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M2048.88,-415.889C2166.81,-413.665 2377.48,-404.263 2442.03,-366 2487.64,-338.969 2465.48,-296.738 2510.03,-268 2584.46,-219.988 2649.34,-300.049 2706.03,-232 2756.64,-171.245 2695.02,-68.2857 2669.3,-30.7409"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.74,-412.391 2038.81,-416.066 2048.87,-419.39 2048.74,-412.391"/>
 </g>
 <!-- Node24 -->
 <g id="node24" class="node"><title>Node24</title>
-<g id="a_node24"><a xlink:href="bias__add_8h.html" target="_top" xlink:title="bias_add op constructions ">
-<polygon fill="white" stroke="black" points="2383.49,-134.5 2383.49,-164.5 2490.49,-164.5 2490.49,-134.5 2383.49,-134.5"/>
-<text text-anchor="start" x="2391.49" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2436.99" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bias_add.h</text>
+<g id="a_node24"><a xlink:href="reorg_8h.html" target="_top" xlink:title="Reorg op constructions. ">
+<polygon fill="white" stroke="black" points="2357.03,-0.5 2357.03,-30.5 2479.03,-30.5 2479.03,-0.5 2357.03,-0.5"/>
+<text text-anchor="start" x="2365.03" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/vision</text>
+<text text-anchor="middle" x="2418.03" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reorg.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node24 -->
-<g id="edge76" class="edge"><title>Node2&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M2029.75,-408.761C2157.14,-404.455 2391.25,-392.942 2417.99,-366 2473.02,-310.553 2451.17,-202.944 2441.04,-164.539"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.52,-405.267 2019.64,-409.096 2029.75,-412.263 2029.52,-405.267"/>
-</g>
-<!-- Node2&#45;&gt;Node25 -->
-<g id="edge31" class="edge"><title>Node2&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M2029.93,-409.703C2263.42,-405.722 2929.3,-392.326 3145.99,-366 3148.82,-365.656 3151.71,-365.256 3154.63,-364.814"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.74,-406.205 2019.81,-409.874 2029.86,-413.204 2029.74,-406.205"/>
-</g>
-<!-- Node2&#45;&gt;Node26 -->
-<g id="edge77" class="edge"><title>Node2&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M2029.83,-411.344C2313.85,-412.14 3242.23,-411.259 3285.99,-366 3307.77,-343.473 3270.82,-315.414 3242.84,-298.785"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.6,-407.843 2019.59,-411.314 2029.58,-414.843 2029.6,-407.843"/>
+<!-- Node3&#45;&gt;Node24 -->
+<g id="edge96" class="edge"><title>Node3&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M1989.28,-402.217C2002.17,-393.075 2017.99,-380.276 2029.03,-366 2073.44,-308.58 2097.03,-290.091 2097.03,-217.5 2097.03,-217.5 2097.03,-217.5 2097.03,-148.5 2097.03,-92.9129 2263.76,-48.8869 2356.9,-28.6304"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1987.2,-399.402 1980.91,-407.934 1991.15,-405.181 1987.2,-399.402"/>
 </g>
-<!-- Node27 -->
-<g id="node27" class="node"><title>Node27</title>
-<g id="a_node27"><a xlink:href="flatten_8h.html" target="_top" xlink:title="Softmax op constructions. ">
-<polygon fill="white" stroke="black" points="2541.49,-268.5 2541.49,-298.5 2648.49,-298.5 2648.49,-268.5 2541.49,-268.5"/>
-<text text-anchor="start" x="2549.49" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2594.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/flatten.h</text>
+<!-- Node25 -->
+<g id="node25" class="node"><title>Node25</title>
+<g id="a_node25"><a xlink:href="bias__add_8h.html" target="_top" xlink:title="bias_add op constructions ">
+<polygon fill="white" stroke="black" points="2383.53,-134.5 2383.53,-164.5 2490.53,-164.5 2490.53,-134.5 2383.53,-134.5"/>
+<text text-anchor="start" x="2391.53" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2437.03" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bias_add.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node27 -->
-<g id="edge82" class="edge"><title>Node2&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M2029.63,-408.16C2178.75,-402.46 2483.91,-388.236 2526.99,-366 2555.97,-351.039 2577.39,-317.806 2587.84,-298.719"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.46,-404.664 2019.6,-408.54 2029.72,-411.659 2029.46,-404.664"/>
+<!-- Node3&#45;&gt;Node25 -->
+<g id="edge77" class="edge"><title>Node3&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2048.8,-412.874C2171.79,-406.607 2392.76,-391.87 2418.03,-366 2472.48,-310.247 2451.15,-203.294 2441.11,-164.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.48,-409.385 2038.67,-413.382 2048.83,-416.377 2048.48,-409.385"/>
 </g>
-<!-- Node2&#45;&gt;Node28 -->
-<g id="edge86" class="edge"><title>Node2&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M2029.76,-410.559C2314.77,-408.727 3250.04,-400.13 3303.99,-366 3330.36,-349.32 3340.97,-310.408 3344.5,-293.084"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.47,-407.06 2019.5,-410.624 2029.52,-414.06 2029.47,-407.06"/>
+<!-- Node3&#45;&gt;Node26 -->
+<g id="edge32" class="edge"><title>Node3&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M2048.89,-414.716C2279.78,-409.408 2933.17,-392.429 3146.03,-366 3148.86,-365.648 3151.75,-365.243 3154.66,-364.796"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.79,-411.217 2038.88,-414.945 2048.95,-418.215 2048.79,-411.217"/>
 </g>
-<!-- Node29 -->
-<g id="node29" class="node"><title>Node29</title>
-<g id="a_node29"><a xlink:href="topi_2include_2topi_2transform_8h.html" target="_top" xlink:title="Transform op constructors. ">
-<polygon fill="white" stroke="black" points="2256.99,-274 2256.99,-293 2408.99,-293 2408.99,-274 2256.99,-274"/>
-<text text-anchor="middle" x="2332.99" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/transform.h</text>
+<!-- Node3&#45;&gt;Node27 -->
+<g id="edge78" class="edge"><title>Node3&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M2048.67,-416.455C2329.81,-415.905 3243.04,-410.673 3286.03,-366 3307.76,-343.423 3270.82,-315.379 3242.86,-298.767"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.53,-412.955 2038.54,-416.474 2048.55,-419.955 2048.53,-412.955"/>
+</g>
+<!-- Node28 -->
+<g id="node28" class="node"><title>Node28</title>
+<g id="a_node28"><a xlink:href="flatten_8h.html" target="_top" xlink:title="Softmax op constructions. ">
+<polygon fill="white" stroke="black" points="2541.53,-268.5 2541.53,-298.5 2648.53,-298.5 2648.53,-268.5 2541.53,-268.5"/>
+<text text-anchor="start" x="2549.53" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2595.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/flatten.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node29 -->
-<g id="edge94" class="edge"><title>Node2&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M2029.91,-410.536C2090.49,-407.365 2173.63,-396.937 2239.99,-366 2249.82,-361.419 2302.04,-313.324 2323.63,-293.238"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.46,-407.053 2019.64,-411.016 2029.79,-414.045 2029.46,-407.053"/>
+<!-- Node3&#45;&gt;Node28 -->
+<g id="edge83" class="edge"><title>Node3&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M2048.99,-416.708C2183.95,-415.803 2446.08,-408.421 2527.03,-366 2555.92,-350.86 2577.37,-317.696 2587.85,-298.668"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.69,-413.21 2038.71,-416.766 2048.73,-420.21 2048.69,-413.21"/>
+</g>
+<!-- Node3&#45;&gt;Node29 -->
+<g id="edge87" class="edge"><title>Node3&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M2049.03,-415.651C2331.52,-412.434 3249.87,-399.441 3303.03,-366 3329.57,-349.303 3340.68,-310.4 3344.43,-293.081"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.81,-412.153 2038.86,-415.766 2048.89,-419.153 2048.81,-412.153"/>
 </g>
 <!-- Node30 -->
 <g id="node30" class="node"><title>Node30</title>
-<g id="a_node30"><a xlink:href="detail_2extern_8h.html" target="_top" xlink:title="Helpers for using external functions. ">
-<polygon fill="white" stroke="black" points="1564.99,-335.5 1564.99,-365.5 1686.99,-365.5 1686.99,-335.5 1564.99,-335.5"/>
-<text text-anchor="start" x="1572.99" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="1625.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
+<g id="a_node30"><a xlink:href="topi_2include_2topi_2transform_8h.html" target="_top" xlink:title="Transform op constructors. ">
+<polygon fill="white" stroke="black" points="2257.03,-274 2257.03,-293 2409.03,-293 2409.03,-274 2257.03,-274"/>
+<text text-anchor="middle" x="2333.03" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/transform.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node30 -->
-<g id="edge44" class="edge"><title>Node2&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M1887.82,-400.735C1836.72,-391.902 1761.45,-378.621 1695.99,-366 1693.07,-365.436 1690.08,-364.85 1687.05,-364.252"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1887.26,-404.19 1897.71,-402.441 1888.45,-397.292 1887.26,-404.19"/>
+<!-- Node3&#45;&gt;Node30 -->
+<g id="edge95" class="edge"><title>Node3&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M2048.94,-412.736C2105.1,-407.485 2180.01,-395.088 2240.03,-366 2249.79,-361.272 2302.05,-313.262 2323.66,-293.218"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.34,-409.275 2038.68,-413.636 2048.95,-416.249 2048.34,-409.275"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node"><title>Node31</title>
-<g id="a_node31"><a xlink:href="fuse_8h.html" target="_top" xlink:title="Fuse operation. ">
-<polygon fill="white" stroke="black" points="821.991,-335.5 821.991,-365.5 943.991,-365.5 943.991,-335.5 821.991,-335.5"/>
-<text text-anchor="start" x="829.991" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="882.991" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/fuse.h</text>
+<g id="a_node31"><a xlink:href="detail_2extern_8h.html" target="_top" xlink:title="Helpers for using external functions. ">
+<polygon fill="white" stroke="black" points="1565.03,-335.5 1565.03,-365.5 1687.03,-365.5 1687.03,-335.5 1565.03,-335.5"/>
+<text text-anchor="start" x="1573.03" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="1626.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node31 -->
-<g id="edge47" class="edge"><title>Node2&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M1866.15,-411.297C1696.27,-411.032 1293.27,-405.816 957.991,-366 953.514,-365.468 948.903,-364.822 944.272,-364.101"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.26,-414.797 1876.26,-411.308 1866.27,-407.797 1866.26,-414.797"/>
+<!-- Node3&#45;&gt;Node31 -->
+<g id="edge45" class="edge"><title>Node3&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M1909.6,-406.142C1854.7,-396.16 1769.64,-380.48 1696.03,-366 1693.11,-365.425 1690.12,-364.83 1687.1,-364.225"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1909.03,-409.595 1919.49,-407.938 1910.28,-402.708 1909.03,-409.595"/>
 </g>
 <!-- Node32 -->
 <g id="node32" class="node"><title>Node32</title>
-<g id="a_node32"><a xlink:href="generic_2default_8h.html" target="_top" xlink:title="Generic default schedule. ">
-<polygon fill="white" stroke="black" points="1137.49,-268.5 1137.49,-298.5 1268.49,-298.5 1268.49,-268.5 1137.49,-268.5"/>
-<text text-anchor="start" x="1145.49" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
-<text text-anchor="middle" x="1202.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/default.h</text>
+<g id="a_node32"><a xlink:href="fuse_8h.html" target="_top" xlink:title="Fuse operation. ">
+<polygon fill="white" stroke="black" points="822.031,-335.5 822.031,-365.5 944.031,-365.5 944.031,-335.5 822.031,-335.5"/>
+<text text-anchor="start" x="830.031" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="883.031" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/fuse.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node32 -->
-<g id="edge72" class="edge"><title>Node2&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M1866.12,-408.262C1730.33,-403.104 1464.51,-390.226 1373.99,-366 1317.6,-350.909 1257.2,-317.564 1225.46,-298.533"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.34,-411.772 1876.46,-408.649 1866.6,-404.777 1866.34,-411.772"/>
+<!-- Node3&#45;&gt;Node32 -->
+<g id="edge48" class="edge"><title>Node3&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1915.57,-406.185C1905.79,-404.54 1895.62,-403.04 1886.03,-402 1475.68,-357.528 1368.07,-413.311 958.031,-366 953.552,-365.483 948.939,-364.848 944.308,-364.135"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.11,-409.659 1925.57,-407.94 1916.32,-402.765 1915.11,-409.659"/>
 </g>
 <!-- Node33 -->
 <g id="node33" class="node"><title>Node33</title>
-<g id="a_node33"><a xlink:href="generic_2extern_8h.html" target="_top" xlink:title="Schedule for extern followed by injective ops. ">
-<polygon fill="white" stroke="black" points="56.4913,-201.5 56.4913,-231.5 187.491,-231.5 187.491,-201.5 56.4913,-201.5"/>
-<text text-anchor="start" x="64.4913" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
-<text text-anchor="middle" x="121.991" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
+<g id="a_node33"><a xlink:href="generic_2default_8h.html" target="_top" xlink:title="Generic default schedule. ">
+<polygon fill="white" stroke="black" points="1137.53,-268.5 1137.53,-298.5 1268.53,-298.5 1268.53,-268.5 1137.53,-268.5"/>
+<text text-anchor="start" x="1145.53" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
+<text text-anchor="middle" x="1203.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/default.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node33 -->
-<g id="edge73" class="edge"><title>Node2&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M1866.18,-411.272C1515.39,-412.154 152.758,-412.557 74.9913,-366 34.9099,-342.004 13.8866,-308.602 36.9913,-268 46.4995,-251.291 63.9576,-239.537 80.5895,-231.599"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.27,-414.772 1876.26,-411.246 1866.25,-407.772 1866.27,-414.772"/>
+<!-- Node3&#45;&gt;Node33 -->
+<g id="edge73" class="edge"><title>Node3&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M1914.27,-406.215C1904.89,-404.627 1895.19,-403.139 1886.03,-402 1659.66,-373.861 1594.63,-424.088 1374.03,-366 1317.58,-351.135 1257.2,-317.703 1225.48,-298.597"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1913.83,-409.691 1924.28,-407.966 1915.04,-402.795 1913.83,-409.691"/>
 </g>
 <!-- Node34 -->
 <g id="node34" class="node"><title>Node34</title>
-<g id="a_node34"><a xlink:href="generic_2injective_8h.html" target="_top" xlink:title="Generic schedule for injective operations. ">
-<polygon fill="white" stroke="black" points="56.4913,-268.5 56.4913,-298.5 187.491,-298.5 187.491,-268.5 56.4913,-268.5"/>
-<text text-anchor="start" x="64.4913" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
-<text text-anchor="middle" x="121.991" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
+<g id="a_node34"><a xlink:href="generic_2extern_8h.html" target="_top" xlink:title="Schedule for extern followed by injective ops. ">
+<polygon fill="white" stroke="black" points="56.5308,-201.5 56.5308,-231.5 187.531,-231.5 187.531,-201.5 56.5308,-201.5"/>
+<text text-anchor="start" x="64.5308" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
+<text text-anchor="middle" x="122.031" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node34 -->
-<g id="edge74" class="edge"><title>Node2&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M1866.44,-410.338C1534.61,-407.458 299.797,-394.838 221.991,-366 184.61,-352.145 150.866,-318.155 133.774,-298.729"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.43,-413.838 1876.46,-410.425 1866.49,-406.838 1866.43,-413.838"/>
+<!-- Node3&#45;&gt;Node34 -->
+<g id="edge74" class="edge"><title>Node3&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1916.54,-406.199C1906.47,-404.502 1895.95,-402.98 1886.03,-402 1785.89,-392.103 161.479,-417.511 75.0308,-366 34.8998,-342.087 13.9262,-308.602 37.0308,-268 46.5391,-251.291 63.9971,-239.537 80.629,-231.599"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.96,-409.65 1926.41,-407.94 1917.17,-402.757 1915.96,-409.65"/>
 </g>
 <!-- Node35 -->
 <g id="node35" class="node"><title>Node35</title>
-<g id="a_node35"><a xlink:href="x86_2bnn_8h.html" target="_top" xlink:title="x86 schedule for binary operations ">
-<polygon fill="white" stroke="black" points="1286.49,-268.5 1286.49,-298.5 1399.49,-298.5 1399.49,-268.5 1286.49,-268.5"/>
-<text text-anchor="start" x="1294.49" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
-<text text-anchor="middle" x="1342.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bnn.h</text>
+<g id="a_node35"><a xlink:href="generic_2injective_8h.html" target="_top" xlink:title="Generic schedule for injective operations. ">
+<polygon fill="white" stroke="black" points="56.5308,-268.5 56.5308,-298.5 187.531,-298.5 187.531,-268.5 56.5308,-268.5"/>
+<text text-anchor="start" x="64.5308" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/generic</text>
+<text text-anchor="middle" x="122.031" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node35 -->
-<g id="edge96" class="edge"><title>Node2&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M1865.75,-411.515C1736.06,-411.097 1490.85,-404.956 1413.99,-366 1384.36,-350.984 1361.77,-317.772 1350.64,-298.704"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1866.02,-415.016 1876.03,-411.537 1866.04,-408.016 1866.02,-415.016"/>
+<!-- Node3&#45;&gt;Node35 -->
+<g id="edge75" class="edge"><title>Node3&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M1916.54,-406.213C1906.47,-404.515 1895.95,-402.989 1886.03,-402 1702.01,-383.651 395.578,-429.886 222.031,-366 184.619,-352.228 150.887,-318.206 133.805,-298.752"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1915.96,-409.664 1926.41,-407.954 1917.17,-402.77 1915.96,-409.664"/>
 </g>
 <!-- Node36 -->
 <g id="node36" class="node"><title>Node36</title>
-<g id="a_node36"><a xlink:href="x86_2default_8h.html" target="_top" xlink:title="default x86 schedule ">
-<polygon fill="white" stroke="black" points="1456.49,-268.5 1456.49,-298.5 1569.49,-298.5 1569.49,-268.5 1456.49,-268.5"/>
-<text text-anchor="start" x="1464.49" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
-<text text-anchor="middle" x="1512.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/default.h</text>
+<g id="a_node36"><a xlink:href="x86_2bnn_8h.html" target="_top" xlink:title="x86 schedule for binary operations ">
+<polygon fill="white" stroke="black" points="1286.53,-268.5 1286.53,-298.5 1399.53,-298.5 1399.53,-268.5 1286.53,-268.5"/>
+<text text-anchor="start" x="1294.53" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
+<text text-anchor="middle" x="1343.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/bnn.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node36 -->
-<g id="edge97" class="edge"><title>Node2&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M1920.93,-397.975C1904.72,-389.69 1884.03,-378.244 1866.99,-366 1850.39,-354.065 1851.49,-343.706 1832.99,-335 1729.42,-286.273 1690.6,-319.476 1577.99,-299 1575.26,-298.504 1572.47,-297.973 1569.66,-297.418"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1919.39,-401.116 1929.9,-402.47 1922.53,-394.858 1919.39,-401.116"/>
+<!-- Node3&#45;&gt;Node36 -->
+<g id="edge97" class="edge"><title>Node3&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M1913.94,-406.206C1904.67,-404.633 1895.09,-403.153 1886.03,-402 1781.68,-388.715 1508.05,-413.184 1414.03,-366 1384.34,-351.102 1361.77,-317.845 1350.66,-298.737"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1913.4,-409.665 1923.86,-407.938 1914.61,-402.769 1913.4,-409.665"/>
 </g>
 <!-- Node37 -->
 <g id="node37" class="node"><title>Node37</title>
-<g id="a_node37"><a xlink:href="x86_2injective_8h.html" target="_top" xlink:title="x86 schedule for injective ops ">
-<polygon fill="white" stroke="black" points="1587.49,-268.5 1587.49,-298.5 1700.49,-298.5 1700.49,-268.5 1587.49,-268.5"/>
-<text text-anchor="start" x="1595.49" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
-<text text-anchor="middle" x="1643.99" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
+<g id="a_node37"><a xlink:href="x86_2default_8h.html" target="_top" xlink:title="default x86 schedule ">
+<polygon fill="white" stroke="black" points="1456.53,-268.5 1456.53,-298.5 1569.53,-298.5 1569.53,-268.5 1456.53,-268.5"/>
+<text text-anchor="start" x="1464.53" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
+<text text-anchor="middle" x="1513.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/default.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node37 -->
-<g id="edge98" class="edge"><title>Node2&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M1934.81,-394.195C1920.15,-376.686 1894.84,-349.786 1866.99,-335 1863.26,-333.016 1765.58,-311.274 1700.75,-296.973"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1932.44,-396.827 1941.47,-402.381 1937.88,-392.413 1932.44,-396.827"/>
+<!-- Node3&#45;&gt;Node37 -->
+<g id="edge98" class="edge"><title>Node3&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M1937.02,-403.936C1916.51,-394.741 1889.15,-381.245 1867.03,-366 1850.19,-354.395 1851.53,-343.706 1833.03,-335 1729.46,-286.273 1690.64,-319.476 1578.03,-299 1575.3,-298.504 1572.51,-297.973 1569.7,-297.418"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1935.64,-407.151 1946.2,-407.972 1938.45,-400.743 1935.64,-407.151"/>
 </g>
 <!-- Node38 -->
 <g id="node38" class="node"><title>Node38</title>
-<g id="a_node38"><a xlink:href="pad__utils_8h.html" target="_top" xlink:title="Padding helpers. ">
-<polygon fill="white" stroke="black" points="3010.99,-67.5 3010.99,-97.5 3132.99,-97.5 3132.99,-67.5 3010.99,-67.5"/>
-<text text-anchor="start" x="3018.99" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="3071.99" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pad_utils.h</text>
+<g id="a_node38"><a xlink:href="x86_2injective_8h.html" target="_top" xlink:title="x86 schedule for injective ops ">
+<polygon fill="white" stroke="black" points="1587.53,-268.5 1587.53,-298.5 1700.53,-298.5 1700.53,-268.5 1587.53,-268.5"/>
+<text text-anchor="start" x="1595.53" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/x86</text>
+<text text-anchor="middle" x="1644.03" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node38 -->
-<g id="edge65" class="edge"><title>Node2&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M2030.07,-408.757C2172.21,-404.202 2452.56,-392.017 2488.99,-366 2527.7,-338.358 2494.36,-297.086 2531.99,-268 2612.12,-206.07 2660.23,-261.888 2756.99,-232 2871.08,-196.759 2996.62,-127.508 3048.03,-97.6988"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.55,-405.271 2019.67,-409.084 2029.77,-412.268 2029.55,-405.271"/>
+<!-- Node3&#45;&gt;Node38 -->
+<g id="edge99" class="edge"><title>Node3&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M1952.02,-400.4C1933.74,-381.781 1901.06,-351.574 1867.03,-335 1863.23,-333.148 1765.57,-311.362 1700.77,-297.017"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1949.7,-403.034 1959.15,-407.822 1954.75,-398.186 1949.7,-403.034"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node"><title>Node39</title>
-<g id="a_node39"><a xlink:href="ravel__unravel_8h.html" target="_top" xlink:title="Index ravel and unraval operations. ">
-<polygon fill="white" stroke="black" points="2108.99,-335.5 2108.99,-365.5 2230.99,-365.5 2230.99,-335.5 2108.99,-335.5"/>
-<text text-anchor="start" x="2116.99" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="2169.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/ravel_unravel.h</text>
+<g id="a_node39"><a xlink:href="pad__utils_8h.html" target="_top" xlink:title="Padding helpers. ">
+<polygon fill="white" stroke="black" points="3011.03,-67.5 3011.03,-97.5 3133.03,-97.5 3133.03,-67.5 3011.03,-67.5"/>
+<text text-anchor="start" x="3019.03" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="3072.03" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pad_utils.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node39 -->
-<g id="edge67" class="edge"><title>Node2&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M1989.56,-399.859C2025.81,-390.144 2078.56,-376.006 2117.67,-365.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1988.55,-396.506 1979.8,-402.475 1990.36,-403.267 1988.55,-396.506"/>
+<!-- Node3&#45;&gt;Node39 -->
+<g id="edge66" class="edge"><title>Node3&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2048.65,-413.109C2186.56,-406.718 2454.21,-391.223 2489.03,-366 2527.55,-338.098 2494.45,-297.153 2532.03,-268 2610.32,-207.272 2657.33,-261.123 2752.03,-232 2867.65,-196.445 2995.33,-127.365 3047.65,-97.6497"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.37,-409.618 2038.54,-413.572 2048.69,-416.61 2048.37,-409.618"/>
 </g>
 <!-- Node40 -->
 <g id="node40" class="node"><title>Node40</title>
-<g id="a_node40"><a xlink:href="tensor__utils_8h.html" target="_top" xlink:title="Utility functions for handling tensor. ">
-<polygon fill="white" stroke="black" points="2286.99,-335.5 2286.99,-365.5 2408.99,-365.5 2408.99,-335.5 2286.99,-335.5"/>
-<text text-anchor="start" x="2294.99" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="2347.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/tensor_utils.h</text>
+<g id="a_node40"><a xlink:href="ravel__unravel_8h.html" target="_top" xlink:title="Index ravel and unraval operations. ">
+<polygon fill="white" stroke="black" points="2109.03,-335.5 2109.03,-365.5 2231.03,-365.5 2231.03,-335.5 2109.03,-335.5"/>
+<text text-anchor="start" x="2117.03" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="2170.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/ravel_unravel.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node40 -->
-<g id="edge70" class="edge"><title>Node2&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M2027.57,-401.186C2093.48,-392.77 2189.51,-379.839 2272.99,-366 2277.44,-365.263 2282.03,-364.465 2286.64,-363.637"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2026.74,-397.764 2017.26,-402.498 2027.62,-404.708 2026.74,-397.764"/>
+<!-- Node3&#45;&gt;Node40 -->
+<g id="edge68" class="edge"><title>Node3&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M2003.65,-404.775C2038.07,-393.753 2089.63,-377.244 2126.22,-365.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2002.44,-401.486 1993.99,-407.869 2004.58,-408.152 2002.44,-401.486"/>
 </g>
 <!-- Node41 -->
 <g id="node41" class="node"><title>Node41</title>
-<g id="a_node41"><a xlink:href="batch__matmul_8h.html" target="_top" xlink:title="Batch matmul op constructions. ">
-<polygon fill="white" stroke="black" points="2617.49,-335.5 2617.49,-365.5 2724.49,-365.5 2724.49,-335.5 2617.49,-335.5"/>
-<text text-anchor="start" x="2625.49" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2670.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/batch_matmul.h</text>
+<g id="a_node41"><a xlink:href="tensor__utils_8h.html" target="_top" xlink:title="Utility functions for handling tensor. ">
+<polygon fill="white" stroke="black" points="2287.03,-335.5 2287.03,-365.5 2409.03,-365.5 2409.03,-335.5 2287.03,-335.5"/>
+<text text-anchor="start" x="2295.03" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="2348.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/tensor_utils.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node41 -->
-<g id="edge75" class="edge"><title>Node2&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M2029.77,-409.094C2154.12,-405.36 2397.95,-394.756 2602.99,-366 2607.65,-365.346 2612.47,-364.555 2617.29,-363.684"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.47,-405.602 2019.57,-409.393 2029.67,-412.599 2029.47,-405.602"/>
+<!-- Node3&#45;&gt;Node41 -->
+<g id="edge71" class="edge"><title>Node3&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M2031.58,-406.374C2093.57,-396.525 2189.82,-380.908 2273.03,-366 2277.47,-365.205 2282.05,-364.365 2286.66,-363.507"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2030.88,-402.941 2021.55,-407.964 2031.98,-409.854 2030.88,-402.941"/>
 </g>
 <!-- Node42 -->
 <g id="node42" class="node"><title>Node42</title>
-<g id="a_node42"><a xlink:href="nn_2dense_8h.html" target="_top" xlink:title="Dense op constructions. ">
-<polygon fill="white" stroke="black" points="1201.49,-201.5 1201.49,-231.5 1308.49,-231.5 1308.49,-201.5 1201.49,-201.5"/>
-<text text-anchor="start" x="1209.49" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="1254.99" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
+<g id="a_node42"><a xlink:href="batch__matmul_8h.html" target="_top" xlink:title="Batch matmul op constructions. ">
+<polygon fill="white" stroke="black" points="2617.53,-335.5 2617.53,-365.5 2724.53,-365.5 2724.53,-335.5 2617.53,-335.5"/>
+<text text-anchor="start" x="2625.53" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2671.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/batch_matmul.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node42 -->
-<g id="edge78" class="edge"><title>Node2&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M1958.81,-393.614C1979.17,-359.809 2019.64,-286.881 2001.99,-268 1954.87,-217.581 1471.83,-216.061 1308.57,-217.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1955.67,-392.034 1953.44,-402.391 1961.64,-395.686 1955.67,-392.034"/>
+<!-- Node3&#45;&gt;Node42 -->
+<g id="edge76" class="edge"><title>Node3&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M2049.25,-413.412C2170.82,-408.068 2405.47,-394.781 2603.03,-366 2607.69,-365.321 2612.51,-364.513 2617.33,-363.63"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.75,-409.93 2038.91,-413.859 2049.05,-416.923 2048.75,-409.93"/>
 </g>
-<!-- Node2&#45;&gt;Node43 -->
-<g id="edge81" class="edge"><title>Node2&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M2030.07,-410.299C2290.71,-407.773 3097.61,-397.541 3356.99,-366 3361.66,-365.432 3366.49,-364.7 3371.32,-363.868"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.89,-406.801 2019.92,-410.397 2029.95,-413.801 2029.89,-406.801"/>
-</g>
-<!-- Node44 -->
-<g id="node44" class="node"><title>Node44</title>
-<g id="a_node44"><a xlink:href="local__response__norm_8h.html" target="_top" xlink:title="local response normalization op constructions ">
-<polygon fill="white" stroke="black" points="2742.49,-335.5 2742.49,-365.5 2873.49,-365.5 2873.49,-335.5 2742.49,-335.5"/>
-<text text-anchor="start" x="2750.49" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2807.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/local_response_norm.h</text>
+<!-- Node43 -->
+<g id="node43" class="node"><title>Node43</title>
+<g id="a_node43"><a xlink:href="nn_2dense_8h.html" target="_top" xlink:title="Dense op constructions. ">
+<polygon fill="white" stroke="black" points="1201.53,-201.5 1201.53,-231.5 1308.53,-231.5 1308.53,-201.5 1201.53,-201.5"/>
+<text text-anchor="start" x="1209.53" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="1255.03" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node44 -->
-<g id="edge83" class="edge"><title>Node2&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M2029.74,-409.907C2172.81,-407.195 2477.68,-397.852 2732.99,-366 2736.02,-365.622 2739.11,-365.196 2742.22,-364.731"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.65,-406.408 2019.72,-410.092 2029.78,-413.407 2029.65,-406.408"/>
+<!-- Node3&#45;&gt;Node43 -->
+<g id="edge79" class="edge"><title>Node3&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M1972.43,-397.953C1977.26,-381.424 1984.56,-356.58 1991.03,-335 1995.84,-318.975 1999.56,-315.547 2002.03,-299 2004.07,-285.373 2011.44,-278.066 2002.03,-268 1954.91,-217.581 1471.87,-216.061 1308.61,-217.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1968.97,-397.346 1969.52,-407.926 1975.69,-399.306 1968.97,-397.346"/>
+</g>
+<!-- Node3&#45;&gt;Node44 -->
+<g id="edge82" class="edge"><title>Node3&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M2048.9,-415.394C2306.97,-411.613 3101.48,-397.645 3357.03,-366 3361.7,-365.421 3366.53,-364.683 3371.36,-363.846"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.8,-411.895 2038.85,-415.54 2048.9,-418.894 2048.8,-411.895"/>
 </g>
 <!-- Node45 -->
 <g id="node45" class="node"><title>Node45</title>
-<g id="a_node45"><a xlink:href="mapping_8h.html" target="_top" xlink:title="Mapping op constructions. ">
-<polygon fill="white" stroke="black" points="2891.49,-335.5 2891.49,-365.5 2998.49,-365.5 2998.49,-335.5 2891.49,-335.5"/>
-<text text-anchor="start" x="2899.49" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
-<text text-anchor="middle" x="2944.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/mapping.h</text>
+<g id="a_node45"><a xlink:href="local__response__norm_8h.html" target="_top" xlink:title="local response normalization op constructions ">
+<polygon fill="white" stroke="black" points="2742.53,-335.5 2742.53,-365.5 2873.53,-365.5 2873.53,-335.5 2742.53,-335.5"/>
+<text text-anchor="start" x="2750.53" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2808.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/local_response_norm.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node45 -->
-<g id="edge84" class="edge"><title>Node2&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M2029.83,-408.928C2225.95,-403.662 2718.57,-388.56 2881.99,-366 2884.99,-365.586 2888.06,-365.097 2891.15,-364.555"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.5,-405.436 2019.59,-409.202 2029.68,-412.433 2029.5,-405.436"/>
+<!-- Node3&#45;&gt;Node45 -->
+<g id="edge84" class="edge"><title>Node3&#45;&gt;Node45</title>
+<path fill="none" stroke="midnightblue" d="M2048.85,-414.465C2189.31,-410.222 2485.12,-398.009 2733.03,-366 2736.06,-365.609 2739.14,-365.172 2742.26,-364.699"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.5,-410.974 2038.6,-414.769 2048.7,-417.971 2048.5,-410.974"/>
 </g>
 <!-- Node46 -->
 <g id="node46" class="node"><title>Node46</title>
-<g id="a_node46"><a xlink:href="rocm_2normalization_8h.html" target="_top" xlink:title="rocm schedule for LRN and l2 normalization operations ">
-<polygon fill="white" stroke="black" points="3016.99,-335.5 3016.99,-365.5 3136.99,-365.5 3136.99,-335.5 3016.99,-335.5"/>
-<text text-anchor="start" x="3024.99" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
-<text text-anchor="middle" x="3076.99" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
+<g id="a_node46"><a xlink:href="mapping_8h.html" target="_top" xlink:title="Mapping op constructions. ">
+<polygon fill="white" stroke="black" points="2891.53,-335.5 2891.53,-365.5 2998.53,-365.5 2998.53,-335.5 2891.53,-335.5"/>
+<text text-anchor="start" x="2899.53" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn</text>
+<text text-anchor="middle" x="2945.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/mapping.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node46 -->
-<g id="edge90" class="edge"><title>Node2&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M2029.95,-409.234C2244.37,-404.338 2818.33,-389.392 3006.99,-366 3010.19,-365.603 3013.47,-365.137 3016.77,-364.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.63,-405.74 2019.71,-409.466 2029.78,-412.738 2029.63,-405.74"/>
+<!-- Node3&#45;&gt;Node46 -->
+<g id="edge85" class="edge"><title>Node3&#45;&gt;Node46</title>
+<path fill="none" stroke="midnightblue" d="M2048.9,-416.661C2209.5,-415.946 2576.83,-409.22 2882.03,-366 2885.03,-365.575 2888.1,-365.079 2891.19,-364.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.61,-413.162 2038.62,-416.7 2048.63,-420.162 2048.61,-413.162"/>
 </g>
-<!-- Node3&#45;&gt;Node4 -->
-<g id="edge3" class="edge"><title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1709.3,-268.04C1709.19,-268.026 1709.09,-268.013 1708.99,-268 1587.53,-252.191 1274.26,-273.423 1158.99,-232 1136.82,-224.032 1138.2,-208.86 1115.99,-201 1036.68,-172.93 458.846,-156.542 269.725,-151.886"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1708.5,-271.462 1718.9,-269.42 1709.5,-264.533 1708.5,-271.462"/>
-</g>
-<!-- Node4&#45;&gt;Node5 -->
-<g id="edge4" class="edge"><title>Node4&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M279.583,-134.692C281.065,-134.453 282.535,-134.223 283.991,-134 425.936,-112.307 593.997,-96.2069 681.765,-88.522"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="278.971,-131.245 269.691,-136.357 280.133,-138.148 278.971,-131.245"/>
-</g>
-<!-- Node6&#45;&gt;Node5 -->
-<g id="edge6" class="edge"><title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1854.65,-268.056C1693.2,-250.982 1327.49,-282.496 1191.99,-232 1170.92,-224.145 1172.05,-211.17 1151.99,-201 1035.42,-141.904 884.701,-108.443 802.329,-93.3594"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1854.64,-271.579 1864.98,-269.252 1855.45,-264.625 1854.64,-271.579"/>
-</g>
-<!-- Node7&#45;&gt;Node8 -->
-<g id="edge9" class="edge"><title>Node7&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M593.991,-258.108C593.991,-249.154 593.991,-239.323 593.991,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="590.491,-258.396 593.991,-268.396 597.491,-258.396 590.491,-258.396"/>
-</g>
-<!-- Node10&#45;&gt;Node11 -->
-<g id="edge12" class="edge"><title>Node10&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M376.655,-258.403C375.404,-249.37 374.025,-239.408 372.94,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="373.2,-258.971 378.038,-268.396 380.134,-258.01 373.2,-258.971"/>
-</g>
-<!-- Node12&#45;&gt;Node13 -->
-<g id="edge14" class="edge"><title>Node12&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M806.407,-263.714C826.278,-253.463 850.471,-240.983 868.705,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="804.614,-260.701 797.331,-268.396 807.823,-266.922 804.614,-260.701"/>
-</g>
-<!-- Node14&#45;&gt;Node15 -->
-<g id="edge16" class="edge"><title>Node14&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1055.17,-258.403C1053.37,-249.37 1051.37,-239.408 1049.81,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1051.78,-259.277 1057.17,-268.396 1058.64,-257.904 1051.78,-259.277"/>
-</g>
-<!-- Node16&#45;&gt;Node4 -->
-<g id="edge18" class="edge"><title>Node16&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M264.949,-328.978C255.71,-320.642 246.162,-310.305 239.991,-299 215.542,-254.213 210.92,-192.026 210.116,-164.531"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="262.682,-331.645 272.555,-335.487 267.233,-326.326 262.682,-331.645"/>
-</g>
-<!-- Node16&#45;&gt;Node5 -->
-<g id="edge20" class="edge"><title>Node16&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M285.668,-325.24C278.809,-292.862 272.436,-235.597 301.991,-201 351.165,-143.439 572.983,-106.244 681.637,-91.1562"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="282.306,-326.238 287.961,-335.198 289.127,-324.667 282.306,-326.238"/>
-</g>
-<!-- Node16&#45;&gt;Node10 -->
-<g id="edge19" class="edge"><title>Node16&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M319.134,-329.451C332.672,-319.452 348.718,-307.6 360.934,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="317.05,-326.639 311.086,-335.396 321.209,-332.27 317.05,-326.639"/>
-</g>
-<!-- Node16&#45;&gt;Node11 -->
-<g id="edge21" class="edge"><title>Node16&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M293.634,-324.944C295.709,-307.911 300.4,-285.272 310.991,-268 320.102,-253.144 335.102,-240.519 347.824,-231.608"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="290.119,-324.918 292.612,-335.215 297.085,-325.611 290.119,-324.918"/>
-</g>
-<!-- Node18 -->
-<g id="node18" class="node"><title>Node18</title>
-<g id="a_node18"><a xlink:href="broadcast_8h.html" target="_top" xlink:title="Broadcast op constructions. ">
-<polygon fill="white" stroke="black" points="2544.99,-207 2544.99,-226 2696.99,-226 2696.99,-207 2544.99,-207"/>
-<text text-anchor="middle" x="2620.99" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/broadcast.h</text>
+<!-- Node47 -->
+<g id="node47" class="node"><title>Node47</title>
+<g id="a_node47"><a xlink:href="rocm_2normalization_8h.html" target="_top" xlink:title="rocm schedule for LRN and l2 normalization operations ">
+<polygon fill="white" stroke="black" points="3017.03,-335.5 3017.03,-365.5 3137.03,-365.5 3137.03,-335.5 3017.03,-335.5"/>
+<text text-anchor="start" x="3025.03" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/rocm</text>
+<text text-anchor="middle" x="3077.03" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
 </a>
 </g>
 </g>
-<!-- Node17&#45;&gt;Node18 -->
-<g id="edge23" class="edge"><title>Node17&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M2696.12,-263.141C2675.79,-250.787 2650.44,-235.388 2635,-226.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2694.41,-266.195 2704.77,-268.396 2698.04,-260.213 2694.41,-266.195"/>
+<!-- Node3&#45;&gt;Node47 -->
+<g id="edge91" class="edge"><title>Node3&#45;&gt;Node47</title>
+<path fill="none" stroke="midnightblue" d="M2048.82,-416.845C2224.83,-416.642 2652.31,-411.073 3007.03,-366 3010.23,-365.593 3013.5,-365.12 3016.8,-364.597"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2048.6,-413.345 2038.61,-416.851 2048.61,-420.345 2048.6,-413.345"/>
+</g>
+<!-- Node4&#45;&gt;Node5 -->
+<g id="edge4" class="edge"><title>Node4&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M1709.34,-268.04C1709.23,-268.026 1709.13,-268.013 1709.03,-268 1587.57,-252.191 1274.3,-273.423 1159.03,-232 1136.86,-224.032 1138.24,-208.86 1116.03,-201 1036.72,-172.93 458.886,-156.542 269.765,-151.886"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1708.54,-271.462 1718.94,-269.42 1709.54,-264.533 1708.54,-271.462"/>
+</g>
+<!-- Node5&#45;&gt;Node6 -->
+<g id="edge5" class="edge"><title>Node5&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M279.623,-134.695C281.104,-134.456 282.575,-134.224 284.031,-134 423.424,-112.576 588.382,-96.4223 675.003,-88.6431"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="279.009,-131.249 269.732,-136.366 280.175,-138.151 279.009,-131.249"/>
+</g>
+<!-- Node7&#45;&gt;Node6 -->
+<g id="edge7" class="edge"><title>Node7&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M1854.69,-268.056C1693.24,-250.982 1327.52,-282.496 1192.03,-232 1170.96,-224.145 1172.11,-211.126 1152.03,-201 1032.99,-140.981 878.883,-107.745 795.339,-92.9773"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1854.68,-271.579 1865.02,-269.252 1855.49,-264.625 1854.68,-271.579"/>
+</g>
+<!-- Node8&#45;&gt;Node9 -->
+<g id="edge10" class="edge"><title>Node8&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M594.031,-258.108C594.031,-249.154 594.031,-239.323 594.031,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="590.531,-258.396 594.031,-268.396 597.531,-258.396 590.531,-258.396"/>
+</g>
+<!-- Node11&#45;&gt;Node12 -->
+<g id="edge13" class="edge"><title>Node11&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M376.694,-258.403C375.444,-249.37 374.064,-239.408 372.98,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="373.239,-258.971 378.078,-268.396 380.173,-258.01 373.239,-258.971"/>
+</g>
+<!-- Node13&#45;&gt;Node14 -->
+<g id="edge15" class="edge"><title>Node13&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M806.446,-263.714C826.318,-253.463 850.511,-240.983 868.744,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="804.653,-260.701 797.371,-268.396 807.863,-266.922 804.653,-260.701"/>
+</g>
+<!-- Node15&#45;&gt;Node16 -->
+<g id="edge17" class="edge"><title>Node15&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M1055.21,-258.403C1053.4,-249.37 1051.41,-239.408 1049.85,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1051.82,-259.277 1057.21,-268.396 1058.68,-257.904 1051.82,-259.277"/>
+</g>
+<!-- Node17&#45;&gt;Node5 -->
+<g id="edge19" class="edge"><title>Node17&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M264.988,-328.978C255.75,-320.642 246.202,-310.305 240.031,-299 215.582,-254.213 210.96,-192.026 210.155,-164.531"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="262.721,-331.645 272.595,-335.487 267.272,-326.326 262.721,-331.645"/>
+</g>
+<!-- Node17&#45;&gt;Node6 -->
+<g id="edge21" class="edge"><title>Node17&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M285.727,-325.257C278.892,-292.899 272.545,-235.656 302.031,-201 350.234,-144.344 567.541,-106.822 674.785,-91.4208"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="282.363,-326.246 288.013,-335.208 289.186,-324.679 282.363,-326.246"/>
+</g>
+<!-- Node17&#45;&gt;Node11 -->
+<g id="edge20" class="edge"><title>Node17&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M319.174,-329.451C332.712,-319.452 348.758,-307.6 360.973,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="317.09,-326.639 311.126,-335.396 321.249,-332.27 317.09,-326.639"/>
+</g>
+<!-- Node17&#45;&gt;Node12 -->
+<g id="edge22" class="edge"><title>Node17&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M293.673,-324.944C295.749,-307.911 300.439,-285.272 311.031,-268 320.141,-253.144 335.141,-240.519 347.864,-231.608"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="290.159,-324.918 292.651,-335.215 297.124,-325.611 290.159,-324.918"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node"><title>Node19</title>
-<g id="a_node19"><a xlink:href="elemwise_8h.html" target="_top" xlink:title="Elementwise op constructions. ">
-<polygon fill="white" stroke="black" points="2546.49,-140 2546.49,-159 2695.49,-159 2695.49,-140 2546.49,-140"/>
-<text text-anchor="middle" x="2620.99" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/elemwise.h</text>
+<g id="a_node19"><a xlink:href="broadcast_8h.html" target="_top" xlink:title="Broadcast op constructions. ">
+<polygon fill="white" stroke="black" points="2545.03,-207 2545.03,-226 2697.03,-226 2697.03,-207 2545.03,-207"/>
+<text text-anchor="middle" x="2621.03" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/broadcast.h</text>
 </a>
 </g>
 </g>
 <!-- Node18&#45;&gt;Node19 -->
 <g id="edge24" class="edge"><title>Node18&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M2620.99,-196.537C2620.99,-184.17 2620.99,-168.62 2620.99,-159.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2617.49,-196.734 2620.99,-206.734 2624.49,-196.734 2617.49,-196.734"/>
+<path fill="none" stroke="midnightblue" d="M2696.16,-263.141C2675.83,-250.787 2650.48,-235.388 2635.03,-226.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2694.45,-266.195 2704.81,-268.396 2698.08,-260.213 2694.45,-266.195"/>
 </g>
-<!-- Node18&#45;&gt;Node20 -->
-<g id="edge30" class="edge"><title>Node18&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M2586.86,-202.736C2569.41,-194.52 2549.31,-182.135 2536.99,-165 2520.83,-142.53 2518.77,-108.222 2518.76,-92.2486"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2585.66,-206.03 2596.22,-206.876 2588.49,-199.628 2585.66,-206.03"/>
+<!-- Node20 -->
+<g id="node20" class="node"><title>Node20</title>
+<g id="a_node20"><a xlink:href="elemwise_8h.html" target="_top" xlink:title="Elementwise op constructions. ">
+<polygon fill="white" stroke="black" points="2546.53,-140 2546.53,-159 2695.53,-159 2695.53,-140 2546.53,-140"/>
+<text text-anchor="middle" x="2621.03" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/elemwise.h</text>
+</a>
 </g>
-<!-- Node18&#45;&gt;Node24 -->
-<g id="edge29" class="edge"><title>Node18&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M2586.99,-203.49C2555.8,-192.47 2509.58,-176.143 2476.7,-164.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2585.96,-206.838 2596.56,-206.869 2588.29,-200.237 2585.96,-206.838"/>
 </g>
 <!-- Node19&#45;&gt;Node20 -->
 <g id="edge25" class="edge"><title>Node19&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M2598.66,-134.269C2578.47,-121.403 2549.4,-102.879 2532.53,-92.1273"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2596.92,-137.311 2607.24,-139.734 2600.68,-131.408 2596.92,-137.311"/>
+<path fill="none" stroke="midnightblue" d="M2621.03,-196.537C2621.03,-184.17 2621.03,-168.62 2621.03,-159.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2617.53,-196.734 2621.03,-206.734 2624.53,-196.734 2617.53,-196.734"/>
+</g>
+<!-- Node19&#45;&gt;Node21 -->
+<g id="edge31" class="edge"><title>Node19&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M2586.9,-202.736C2569.45,-194.52 2549.35,-182.135 2537.03,-165 2520.87,-142.53 2518.81,-108.222 2518.8,-92.2486"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2585.7,-206.03 2596.26,-206.876 2588.53,-199.628 2585.7,-206.03"/>
+</g>
+<!-- Node19&#45;&gt;Node25 -->
+<g id="edge30" class="edge"><title>Node19&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2587.03,-203.49C2555.84,-192.47 2509.62,-176.143 2476.74,-164.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2586,-206.838 2596.6,-206.869 2588.33,-200.237 2586,-206.838"/>
 </g>
 <!-- Node20&#45;&gt;Node21 -->
 <g id="edge26" class="edge"><title>Node20&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M2603.76,-72.9444C2738.36,-59.3588 2997.18,-33.2357 3109.17,-21.9327"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2603.09,-69.4936 2593.5,-73.9802 2603.8,-76.4582 2603.09,-69.4936"/>
-</g>
-<!-- Node20&#45;&gt;Node22 -->
-<g id="edge27" class="edge"><title>Node20&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M2546.73,-68.6206C2570.41,-57.6252 2604.41,-41.8413 2628.78,-30.5281"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2545.18,-65.4828 2537.58,-72.8685 2548.13,-71.8319 2545.18,-65.4828"/>
-</g>
-<!-- Node20&#45;&gt;Node23 -->
-<g id="edge28" class="edge"><title>Node20&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M2496.7,-67.1526C2479.8,-56.2748 2456.69,-41.4029 2439.88,-30.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2495.07,-70.2652 2505.37,-72.7338 2498.86,-64.3788 2495.07,-70.2652"/>
-</g>
-<!-- Node25&#45;&gt;Node17 -->
-<g id="edge33" class="edge"><title>Node25&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M3144.8,-334.92C2992.77,-311.846 2951.35,-321.084 2802.99,-299 2798.53,-298.336 2793.93,-297.593 2789.31,-296.803"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3144.56,-338.424 3154.97,-336.487 3145.62,-331.506 3144.56,-338.424"/>
-</g>
-<!-- Node25&#45;&gt;Node18 -->
-<g id="edge32" class="edge"><title>Node25&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M3145.02,-334.984C3009.19,-314.747 2965.22,-347.334 2840.99,-299 2819.03,-290.457 2819.19,-278.275 2797.99,-268 2755.72,-247.514 2703.63,-233.903 2666.94,-226.027"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3144.55,-338.451 3154.97,-336.534 3145.62,-331.535 3144.55,-338.451"/>
-</g>
-<!-- Node25&#45;&gt;Node20 -->
-<g id="edge38" class="edge"><title>Node25&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M3144.73,-334.936C3025.67,-316.731 2984.11,-349.135 2878.99,-299 2830.75,-275.992 2750.61,-160.15 2703.99,-134 2664.94,-112.091 2615.85,-99.2642 2578.06,-92.0233"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3144.52,-338.448 3154.96,-336.594 3145.64,-331.538 3144.52,-338.448"/>
-</g>
-<!-- Node25&#45;&gt;Node23 -->
-<g id="edge43" class="edge"><title>Node25&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M3180.44,-330.631C3087.49,-281.857 2828.75,-149.654 2601.99,-67 2561.69,-52.309 2515.08,-39.5585 2478.85,-30.5446"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3178.94,-333.797 3189.42,-335.355 3182.2,-327.602 3178.94,-333.797"/>
-</g>
-<!-- Node25&#45;&gt;Node26 -->
-<g id="edge34" class="edge"><title>Node25&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M3215.99,-325.108C3215.99,-316.154 3215.99,-306.323 3215.99,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3212.49,-325.396 3215.99,-335.396 3219.49,-325.396 3212.49,-325.396"/>
-</g>
-<!-- Node25&#45;&gt;Node27 -->
-<g id="edge35" class="edge"><title>Node25&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M3144.91,-334.984C2928.83,-305.671 2869.77,-330.992 2657.99,-299 2654.88,-298.531 2651.7,-297.99 2648.5,-297.401"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3144.61,-338.475 3154.99,-336.375 3145.56,-331.54 3144.61,-338.475"/>
-</g>
-<!-- Node25&#45;&gt;Node28 -->
-<g id="edge36" class="edge"><title>Node25&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M3253.39,-330.803C3278.31,-318.342 3309.88,-302.556 3328.98,-293.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3251.58,-327.793 3244.2,-335.396 3254.71,-334.054 3251.58,-327.793"/>
-</g>
-<!-- Node25&#45;&gt;Node29 -->
-<g id="edge39" class="edge"><title>Node25&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M3144.47,-334.926C2873.25,-299.61 2801.43,-316.714 2531.99,-299 2491.38,-296.33 2446.12,-293.056 2409.04,-290.295"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3144.25,-338.427 3154.62,-336.26 3145.16,-331.486 3144.25,-338.427"/>
-</g>
-<!-- Node28&#45;&gt;Node21 -->
-<g id="edge37" class="edge"><title>Node28&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M3334.24,-265.415C3300.48,-216.351 3203.69,-75.6578 3172.68,-30.5784"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3331.56,-267.696 3340.11,-273.951 3337.33,-263.729 3331.56,-267.696"/>
-</g>
-<!-- Node29&#45;&gt;Node20 -->
-<g id="edge41" class="edge"><title>Node29&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M2332.88,-263.514C2333.74,-232.392 2339.95,-170.355 2373.99,-134 2395.13,-111.428 2426.88,-98.9432 2455.29,-92.0385"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2329.38,-263.772 2332.77,-273.81 2336.38,-263.849 2329.38,-263.772"/>
-</g>
-<!-- Node29&#45;&gt;Node23 -->
-<g id="edge42" class="edge"><title>Node29&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M2331.18,-263.869C2329.95,-247.285 2329.01,-222.409 2331.99,-201 2341.53,-132.393 2386.87,-60.6902 2407.61,-30.8479"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2327.7,-264.217 2332.04,-273.881 2334.67,-263.618 2327.7,-264.217"/>
-</g>
-<!-- Node29&#45;&gt;Node24 -->
-<g id="edge40" class="edge"><title>Node29&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M2346,-265.983C2366.59,-239.857 2406.31,-189.441 2425.74,-164.783"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2343.25,-263.818 2339.82,-273.839 2348.75,-268.15 2343.25,-263.818"/>
-</g>
-<!-- Node30&#45;&gt;Node3 -->
-<g id="edge45" class="edge"><title>Node30&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1669.36,-331.544C1694.48,-321.143 1725.66,-308.238 1748.99,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1667.96,-328.337 1660.06,-335.396 1670.64,-334.804 1667.96,-328.337"/>
-</g>
-<!-- Node30&#45;&gt;Node6 -->
-<g id="edge46" class="edge"><title>Node30&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M1697.23,-334.217C1748.04,-323.318 1815.78,-308.787 1864.89,-298.251"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1696.35,-330.827 1687.31,-336.346 1697.82,-337.671 1696.35,-330.827"/>
+<path fill="none" stroke="midnightblue" d="M2598.7,-134.269C2578.51,-121.403 2549.44,-102.879 2532.57,-92.1273"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2596.96,-137.311 2607.27,-139.734 2600.72,-131.408 2596.96,-137.311"/>
+</g>
+<!-- Node21&#45;&gt;Node22 -->
+<g id="edge27" class="edge"><title>Node21&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M2603.8,-72.9444C2738.4,-59.3588 2997.22,-33.2357 3109.21,-21.9327"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2603.13,-69.4936 2593.53,-73.9802 2603.84,-76.4582 2603.13,-69.4936"/>
+</g>
+<!-- Node21&#45;&gt;Node23 -->
+<g id="edge28" class="edge"><title>Node21&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M2546.77,-68.6206C2570.45,-57.6252 2604.45,-41.8413 2628.82,-30.5281"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2545.22,-65.4828 2537.62,-72.8685 2548.17,-71.8319 2545.22,-65.4828"/>
+</g>
+<!-- Node21&#45;&gt;Node24 -->
+<g id="edge29" class="edge"><title>Node21&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M2496.74,-67.1526C2479.83,-56.2748 2456.73,-41.4029 2439.92,-30.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2495.11,-70.2652 2505.41,-72.7338 2498.89,-64.3788 2495.11,-70.2652"/>
+</g>
+<!-- Node26&#45;&gt;Node18 -->
+<g id="edge34" class="edge"><title>Node26&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M3144.84,-334.92C2992.81,-311.846 2951.38,-321.084 2803.03,-299 2798.57,-298.336 2793.97,-297.593 2789.35,-296.803"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3144.6,-338.424 3155.01,-336.487 3145.66,-331.506 3144.6,-338.424"/>
+</g>
+<!-- Node26&#45;&gt;Node19 -->
+<g id="edge33" class="edge"><title>Node26&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M3145.06,-334.984C3009.23,-314.747 2965.26,-347.334 2841.03,-299 2819.07,-290.457 2819.23,-278.275 2798.03,-268 2755.76,-247.514 2703.67,-233.903 2666.98,-226.027"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3144.59,-338.451 3155.01,-336.534 3145.66,-331.535 3144.59,-338.451"/>
+</g>
+<!-- Node26&#45;&gt;Node21 -->
+<g id="edge39" class="edge"><title>Node26&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M3144.77,-334.936C3025.71,-316.731 2984.15,-349.135 2879.03,-299 2830.79,-275.992 2750.65,-160.15 2704.03,-134 2664.98,-112.091 2615.89,-99.2642 2578.1,-92.0233"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3144.56,-338.448 3155,-336.594 3145.68,-331.538 3144.56,-338.448"/>
+</g>
+<!-- Node26&#45;&gt;Node24 -->
+<g id="edge44" class="edge"><title>Node26&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M3180.48,-330.631C3087.53,-281.857 2828.79,-149.654 2602.03,-67 2561.73,-52.309 2515.11,-39.5585 2478.89,-30.5446"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3178.98,-333.797 3189.46,-335.355 3182.24,-327.602 3178.98,-333.797"/>
+</g>
+<!-- Node26&#45;&gt;Node27 -->
+<g id="edge35" class="edge"><title>Node26&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M3216.03,-325.108C3216.03,-316.154 3216.03,-306.323 3216.03,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3212.53,-325.396 3216.03,-335.396 3219.53,-325.396 3212.53,-325.396"/>
+</g>
+<!-- Node26&#45;&gt;Node28 -->
+<g id="edge36" class="edge"><title>Node26&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M3144.95,-334.984C2928.87,-305.671 2869.81,-330.992 2658.03,-299 2654.92,-298.531 2651.74,-297.99 2648.54,-297.401"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3144.64,-338.475 3155.03,-336.375 3145.6,-331.54 3144.64,-338.475"/>
+</g>
+<!-- Node26&#45;&gt;Node29 -->
+<g id="edge37" class="edge"><title>Node26&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M3253.43,-330.803C3278.35,-318.342 3309.92,-302.556 3329.02,-293.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3251.62,-327.793 3244.24,-335.396 3254.75,-334.054 3251.62,-327.793"/>
+</g>
+<!-- Node26&#45;&gt;Node30 -->
+<g id="edge40" class="edge"><title>Node26&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M3144.51,-334.926C2873.29,-299.61 2801.47,-316.714 2532.03,-299 2491.42,-296.33 2446.16,-293.056 2409.08,-290.295"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3144.29,-338.427 3154.66,-336.26 3145.2,-331.486 3144.29,-338.427"/>
+</g>
+<!-- Node29&#45;&gt;Node22 -->
+<g id="edge38" class="edge"><title>Node29&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M3334.28,-265.415C3300.52,-216.351 3203.73,-75.6578 3172.72,-30.5784"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3331.6,-267.696 3340.15,-273.951 3337.36,-263.729 3331.6,-267.696"/>
+</g>
+<!-- Node30&#45;&gt;Node21 -->
+<g id="edge42" class="edge"><title>Node30&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M2332.92,-263.514C2333.78,-232.392 2339.99,-170.355 2374.03,-134 2395.17,-111.428 2426.92,-98.9432 2455.33,-92.0385"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2329.42,-263.772 2332.81,-273.81 2336.42,-263.849 2329.42,-263.772"/>
+</g>
+<!-- Node30&#45;&gt;Node24 -->
+<g id="edge43" class="edge"><title>Node30&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M2331.22,-263.869C2329.99,-247.285 2329.05,-222.409 2332.03,-201 2341.57,-132.393 2386.91,-60.6902 2407.65,-30.8479"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2327.74,-264.217 2332.08,-273.881 2334.71,-263.618 2327.74,-264.217"/>
+</g>
+<!-- Node30&#45;&gt;Node25 -->
+<g id="edge41" class="edge"><title>Node30&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2346.04,-265.983C2366.63,-239.857 2406.35,-189.441 2425.78,-164.783"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2343.29,-263.818 2339.85,-273.839 2348.79,-268.15 2343.29,-263.818"/>
+</g>
+<!-- Node31&#45;&gt;Node4 -->
+<g id="edge46" class="edge"><title>Node31&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1669.4,-331.544C1694.52,-321.143 1725.69,-308.238 1749.03,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1668,-328.337 1660.1,-335.396 1670.68,-334.804 1668,-328.337"/>
 </g>
 <!-- Node31&#45;&gt;Node7 -->
-<g id="edge48" class="edge"><title>Node31&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M811.887,-333.508C763.307,-322.581 699.658,-308.266 653.708,-297.931"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="811.178,-336.935 821.702,-335.715 812.714,-330.106 811.178,-336.935"/>
-</g>
-<!-- Node31&#45;&gt;Node8 -->
-<g id="edge58" class="edge"><title>Node31&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M875.956,-325.672C869.222,-307.099 857.202,-282.16 837.991,-268 809.351,-246.889 716.768,-232.057 654.246,-224.152"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="872.663,-326.861 879.165,-335.226 879.299,-324.632 872.663,-326.861"/>
-</g>
-<!-- Node31&#45;&gt;Node10 -->
-<g id="edge49" class="edge"><title>Node31&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M811.6,-342.779C726.275,-334.359 579.297,-318.622 453.991,-299 449.335,-298.271 444.525,-297.46 439.697,-296.605"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="811.401,-346.277 821.695,-343.77 812.084,-339.31 811.401,-346.277"/>
-</g>
-<!-- Node31&#45;&gt;Node11 -->
-<g id="edge59" class="edge"><title>Node31&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M811.687,-336.672C777.056,-328.73 735.563,-316.611 700.991,-299 681.262,-288.95 682.193,-277.063 661.991,-268 621.699,-249.924 503.884,-233.31 431.11,-224.374"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="811.208,-340.151 821.729,-338.903 812.726,-333.318 811.208,-340.151"/>
-</g>
-<!-- Node31&#45;&gt;Node12 -->
-<g id="edge50" class="edge"><title>Node31&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M849.605,-330.296C831.924,-320.125 810.593,-307.855 794.463,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="848.059,-333.444 858.472,-335.396 851.549,-327.376 848.059,-333.444"/>
-</g>
-<!-- Node31&#45;&gt;Node13 -->
-<g id="edge60" class="edge"><title>Node31&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M885.366,-325.39C888.073,-297.901 892.408,-253.888 894.61,-231.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="881.88,-325.079 884.383,-335.374 888.846,-325.765 881.88,-325.079"/>
-</g>
-<!-- Node31&#45;&gt;Node14 -->
-<g id="edge51" class="edge"><title>Node31&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M931.139,-331.819C959.59,-321.371 995.119,-308.323 1021.66,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="929.578,-328.663 921.398,-335.396 931.991,-335.234 929.578,-328.663"/>
-</g>
-<!-- Node31&#45;&gt;Node15 -->
-<g id="edge61" class="edge"><title>Node31&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M908.538,-328.938C942.207,-301.838 1000.55,-254.878 1029.57,-231.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="906.138,-326.377 900.542,-335.374 910.527,-331.83 906.138,-326.377"/>
-</g>
-<!-- Node31&#45;&gt;Node32 -->
-<g id="edge52" class="edge"><title>Node31&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M954.298,-335.016C1009.09,-323.885 1084.18,-308.633 1137.48,-297.808"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="953.415,-331.624 944.312,-337.044 954.809,-338.484 953.415,-331.624"/>
-</g>
-<!-- Node31&#45;&gt;Node33 -->
-<g id="edge53" class="edge"><title>Node31&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M811.917,-344.581C738.943,-338.349 622.572,-325.109 524.991,-299 489.353,-289.465 483.564,-277.777 447.991,-268 359.494,-243.678 254.049,-230.017 187.552,-223.202"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="811.663,-348.072 821.92,-345.415 812.245,-341.096 811.663,-348.072"/>
-</g>
-<!-- Node31&#45;&gt;Node34 -->
-<g id="edge56" class="edge"><title>Node31&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M811.411,-343.386C664.191,-330.811 329.396,-302.215 187.501,-290.095"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="811.42,-346.899 821.681,-344.263 812.016,-339.925 811.42,-346.899"/>
-</g>
-<!-- Node31&#45;&gt;Node35 -->
-<g id="edge62" class="edge"><title>Node31&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M954.672,-342.247C1033.85,-333.786 1164.98,-318.443 1276.99,-299 1280,-298.478 1283.07,-297.913 1286.17,-297.318"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="953.902,-338.809 944.327,-343.345 954.641,-345.77 953.902,-338.809"/>
-</g>
-<!-- Node31&#45;&gt;Node36 -->
-<g id="edge63" class="edge"><title>Node31&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M954.196,-343.591C1055.24,-334.991 1245.99,-317.969 1407.99,-299 1423.71,-297.159 1440.72,-294.919 1456.37,-292.755"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="953.775,-340.114 944.107,-344.447 954.367,-347.089 953.775,-340.114"/>
-</g>
-<!-- Node31&#45;&gt;Node37 -->
-<g id="edge64" class="edge"><title>Node31&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M954.516,-347.69C1080.91,-343.74 1351.8,-331.891 1577.99,-299 1581.01,-298.561 1584.1,-298.062 1587.2,-297.519"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.091,-344.202 944.203,-348.005 954.305,-351.198 954.091,-344.202"/>
-</g>
-<!-- Node33&#45;&gt;Node4 -->
-<g id="edge54" class="edge"><title>Node33&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M149.134,-195.451C162.672,-185.452 178.718,-173.6 190.934,-164.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="147.05,-192.639 141.086,-201.396 151.209,-198.27 147.05,-192.639"/>
-</g>
-<!-- Node33&#45;&gt;Node5 -->
-<g id="edge55" class="edge"><title>Node33&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M120.603,-191.4C120.961,-172.808 124.82,-147.978 140.991,-134 181.317,-99.1426 537.731,-87.7868 681.88,-84.5993"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="117.105,-191.541 120.731,-201.496 124.104,-191.453 117.105,-191.541"/>
-</g>
-<!-- Node34&#45;&gt;Node33 -->
-<g id="edge57" class="edge"><title>Node34&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M121.991,-258.108C121.991,-249.154 121.991,-239.323 121.991,-231.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="118.491,-258.396 121.991,-268.396 125.491,-258.396 118.491,-258.396"/>
-</g>
-<!-- Node38&#45;&gt;Node21 -->
-<g id="edge66" class="edge"><title>Node38&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M3100.06,-61.4511C3114.06,-51.4517 3130.65,-39.5995 3143.28,-30.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3097.84,-58.7355 3091.74,-67.396 3101.91,-64.4316 3097.84,-58.7355"/>
-</g>
-<!-- Node39&#45;&gt;Node20 -->
-<g id="edge68" class="edge"><title>Node39&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M2183.04,-326.406C2209.14,-282.315 2272.09,-185.927 2350.99,-134 2384.57,-111.898 2428.19,-99.1623 2462.56,-92.0101"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2179.91,-324.826 2177.9,-335.228 2185.96,-328.35 2179.91,-324.826"/>
-</g>
-<!-- Node39&#45;&gt;Node29 -->
-<g id="edge69" class="edge"><title>Node39&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M2214.83,-331.621C2246.37,-319.04 2287.19,-302.766 2311.66,-293.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2213.35,-328.441 2205.36,-335.396 2215.95,-334.943 2213.35,-328.441"/>
-</g>
-<!-- Node40&#45;&gt;Node29 -->
-<g id="edge71" class="edge"><title>Node40&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M2342.48,-325.596C2339.86,-314.278 2336.91,-301.461 2335,-293.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2339.08,-326.439 2344.74,-335.396 2345.9,-324.865 2339.08,-326.439"/>
-</g>
-<!-- Node42&#45;&gt;Node4 -->
-<g id="edge79" class="edge"><title>Node42&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1191.43,-205.94C1177.48,-204.083 1162.75,-202.309 1148.99,-201 817.648,-169.481 418.516,-156.136 269.716,-152.008"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1191.06,-209.421 1201.44,-207.302 1192,-202.485 1191.06,-209.421"/>
-</g>
-<!-- Node42&#45;&gt;Node5 -->
-<g id="edge80" class="edge"><title>Node42&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1242.68,-192.696C1231.03,-173.565 1211.67,-147.296 1186.99,-134 1121.88,-98.9158 907.775,-88.0875 802.09,-84.8395"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1239.7,-194.55 1247.76,-201.427 1245.75,-191.024 1239.7,-194.55"/>
+<g id="edge47" class="edge"><title>Node31&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1697.27,-334.217C1748.08,-323.318 1815.82,-308.787 1864.93,-298.251"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1696.39,-330.827 1687.35,-336.346 1697.86,-337.671 1696.39,-330.827"/>
+</g>
+<!-- Node32&#45;&gt;Node8 -->
+<g id="edge49" class="edge"><title>Node32&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M811.926,-333.508C763.346,-322.581 699.698,-308.266 653.747,-297.931"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="811.217,-336.935 821.741,-335.715 812.753,-330.106 811.217,-336.935"/>
+</g>
+<!-- Node32&#45;&gt;Node9 -->
+<g id="edge59" class="edge"><title>Node32&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M875.996,-325.672C869.262,-307.099 857.241,-282.16 838.031,-268 809.39,-246.889 716.808,-232.057 654.285,-224.152"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="872.703,-326.861 879.205,-335.226 879.338,-324.632 872.703,-326.861"/>
+</g>
+<!-- Node32&#45;&gt;Node11 -->
+<g id="edge50" class="edge"><title>Node32&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M811.64,-342.779C726.315,-334.359 579.336,-318.622 454.031,-299 449.375,-298.271 444.565,-297.46 439.736,-296.605"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="811.44,-346.277 821.734,-343.77 812.124,-339.31 811.44,-346.277"/>
+</g>
+<!-- Node32&#45;&gt;Node12 -->
+<g id="edge60" class="edge"><title>Node32&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M811.727,-336.672C777.095,-328.73 735.602,-316.611 701.031,-299 681.301,-288.95 682.233,-277.063 662.031,-268 621.739,-249.924 503.924,-233.31 431.15,-224.374"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="811.247,-340.151 821.768,-338.903 812.766,-333.318 811.247,-340.151"/>
+</g>
+<!-- Node32&#45;&gt;Node13 -->
+<g id="edge51" class="edge"><title>Node32&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M849.645,-330.296C831.963,-320.125 810.632,-307.855 794.502,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="848.098,-333.444 858.512,-335.396 851.588,-327.376 848.098,-333.444"/>
+</g>
+<!-- Node32&#45;&gt;Node14 -->
+<g id="edge61" class="edge"><title>Node32&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M885.405,-325.39C888.113,-297.901 892.447,-253.888 894.65,-231.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="881.919,-325.079 884.422,-335.374 888.885,-325.765 881.919,-325.079"/>
+</g>
+<!-- Node32&#45;&gt;Node15 -->
+<g id="edge52" class="edge"><title>Node32&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M931.179,-331.819C959.629,-321.371 995.159,-308.323 1021.7,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="929.618,-328.663 921.437,-335.396 932.031,-335.234 929.618,-328.663"/>
+</g>
+<!-- Node32&#45;&gt;Node16 -->
+<g id="edge62" class="edge"><title>Node32&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M908.577,-328.938C942.247,-301.838 1000.59,-254.878 1029.61,-231.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="906.177,-326.377 900.582,-335.374 910.566,-331.83 906.177,-326.377"/>
+</g>
+<!-- Node32&#45;&gt;Node33 -->
+<g id="edge53" class="edge"><title>Node32&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M954.337,-335.016C1009.13,-323.885 1084.22,-308.633 1137.51,-297.808"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="953.455,-331.624 944.351,-337.044 954.848,-338.484 953.455,-331.624"/>
+</g>
+<!-- Node32&#45;&gt;Node34 -->
+<g id="edge54" class="edge"><title>Node32&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M811.957,-344.581C738.982,-338.349 622.611,-325.109 525.031,-299 489.393,-289.465 483.603,-277.777 448.031,-268 359.534,-243.678 254.089,-230.017 187.591,-223.202"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="811.703,-348.072 821.959,-345.415 812.284,-341.096 811.703,-348.072"/>
+</g>
+<!-- Node32&#45;&gt;Node35 -->
+<g id="edge57" class="edge"><title>Node32&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M811.45,-343.386C664.23,-330.811 329.436,-302.215 187.541,-290.095"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="811.459,-346.899 821.721,-344.263 812.055,-339.925 811.459,-346.899"/>
+</g>
+<!-- Node32&#45;&gt;Node36 -->
+<g id="edge63" class="edge"><title>Node32&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M954.711,-342.247C1033.89,-333.786 1165.02,-318.443 1277.03,-299 1280.04,-298.478 1283.11,-297.913 1286.21,-297.318"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="953.942,-338.809 944.367,-343.345 954.68,-345.77 953.942,-338.809"/>
+</g>
+<!-- Node32&#45;&gt;Node37 -->
+<g id="edge64" class="edge"><title>Node32&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M954.235,-343.591C1055.28,-334.991 1246.03,-317.969 1408.03,-299 1423.75,-297.159 1440.76,-294.919 1456.41,-292.755"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="953.815,-340.114 944.146,-344.447 954.406,-347.089 953.815,-340.114"/>
+</g>
+<!-- Node32&#45;&gt;Node38 -->
+<g id="edge65" class="edge"><title>Node32&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M954.556,-347.69C1080.95,-343.74 1351.84,-331.891 1578.03,-299 1581.05,-298.561 1584.14,-298.062 1587.24,-297.519"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="954.131,-344.202 944.242,-348.005 954.344,-351.198 954.131,-344.202"/>
+</g>
+<!-- Node34&#45;&gt;Node5 -->
+<g id="edge55" class="edge"><title>Node34&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M149.174,-195.451C162.712,-185.452 178.758,-173.6 190.973,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="147.09,-192.639 141.126,-201.396 151.249,-198.27 147.09,-192.639"/>
+</g>
+<!-- Node34&#45;&gt;Node6 -->
+<g id="edge56" class="edge"><title>Node34&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M120.646,-191.404C121.006,-172.815 124.866,-147.986 141.031,-134 180.8,-99.5896 531.847,-87.9865 674.829,-84.6658"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="117.148,-191.544 120.772,-201.499 124.147,-191.456 117.148,-191.544"/>
+</g>
+<!-- Node35&#45;&gt;Node34 -->
+<g id="edge58" class="edge"><title>Node35&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M122.031,-258.108C122.031,-249.154 122.031,-239.323 122.031,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="118.531,-258.396 122.031,-268.396 125.531,-258.396 118.531,-258.396"/>
+</g>
+<!-- Node39&#45;&gt;Node22 -->
+<g id="edge67" class="edge"><title>Node39&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M3100.1,-61.4511C3114.1,-51.4517 3130.69,-39.5995 3143.32,-30.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3097.88,-58.7355 3091.78,-67.396 3101.95,-64.4316 3097.88,-58.7355"/>
+</g>
+<!-- Node40&#45;&gt;Node21 -->
+<g id="edge69" class="edge"><title>Node40&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M2183.08,-326.406C2209.18,-282.315 2272.13,-185.927 2351.03,-134 2384.61,-111.898 2428.23,-99.1623 2462.6,-92.0101"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2179.95,-324.826 2177.94,-335.228 2186,-328.35 2179.95,-324.826"/>
+</g>
+<!-- Node40&#45;&gt;Node30 -->
+<g id="edge70" class="edge"><title>Node40&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M2214.86,-331.621C2246.41,-319.04 2287.23,-302.766 2311.7,-293.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2213.39,-328.441 2205.4,-335.396 2215.98,-334.943 2213.39,-328.441"/>
+</g>
+<!-- Node41&#45;&gt;Node30 -->
+<g id="edge72" class="edge"><title>Node41&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M2342.51,-325.596C2339.9,-314.278 2336.94,-301.461 2335.04,-293.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2339.12,-326.439 2344.78,-335.396 2345.94,-324.865 2339.12,-326.439"/>
+</g>
+<!-- Node43&#45;&gt;Node5 -->
+<g id="edge80" class="edge"><title>Node43&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M1191.47,-205.94C1177.52,-204.083 1162.79,-202.309 1149.03,-201 817.688,-169.481 418.555,-156.136 269.755,-152.008"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1191.1,-209.421 1201.48,-207.302 1192.04,-202.485 1191.1,-209.421"/>
+</g>
+<!-- Node43&#45;&gt;Node6 -->
+<g id="edge81" class="edge"><title>Node43&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M1242.72,-192.686C1231.08,-173.548 1211.72,-147.275 1187.03,-134 1120.7,-98.3348 902.269,-87.7815 795.228,-84.7188"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1239.75,-194.54 1247.81,-201.419 1245.8,-191.017 1239.75,-194.54"/>
 </g>
 </g>
 </svg>
diff --git a/docs/api/doxygen/analyzer_8h_source.html b/docs/api/doxygen/analyzer_8h_source.html
index f0728a5..8043892 100644
--- a/docs/api/doxygen/analyzer_8h_source.html
+++ b/docs/api/doxygen/analyzer_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">analyzer.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="analyzer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more co [...]
+<a href="analyzer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more co [...]
 <div class="ttc" id="classtvm_1_1arith_1_1ConstIntBoundNode_html_a035f9270597638a44a55dd2552f4ad20"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a035f9270597638a44a55dd2552f4ad20">tvm::arith::ConstIntBoundNode::kPosInf</a></div><div class="ttdeci">static const constexpr int64_t kPosInf</div><div class="ttdoc">Number to represent +inf. </div><div class="ttdef"><b>Definition:</b> analyzer.h:76</div></div>
 <div class="ttc" id="classtvm_1_1arith_1_1ConstIntBoundNode_html_a7187224ffaf688dd1aa0f6069b393f92"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a7187224ffaf688dd1aa0f6069b393f92">tvm::arith::ConstIntBoundNode::max_value</a></div><div class="ttdeci">int64_t max_value</div><div class="ttdef"><b>Definition:</b> analyzer.h:64</div></div>
 <div class="ttc" id="classtvm_1_1arith_1_1ModularSetNode_html_a5b5bf53e26881ec83777f2a3c41a4031"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#a5b5bf53e26881ec83777f2a3c41a4031">tvm::arith::ModularSetNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(tvm::AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> analyzer.h:180</div></div>
diff --git a/docs/api/doxygen/annotated.html b/docs/api/doxygen/annotated.html
index 2b91c5f..c69c566 100644
--- a/docs/api/doxygen/annotated.html
+++ b/docs/api/doxygen/annotated.html
@@ -106,13 +106,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_2_0_7_" 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_1arith_1_1IntConstraintsNode.html" target="_self">IntConstraintsNode</a></td><td class="desc">Represent integer constrains including (integer) variables, their ranges and the relations between them (either equations or inequalities) </td></tr>
 <tr id="row_2_0_8_" 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_1arith_1_1IntConstraintsTransform.html" target="_self">IntConstraintsTransform</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html" title="We can have different set of variables to represent the same constraints. For ex [...]
 <tr id="row_2_0_9_" 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_1arith_1_1IntConstraintsTransformNode.html" target="_self">IntConstraintsTransformNode</a></td><td class="desc">We can have different set of variables to represent the same constraints. For example, the following two systems are equivalent, {a + b = 0 | a &gt;= 0, b &gt;= 0} and {m - n  [...]
-<tr id="row_2_0_10_" 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_1arith_1_1IntSet.html" target="_self">IntSet</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntSetNode.html" title="Base class of all Integer set containers. represent a set of integers in one dimension. ">IntSetNode</a> </td></tr>
-<tr id="row_2_0_11_" 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_1arith_1_1IntSetAnalyzer.html" target="_self">IntSetAnalyzer</a></td><td class="desc"><a class="el" href="classtvm_1_1Integer.html" title="Container of constant int that adds more constructors. ">Integer</a> set analyzer </td></tr>
-<tr id="row_2_0_12_" 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_1arith_1_1IntSetNode.html" target="_self">IntSetNode</a></td><td class="desc">Base class of all <a class="el" href="classtvm_1_1Integer.html" title="Container of constant int that adds more constructors. ">Integer</a> set containers. represent a set of integers in one dimension </td></tr>
-<tr id="row_2_0_13_" 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_1arith_1_1ModularSet.html" target="_self">ModularSet</a></td><td class="desc">Reference of <a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html" title="Range of a linear integer function. Use to do specify the possible index values. ">ModularSetNode</a> </td></tr>
-<tr id="row_2_0_14_" 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_1arith_1_1ModularSetAnalyzer.html" target="_self">ModularSetAnalyzer</a></td><td class="desc"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html" title="Analyzer that contains bunch of sub-analyzers. ">Analyzer</a> to get modular information over expression </td></tr>
-<tr id="row_2_0_15_" 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_1arith_1_1ModularSetNode.html" target="_self">ModularSetNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> of a linear integer function. Use to do specify the possible index values </td></tr>
-<tr id="row_2_0_16_" 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_1arith_1_1RewriteSimplifier.html" target="_self">RewriteSimplifier</a></td><td class="desc">Rewrite-rule based simplifier </td></tr>
+<tr id="row_2_0_10_" 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_1arith_1_1IntGroupBounds.html" target="_self">IntGroupBounds</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" title="Represent integer grouped bounds which are classified into lower bounds (inclusive), upper bounds (inclusi [...]
+<tr id="row_2_0_11_" 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_1arith_1_1IntGroupBoundsNode.html" target="_self">IntGroupBoundsNode</a></td><td class="desc">Represent integer grouped bounds which are classified into lower bounds (inclusive), upper bounds (inclusive) and equalities. It also contains coefficient as a multiplier for the bounds, i.e., [...]
+<tr id="row_2_0_12_" 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_1arith_1_1IntSet.html" target="_self">IntSet</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntSetNode.html" title="Base class of all Integer set containers. represent a set of integers in one dimension. ">IntSetNode</a> </td></tr>
+<tr id="row_2_0_13_" 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_1arith_1_1IntSetAnalyzer.html" target="_self">IntSetAnalyzer</a></td><td class="desc"><a class="el" href="classtvm_1_1Integer.html" title="Container of constant int that adds more constructors. ">Integer</a> set analyzer </td></tr>
+<tr id="row_2_0_14_" 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_1arith_1_1IntSetNode.html" target="_self">IntSetNode</a></td><td class="desc">Base class of all <a class="el" href="classtvm_1_1Integer.html" title="Container of constant int that adds more constructors. ">Integer</a> set containers. represent a set of integers in one dimension </td></tr>
+<tr id="row_2_0_15_" 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_1arith_1_1ModularSet.html" target="_self">ModularSet</a></td><td class="desc">Reference of <a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html" title="Range of a linear integer function. Use to do specify the possible index values. ">ModularSetNode</a> </td></tr>
+<tr id="row_2_0_16_" 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_1arith_1_1ModularSetAnalyzer.html" target="_self">ModularSetAnalyzer</a></td><td class="desc"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html" title="Analyzer that contains bunch of sub-analyzers. ">Analyzer</a> to get modular information over expression </td></tr>
+<tr id="row_2_0_17_" 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_1arith_1_1ModularSetNode.html" target="_self">ModularSetNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> of a linear integer function. Use to do specify the possible index values </td></tr>
+<tr id="row_2_0_18_" 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_1arith_1_1RewriteSimplifier.html" target="_self">RewriteSimplifier</a></td><td class="desc">Rewrite-rule based simplifier </td></tr>
 <tr id="row_2_1_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_1_" class="arrow" onclick="toggleFolder('2_1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
 <tr id="row_2_1_0_" 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_1detail_1_1AttrDocEntry.html" target="_self">AttrDocEntry</a></td><td class="desc"></td></tr>
 <tr id="row_2_1_1_" 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_1detail_1_1AttrDocVisitor.html" target="_self">AttrDocVisitor</a></td><td class="desc"></td></tr>
@@ -686,8 +688,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_2_85_" 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_2_86_" 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_1TargetId.html" target="_self">TargetId</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetIdNode.html" title="Target Id, specifies the kind of the target. ">TargetIdNode</a> </td></tr>
 <tr id="row_2_87_" 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_1TargetIdAttrMap.html" target="_self">TargetIdAttrMap</a></td><td class="desc">Map&lt;TargetId, ValueType&gt; used to store meta-information about <a class="el" href="classtvm_1_1TargetId.html" title="Managed reference class to TargetIdNode. ">TargetId</a> </td></tr>
-<tr id="row_2_88_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_88_" class="arrow" onclick="toggleFolder('2_88_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetIdNode.html" target="_self">TargetIdNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Target.html" title="Managed reference class to TargetNode. ">Target</a> Id, specifies the kind of the  [...]
-<tr id="row_2_88_0_" 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_1TargetIdNode_1_1ValueTypeInfo.html" target="_self">ValueTypeInfo</a></td><td class="desc">Stores the required type_key and type_index of a specific attr of a target </td></tr>
+<tr id="row_2_88_" 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_1TargetIdNode.html" target="_self">TargetIdNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Target.html" title="Managed reference class to TargetNode. ">Target</a> Id, specifies the kind of the target </td></tr>
 <tr id="row_2_89_" 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_1TargetIdRegEntry.html" target="_self">TargetIdRegEntry</a></td><td class="desc">Helper structure to register <a class="el" href="classtvm_1_1TargetId.html" title="Managed reference class to TargetIdNode. ">TargetId</a> </td></tr>
 <tr id="row_2_90_" 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_2_91_" 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>
@@ -715,9 +716,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_2_113_" 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_2_114_" 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_2_115_" 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_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="structTVMByteArray.html" target="_self">TVMByteArray</a></td><td class="desc">Byte array type used to pass in byte array When kTVMBytes is used as data type </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="structTVMParallelGroupEnv.html" target="_self">TVMParallelGroupEnv</a></td><td class="desc">Environment for TVM parallel task </td></tr>
-<tr id="row_5_"><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="unionTVMValue.html" target="_self">TVMValue</a></td><td class="desc">Union type of values being passed through API and function calls </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="structTVMArgs.html" target="_self">TVMArgs</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="structTVMByteArray.html" target="_self">TVMByteArray</a></td><td class="desc">Byte array type used to pass in byte array When kTVMBytes is used as data type </td></tr>
+<tr id="row_5_"><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="structTVMFuncRegistry.html" target="_self">TVMFuncRegistry</a></td><td class="desc">A data structure that facilitates function lookup by C-string name </td></tr>
+<tr id="row_6_" 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="structTVMGraphRuntimeGraphAttr.html" target="_self">TVMGraphRuntimeGraphAttr</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><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="structTVMModule.html" target="_self">TVMModule</a></td><td class="desc">Module container of TVM </td></tr>
+<tr id="row_8_" 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="structTVMMutableFuncRegistry.html" target="_self">TVMMutableFuncRegistry</a></td><td class="desc">A <a class="el" href="structTVMFuncRegistry.html" title="A data structure that facilitates function lookup by C-string name. ">TVMFuncRegistry</a> that supports adding and changing the functions </td></tr>
+<tr id="row_9_"><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="structTVMOpParam.html" target="_self">TVMOpParam</a></td><td class="desc">Operator attributes about tvm op </td></tr>
+<tr id="row_10_" 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="structTVMPackedFunc.html" target="_self">TVMPackedFunc</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><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="structTVMParallelGroupEnv.html" target="_self">TVMParallelGroupEnv</a></td><td class="desc">Environment for TVM parallel task </td></tr>
+<tr id="row_12_" 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="unionTVMValue.html" target="_self">TVMValue</a></td><td class="desc">Union type of values being passed through API and function calls </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/docs/api/doxygen/attr__registry__map_8h.html b/docs/api/doxygen/attr__registry__map_8h.html
index 03e0a23..31d694a 100644
--- a/docs/api/doxygen/attr__registry__map_8h.html
+++ b/docs/api/doxygen/attr__registry__map_8h.html
@@ -107,7 +107,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="4090" height="842"><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="4064" height="842"><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/api/doxygen/attr__registry__map_8h__dep__incl.svg b/docs/api/doxygen/attr__registry__map_8h__dep__incl.svg
index 1317174..45683b3 100644
--- a/docs/api/doxygen/attr__registry__map_8h__dep__incl.svg
+++ b/docs/api/doxygen/attr__registry__map_8h__dep__incl.svg
@@ -4,894 +4,894 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/node/attr_registry_map.h Pages: 1 -->
-<svg width="3067pt" height="631pt"
- viewBox="0.00 0.00 3066.51 631.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="3048pt" height="631pt"
+ viewBox="0.00 0.00 3048.05 631.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 627)">
 <title>include/tvm/node/attr_registry_map.h</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-627 3062.51,-627 3062.51,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-627 3044.05,-627 3044.05,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="2004,-592.5 2004,-622.5 2123,-622.5 2123,-592.5 2004,-592.5"/>
-<text text-anchor="start" x="2012" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/attr</text>
-<text text-anchor="middle" x="2063.5" y="-599.5" font-family="Helvetica,sans-Serif" font-size="10.00">_registry_map.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="2103,-592.5 2103,-622.5 2222,-622.5 2222,-592.5 2103,-592.5"/>
+<text text-anchor="start" x="2111" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/attr</text>
+<text text-anchor="middle" x="2162.5" y="-599.5" font-family="Helvetica,sans-Serif" font-size="10.00">_registry_map.h</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</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="white" stroke="black" points="1913,-531 1913,-550 2018,-550 2018,-531 1913,-531"/>
-<text text-anchor="middle" x="1965.5" y="-538" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/op.h</text>
+<polygon fill="white" stroke="black" points="1981,-531 1981,-550 2086,-550 2086,-531 1981,-531"/>
+<text text-anchor="middle" x="2033.5" y="-538" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M2033.81,-586.808C2015.27,-574.512 1992.34,-559.303 1978.33,-550.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2031.97,-589.785 2042.24,-592.396 2035.84,-583.952 2031.97,-589.785"/>
+<path fill="none" stroke="midnightblue" d="M2125.39,-587.803C2100.66,-575.342 2069.33,-559.556 2050.38,-550.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2124,-591.022 2134.51,-592.396 2127.15,-584.77 2124,-591.022"/>
 </g>
 <!-- Node46 -->
 <g id="node46" class="node"><title>Node46</title>
 <g id="a_node46"><a xlink:href="target__id_8h.html" target="_top" xlink:title="Target id registry. ">
-<polygon fill="white" stroke="black" points="2110.5,-525.5 2110.5,-555.5 2214.5,-555.5 2214.5,-525.5 2110.5,-525.5"/>
-<text text-anchor="start" x="2118.5" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="2162.5" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target_id.h</text>
+<polygon fill="white" stroke="black" points="2239.5,-525.5 2239.5,-555.5 2343.5,-555.5 2343.5,-525.5 2239.5,-525.5"/>
+<text text-anchor="start" x="2247.5" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="2291.5" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target_id.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node46 -->
 <g id="edge77" class="edge"><title>Node1&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M2093.61,-586.734C2108.92,-576.676 2127.19,-564.685 2141.06,-555.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2091.42,-583.982 2084.98,-592.396 2095.26,-589.833 2091.42,-583.982"/>
+<path fill="none" stroke="midnightblue" d="M2199.51,-587.853C2219.9,-577.576 2244.81,-565.025 2263.56,-555.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2197.85,-584.77 2190.49,-592.396 2201,-591.022 2197.85,-584.77"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
 <g id="a_node3"><a xlink:href="relay_2expr_8h.html" target="_top" xlink:title="Relay expression language. ">
-<polygon fill="white" stroke="black" points="939,-274 939,-293 1070,-293 1070,-274 939,-274"/>
-<text text-anchor="middle" x="1004.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/expr.h</text>
+<polygon fill="white" stroke="black" points="708,-274 708,-293 839,-293 839,-274 708,-274"/>
+<text text-anchor="middle" x="773.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node3 -->
 <g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1902.5,-539.563C1753.51,-538.974 1383.36,-532.984 1268.5,-489 1149.93,-443.596 1041.02,-326.217 1012.02,-293.235"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1902.83,-543.064 1912.84,-539.597 1902.85,-536.064 1902.83,-543.064"/>
+<path fill="none" stroke="midnightblue" d="M1981.15,-528.905C1772.73,-486.725 1004.21,-331.191 815.536,-293.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1980.72,-532.39 1991.22,-530.943 1982.11,-525.529 1980.72,-532.39"/>
 </g>
 <!-- Node20 -->
 <g id="node20" class="node"><title>Node20</title>
 <g id="a_node20"><a xlink:href="relay_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics). ">
-<polygon fill="white" stroke="black" points="1070.5,-207 1070.5,-226 1192.5,-226 1192.5,-207 1070.5,-207"/>
-<text text-anchor="middle" x="1131.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op.h</text>
+<polygon fill="white" stroke="black" points="39.5,-207 39.5,-226 161.5,-226 161.5,-207 39.5,-207"/>
+<text text-anchor="middle" x="100.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node20 -->
 <g id="edge36" class="edge"><title>Node2&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1902.77,-534.961C1733.92,-521.91 1282.5,-481.157 1282.5,-418.5 1282.5,-418.5 1282.5,-418.5 1282.5,-349.5 1282.5,-283.342 1199.32,-242.676 1156.43,-226.105"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1902.52,-538.452 1912.76,-535.726 1903.05,-531.473 1902.52,-538.452"/>
+<path fill="none" stroke="midnightblue" d="M1970.39,-538.218C1668.97,-531.689 390.5,-499.236 390.5,-418.5 390.5,-418.5 390.5,-418.5 390.5,-349.5 390.5,-294.459 215.264,-245.227 137.229,-226.032"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1970.62,-541.724 1980.7,-538.439 1970.77,-534.725 1970.62,-541.724"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node"><title>Node23</title>
 <g id="a_node23"><a xlink:href="builtin_8h.html" target="_top" xlink:title="TIR builtin intrinsics. ">
-<polygon fill="white" stroke="black" points="2070,-274 2070,-293 2195,-293 2195,-274 2070,-274"/>
-<text text-anchor="middle" x="2132.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/builtin.h</text>
+<polygon fill="white" stroke="black" points="1966,-274 1966,-293 2091,-293 2091,-274 1966,-274"/>
+<text text-anchor="middle" x="2028.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/builtin.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node23 -->
 <g id="edge37" class="edge"><title>Node2&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M1987.91,-525.116C2000.94,-515.94 2017,-503.138 2028.5,-489 2082.78,-422.252 2119.5,-322.555 2129.65,-293.029"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1985.76,-522.342 1979.46,-530.862 1989.7,-528.129 1985.76,-522.342"/>
+<path fill="none" stroke="midnightblue" d="M2033.13,-520.429C2032.12,-469.121 2029.38,-329.57 2028.67,-293.241"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2029.63,-520.793 2033.33,-530.722 2036.63,-520.656 2029.63,-520.793"/>
 </g>
 <!-- Node30 -->
 <g id="node30" class="node"><title>Node30</title>
 <g id="a_node30"><a xlink:href="tir_2op_8h.html" target="_top" xlink:title="Common operators defined for Expr. ">
-<polygon fill="white" stroke="black" points="1911,-469.5 1911,-488.5 2020,-488.5 2020,-469.5 1911,-469.5"/>
-<text text-anchor="middle" x="1965.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/op.h</text>
+<polygon fill="white" stroke="black" points="2103,-469.5 2103,-488.5 2212,-488.5 2212,-469.5 2103,-469.5"/>
+<text text-anchor="middle" x="2157.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node30 -->
 <g id="edge44" class="edge"><title>Node2&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M1965.5,-520.817C1965.5,-509.996 1965.5,-496.898 1965.5,-488.509"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1962,-520.975 1965.5,-530.975 1969,-520.975 1962,-520.975"/>
+<path fill="none" stroke="midnightblue" d="M2060.55,-526.521C2084.6,-514.982 2119.06,-498.443 2139.77,-488.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2058.77,-523.493 2051.27,-530.975 2061.8,-529.804 2058.77,-523.493"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</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="white" stroke="black" points="404,-134.5 404,-164.5 509,-164.5 509,-134.5 404,-134.5"/>
-<text text-anchor="start" x="412" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type</text>
-<text text-anchor="middle" x="456.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="463,-134.5 463,-164.5 568,-164.5 568,-134.5 463,-134.5"/>
+<text text-anchor="start" x="471" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type</text>
+<text text-anchor="middle" x="515.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node4 -->
 <g id="edge3" class="edge"><title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M928.744,-280.591C731.162,-275.246 213.643,-258.747 188.5,-232 124.297,-163.701 308.705,-152.048 403.747,-150.459"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="928.666,-284.09 938.756,-280.86 928.854,-277.093 928.666,-284.09"/>
+<path fill="none" stroke="midnightblue" d="M704.7,-271.892C669.911,-264.407 628.066,-252.028 594.5,-232 579.101,-222.812 545.668,-185.495 527.627,-164.689"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="704.282,-275.379 714.782,-273.968 705.694,-268.523 704.282,-275.379"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
 <g id="a_node5"><a xlink:href="relay_2adt_8h.html" target="_top" xlink:title="Algebraic data types for Relay. ">
-<polygon fill="white" stroke="black" points="683.5,-207 683.5,-226 809.5,-226 809.5,-207 683.5,-207"/>
-<text text-anchor="middle" x="746.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/adt.h</text>
+<polygon fill="white" stroke="black" points="217.5,-207 217.5,-226 343.5,-226 343.5,-207 217.5,-207"/>
+<text text-anchor="middle" x="280.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node5 -->
 <g id="edge4" class="edge"><title>Node3&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M960.775,-271.484C909.884,-258.663 826.918,-237.76 780.57,-226.083"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="959.954,-274.886 970.506,-273.936 961.664,-268.098 959.954,-274.886"/>
+<path fill="none" stroke="midnightblue" d="M697.588,-274.79C614.038,-265.955 475.867,-250.309 357.5,-232 346.342,-230.274 334.325,-228.143 323.18,-226.051"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.44,-278.294 707.752,-275.86 698.173,-271.333 697.44,-278.294"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node"><title>Node6</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="white" stroke="black" points="672,-140 672,-159 821,-159 821,-140 672,-140"/>
-<text text-anchor="middle" x="746.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/analysis.h</text>
+<polygon fill="white" stroke="black" points="296,-140 296,-159 445,-159 445,-140 296,-140"/>
+<text text-anchor="middle" x="370.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/analysis.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node6 -->
 <g id="edge9" class="edge"><title>Node3&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M928.69,-281.887C841.614,-279.385 706.596,-269.382 674.5,-232 651.501,-205.213 700.52,-174.073 728.615,-159.233"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="928.71,-285.389 938.798,-282.15 928.893,-278.391 928.71,-285.389"/>
+<path fill="none" stroke="midnightblue" d="M697.724,-282.436C598.895,-280.73 433.411,-271.794 389.5,-232 368.615,-213.073 368.472,-176.028 369.628,-159.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.906,-285.939 707.958,-282.591 698.012,-278.94 697.906,-285.939"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node"><title>Node7</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="white" stroke="black" points="841.5,-134.5 841.5,-164.5 963.5,-164.5 963.5,-134.5 841.5,-134.5"/>
-<text text-anchor="start" x="849.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/expr</text>
-<text text-anchor="middle" x="902.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="155.5,-134.5 155.5,-164.5 277.5,-164.5 277.5,-134.5 155.5,-134.5"/>
+<text text-anchor="start" x="163.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/expr</text>
+<text text-anchor="middle" x="216.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node7 -->
 <g id="edge19" class="edge"><title>Node3&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1004.17,-263.543C1002.97,-245.836 998.849,-219.439 985.5,-201 973.828,-184.878 955.282,-172.889 938.679,-164.648"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1000.68,-263.908 1004.59,-273.753 1007.67,-263.615 1000.68,-263.908"/>
+<path fill="none" stroke="midnightblue" d="M697.896,-278.428C547.717,-269.972 224.794,-249.815 208.5,-232 191.804,-213.745 201.5,-182.655 209.424,-164.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.788,-281.927 707.968,-278.992 698.18,-274.938 697.788,-281.927"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node"><title>Node8</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="white" stroke="black" points="982,-134.5 982,-164.5 1119,-164.5 1119,-134.5 982,-134.5"/>
-<text text-anchor="start" x="990" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/pattern</text>
-<text text-anchor="middle" x="1050.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="0,-134.5 0,-164.5 137,-164.5 137,-134.5 0,-134.5"/>
+<text text-anchor="start" x="8" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/pattern</text>
+<text text-anchor="middle" x="68.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node8 -->
 <g id="edge34" class="edge"><title>Node3&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1010.86,-264.245C1020.12,-237.677 1037.12,-188.905 1045.52,-164.783"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1007.5,-263.244 1007.52,-273.839 1014.11,-265.548 1007.5,-263.244"/>
+<path fill="none" stroke="midnightblue" d="M697.715,-283.065C517.565,-283.617 75.363,-280.016 30.5,-232 12.1677,-212.379 35.6232,-182.334 52.9897,-164.728"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.919,-286.565 707.906,-283.029 697.893,-279.565 697.919,-286.565"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node"><title>Node9</title>
 <g id="a_node9"><a xlink:href="algorithm_8h.html" target="_top" xlink:title="include/tvm/relay/attrs\l/algorithm.h">
-<polygon fill="white" stroke="black" points="197.5,-201.5 197.5,-231.5 321.5,-231.5 321.5,-201.5 197.5,-201.5"/>
-<text text-anchor="start" x="205.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="259.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/algorithm.h</text>
+<polygon fill="white" stroke="black" points="943.5,-201.5 943.5,-231.5 1067.5,-231.5 1067.5,-201.5 943.5,-201.5"/>
+<text text-anchor="start" x="951.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="1005.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/algorithm.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node9 -->
 <g id="edge10" class="edge"><title>Node3&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M928.427,-279.941C803.231,-275.027 546.136,-261.975 330.5,-232 327.634,-231.602 324.71,-231.158 321.761,-230.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="928.542,-283.448 938.669,-280.336 928.812,-276.453 928.542,-283.448"/>
+<path fill="none" stroke="midnightblue" d="M814.09,-271.128C853.422,-260.108 913.167,-243.369 955.431,-231.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="812.993,-267.8 804.308,-273.869 814.881,-274.541 812.993,-267.8"/>
 </g>
 <!-- Node10 -->
 <g id="node10" class="node"><title>Node10</title>
 <g id="a_node10"><a xlink:href="relay_2attrs_2memory_8h.html" target="_top" xlink:title="Attributes for memory operators. ">
-<polygon fill="white" stroke="black" points="339.5,-201.5 339.5,-231.5 463.5,-231.5 463.5,-201.5 339.5,-201.5"/>
-<text text-anchor="start" x="347.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="401.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/memory.h</text>
+<polygon fill="white" stroke="black" points="1085.5,-201.5 1085.5,-231.5 1209.5,-231.5 1209.5,-201.5 1085.5,-201.5"/>
+<text text-anchor="start" x="1093.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="1147.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/memory.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node10 -->
 <g id="edge11" class="edge"><title>Node3&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M928.663,-277.86C825.183,-270.946 634.124,-256.104 472.5,-232 469.638,-231.573 466.717,-231.106 463.771,-230.609"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="928.496,-281.356 938.705,-278.524 928.958,-274.371 928.496,-281.356"/>
+<path fill="none" stroke="midnightblue" d="M838.284,-272.401C899.715,-262.659 994.543,-247.193 1076.5,-232 1079.35,-231.473 1082.25,-230.923 1085.19,-230.359"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="837.673,-268.954 828.343,-273.973 838.767,-275.868 837.673,-268.954"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node"><title>Node11</title>
 <g id="a_node11"><a xlink:href="include_2tvm_2relay_2attrs_2transform_8h.html" target="_top" xlink:title="Transform operators. ">
-<polygon fill="white" stroke="black" points="1248.5,-201.5 1248.5,-231.5 1372.5,-231.5 1372.5,-201.5 1248.5,-201.5"/>
-<text text-anchor="start" x="1256.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="1310.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
+<polygon fill="white" stroke="black" points="801.5,-201.5 801.5,-231.5 925.5,-231.5 925.5,-201.5 801.5,-201.5"/>
+<text text-anchor="start" x="809.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="863.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node11 -->
 <g id="edge12" class="edge"><title>Node3&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1054.66,-271.844C1107.64,-260.592 1191.23,-242.835 1248.35,-230.703"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1053.87,-268.434 1044.82,-273.936 1055.33,-275.281 1053.87,-268.434"/>
+<path fill="none" stroke="midnightblue" d="M793.785,-267.849C808.808,-257 829.158,-242.303 843.992,-231.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="791.695,-265.041 785.638,-273.734 795.794,-270.716 791.695,-265.041"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node"><title>Node12</title>
 <g id="a_node12"><a xlink:href="include_2tvm_2relay_2transform_8h.html" target="_top" xlink:title="Relay specific transformation passes. ">
-<polygon fill="white" stroke="black" points="1141.5,-140 1141.5,-159 1299.5,-159 1299.5,-140 1141.5,-140"/>
-<text text-anchor="middle" x="1220.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/transform.h</text>
+<polygon fill="white" stroke="black" points="784.5,-140 784.5,-159 942.5,-159 942.5,-140 784.5,-140"/>
+<text text-anchor="middle" x="863.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node12 -->
 <g id="edge35" class="edge"><title>Node3&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1075.3,-272.241C1124.33,-263.714 1183.83,-250.063 1201.5,-232 1221.11,-211.956 1221.95,-175.812 1221.18,-159.236"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1074.61,-268.808 1065.34,-273.93 1075.78,-275.71 1074.61,-268.808"/>
+<path fill="none" stroke="midnightblue" d="M774.135,-263.753C775.544,-246.198 779.82,-219.905 792.5,-201 805.391,-181.779 828.234,-167.495 844.529,-159.112"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="770.633,-263.681 773.563,-273.863 777.622,-264.076 770.633,-263.681"/>
 </g>
 <!-- Node14 -->
 <g id="node14" class="node"><title>Node14</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="white" stroke="black" points="0,-201.5 0,-231.5 141,-231.5 141,-201.5 0,-201.5"/>
-<text text-anchor="start" x="8" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
-<text text-anchor="middle" x="70.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pattern.h</text>
+<polygon fill="white" stroke="black" points="604,-201.5 604,-231.5 745,-231.5 745,-201.5 604,-201.5"/>
+<text text-anchor="start" x="612" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
+<text text-anchor="middle" x="674.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pattern.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node14 -->
 <g id="edge15" class="edge"><title>Node3&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M928.392,-280.767C779.518,-276.76 439.506,-264.571 155.5,-232 150.889,-231.471 146.149,-230.858 141.378,-230.188"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="928.688,-284.276 938.777,-281.042 928.873,-277.279 928.688,-284.276"/>
+<path fill="none" stroke="midnightblue" d="M751.648,-268.153C735.08,-257.275 712.429,-242.403 695.959,-231.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="749.868,-271.171 760.148,-273.734 753.71,-265.32 749.868,-271.171"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node"><title>Node17</title>
 <g id="a_node17"><a xlink:href="feature_8h.html" target="_top" xlink:title="Detect features used in Expr/Module. ">
-<polygon fill="white" stroke="black" points="482,-207 482,-226 627,-226 627,-207 482,-207"/>
-<text text-anchor="middle" x="554.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/feature.h</text>
+<polygon fill="white" stroke="black" points="1228,-207 1228,-226 1373,-226 1373,-207 1228,-207"/>
+<text text-anchor="middle" x="1300.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/feature.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node17 -->
 <g id="edge20" class="edge"><title>Node3&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M929.421,-272.655C855.955,-262.88 740.919,-247.198 641.5,-232 629.391,-230.149 616.354,-228.039 604.151,-226.012"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="929.132,-276.147 939.506,-273.995 930.054,-269.208 929.132,-276.147"/>
+<path fill="none" stroke="midnightblue" d="M849.233,-275.35C937.936,-266.641 1089.21,-250.749 1218.5,-232 1230.38,-230.278 1243.17,-228.148 1255.04,-226.056"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="848.874,-271.868 839.261,-276.324 849.554,-278.835 848.874,-271.868"/>
 </g>
 <!-- Node18 -->
 <g id="node18" class="node"><title>Node18</title>
 <g id="a_node18"><a xlink:href="relay_2function_8h.html" target="_top" xlink:title="Relay Function. ">
-<polygon fill="white" stroke="black" points="828,-207 828,-226 977,-226 977,-207 828,-207"/>
-<text text-anchor="middle" x="902.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/function.h</text>
+<polygon fill="white" stroke="black" points="399,-207 399,-226 548,-226 548,-207 399,-207"/>
+<text text-anchor="middle" x="473.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/function.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node18 -->
 <g id="edge21" class="edge"><title>Node3&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M982.168,-268.269C961.978,-255.403 932.91,-236.879 916.038,-226.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="980.43,-271.311 990.744,-273.734 984.192,-265.408 980.43,-271.311"/>
+<path fill="none" stroke="midnightblue" d="M724.129,-271.803C665.093,-259.012 567.459,-237.858 513.116,-226.083"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="723.457,-275.239 733.972,-273.936 724.94,-268.397 723.457,-275.239"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node"><title>Node19</title>
 <g id="a_node19"><a xlink:href="interpreter_8h.html" target="_top" xlink:title="An interpreter for Relay. ">
-<polygon fill="white" stroke="black" points="1429,-207 1429,-226 1590,-226 1590,-207 1429,-207"/>
-<text text-anchor="middle" x="1509.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/interpreter.h</text>
+<polygon fill="white" stroke="black" points="1430,-207 1430,-226 1591,-226 1591,-207 1430,-207"/>
+<text text-anchor="middle" x="1510.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/interpreter.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node19 -->
 <g id="edge25" class="edge"><title>Node3&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1080.28,-273.83C1162.63,-264.254 1298.05,-248.056 1414.5,-232 1427.72,-230.177 1441.96,-228.077 1455.28,-226.052"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1079.79,-270.364 1070.26,-274.994 1080.6,-277.317 1079.79,-270.364"/>
+<path fill="none" stroke="midnightblue" d="M849.481,-278.323C969.818,-271.304 1211.53,-255.556 1415.5,-232 1429.75,-230.354 1445.15,-228.177 1459.32,-226.013"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="849.053,-274.842 839.272,-278.915 849.458,-281.831 849.053,-274.842"/>
 </g>
 <!-- Node3&#45;&gt;Node20 -->
 <g id="edge26" class="edge"><title>Node3&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1030.34,-269.274C1055.5,-256.4 1092.99,-237.209 1114.57,-226.167"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1028.67,-266.197 1021.36,-273.869 1031.86,-272.428 1028.67,-266.197"/>
+<path fill="none" stroke="midnightblue" d="M697.761,-278.701C583.977,-272.408 362.337,-257.875 175.5,-232 164.071,-230.417 151.748,-228.236 140.459,-226.045"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.589,-282.197 707.765,-279.249 697.971,-275.207 697.589,-282.197"/>
 </g>
 <!-- Node21 -->
 <g id="node21" class="node"><title>Node21</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="white" stroke="black" points="1608,-201.5 1608,-231.5 1721,-231.5 1721,-201.5 1608,-201.5"/>
-<text text-anchor="start" x="1616" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
-<text text-anchor="middle" x="1664.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attr_types.h</text>
+<polygon fill="white" stroke="black" points="1609,-201.5 1609,-231.5 1722,-231.5 1722,-201.5 1609,-201.5"/>
+<text text-anchor="start" x="1617" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
+<text text-anchor="middle" x="1665.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attr_types.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node21 -->
 <g id="edge30" class="edge"><title>Node3&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1080.62,-279.234C1193.99,-273.647 1413.69,-260.033 1598.5,-232 1601.52,-231.543 1604.6,-231.028 1607.71,-230.474"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1080.13,-275.754 1070.31,-279.734 1080.47,-282.745 1080.13,-275.754"/>
+<path fill="none" stroke="midnightblue" d="M849.349,-281.789C995.298,-279.554 1325.06,-270.3 1599.5,-232 1602.52,-231.578 1605.61,-231.093 1608.72,-230.561"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="849.109,-278.292 839.161,-281.938 849.212,-285.291 849.109,-278.292"/>
 </g>
 <!-- Node22 -->
 <g id="node22" class="node"><title>Node22</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="white" stroke="black" points="1340,-134.5 1340,-164.5 1453,-164.5 1453,-134.5 1340,-134.5"/>
-<text text-anchor="start" x="1348" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
-<text text-anchor="middle" x="1396.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_strategy.h</text>
+<polygon fill="white" stroke="black" points="1458,-134.5 1458,-164.5 1571,-164.5 1571,-134.5 1458,-134.5"/>
+<text text-anchor="start" x="1466" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
+<text text-anchor="middle" x="1514.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_strategy.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node22 -->
 <g id="edge33" class="edge"><title>Node3&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1080.38,-282.515C1177.86,-280.87 1339.53,-271.97 1381.5,-232 1399.73,-214.637 1400.05,-182.928 1398.42,-164.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1080.23,-279.017 1070.28,-282.664 1080.33,-286.016 1080.23,-279.017"/>
+<path fill="none" stroke="midnightblue" d="M849.282,-281.658C990.149,-279.202 1286.63,-269.587 1381.5,-232 1402.09,-223.844 1402.01,-213.177 1420.5,-201 1441.23,-187.348 1466.02,-174.152 1484.93,-164.674"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="848.944,-278.163 839.004,-281.83 849.061,-285.162 848.944,-278.163"/>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge5" class="edge"><title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M698.268,-204.689C646.017,-192.978 562.924,-174.354 509.046,-162.277"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="697.766,-208.164 708.289,-206.936 699.297,-201.333 697.766,-208.164"/>
+<path fill="none" stroke="midnightblue" d="M321.361,-204.198C361.198,-193.179 421.882,-176.394 464.783,-164.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="320.411,-200.829 311.706,-206.869 322.277,-207.576 320.411,-200.829"/>
 </g>
 <!-- Node5&#45;&gt;Node6 -->
 <g id="edge6" class="edge"><title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M746.5,-196.537C746.5,-184.17 746.5,-168.62 746.5,-159.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="743,-196.734 746.5,-206.734 750,-196.734 743,-196.734"/>
+<path fill="none" stroke="midnightblue" d="M301.175,-200.568C318.94,-187.738 343.936,-169.685 358.555,-159.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="298.695,-198.041 292.638,-206.734 302.794,-203.716 298.695,-198.041"/>
 </g>
 <!-- Node5&#45;&gt;Node7 -->
 <g id="edge7" class="edge"><title>Node5&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M776.709,-202.913C803.125,-191.906 841.44,-175.942 868.833,-164.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="775.1,-199.792 767.216,-206.869 777.793,-206.253 775.1,-199.792"/>
+<path fill="none" stroke="midnightblue" d="M264.553,-199.304C254.048,-188.635 240.428,-174.802 230.372,-164.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="262.359,-202.064 271.869,-206.734 267.347,-197.152 262.359,-202.064"/>
 </g>
 <!-- Node5&#45;&gt;Node8 -->
 <g id="edge8" class="edge"><title>Node5&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M796.435,-204.823C847.84,-193.832 928.196,-176.651 984.746,-164.559"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="795.602,-201.422 786.555,-206.936 797.066,-208.267 795.602,-201.422"/>
+<path fill="none" stroke="midnightblue" d="M242.72,-203.917C206.773,-192.895 152.628,-176.294 114.253,-164.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="241.761,-207.283 252.348,-206.869 243.813,-200.591 241.761,-207.283"/>
 </g>
 <!-- Node11&#45;&gt;Node12 -->
 <g id="edge13" class="edge"><title>Node11&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1282.54,-195.306C1265.64,-183.1 1244.98,-168.177 1232.28,-159.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1280.82,-198.378 1290.97,-201.396 1284.91,-192.704 1280.82,-198.378"/>
+<path fill="none" stroke="midnightblue" d="M863.5,-191.25C863.5,-180.017 863.5,-167.377 863.5,-159.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="860,-191.396 863.5,-201.396 867,-191.396 860,-191.396"/>
 </g>
 <!-- Node13 -->
 <g id="node13" class="node"><title>Node13</title>
 <g id="a_node13"><a xlink:href="include_2tvm_2relay_2qnn_2transform_8h.html" target="_top" xlink:title="include/tvm/relay/qnn\l/transform.h">
-<polygon fill="white" stroke="black" points="1161,-67.5 1161,-97.5 1280,-97.5 1280,-67.5 1161,-67.5"/>
-<text text-anchor="start" x="1169" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
-<text text-anchor="middle" x="1220.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
+<polygon fill="white" stroke="black" points="804,-67.5 804,-97.5 923,-97.5 923,-67.5 804,-67.5"/>
+<text text-anchor="start" x="812" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
+<text text-anchor="middle" x="863.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node12&#45;&gt;Node13 -->
 <g id="edge14" class="edge"><title>Node12&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1220.5,-129.411C1220.5,-119.222 1220.5,-106.901 1220.5,-97.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1217,-129.734 1220.5,-139.734 1224,-129.734 1217,-129.734"/>
+<path fill="none" stroke="midnightblue" d="M863.5,-129.411C863.5,-119.222 863.5,-106.901 863.5,-97.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="860,-129.734 863.5,-139.734 867,-129.734 860,-129.734"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node"><title>Node15</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="white" stroke="black" points="1,-67.5 1,-97.5 142,-97.5 142,-67.5 1,-67.5"/>
-<text text-anchor="start" x="9" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
-<text text-anchor="middle" x="71.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">_matcher.h</text>
+<polygon fill="white" stroke="black" points="575,-67.5 575,-97.5 716,-97.5 716,-67.5 575,-67.5"/>
+<text text-anchor="start" x="583" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
+<text text-anchor="middle" x="645.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">_matcher.h</text>
 </a>
 </g>
 </g>
 <!-- Node14&#45;&gt;Node15 -->
 <g id="edge16" class="edge"><title>Node14&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M53.6453,-193.02C48.3561,-184.666 43.1972,-174.821 40.5,-165 36.8513,-151.714 36.755,-147.259 40.5,-134 44.3029,-120.536 52.8142,-107.125 59.958,-97.5106"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="50.8277,-195.102 59.3255,-201.43 56.6284,-191.184 50.8277,-195.102"/>
+<path fill="none" stroke="midnightblue" d="M641.33,-195.407C631.095,-187.348 621.061,-177.08 615.5,-165 604.908,-141.991 621.138,-114.082 633.547,-97.6137"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="639.363,-198.305 649.5,-201.389 643.499,-192.657 639.363,-198.305"/>
 </g>
 <!-- Node16 -->
 <g id="node16" class="node"><title>Node16</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="white" stroke="black" points="50,-134.5 50,-164.5 191,-164.5 191,-134.5 50,-134.5"/>
-<text text-anchor="start" x="58" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
-<text text-anchor="middle" x="120.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pattern_functor.h</text>
+<polygon fill="white" stroke="black" points="625,-134.5 625,-164.5 766,-164.5 766,-134.5 625,-134.5"/>
+<text text-anchor="start" x="633" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
+<text text-anchor="middle" x="695.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pattern_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node14&#45;&gt;Node16 -->
 <g id="edge17" class="edge"><title>Node14&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M87.4637,-193.447C94.8087,-183.899 103.189,-173.004 109.672,-164.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="84.6722,-191.336 81.3493,-201.396 90.2206,-195.604 84.6722,-191.336"/>
+<path fill="none" stroke="midnightblue" d="M682.19,-191.697C685.133,-182.587 688.395,-172.493 690.952,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="678.801,-190.804 679.057,-201.396 685.462,-192.956 678.801,-190.804"/>
 </g>
 <!-- Node16&#45;&gt;Node15 -->
 <g id="edge18" class="edge"><title>Node16&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M103.657,-126.157C96.5117,-116.679 88.4001,-105.919 82.1115,-97.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="101.053,-128.518 109.868,-134.396 106.643,-124.304 101.053,-128.518"/>
+<path fill="none" stroke="midnightblue" d="M678.536,-126.447C671.191,-116.899 662.811,-106.004 656.328,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="675.779,-128.604 684.651,-134.396 681.328,-124.336 675.779,-128.604"/>
 </g>
 <!-- Node18&#45;&gt;Node6 -->
 <g id="edge22" class="edge"><title>Node18&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M872.376,-202.948C841.489,-190.079 794.268,-170.403 767.301,-159.167"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="871.207,-206.253 881.784,-206.869 873.9,-199.792 871.207,-206.253"/>
+<path fill="none" stroke="midnightblue" d="M450.949,-201.269C430.561,-188.403 401.208,-169.879 384.171,-159.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="449.284,-204.357 459.609,-206.734 453.02,-198.437 449.284,-204.357"/>
 </g>
 <!-- Node18&#45;&gt;Node7 -->
 <g id="edge23" class="edge"><title>Node18&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M902.5,-196.411C902.5,-186.222 902.5,-173.901 902.5,-164.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="899,-196.734 902.5,-206.734 906,-196.734 899,-196.734"/>
+<path fill="none" stroke="midnightblue" d="M429.92,-204.478C386.415,-193.475 319.397,-176.525 272.088,-164.559"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="429.085,-207.877 439.637,-206.936 430.801,-201.09 429.085,-207.877"/>
 </g>
 <!-- Node18&#45;&gt;Node12 -->
 <g id="edge24" class="edge"><title>Node18&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M954.46,-204.879C1017.09,-192.077 1121.09,-170.819 1178.76,-159.032"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="953.496,-201.504 944.4,-206.936 954.898,-208.362 953.496,-201.504"/>
+<path fill="none" stroke="midnightblue" d="M534.865,-205.272C611.401,-192.517 740.856,-170.941 812.31,-159.032"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="534.175,-201.839 524.887,-206.936 535.326,-208.744 534.175,-201.839"/>
 </g>
 <!-- Node20&#45;&gt;Node7 -->
 <g id="edge27" class="edge"><title>Node20&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1091.19,-204.058C1052.36,-193.037 993.551,-176.344 951.922,-164.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1090.51,-207.505 1101.09,-206.869 1092.43,-200.771 1090.51,-207.505"/>
+<path fill="none" stroke="midnightblue" d="M125.033,-201.753C144.532,-190.827 171.701,-175.603 191.357,-164.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="123.157,-198.792 116.144,-206.734 126.579,-204.899 123.157,-198.792"/>
 </g>
 <!-- Node20&#45;&gt;Node8 -->
 <g id="edge28" class="edge"><title>Node20&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1112.48,-200.237C1099.04,-189.452 1081.16,-175.102 1068.06,-164.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1110.59,-203.205 1120.58,-206.734 1114.97,-197.745 1110.59,-203.205"/>
+<path fill="none" stroke="midnightblue" d="M91.7434,-197.713C86.6108,-187.287 80.2176,-174.301 75.4361,-164.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="88.6273,-199.308 96.1843,-206.734 94.9075,-196.216 88.6273,-199.308"/>
 </g>
 <!-- Node20&#45;&gt;Node12 -->
 <g id="edge29" class="edge"><title>Node20&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1151.95,-200.568C1169.51,-187.738 1194.23,-169.685 1208.69,-159.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1149.51,-198.009 1143.5,-206.734 1153.64,-203.662 1149.51,-198.009"/>
+<path fill="none" stroke="midnightblue" d="M168.438,-205.642C181.704,-203.925 195.523,-202.282 208.5,-201 459.342,-176.214 524.03,-193.3 774.5,-165 788.189,-163.453 802.984,-161.257 816.506,-159.039"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="167.88,-202.185 158.424,-206.964 168.796,-209.125 167.88,-202.185"/>
 </g>
 <!-- Node21&#45;&gt;Node12 -->
 <g id="edge32" class="edge"><title>Node21&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1597.76,-201.167C1552.62,-194.573 1380.24,-171.677 1284.72,-159.01"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1597.26,-204.632 1607.68,-202.701 1598.33,-197.714 1597.26,-204.632"/>
+<path fill="none" stroke="midnightblue" d="M1598.57,-201.023C1354.2,-166.639 1075.99,-155.639 942.598,-152.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1598.32,-204.523 1608.72,-202.466 1599.31,-197.592 1598.32,-204.523"/>
 </g>
 <!-- Node21&#45;&gt;Node22 -->
 <g id="edge31" class="edge"><title>Node21&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1598.15,-199.407C1553.68,-188.623 1495.75,-174.571 1453.39,-164.298"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1597.45,-202.839 1607.99,-201.795 1599.1,-196.036 1597.45,-202.839"/>
+<path fill="none" stroke="midnightblue" d="M1623.47,-197.407C1599.36,-187.029 1569.55,-174.195 1547.2,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1622.17,-200.657 1632.74,-201.396 1624.93,-194.227 1622.17,-200.657"/>
 </g>
 <!-- Node24 -->
 <g id="node24" class="node"><title>Node24</title>
 <g id="a_node24"><a xlink:href="detail_2extern_8h.html" target="_top" xlink:title="Helpers for using external functions. ">
-<polygon fill="white" stroke="black" points="1605.5,-134.5 1605.5,-164.5 1727.5,-164.5 1727.5,-134.5 1605.5,-134.5"/>
-<text text-anchor="start" x="1613.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="1666.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
+<polygon fill="white" stroke="black" points="1793.5,-134.5 1793.5,-164.5 1915.5,-164.5 1915.5,-134.5 1793.5,-134.5"/>
+<text text-anchor="start" x="1801.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="1854.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node24 -->
 <g id="edge38" class="edge"><title>Node23&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M2091.47,-271.016C2062.87,-262.225 2024.29,-248.769 1992.5,-232 1971.66,-221.008 1971.2,-210.185 1949.5,-201 1865.52,-165.446 1837.27,-181.035 1747.5,-165 1741.03,-163.845 1734.27,-162.636 1727.53,-161.431"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2090.56,-274.397 2101.14,-273.929 2092.58,-267.695 2090.56,-274.397"/>
+<path fill="none" stroke="midnightblue" d="M2034.65,-264.008C2039.36,-246.065 2043.03,-218.98 2029.5,-201 2022.35,-191.492 1963.12,-175.71 1915.52,-164.317"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2031.22,-263.253 2031.72,-273.837 2037.93,-265.253 2031.22,-263.253"/>
 </g>
 <!-- Node28 -->
 <g id="node28" class="node"><title>Node28</title>
 <g id="a_node28"><a xlink:href="elemwise_8h.html" target="_top" xlink:title="Elementwise op constructions. ">
-<polygon fill="white" stroke="black" points="2163,-207 2163,-226 2312,-226 2312,-207 2163,-207"/>
-<text text-anchor="middle" x="2237.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/elemwise.h</text>
+<polygon fill="white" stroke="black" points="1872,-207 1872,-226 2021,-226 2021,-207 1872,-207"/>
+<text text-anchor="middle" x="1946.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/elemwise.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node28 -->
 <g id="edge42" class="edge"><title>Node23&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M2155.21,-268.442C2176,-255.57 2206.12,-236.927 2223.56,-226.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2153.32,-265.494 2146.66,-273.734 2157.01,-271.446 2153.32,-265.494"/>
+<path fill="none" stroke="midnightblue" d="M2009.22,-267.213C1993.06,-254.407 1970.58,-236.588 1957.38,-226.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2007.43,-270.265 2017.44,-273.734 2011.78,-264.779 2007.43,-270.265"/>
 </g>
 <!-- Node25 -->
 <g id="node25" class="node"><title>Node25</title>
 <g id="a_node25"><a xlink:href="cublas_8h.html" target="_top" xlink:title="External function interface to cuBLAS libraries. ">
-<polygon fill="white" stroke="black" points="1671.5,-67.5 1671.5,-97.5 1799.5,-97.5 1799.5,-67.5 1671.5,-67.5"/>
-<text text-anchor="start" x="1679.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
-<text text-anchor="middle" x="1735.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/cublas.h</text>
+<polygon fill="white" stroke="black" points="1701.5,-67.5 1701.5,-97.5 1829.5,-97.5 1829.5,-67.5 1701.5,-67.5"/>
+<text text-anchor="start" x="1709.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
+<text text-anchor="middle" x="1765.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/cublas.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node25 -->
 <g id="edge39" class="edge"><title>Node24&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1688.99,-127.311C1699.34,-117.561 1711.34,-106.259 1720.56,-97.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1686.35,-124.991 1681.47,-134.396 1691.15,-130.087 1686.35,-124.991"/>
+<path fill="none" stroke="midnightblue" d="M1827.05,-128.451C1813.36,-118.452 1797.13,-106.6 1784.77,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1825.05,-131.324 1835.19,-134.396 1829.18,-125.672 1825.05,-131.324"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node"><title>Node27</title>
 <g id="a_node27"><a xlink:href="rocblas_8h.html" target="_top" xlink:title="topi/include/topi/contrib\l/rocblas.h">
-<polygon fill="white" stroke="red" points="1817.5,-67.5 1817.5,-97.5 1945.5,-97.5 1945.5,-67.5 1817.5,-67.5"/>
-<text text-anchor="start" x="1825.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
-<text text-anchor="middle" x="1881.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/rocblas.h</text>
+<polygon fill="white" stroke="red" points="1847.5,-67.5 1847.5,-97.5 1975.5,-97.5 1975.5,-67.5 1847.5,-67.5"/>
+<text text-anchor="start" x="1855.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
+<text text-anchor="middle" x="1911.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/rocblas.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node27 -->
 <g id="edge41" class="edge"><title>Node24&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1722.47,-131.58C1757.39,-121.022 1801.81,-107.592 1834.83,-97.6109"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1721.45,-128.232 1712.89,-134.476 1723.47,-134.932 1721.45,-128.232"/>
+<path fill="none" stroke="midnightblue" d="M1873.59,-126.736C1882.02,-117.119 1891.69,-106.089 1899.16,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1870.83,-124.57 1866.87,-134.396 1876.09,-129.185 1870.83,-124.57"/>
 </g>
 <!-- Node26 -->
 <g id="node26" class="node"><title>Node26</title>
 <g id="a_node26"><a xlink:href="cuda_2dense_8h.html" target="_top" xlink:title="CUDA schedule for dense operation. ">
-<polygon fill="white" stroke="red" points="2002,-0.5 2002,-30.5 2121,-30.5 2121,-0.5 2002,-0.5"/>
-<text text-anchor="start" x="2010" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2061.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
+<polygon fill="white" stroke="red" points="2032,-0.5 2032,-30.5 2151,-30.5 2151,-0.5 2032,-0.5"/>
+<text text-anchor="start" x="2040" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2091.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node26 -->
 <g id="edge40" class="edge"><title>Node25&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1809.38,-66.7684C1867.55,-55.1705 1947.58,-39.2139 2001.75,-28.4134"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1808.64,-63.3478 1799.52,-68.7356 1810.01,-70.2126 1808.64,-63.3478"/>
+<path fill="none" stroke="midnightblue" d="M1839.38,-66.7684C1897.55,-55.1705 1977.58,-39.2139 2031.75,-28.4134"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1838.64,-63.3478 1829.52,-68.7356 1840.01,-70.2126 1838.64,-63.3478"/>
 </g>
 <!-- Node29 -->
 <g id="node29" class="node"><title>Node29</title>
 <g id="a_node29"><a xlink:href="reduction_8h.html" target="_top" xlink:title="Reduction op constructors. ">
-<polygon fill="white" stroke="red" points="2177,-140 2177,-159 2326,-159 2326,-140 2177,-140"/>
-<text text-anchor="middle" x="2251.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/reduction.h</text>
+<polygon fill="white" stroke="red" points="1589,-140 1589,-159 1738,-159 1738,-140 1589,-140"/>
+<text text-anchor="middle" x="1663.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/reduction.h</text>
 </a>
 </g>
 </g>
 <!-- Node28&#45;&gt;Node29 -->
 <g id="edge43" class="edge"><title>Node28&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M2241.5,-196.915C2244.18,-184.488 2247.58,-168.717 2249.64,-159.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2238.07,-196.221 2239.39,-206.734 2244.92,-197.695 2238.07,-196.221"/>
+<path fill="none" stroke="midnightblue" d="M1899.23,-204.644C1843.48,-191.837 1751.92,-170.809 1700.87,-159.083"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1898.68,-208.108 1909.21,-206.936 1900.25,-201.286 1898.68,-208.108"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node"><title>Node31</title>
-<g id="a_node31"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
-<polygon fill="white" stroke="black" points="1738,-408 1738,-427 1865,-427 1865,-408 1738,-408"/>
-<text text-anchor="middle" x="1801.5" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
+<g id="a_node31"><a xlink:href="int__solver_8h.html" target="_top" xlink:title="integer constraints data structures and solvers ">
+<polygon fill="white" stroke="black" points="2228.5,-402.5 2228.5,-432.5 2340.5,-432.5 2340.5,-402.5 2228.5,-402.5"/>
+<text text-anchor="start" x="2236.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
+<text text-anchor="middle" x="2284.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">_solver.h</text>
 </a>
 </g>
 </g>
 <!-- Node30&#45;&gt;Node31 -->
 <g id="edge45" class="edge"><title>Node30&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M1932.24,-465.933C1900.36,-454.368 1853.07,-437.208 1824.95,-427.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1931.41,-469.355 1942,-469.475 1933.8,-462.774 1931.41,-469.355"/>
+<path fill="none" stroke="midnightblue" d="M2184.82,-465.2C2205.34,-455.585 2233.44,-442.423 2254.57,-432.523"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2183.27,-462.063 2175.7,-469.475 2186.24,-468.402 2183.27,-462.063"/>
 </g>
-<!-- Node33 -->
-<g id="node33" class="node"><title>Node33</title>
-<g id="a_node33"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
-<polygon fill="white" stroke="red" points="2002,-207 2002,-226 2145,-226 2145,-207 2002,-207"/>
-<text text-anchor="middle" x="2073.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
+<!-- Node32 -->
+<g id="node32" class="node"><title>Node32</title>
+<g id="a_node32"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
+<polygon fill="white" stroke="black" points="1780,-408 1780,-427 1907,-427 1907,-408 1780,-408"/>
+<text text-anchor="middle" x="1843.5" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
 </a>
 </g>
 </g>
-<!-- Node30&#45;&gt;Node33 -->
-<g id="edge72" class="edge"><title>Node30&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M1973.02,-459.866C1994.32,-408.488 2054.52,-263.27 2069.89,-226.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1969.69,-458.755 1969.09,-469.333 1976.16,-461.436 1969.69,-458.755"/>
+<!-- Node30&#45;&gt;Node32 -->
+<g id="edge46" class="edge"><title>Node30&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M2102.33,-467.546C2041.5,-456.018 1944.79,-437.694 1888.41,-427.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2102.03,-471.052 2112.51,-469.475 2103.34,-464.174 2102.03,-471.052"/>
+</g>
+<!-- Node34 -->
+<g id="node34" class="node"><title>Node34</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="white" stroke="red" points="2077,-207 2077,-226 2220,-226 2220,-207 2077,-207"/>
+<text text-anchor="middle" x="2148.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
+</a>
+</g>
+</g>
+<!-- Node30&#45;&gt;Node34 -->
+<g id="edge72" class="edge"><title>Node30&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M2156.85,-459.216C2155.06,-407.275 2150.08,-263.115 2148.8,-226.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2153.36,-459.46 2157.2,-469.333 2160.35,-459.218 2153.36,-459.46"/>
 </g>
 <!-- Node41 -->
 <g id="node41" class="node"><title>Node41</title>
 <g id="a_node41"><a xlink:href="pad__utils_8h.html" target="_top" xlink:title="Padding helpers. ">
-<polygon fill="white" stroke="red" points="2344.5,-134.5 2344.5,-164.5 2466.5,-164.5 2466.5,-134.5 2344.5,-134.5"/>
-<text text-anchor="start" x="2352.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="2405.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pad_utils.h</text>
+<polygon fill="white" stroke="red" points="2187.5,-134.5 2187.5,-164.5 2309.5,-164.5 2309.5,-134.5 2187.5,-134.5"/>
+<text text-anchor="start" x="2195.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="2248.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pad_utils.h</text>
 </a>
 </g>
 </g>
 <!-- Node30&#45;&gt;Node41 -->
 <g id="edge75" class="edge"><title>Node30&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M1985.61,-463.161C2026.76,-432.722 2123.48,-360.875 2203.5,-299 2221.02,-285.455 2223.65,-279.611 2242.5,-268 2275.01,-247.978 2288.95,-253.508 2320.5,-232 2349.55,-212.191 2377.94,-182.21 2393.44,-164.668"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1983.43,-460.414 1977.47,-469.172 1987.59,-466.043 1983.43,-460.414"/>
+<path fill="none" stroke="midnightblue" d="M2163.14,-459.417C2175.51,-418.48 2205.72,-317.371 2228.5,-232 2234.77,-208.492 2241.37,-180.972 2245.2,-164.679"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2159.76,-458.515 2160.21,-469.101 2166.46,-460.544 2159.76,-458.515"/>
 </g>
 <!-- Node42 -->
 <g id="node42" class="node"><title>Node42</title>
 <g id="a_node42"><a xlink:href="topi_2include_2topi_2nn_8h.html" target="_top" xlink:title="NN op constructions. ">
-<polygon fill="white" stroke="red" points="1471.5,-140 1471.5,-159 1587.5,-159 1587.5,-140 1471.5,-140"/>
-<text text-anchor="middle" x="1529.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
+<polygon fill="white" stroke="red" points="2327.5,-140 2327.5,-159 2443.5,-159 2443.5,-140 2327.5,-140"/>
+<text text-anchor="middle" x="2385.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
 </a>
 </g>
 </g>
 <!-- Node30&#45;&gt;Node42 -->
 <g id="edge76" class="edge"><title>Node30&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M1961.09,-459.318C1947.39,-406.226 1900.03,-254.83 1794.5,-201 1714.82,-160.359 1684.22,-182.462 1596.5,-165 1587.16,-163.141 1577.12,-161.028 1567.72,-159.001"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1957.77,-460.474 1963.57,-469.34 1964.56,-458.792 1957.77,-460.474"/>
+<path fill="none" stroke="midnightblue" d="M2222.57,-470.162C2271.02,-463.006 2331.71,-450.809 2349.5,-433 2375.78,-406.685 2368.5,-388.694 2368.5,-351.5 2368.5,-351.5 2368.5,-351.5 2368.5,-282.5 2368.5,-235.595 2379.19,-180.077 2383.62,-159.099"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2221.84,-466.731 2212.44,-471.613 2222.83,-473.66 2221.84,-466.731"/>
 </g>
 <!-- Node45 -->
 <g id="node45" class="node"><title>Node45</title>
 <g id="a_node45"><a xlink:href="data__layout_8h.html" target="_top" xlink:title="Layout expression to describe the data organization of a tensor. And BijectiveLayout to mapping two d...">
-<polygon fill="white" stroke="red" points="1513.5,-402.5 1513.5,-432.5 1623.5,-432.5 1623.5,-402.5 1513.5,-402.5"/>
-<text text-anchor="start" x="1521.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/data</text>
-<text text-anchor="middle" x="1568.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">_layout.h</text>
+<polygon fill="white" stroke="red" points="1565.5,-402.5 1565.5,-432.5 1675.5,-432.5 1675.5,-402.5 1565.5,-402.5"/>
+<text text-anchor="start" x="1573.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/data</text>
+<text text-anchor="middle" x="1620.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">_layout.h</text>
 </a>
 </g>
 </g>
 <!-- Node30&#45;&gt;Node45 -->
 <g id="edge73" class="edge"><title>Node30&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M1900.65,-468.28C1823.56,-456.726 1696.25,-437.646 1623.68,-426.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1900.31,-471.768 1910.72,-469.789 1901.34,-464.846 1900.31,-471.768"/>
+<path fill="none" stroke="midnightblue" d="M2092.57,-470.806C1985.96,-458.993 1775.71,-435.697 1675.77,-424.624"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2092.23,-474.289 2102.56,-471.912 2093,-467.332 2092.23,-474.289"/>
 </g>
-<!-- Node31&#45;&gt;Node21 -->
-<g id="edge46" class="edge"><title>Node31&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1727.74,-410.296C1667.79,-403.542 1590.06,-390.296 1570.5,-366 1533.48,-320.009 1606.13,-258.702 1643.81,-231.508"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1727.63,-413.804 1737.95,-411.403 1728.39,-406.845 1727.63,-413.804"/>
+<!-- Node32&#45;&gt;Node21 -->
+<g id="edge47" class="edge"><title>Node32&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1769.97,-406.892C1721.24,-398.843 1663.59,-385.501 1648.5,-366 1617.37,-325.779 1643.87,-260.099 1658.01,-231.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1769.47,-410.357 1779.9,-408.481 1770.58,-403.445 1769.47,-410.357"/>
 </g>
-<!-- Node31&#45;&gt;Node22 -->
-<g id="edge47" class="edge"><title>Node31&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1830.61,-403.033C1845.13,-394.621 1861.32,-382.272 1869.5,-366 1875.69,-353.691 1873.24,-348.262 1869.5,-335 1848.06,-258.899 1824.59,-233.457 1752.5,-201 1634.07,-147.682 1590.51,-186.958 1462.5,-165 1459.49,-164.484 1456.42,-163.924 1453.32,-163.333"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1828.54,-400.169 1821.4,-407.994 1831.86,-406.331 1828.54,-400.169"/>
+<!-- Node32&#45;&gt;Node22 -->
+<g id="edge48" class="edge"><title>Node32&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1845.03,-397.784C1846.6,-368.41 1846.3,-310.458 1824.5,-268 1804.54,-229.114 1791.33,-221.081 1752.5,-201 1682.74,-164.922 1656.27,-181.55 1579.5,-165 1576.79,-164.415 1574.01,-163.813 1571.21,-163.201"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1841.53,-397.656 1844.35,-407.868 1848.51,-398.126 1841.53,-397.656"/>
 </g>
-<!-- Node32 -->
-<g id="node32" class="node"><title>Node32</title>
-<g id="a_node32"><a xlink:href="autodiff_8h.html" target="_top" xlink:title="Automatic differentiation of tensor expressions. ">
-<polygon fill="white" stroke="black" points="1591,-341 1591,-360 1724,-360 1724,-341 1591,-341"/>
-<text text-anchor="middle" x="1657.5" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
+<!-- Node33 -->
+<g id="node33" class="node"><title>Node33</title>
+<g id="a_node33"><a xlink:href="autodiff_8h.html" target="_top" xlink:title="Automatic differentiation of tensor expressions. ">
+<polygon fill="white" stroke="black" points="1872,-341 1872,-360 2005,-360 2005,-341 1872,-341"/>
+<text text-anchor="middle" x="1938.5" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
 </a>
 </g>
 </g>
-<!-- Node31&#45;&gt;Node32 -->
-<g id="edge48" class="edge"><title>Node31&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M1772.95,-403.613C1744.43,-390.739 1701.38,-371.306 1676.7,-360.167"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1771.82,-406.944 1782.38,-407.869 1774.7,-400.564 1771.82,-406.944"/>
+<!-- Node32&#45;&gt;Node33 -->
+<g id="edge49" class="edge"><title>Node32&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M1864.81,-401.92C1883.59,-389.069 1910.32,-370.782 1925.89,-360.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1862.59,-399.198 1856.31,-407.734 1866.54,-404.976 1862.59,-399.198"/>
 </g>
-<!-- Node31&#45;&gt;Node33 -->
-<g id="edge49" class="edge"><title>Node31&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M1834.7,-403.978C1855.62,-395.175 1882.53,-382.109 1903.5,-366 1949.45,-330.695 1945.03,-305.15 1989.5,-268 2010.39,-250.546 2037.98,-235.183 2055.74,-226.115"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1833.19,-400.812 1825.26,-407.834 1835.84,-407.292 1833.19,-400.812"/>
+<!-- Node32&#45;&gt;Node34 -->
+<g id="edge50" class="edge"><title>Node32&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1898.4,-405.685C1932.71,-397.614 1977.12,-384.722 2013.5,-366 2056.58,-343.828 2067.36,-335.262 2099.5,-299 2120.41,-275.4 2137.4,-241.648 2144.67,-226.03"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1897.52,-402.295 1888.55,-407.935 1899.08,-409.119 1897.52,-402.295"/>
 </g>
 <!-- Node43 -->
 <g id="node43" class="node"><title>Node43</title>
 <g id="a_node43"><a xlink:href="schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
-<polygon fill="white" stroke="red" points="1679.5,-274 1679.5,-293 1819.5,-293 1819.5,-274 1679.5,-274"/>
-<text text-anchor="middle" x="1749.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
+<polygon fill="white" stroke="red" points="1675.5,-274 1675.5,-293 1815.5,-293 1815.5,-274 1675.5,-274"/>
+<text text-anchor="middle" x="1745.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
 </a>
 </g>
 </g>
-<!-- Node31&#45;&gt;Node43 -->
-<g id="edge66" class="edge"><title>Node31&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1727.92,-409.384C1671.28,-402.207 1599.69,-388.845 1581.5,-366 1549.03,-325.238 1623.58,-303.532 1683.55,-293.023"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1727.59,-412.87 1737.94,-410.611 1728.44,-405.922 1727.59,-412.87"/>
+<!-- Node32&#45;&gt;Node43 -->
+<g id="edge66" class="edge"><title>Node32&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M1831.57,-399.192C1820.02,-382.566 1801.89,-356.823 1785.5,-335 1774.35,-320.155 1760.84,-303.328 1752.72,-293.332"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1828.98,-401.6 1837.55,-407.83 1834.73,-397.615 1828.98,-401.6"/>
 </g>
 <!-- Node44 -->
 <g id="node44" class="node"><title>Node44</title>
 <g id="a_node44"><a xlink:href="tensor__intrin_8h.html" target="_top" xlink:title="Tensor intrinsic operations. ">
-<polygon fill="white" stroke="black" points="1742,-335.5 1742,-365.5 1861,-365.5 1861,-335.5 1742,-335.5"/>
-<text text-anchor="start" x="1750" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor</text>
-<text text-anchor="middle" x="1801.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">_intrin.h</text>
+<polygon fill="white" stroke="black" points="1658,-335.5 1658,-365.5 1777,-365.5 1777,-335.5 1658,-335.5"/>
+<text text-anchor="start" x="1666" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor</text>
+<text text-anchor="middle" x="1717.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">_intrin.h</text>
 </a>
 </g>
 </g>
-<!-- Node31&#45;&gt;Node44 -->
-<g id="edge70" class="edge"><title>Node31&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M1801.5,-397.411C1801.5,-387.222 1801.5,-374.901 1801.5,-365.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1798,-397.734 1801.5,-407.734 1805,-397.734 1798,-397.734"/>
-</g>
-<!-- Node33&#45;&gt;Node24 -->
-<g id="edge62" class="edge"><title>Node33&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M2014.03,-205.301C2005.14,-203.826 1996.09,-202.352 1987.5,-201 1878.35,-183.813 1850.44,-183.492 1741.5,-165 1737.05,-164.245 1732.47,-163.435 1727.85,-162.598"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2013.52,-208.764 2023.96,-206.958 2014.67,-201.859 2013.52,-208.764"/>
-</g>
-<!-- Node33&#45;&gt;Node25 -->
-<g id="edge50" class="edge"><title>Node33&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M2012.74,-205.261C1925.38,-190.534 1774.65,-165.113 1774.5,-165 1752.45,-148.383 1742.29,-116.093 1738.09,-97.5343"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2012.37,-208.746 2022.81,-206.957 2013.53,-201.844 2012.37,-208.746"/>
+<!-- Node32&#45;&gt;Node44 -->
+<g id="edge70" class="edge"><title>Node32&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M1817.71,-403.194C1796.51,-392.261 1766.56,-376.81 1744.93,-365.652"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1816.28,-406.394 1826.77,-407.869 1819.49,-400.173 1816.28,-406.394"/>
 </g>
-<!-- Node33&#45;&gt;Node26 -->
-<g id="edge52" class="edge"><title>Node33&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M2088.33,-199.248C2111.84,-171.419 2152.72,-113.177 2129.5,-67 2121.51,-51.1042 2105.88,-38.953 2091.62,-30.5578"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2085.63,-197.027 2081.69,-206.861 2090.9,-201.631 2085.63,-197.027"/>
+<!-- Node34&#45;&gt;Node24 -->
+<g id="edge62" class="edge"><title>Node34&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M2099.75,-204.722C2049.25,-193.557 1970.23,-176.086 1915.59,-164.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2099.24,-208.194 2109.76,-206.936 2100.75,-201.359 2099.24,-208.194"/>
 </g>
-<!-- Node33&#45;&gt;Node27 -->
-<g id="edge51" class="edge"><title>Node33&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M2074.22,-196.49C2073.86,-178.153 2070.38,-150.777 2054.5,-134 2039.34,-117.98 1988.4,-104.287 1945.69,-95.218"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2070.72,-196.531 2074.13,-206.564 2077.72,-196.598 2070.72,-196.531"/>
+<!-- Node34&#45;&gt;Node25 -->
+<g id="edge51" class="edge"><title>Node34&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2070.05,-205.735C1964.64,-192.455 1789.76,-169.798 1784.5,-165 1765.72,-147.86 1763.74,-116.068 1764.36,-97.6665"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2069.67,-209.215 2080.03,-206.99 2070.54,-202.269 2069.67,-209.215"/>
 </g>
-<!-- Node33&#45;&gt;Node29 -->
-<g id="edge65" class="edge"><title>Node33&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M2106.54,-203.436C2141.85,-190.542 2196.94,-170.424 2228.05,-159.064"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2105.33,-200.151 2097.14,-206.869 2107.73,-206.726 2105.33,-200.151"/>
+<!-- Node34&#45;&gt;Node26 -->
+<g id="edge53" class="edge"><title>Node34&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M2155.62,-197.161C2165.77,-167.895 2180.92,-109.596 2159.5,-67 2151.51,-51.1042 2135.88,-38.953 2121.62,-30.5578"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2152.22,-196.268 2152.06,-206.862 2158.79,-198.678 2152.22,-196.268"/>
 </g>
-<!-- Node34 -->
-<g id="node34" class="node"><title>Node34</title>
-<g id="a_node34"><a xlink:href="cuda_2injective_8h.html" target="_top" xlink:title="CUDA schedule for injective operations. ">
-<polygon fill="white" stroke="red" points="2485,-134.5 2485,-164.5 2604,-164.5 2604,-134.5 2485,-134.5"/>
-<text text-anchor="start" x="2493" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2544.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
-</a>
+<!-- Node34&#45;&gt;Node27 -->
+<g id="edge52" class="edge"><title>Node34&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M2092.19,-204.921C2045.31,-195.271 1983.03,-180.232 1962.5,-165 1939.04,-147.594 1923.82,-115.9 1916.54,-97.5867"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2091.74,-208.402 2102.24,-206.956 2093.13,-201.541 2091.74,-208.402"/>
 </g>
-</g>
-<!-- Node33&#45;&gt;Node34 -->
-<g id="edge53" class="edge"><title>Node33&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M2127.48,-205.201C2136.16,-203.693 2145.07,-202.234 2153.5,-201 2295.98,-180.147 2333.32,-187.833 2475.5,-165 2478.52,-164.515 2481.61,-163.986 2484.73,-163.427"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2126.66,-201.791 2117.42,-206.984 2127.88,-208.684 2126.66,-201.791"/>
+<!-- Node34&#45;&gt;Node29 -->
+<g id="edge65" class="edge"><title>Node34&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M2068.92,-205.729C1971.15,-193.663 1810.93,-173.673 1751.5,-165 1739.09,-163.189 1725.72,-161.072 1713.25,-159.025"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2068.7,-209.229 2079.06,-206.979 2069.56,-202.282 2068.7,-209.229"/>
 </g>
 <!-- Node35 -->
 <g id="node35" class="node"><title>Node35</title>
-<g id="a_node35"><a xlink:href="cuda_2normalization_8h.html" target="_top" xlink:title="CUDA schedule for LRN and l2 normalization operations. ">
-<polygon fill="white" stroke="black" points="2622,-134.5 2622,-164.5 2741,-164.5 2741,-134.5 2622,-134.5"/>
-<text text-anchor="start" x="2630" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2681.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
+<g id="a_node35"><a xlink:href="cuda_2injective_8h.html" target="_top" xlink:title="CUDA schedule for injective operations. ">
+<polygon fill="white" stroke="red" points="2462,-134.5 2462,-164.5 2581,-164.5 2581,-134.5 2462,-134.5"/>
+<text text-anchor="start" x="2470" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2521.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
-<!-- Node33&#45;&gt;Node35 -->
-<g id="edge54" class="edge"><title>Node33&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M2126.22,-205.164C2135.3,-203.609 2144.65,-202.145 2153.5,-201 2356.87,-174.68 2410.56,-194.447 2613.5,-165 2616.25,-164.601 2619.05,-164.157 2621.88,-163.679"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2125.38,-201.759 2116.14,-206.946 2126.6,-208.652 2125.38,-201.759"/>
+<!-- Node34&#45;&gt;Node35 -->
+<g id="edge54" class="edge"><title>Node34&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M2214.08,-205.431C2275.74,-195.768 2370.57,-180.407 2452.5,-165 2455.51,-164.434 2458.59,-163.841 2461.69,-163.231"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2213.44,-201.989 2204.1,-206.991 2214.52,-208.905 2213.44,-201.989"/>
 </g>
 <!-- Node36 -->
 <g id="node36" class="node"><title>Node36</title>
-<g id="a_node36"><a xlink:href="cuda_2pooling_8h.html" target="_top" xlink:title="CUDA schedule for pooling operations. ">
-<polygon fill="white" stroke="red" points="2002,-67.5 2002,-97.5 2121,-97.5 2121,-67.5 2002,-67.5"/>
-<text text-anchor="start" x="2010" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2061.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
+<g id="a_node36"><a xlink:href="cuda_2normalization_8h.html" target="_top" xlink:title="CUDA schedule for LRN and l2 normalization operations. ">
+<polygon fill="white" stroke="black" points="2599,-134.5 2599,-164.5 2718,-164.5 2718,-134.5 2599,-134.5"/>
+<text text-anchor="start" x="2607" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2658.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
 </a>
 </g>
 </g>
-<!-- Node33&#45;&gt;Node36 -->
-<g id="edge55" class="edge"><title>Node33&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M2080.85,-197.299C2086.57,-180.687 2092.71,-155.518 2087.5,-134 2084.34,-120.966 2077.2,-107.528 2071.2,-97.7942"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2077.5,-196.264 2077.28,-206.856 2084.06,-198.712 2077.5,-196.264"/>
+<!-- Node34&#45;&gt;Node36 -->
+<g id="edge55" class="edge"><title>Node34&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M2230.2,-208.44C2318.96,-200.236 2464.79,-185.198 2589.5,-165 2592.52,-164.511 2595.61,-163.979 2598.72,-163.417"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2229.84,-204.959 2220.2,-209.358 2230.48,-211.93 2229.84,-204.959"/>
 </g>
 <!-- Node37 -->
 <g id="node37" class="node"><title>Node37</title>
-<g id="a_node37"><a xlink:href="cuda_2reduction_8h.html" target="_top" xlink:title="CUDA schedule for reduction operations. ">
-<polygon fill="white" stroke="red" points="2759,-134.5 2759,-164.5 2878,-164.5 2878,-134.5 2759,-134.5"/>
-<text text-anchor="start" x="2767" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2818.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
+<g id="a_node37"><a xlink:href="cuda_2pooling_8h.html" target="_top" xlink:title="CUDA schedule for pooling operations. ">
+<polygon fill="white" stroke="red" points="2032,-67.5 2032,-97.5 2151,-97.5 2151,-67.5 2032,-67.5"/>
+<text text-anchor="start" x="2040" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2091.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
 </a>
 </g>
 </g>
-<!-- Node33&#45;&gt;Node37 -->
-<g id="edge56" class="edge"><title>Node33&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M2125.28,-205.187C2134.64,-203.587 2144.34,-202.102 2153.5,-201 2417.41,-169.24 2487.11,-200.818 2750.5,-165 2753.25,-164.626 2756.06,-164.202 2758.88,-163.74"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2124.53,-201.765 2115.29,-206.955 2125.75,-208.658 2124.53,-201.765"/>
+<!-- Node34&#45;&gt;Node37 -->
+<g id="edge56" class="edge"><title>Node34&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M2140.77,-197.598C2129.33,-171.111 2108.13,-122.012 2097.67,-97.7832"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2137.58,-199.046 2144.76,-206.839 2144.01,-196.271 2137.58,-199.046"/>
 </g>
 <!-- Node38 -->
 <g id="node38" class="node"><title>Node38</title>
-<g id="a_node38"><a xlink:href="cuda_2softmax_8h.html" target="_top" xlink:title="topi/include/topi/cuda\l/softmax.h">
-<polygon fill="white" stroke="red" points="2896,-134.5 2896,-164.5 3015,-164.5 3015,-134.5 2896,-134.5"/>
-<text text-anchor="start" x="2904" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2955.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
+<g id="a_node38"><a xlink:href="cuda_2reduction_8h.html" target="_top" xlink:title="CUDA schedule for reduction operations. ">
+<polygon fill="white" stroke="red" points="2736,-134.5 2736,-164.5 2855,-164.5 2855,-134.5 2736,-134.5"/>
+<text text-anchor="start" x="2744" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2795.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
 </a>
 </g>
 </g>
-<!-- Node33&#45;&gt;Node38 -->
-<g id="edge57" class="edge"><title>Node33&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M2124.95,-205.155C2134.42,-203.543 2144.23,-202.063 2153.5,-201 2477.99,-163.796 2563.62,-207.194 2887.5,-165 2890.25,-164.641 2893.06,-164.23 2895.89,-163.779"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2124.1,-201.751 2114.87,-206.942 2125.33,-208.643 2124.1,-201.751"/>
+<!-- Node34&#45;&gt;Node38 -->
+<g id="edge57" class="edge"><title>Node34&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M2230.39,-211.539C2342.9,-205.374 2551.38,-191.356 2727.5,-165 2730.25,-164.589 2733.05,-164.135 2735.87,-163.649"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2229.94,-208.058 2220.14,-212.094 2230.32,-215.048 2229.94,-208.058"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node"><title>Node39</title>
-<g id="a_node39"><a xlink:href="array__utils_8h.html" target="_top" xlink:title="Utility functions for handling arrays. ">
-<polygon fill="white" stroke="red" points="1783.5,-134.5 1783.5,-164.5 1905.5,-164.5 1905.5,-134.5 1783.5,-134.5"/>
-<text text-anchor="start" x="1791.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="1844.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/array_utils.h</text>
+<g id="a_node39"><a xlink:href="cuda_2softmax_8h.html" target="_top" xlink:title="topi/include/topi/cuda\l/softmax.h">
+<polygon fill="white" stroke="red" points="2873,-134.5 2873,-164.5 2992,-164.5 2992,-134.5 2873,-134.5"/>
+<text text-anchor="start" x="2881" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2932.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
 </a>
 </g>
 </g>
-<!-- Node33&#45;&gt;Node39 -->
-<g id="edge58" class="edge"><title>Node33&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M2033.19,-204.058C1994.36,-193.037 1935.55,-176.344 1893.92,-164.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2032.51,-207.505 2043.09,-206.869 2034.43,-200.771 2032.51,-207.505"/>
+<!-- Node34&#45;&gt;Node39 -->
+<g id="edge58" class="edge"><title>Node34&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2230.38,-213.442C2363.8,-209.256 2636.16,-197.237 2864.5,-165 2867.25,-164.612 2870.05,-164.176 2872.88,-163.705"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2230.13,-209.948 2220.24,-213.753 2230.34,-216.944 2230.13,-209.948"/>
 </g>
 <!-- Node40 -->
 <g id="node40" class="node"><title>Node40</title>
-<g id="a_node40"><a xlink:href="detail_2broadcast_8h.html" target="_top" xlink:title="Detail broadcast. ">
-<polygon fill="white" stroke="red" points="1923.5,-134.5 1923.5,-164.5 2045.5,-164.5 2045.5,-134.5 1923.5,-134.5"/>
-<text text-anchor="start" x="1931.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="1984.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/broadcast.h</text>
+<g id="a_node40"><a xlink:href="array__utils_8h.html" target="_top" xlink:title="Utility functions for handling arrays. ">
+<polygon fill="white" stroke="red" points="1971.5,-134.5 1971.5,-164.5 2093.5,-164.5 2093.5,-134.5 1971.5,-134.5"/>
+<text text-anchor="start" x="1979.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="2032.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/array_utils.h</text>
 </a>
 </g>
 </g>
-<!-- Node33&#45;&gt;Node40 -->
-<g id="edge61" class="edge"><title>Node33&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M2053.02,-200.544C2038.21,-189.725 2018.32,-175.203 2003.79,-164.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2051.36,-203.662 2061.5,-206.734 2055.49,-198.009 2051.36,-203.662"/>
+<!-- Node34&#45;&gt;Node40 -->
+<g id="edge59" class="edge"><title>Node34&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M2123.97,-201.753C2104.47,-190.827 2077.3,-175.603 2057.64,-164.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2122.42,-204.899 2132.86,-206.734 2125.84,-198.792 2122.42,-204.899"/>
 </g>
-<!-- Node33&#45;&gt;Node41 -->
-<g id="edge63" class="edge"><title>Node33&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M2128.16,-205.094C2180.99,-194.996 2263.27,-179.164 2334.5,-165 2337.71,-164.362 2341,-163.704 2344.32,-163.037"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2127.49,-201.659 2118.33,-206.973 2128.8,-208.534 2127.49,-201.659"/>
+<!-- Node34&#45;&gt;Node41 -->
+<g id="edge63" class="edge"><title>Node34&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M2170.57,-201.153C2187.31,-190.275 2210.19,-175.403 2226.82,-164.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2168.46,-198.349 2161.99,-206.734 2172.28,-204.218 2168.46,-198.349"/>
 </g>
-<!-- Node33&#45;&gt;Node42 -->
-<g id="edge64" class="edge"><title>Node33&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M1991.86,-205.779C1977.74,-204.148 1963.2,-202.499 1949.5,-201 1792.73,-183.841 1752.25,-189.717 1596.5,-165 1586.39,-163.396 1575.51,-161.233 1565.52,-159.068"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1991.71,-209.286 2002.05,-206.962 1992.52,-202.332 1991.71,-209.286"/>
+<!-- Node34&#45;&gt;Node42 -->
+<g id="edge64" class="edge"><title>Node34&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M2189.8,-204.172C2236.67,-191.319 2312.06,-170.643 2354.28,-159.064"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2188.69,-200.848 2179.97,-206.869 2190.54,-207.599 2188.69,-200.848"/>
 </g>
-<!-- Node39&#45;&gt;Node26 -->
-<g id="edge59" class="edge"><title>Node39&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1890.44,-130.51C1910.7,-121.802 1934.41,-110.522 1954.5,-98 1973,-86.4714 1975.26,-80.3298 1992.5,-67 2008.83,-54.3806 2027.76,-40.5769 2041.67,-30.5954"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1888.96,-127.336 1881.11,-134.447 1891.68,-133.785 1888.96,-127.336"/>
+<!-- Node40&#45;&gt;Node26 -->
+<g id="edge60" class="edge"><title>Node40&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M2022.73,-124.709C2017.35,-107.757 2013.42,-84.8974 2022.5,-67 2030.56,-51.1138 2046.22,-39.0247 2060.59,-30.6636"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2019.52,-126.145 2026.16,-134.404 2026.12,-123.809 2019.52,-126.145"/>
 </g>
-<!-- Node39&#45;&gt;Node36 -->
-<g id="edge60" class="edge"><title>Node39&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M1900.99,-131.58C1936.23,-121.022 1981.07,-107.592 2014.39,-97.6109"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1899.89,-128.254 1891.32,-134.476 1901.9,-134.959 1899.89,-128.254"/>
+<!-- Node40&#45;&gt;Node37 -->
+<g id="edge61" class="edge"><title>Node40&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M2052.25,-126.736C2060.98,-117.119 2071,-106.089 2078.72,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2049.43,-124.639 2045.3,-134.396 2054.61,-129.344 2049.43,-124.639"/>
 </g>
 <!-- Node43&#45;&gt;Node21 -->
 <g id="edge67" class="edge"><title>Node43&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1729.94,-267.544C1715.79,-256.725 1696.8,-242.203 1682.92,-231.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1727.97,-270.44 1738.04,-273.734 1732.22,-264.879 1727.97,-270.44"/>
+<path fill="none" stroke="midnightblue" d="M1726.71,-267.237C1713.44,-256.452 1695.78,-242.102 1682.84,-231.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1724.74,-270.144 1734.71,-273.734 1729.16,-264.711 1724.74,-270.144"/>
 </g>
 <!-- Node43&#45;&gt;Node22 -->
 <g id="edge68" class="edge"><title>Node43&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1750.49,-263.782C1750.38,-245.017 1746.99,-216.719 1729.5,-201 1684.97,-160.981 1521.45,-175.432 1462.5,-165 1459.5,-164.469 1456.42,-163.895 1453.32,-163.295"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1746.99,-263.717 1750.25,-273.799 1753.99,-263.886 1746.99,-263.717"/>
+<path fill="none" stroke="midnightblue" d="M1747.46,-263.682C1748.27,-245.272 1746.37,-217.642 1730.5,-201 1729.09,-199.521 1634.58,-177.8 1571.05,-163.331"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1743.96,-263.54 1746.7,-273.773 1750.94,-264.062 1743.96,-263.54"/>
 </g>
-<!-- Node43&#45;&gt;Node33 -->
-<g id="edge69" class="edge"><title>Node43&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M1802.05,-271.958C1865.82,-259.165 1972.1,-237.843 2030.97,-226.032"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1801.31,-268.537 1792.19,-273.936 1802.68,-275.4 1801.31,-268.537"/>
+<!-- Node43&#45;&gt;Node34 -->
+<g id="edge69" class="edge"><title>Node43&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1808.91,-272.272C1888,-259.517 2021.77,-237.941 2095.6,-226.032"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1807.91,-268.888 1798.6,-273.936 1809.03,-275.798 1807.91,-268.888"/>
 </g>
 <!-- Node44&#45;&gt;Node43 -->
 <g id="edge71" class="edge"><title>Node44&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1783.75,-327.316C1774.38,-315.598 1763.41,-301.883 1756.46,-293.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1781.24,-329.774 1790.22,-335.396 1786.7,-325.401 1781.24,-329.774"/>
+<path fill="none" stroke="midnightblue" d="M1727.65,-325.942C1732.56,-314.54 1738.16,-301.545 1741.75,-293.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1724.32,-324.827 1723.58,-335.396 1730.75,-327.597 1724.32,-324.827"/>
 </g>
 <!-- Node45&#45;&gt;Node21 -->
 <g id="edge74" class="edge"><title>Node45&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1535.88,-396.3C1525.82,-388.232 1515.96,-377.985 1510.5,-366 1491.96,-325.282 1502.46,-300.219 1533.5,-268 1545.38,-255.669 1583.68,-241.662 1615.82,-231.533"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1533.81,-399.118 1543.91,-402.295 1537.99,-393.509 1533.81,-399.118"/>
+<path fill="none" stroke="midnightblue" d="M1606.29,-393.409C1601.93,-385.083 1597.7,-375.412 1595.5,-366 1585.58,-323.59 1575.66,-306.775 1595.5,-268 1603.69,-251.991 1619.58,-239.895 1634.16,-231.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1603.24,-395.126 1611.17,-402.154 1609.35,-391.716 1603.24,-395.126"/>
 </g>
 <!-- Node47 -->
 <g id="node47" class="node"><title>Node47</title>
 <g id="a_node47"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object. ">
-<polygon fill="white" stroke="black" points="2205.5,-335.5 2205.5,-365.5 2309.5,-365.5 2309.5,-335.5 2205.5,-335.5"/>
-<text text-anchor="start" x="2213.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="2257.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target.h</text>
+<polygon fill="white" stroke="black" points="2396.5,-335.5 2396.5,-365.5 2500.5,-365.5 2500.5,-335.5 2396.5,-335.5"/>
+<text text-anchor="start" x="2404.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="2448.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target.h</text>
 </a>
 </g>
 </g>
 <!-- Node46&#45;&gt;Node47 -->
 <g id="edge78" class="edge"><title>Node46&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M2176.24,-516.404C2181.19,-507.87 2186.73,-498.067 2191.5,-489 2214.8,-444.712 2239.67,-390.872 2251.09,-365.724"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2173.2,-514.675 2171.16,-525.073 2179.24,-518.213 2173.2,-514.675"/>
+<path fill="none" stroke="midnightblue" d="M2310.24,-517.908C2328.76,-496.493 2357.81,-462.675 2382.5,-433 2401.95,-409.625 2424.11,-382.065 2437.17,-365.727"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2307.59,-515.623 2303.69,-525.474 2312.88,-520.204 2307.59,-515.623"/>
 </g>
 <!-- Node47&#45;&gt;Node19 -->
 <g id="edge80" class="edge"><title>Node47&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M2195.06,-347.137C2064.72,-341.713 1767.72,-326.664 1670.5,-299 1611.44,-282.195 1548.44,-243.349 1522.15,-226.063"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2195.14,-350.643 2205.28,-347.556 2195.43,-343.649 2195.14,-350.643"/>
+<path fill="none" stroke="midnightblue" d="M2386.23,-347.195C2210.86,-340.472 1721.03,-320.029 1651.5,-299 1598.46,-282.958 1543.98,-243.706 1521.36,-226.189"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2386.21,-350.696 2396.33,-347.58 2386.48,-343.701 2386.21,-350.696"/>
 </g>
 <!-- Node47&#45;&gt;Node21 -->
 <g id="edge81" class="edge"><title>Node47&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M2195.53,-335.978C2149.23,-325.853 2084.39,-311.631 2027.5,-299 1919.05,-274.919 1792.46,-246.406 1721.07,-230.288"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2194.9,-339.421 2205.42,-338.138 2196.4,-332.583 2194.9,-339.421"/>
+<path fill="none" stroke="midnightblue" d="M2386.24,-347.763C2205.37,-342.421 1691.18,-325 1666.5,-299 1649.55,-281.141 1655.18,-249.908 1660.52,-231.732"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2386.29,-351.266 2396.39,-348.061 2386.5,-344.269 2386.29,-351.266"/>
 </g>
 <!-- Node47&#45;&gt;Node22 -->
 <g id="edge82" class="edge"><title>Node47&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M2195.16,-337.12C2155.88,-328.442 2104.45,-315.46 2060.5,-299 1969.66,-264.983 1958.79,-227.562 1865.5,-201 1692.55,-151.755 1640.23,-192.349 1462.5,-165 1459.49,-164.536 1456.4,-164.017 1453.3,-163.458"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2194.62,-340.583 2205.13,-339.288 2196.1,-333.743 2194.62,-340.583"/>
+<path fill="none" stroke="midnightblue" d="M2386.1,-347.066C2271.83,-341.956 2033.63,-328.098 1956.5,-299 1908.5,-280.89 1904.03,-262.123 1862.5,-232 1843.72,-218.378 1841.94,-209.865 1820.5,-201 1720.42,-159.62 1685.97,-184.802 1579.5,-165 1576.77,-164.493 1573.98,-163.953 1571.17,-163.391"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2386.28,-350.577 2396.43,-347.519 2386.59,-343.584 2386.28,-350.577"/>
 </g>
 <!-- Node48 -->
 <g id="node48" class="node"><title>Node48</title>
 <g id="a_node48"><a xlink:href="driver__api_8h.html" target="_top" xlink:title="Compiler driver APIs to drive the compilation. ">
-<polygon fill="white" stroke="black" points="2373.5,-268.5 2373.5,-298.5 2475.5,-298.5 2475.5,-268.5 2373.5,-268.5"/>
-<text text-anchor="start" x="2381.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
-<text text-anchor="middle" x="2424.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
+<polygon fill="white" stroke="black" points="2397.5,-268.5 2397.5,-298.5 2499.5,-298.5 2499.5,-268.5 2397.5,-268.5"/>
+<text text-anchor="start" x="2405.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
+<text text-anchor="middle" x="2448.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node47&#45;&gt;Node48 -->
 <g id="edge79" class="edge"><title>Node47&#45;&gt;Node48</title>
-<path fill="none" stroke="midnightblue" d="M2303.28,-331.682C2330.06,-321.257 2363.4,-308.281 2388.33,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2301.79,-328.507 2293.74,-335.396 2304.33,-335.03 2301.79,-328.507"/>
+<path fill="none" stroke="midnightblue" d="M2448.5,-325.108C2448.5,-316.154 2448.5,-306.323 2448.5,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2445,-325.396 2448.5,-335.396 2452,-325.396 2445,-325.396"/>
 </g>
 <!-- Node49 -->
 <g id="node49" class="node"><title>Node49</title>
 <g id="a_node49"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
-<polygon fill="white" stroke="black" points="2251.5,-268.5 2251.5,-298.5 2355.5,-298.5 2355.5,-268.5 2251.5,-268.5"/>
-<text text-anchor="start" x="2259.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="2303.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
+<polygon fill="white" stroke="black" points="2728.5,-268.5 2728.5,-298.5 2832.5,-298.5 2832.5,-268.5 2728.5,-268.5"/>
+<text text-anchor="start" x="2736.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="2780.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
 </a>
 </g>
 </g>
 <!-- Node47&#45;&gt;Node49 -->
 <g id="edge83" class="edge"><title>Node47&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M2273.31,-327.157C2280.02,-317.679 2287.63,-306.919 2293.54,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2270.4,-325.211 2267.48,-335.396 2276.12,-329.255 2270.4,-325.211"/>
+<path fill="none" stroke="midnightblue" d="M2510.55,-338.831C2565.59,-329.155 2648.1,-314.13 2719.5,-299 2722.38,-298.391 2725.32,-297.749 2728.29,-297.088"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2509.85,-335.401 2500.6,-340.574 2511.06,-342.296 2509.85,-335.401"/>
 </g>
 <!-- Node50 -->
 <g id="node50" class="node"><title>Node50</title>
 <g id="a_node50"><a xlink:href="generic__func_8h.html" target="_top" xlink:title="Generic function that can be specialzied on a per target basis. ">
-<polygon fill="white" stroke="red" points="2697.5,-268.5 2697.5,-298.5 2801.5,-298.5 2801.5,-268.5 2697.5,-268.5"/>
-<text text-anchor="start" x="2705.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="2749.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
+<polygon fill="white" stroke="red" points="2606.5,-268.5 2606.5,-298.5 2710.5,-298.5 2710.5,-268.5 2606.5,-268.5"/>
+<text text-anchor="start" x="2614.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="2658.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node47&#45;&gt;Node50 -->
 <g id="edge84" class="edge"><title>Node47&#45;&gt;Node50</title>
-<path fill="none" stroke="midnightblue" d="M2319.74,-341.277C2417.75,-328.329 2606.23,-303.427 2697.48,-291.373"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2319.14,-337.826 2309.69,-342.605 2320.06,-344.765 2319.14,-337.826"/>
+<path fill="none" stroke="midnightblue" d="M2503.6,-332.444C2537.64,-321.908 2580.8,-308.549 2612.91,-298.611"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2502.33,-329.176 2493.81,-335.476 2504.4,-335.863 2502.33,-329.176"/>
 </g>
 <!-- Node50&#45;&gt;Node21 -->
 <g id="edge85" class="edge"><title>Node50&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M2687.18,-278.766C2493.89,-267.187 1906.47,-231.996 1721.14,-220.893"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2686.98,-282.261 2697.17,-279.365 2687.4,-275.273 2686.98,-282.261"/>
+<path fill="none" stroke="midnightblue" d="M2596.4,-275.925C2569.41,-273.216 2537.42,-270.202 2508.5,-268 2221.77,-246.161 2149.46,-250.555 1862.5,-232 1815.27,-228.946 1761.72,-224.971 1722.38,-221.956"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2596.18,-279.421 2606.48,-276.946 2596.88,-272.456 2596.18,-279.421"/>
 </g>
 <!-- Node50&#45;&gt;Node26 -->
 <g id="edge86" class="edge"><title>Node50&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M2811.65,-276.46C2878.01,-268.968 2977.77,-254.38 3008.5,-232 3046.14,-204.594 3076.41,-168.817 3045.5,-134 2983.79,-64.4802 2324.94,-28.5962 2121.19,-19.1042"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2811.27,-272.982 2801.71,-277.558 2812.04,-279.939 2811.27,-272.982"/>
-</g>
-<!-- Node50&#45;&gt;Node34 -->
-<g id="edge87" class="edge"><title>Node50&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M2718.89,-262.793C2677.03,-235.836 2602.93,-188.125 2566.28,-164.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2717.26,-265.903 2727.56,-268.374 2721.05,-260.017 2717.26,-265.903"/>
+<path fill="none" stroke="midnightblue" d="M2720.59,-267.87C2872.35,-236.569 3112.71,-240.907 3018.5,-134 2960.88,-68.6193 2346.9,-30.2131 2151.12,-19.5608"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2719.77,-264.466 2710.72,-269.985 2721.23,-271.31 2719.77,-264.466"/>
 </g>
 <!-- Node50&#45;&gt;Node35 -->
-<g id="edge88" class="edge"><title>Node50&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M2737.64,-259.476C2723.52,-232.073 2700.4,-187.185 2688.72,-164.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2734.53,-261.087 2742.22,-268.374 2740.75,-257.881 2734.53,-261.087"/>
+<g id="edge87" class="edge"><title>Node50&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M2636.44,-261.245C2608.21,-234.044 2560.09,-187.68 2536.06,-164.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2634.21,-263.956 2643.84,-268.374 2639.07,-258.915 2634.21,-263.956"/>
 </g>
 <!-- Node50&#45;&gt;Node36 -->
-<g id="edge89" class="edge"><title>Node50&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M2811.81,-272.381C2912.95,-253.534 3094.82,-208.106 3024.5,-134 2993.33,-101.154 2326.9,-87.7552 2121.33,-84.3943"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2810.89,-268.99 2801.69,-274.229 2812.15,-275.876 2810.89,-268.99"/>
+<g id="edge88" class="edge"><title>Node50&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M2658.5,-258.024C2658.5,-230.512 2658.5,-186.789 2658.5,-164.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2655,-258.374 2658.5,-268.374 2662,-258.374 2655,-258.374"/>
 </g>
 <!-- Node50&#45;&gt;Node37 -->
-<g id="edge90" class="edge"><title>Node50&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M2761.54,-259.476C2775.86,-232.073 2799.32,-187.185 2811.17,-164.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2758.42,-257.89 2756.88,-268.374 2764.62,-261.133 2758.42,-257.89"/>
+<g id="edge89" class="edge"><title>Node50&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M2719.56,-265.754C2813.56,-239.371 2984.67,-188.699 3001.5,-165 3009.48,-153.767 3010.97,-144.009 3001.5,-134 2972.24,-103.073 2348.83,-88.4517 2151.11,-84.5805"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2718.57,-262.397 2709.88,-268.461 2720.46,-269.138 2718.57,-262.397"/>
 </g>
 <!-- Node50&#45;&gt;Node38 -->
-<g id="edge91" class="edge"><title>Node50&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M2779.99,-262.962C2822.01,-236.036 2896.7,-188.175 2933.61,-164.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2778.08,-260.032 2771.55,-268.374 2781.85,-265.925 2778.08,-260.032"/>
+<g id="edge90" class="edge"><title>Node50&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M2680.56,-261.245C2708.79,-234.044 2756.91,-187.68 2780.94,-164.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2677.93,-258.915 2673.16,-268.374 2682.79,-263.956 2677.93,-258.915"/>
+</g>
+<!-- Node50&#45;&gt;Node39 -->
+<g id="edge91" class="edge"><title>Node50&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2696.7,-264.099C2752.08,-237.416 2853.51,-188.555 2903.32,-164.556"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2695.05,-261.005 2687.56,-268.499 2698.09,-267.312 2695.05,-261.005"/>
 </g>
 </g>
 </svg>
diff --git a/docs/api/doxygen/attr__registry__map_8h_source.html b/docs/api/doxygen/attr__registry__map_8h_source.html
index a1a0292..b06daa6 100644
--- a/docs/api/doxygen/attr__registry__map_8h_source.html
+++ b/docs/api/doxygen/attr__registry__map_8h_source.html
@@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="classtvm_1_1runtime_1_1String_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1String.html">tvm::runtime::String</a></div><div class="ttdoc">Reference to string objects. </div><div class="ttdef"><b>Definition:</b> container.h:1159</div></div>
 <div class="ttc" id="classtvm_1_1AttrRegistryMap_html_accc1c6f22be9fbacd5ab23c06a0c8d59"><div class="ttname"><a href="classtvm_1_1AttrRegistryMap.html#accc1c6f22be9fbacd5ab23c06a0c8d59">tvm::AttrRegistryMap::operator[]</a></div><div class="ttdeci">ValueType operator[](const KeyType &amp;key) const </div><div class="ttdoc">get the corresponding value element at key. </div><div class="ttdef"><b>Definition:</b> attr_registry_map.h:119</div></div>
 <div class="ttc" id="classtvm_1_1AttrRegistryMap_html"><div class="ttname"><a href="classtvm_1_1AttrRegistryMap.html">tvm::AttrRegistryMap</a></div><div class="ttdoc">Map&lt;Key, ValueType&gt; used to store meta-data. </div><div class="ttdef"><b>Definition:</b> attr_registry_map.h:101</div></div>
-<div class="ttc" id="classtvm_1_1OpRegEntry_html"><div class="ttname"><a href="classtvm_1_1OpRegEntry.html">tvm::OpRegEntry</a></div><div class="ttdoc">Helper structure to register operators. </div><div class="ttdef"><b>Definition:</b> op.h:214</div></div>
+<div class="ttc" id="classtvm_1_1OpRegEntry_html"><div class="ttname"><a href="classtvm_1_1OpRegEntry.html">tvm::OpRegEntry</a></div><div class="ttdoc">Helper structure to register operators. </div><div class="ttdef"><b>Definition:</b> op.h:215</div></div>
 <div class="ttc" id="node_2container_8h_html"><div class="ttname"><a href="node_2container_8h.html">container.h</a></div><div class="ttdoc">Array/Map container in the DSL graph. </div></div>
 <div class="ttc" id="classtvm_1_1AttrRegistryMap_html_a09551a76dd955d6d497a4ba80c43ba25"><div class="ttname"><a href="classtvm_1_1AttrRegistryMap.html#a09551a76dd955d6d497a4ba80c43ba25">tvm::AttrRegistryMap::map_</a></div><div class="ttdeci">const AttrRegistryMapContainerMap&lt; KeyType &gt; &amp; map_</div><div class="ttdoc">The internal map field. </div><div class="ttdef"><b>Definition:</b> attr_registry_map.h:130</div></div>
 <div class="ttc" id="classtvm_1_1AttrRegistryMap_html_af5b830f45de1cc82fc9405b64cf55f10"><div class="ttname"><a href="classtvm_1_1AttrRegistryMap.html#af5b830f45de1cc82fc9405b64cf55f10">tvm::AttrRegistryMap::count</a></div><div class="ttdeci">int count(const KeyType &amp;key) const </div><div class="ttdoc">Check if the map has op as key. </div><div class="ttdef"><b>Definition:</b> attr_registry_map.h:113</div></div>
diff --git a/docs/api/doxygen/builtin_8h_source.html b/docs/api/doxygen/builtin_8h_source.html
index 6b841c1..eb6f5bf 100644
--- a/docs/api/doxygen/builtin_8h_source.html
+++ b/docs/api/doxygen/builtin_8h_source.html
@@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_abd540cb73407771ecfb4f78722ce5a1b"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#abd540cb73407771ecfb4f78722ce5a1b">tvm::tir::builtin::tvm_stack_make_shape</a></div><div class="ttdeci">const Op &amp; tvm_stack_make_shape()</div><div class="ttdoc">Allocate a shape tuple on stack, return the handle. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ae741e67259cd4b844a8934f2e2704adc"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ae741e67259cd4b844a8934f2e2704adc">tvm::tir::builtin::if_then_else</a></div><div class="ttdeci">const Op &amp; if_then_else()</div><div class="ttdoc">Same as select, used for unsafe memory access. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1caa73457ed97931251f1762cb319adc858"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1caa73457ed97931251f1762cb319adc858">tvm::tir::builtin::kTVMValueKindBound_</a></div><div class="ttdef"><b>Definition:</b> builtin.h:561</div></div>
-<div class="ttc" id="classtvm_1_1Op_html"><div class="ttname"><a href="classtvm_1_1Op.html">tvm::Op</a></div><div class="ttdoc">Managed reference class to OpNode. </div><div class="ttdef"><b>Definition:</b> op.h:164</div></div>
+<div class="ttc" id="classtvm_1_1Op_html"><div class="ttname"><a href="classtvm_1_1Op.html">tvm::Op</a></div><div class="ttdoc">Managed reference class to OpNode. </div><div class="ttdef"><b>Definition:</b> op.h:165</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca57f69fd3d141caaa7e2e72fda7d6a1da"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca57f69fd3d141caaa7e2e72fda7d6a1da">tvm::tir::builtin::kArrShape</a></div><div class="ttdef"><b>Definition:</b> builtin.h:549</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_afc4086a245ded9076de226ae802ced32"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#afc4086a245ded9076de226ae802ced32">tvm::tir::builtin::tvm_warp_activemask</a></div><div class="ttdeci">const Op &amp; tvm_warp_activemask()</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a668eaad07b6c46238f2bf758e61b58a5"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a668eaad07b6c46238f2bf758e61b58a5">tvm::tir::builtin::call_extern</a></div><div class="ttdeci">const Op &amp; call_extern()</div><div class="ttdoc">Call an extern C function with given name and signature from the types of args in the runtime environ...</div></div>
diff --git a/docs/api/doxygen/c__backend__api_8h.html b/docs/api/doxygen/c__backend__api_8h.html
index f13c2b8..8384aa6 100644
--- a/docs/api/doxygen/c__backend__api_8h.html
+++ b/docs/api/doxygen/c__backend__api_8h.html
@@ -103,6 +103,12 @@ Include dependency graph for c_backend_api.h:</div>
 <div class="center"><iframe scrolling="no" frameborder="0" src="c__backend__api_8h__incl.svg" width="324" height="216"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><iframe scrolling="no" frameborder="0" src="c__backend__api_8h__dep__incl.svg" width="219" height="410"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+</div>
+</div>
 </div>
 <p><a href="c__backend__api_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
@@ -114,9 +120,9 @@ Classes</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:a79a43e3f37e8f77316e8dd16d0ee9b47"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c__backend__api_8h.html#a79a43e3f37e8f77316e8dd16d0ee9b47">TVMBackendPackedCFunc</a>) (<a class="el" href="unionTVMValue.html">TVMValue</a> *args, int *type_codes, int num_args, <a class="el" href="unionTVMValue.html">TVMValue</a> *out_ret_value, int *out_ret_tcode)</td></tr>
-<tr class="memdesc:a79a43e3f37e8f77316e8dd16d0ee9b47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signature for backend functions exported as DLL.  <a href="#a79a43e3f37e8f77316e8dd16d0ee9b47">More...</a><br /></td></tr>
-<tr class="separator:a79a43e3f37e8f77316e8dd16d0ee9b47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58f5af221f14f8e68bd57f83643b3cac"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c__backend__api_8h.html#a58f5af221f14f8e68bd57f83643b3cac">TVMBackendPackedCFunc</a>) (<a class="el" href="unionTVMValue.html">TVMValue</a> *args, int *type_codes, int num_args, <a class="el" href="unionTVMValue.html">TVMValue</a> *out_ret_value, int *out_ret_tcode, void *resource_handle)</td></tr>
+<tr class="memdesc:a58f5af221f14f8e68bd57f83643b3cac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signature for backend functions exported as DLL.  <a href="#a58f5af221f14f8e68bd57f83643b3cac">More...</a><br /></td></tr>
+<tr class="separator:a58f5af221f14f8e68bd57f83643b3cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac1b48128210969500e27aad08a7fe51b"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c__backend__api_8h.html#ac1b48128210969500e27aad08a7fe51b">FTVMParallelLambda</a>) (int task_id, <a class="el" href="structTVMParallelGroupEnv.html">TVMParallelGroupEnv</a> *penv, void *cdata)</td></tr>
 <tr class="memdesc:ac1b48128210969500e27aad08a7fe51b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The callback function to execute a parallel lambda.  <a href="#ac1b48128210969500e27aad08a7fe51b">More...</a><br /></td></tr>
 <tr class="separator:ac1b48128210969500e27aad08a7fe51b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -171,12 +177,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a79a43e3f37e8f77316e8dd16d0ee9b47"></a>
+<a class="anchor" id="a58f5af221f14f8e68bd57f83643b3cac"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef int(* TVMBackendPackedCFunc) (<a class="el" href="unionTVMValue.html">TVMValue</a> *args, int *type_codes, int num_args, <a class="el" href="unionTVMValue.html">TVMValue</a> *out_ret_value, int *out_ret_tcode)</td>
+          <td class="memname">typedef int(* TVMBackendPackedCFunc) (<a class="el" href="unionTVMValue.html">TVMValue</a> *args, int *type_codes, int num_args, <a class="el" href="unionTVMValue.html">TVMValue</a> *out_ret_value, int *out_ret_tcode, void *resource_handle)</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -188,7 +194,8 @@ Functions</h2></td></tr>
     <tr><td class="paramname">type_codes</td><td>The type codes of the arguments </td></tr>
     <tr><td class="paramname">num_args</td><td>Number of arguments. </td></tr>
     <tr><td class="paramname">out_ret_value</td><td>The output value of the the return value. </td></tr>
-    <tr><td class="paramname">out_ret_tcode</td><td>The output type code of the return value.</td></tr>
+    <tr><td class="paramname">out_ret_tcode</td><td>The output type code of the return value. </td></tr>
+    <tr><td class="paramname">resource_handle</td><td>Pointer to associated resource.</td></tr>
   </table>
   </dd>
 </dl>
diff --git a/docs/api/doxygen/c__backend__api_8h__dep__incl.svg b/docs/api/doxygen/c__backend__api_8h__dep__incl.svg
new file mode 100644
index 0000000..9d4fdf5
--- /dev/null
+++ b/docs/api/doxygen/c__backend__api_8h__dep__incl.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.38.0 (20140413.2041)
+ -->
+<!-- Title: include/tvm/runtime/c_backend_api.h Pages: 1 -->
+<svg width="164pt" height="307pt"
+ viewBox="0.00 0.00 164.00 307.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 303)">
+<title>include/tvm/runtime/c_backend_api.h</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-303 160,-303 160,4 -4,4"/>
+<!-- Node1 -->
+<g id="node1" class="node"><title>Node1</title>
+<polygon fill="#bfbfbf" stroke="black" points="42,-268.5 42,-298.5 155,-298.5 155,-268.5 42,-268.5"/>
+<text text-anchor="start" x="50" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="98.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_backend_api.h</text>
+</g>
+<!-- Node2 -->
+<g id="node2" class="node"><title>Node2</title>
+<g id="a_node2"><a xlink:href="func__registry_8h.html" target="_top" xlink:title="Defines generic string&#45;based function lookup structs. ">
+<polygon fill="white" stroke="black" points="0,-201.5 0,-231.5 113,-231.5 113,-201.5 0,-201.5"/>
+<text text-anchor="start" x="8" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="56.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/func_registry.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node2 -->
+<g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M83.8755,-259.867C77.7969,-250.459 70.9308,-239.833 65.5956,-231.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="81.0197,-261.896 89.3866,-268.396 86.8991,-258.097 81.0197,-261.896"/>
+</g>
+<!-- Node3 -->
+<g id="node3" class="node"><title>Node3</title>
+<g id="a_node3"><a xlink:href="runtime_2crt_2module_8h.html" target="_top" xlink:title="Runtime container of the functions. ">
+<polygon fill="white" stroke="black" points="42,-134.5 42,-164.5 155,-164.5 155,-134.5 42,-134.5"/>
+<text text-anchor="start" x="50" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="98.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/module.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node3 -->
+<g id="edge5" class="edge"><title>Node1&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M112.282,-259.077C116.42,-250.807 120.412,-241.256 122.5,-232 125.531,-218.56 125.531,-214.44 122.5,-201 119.595,-188.122 113.004,-174.674 107.462,-164.897"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="109.085,-257.633 107.462,-268.103 115.26,-260.93 109.085,-257.633"/>
+</g>
+<!-- Node2&#45;&gt;Node3 -->
+<g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M71.1245,-192.867C77.2031,-183.459 84.0692,-172.833 89.4044,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="68.1009,-191.097 65.6134,-201.396 73.9803,-194.896 68.1009,-191.097"/>
+</g>
+<!-- Node4 -->
+<g id="node4" class="node"><title>Node4</title>
+<g id="a_node4"><a xlink:href="crt_2packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
+<polygon fill="white" stroke="black" points="42,-67.5 42,-97.5 155,-97.5 155,-67.5 42,-67.5"/>
+<text text-anchor="start" x="50" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="98.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/packed_func.h</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node4 -->
+<g id="edge3" class="edge"><title>Node3&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M98.5,-124.108C98.5,-115.154 98.5,-105.323 98.5,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="95.0001,-124.396 98.5,-134.396 102,-124.396 95.0001,-124.396"/>
+</g>
+<!-- Node5 -->
+<g id="node5" class="node"><title>Node5</title>
+<g id="a_node5"><a xlink:href="graph__runtime_8h.html" target="_top" xlink:title="Tiny graph runtime that can run graph containing only tvm PackedFunc. ">
+<polygon fill="white" stroke="black" points="41,-0.5 41,-30.5 156,-30.5 156,-0.5 41,-0.5"/>
+<text text-anchor="start" x="49" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="98.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/graph_runtime.h</text>
+</a>
+</g>
+</g>
+<!-- Node4&#45;&gt;Node5 -->
+<g id="edge4" class="edge"><title>Node4&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M98.5,-57.1081C98.5,-48.1539 98.5,-38.3227 98.5,-30.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="95.0001,-57.3959 98.5,-67.396 102,-57.396 95.0001,-57.3959"/>
+</g>
+</g>
+</svg>
diff --git a/docs/api/doxygen/c__backend__api_8h_source.html b/docs/api/doxygen/c__backend__api_8h_source.html
index 86edf22..1879f6b 100644
--- a/docs/api/doxygen/c__backend__api_8h_source.html
+++ b/docs/api/doxygen/c__backend__api_8h_source.html
@@ -89,20 +89,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">c_backend_api.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="c__backend__api_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  [...]
+<a href="c__backend__api_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  [...]
 <div class="ttc" id="c__backend__api_8h_html_ae70bd3ee026eb55b438ada05b08f0ce8"><div class="ttname"><a href="c__backend__api_8h.html#ae70bd3ee026eb55b438ada05b08f0ce8">TVMBackendRunOnce</a></div><div class="ttdeci">int TVMBackendRunOnce(void **handle, int(*f)(void *), void *cdata, int nbytes)</div><div class="ttdoc">Simple static initialization function. Run f once and set handle to be not null. This function is mai...</div></div>
 <div class="ttc" id="c__backend__api_8h_html_a07eaf7d1b748d99aa7715c7adbdea231"><div class="ttname"><a href="c__backend__api_8h.html#a07eaf7d1b748d99aa7715c7adbdea231">TVMBackendAllocWorkspace</a></div><div class="ttdeci">void * TVMBackendAllocWorkspace(int device_type, int device_id, uint64_t nbytes, int dtype_code_hint, int dtype_bits_hint)</div><div class="ttdoc">Backend function to allocate temporal workspace. </div></div>
 <div class="ttc" id="unionTVMValue_html"><div class="ttname"><a href="unionTVMValue.html">TVMValue</a></div><div class="ttdoc">Union type of values being passed through API and function calls. </div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:144</div></div>
-<div class="ttc" id="structTVMParallelGroupEnv_html"><div class="ttname"><a href="structTVMParallelGroupEnv.html">TVMParallelGroupEnv</a></div><div class="ttdoc">Environment for TVM parallel task. </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:103</div></div>
-<div class="ttc" id="c__backend__api_8h_html_a79a43e3f37e8f77316e8dd16d0ee9b47"><div class="ttname"><a href="c__backend__api_8h.html#a79a43e3f37e8f77316e8dd16d0ee9b47">TVMBackendPackedCFunc</a></div><div class="ttdeci">int(* TVMBackendPackedCFunc)(TVMValue *args, int *type_codes, int num_args, TVMValue *out_ret_value, int *out_ret_tcode)</div><div class="ttdoc">Signature for backend functions exported as DLL. </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:48</div></div>
+<div class="ttc" id="structTVMParallelGroupEnv_html"><div class="ttname"><a href="structTVMParallelGroupEnv.html">TVMParallelGroupEnv</a></div><div class="ttdoc">Environment for TVM parallel task. </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:105</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_acf57d257a6e0841d84ebbd2a339d183e"><div class="ttname"><a href="c__runtime__api_8h.html#acf57d257a6e0841d84ebbd2a339d183e">TVMFunctionHandle</a></div><div class="ttdeci">void * TVMFunctionHandle</div><div class="ttdoc">Handle to packed function handle. </div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:165</div></div>
 <div class="ttc" id="c__backend__api_8h_html_a6ff8662943d0f003d55d9046cd24daf8"><div class="ttname"><a href="c__backend__api_8h.html#a6ff8662943d0f003d55d9046cd24daf8">TVMBackendParallelLaunch</a></div><div class="ttdeci">int TVMBackendParallelLaunch(FTVMParallelLambda flambda, void *cdata, int num_task)</div><div class="ttdoc">Backend function for running parallel jobs. </div></div>
 <div class="ttc" id="c__backend__api_8h_html_a0c57deb5acb9338ec778d91bd6e42191"><div class="ttname"><a href="c__backend__api_8h.html#a0c57deb5acb9338ec778d91bd6e42191">TVMBackendRegisterSystemLibSymbol</a></div><div class="ttdeci">int TVMBackendRegisterSystemLibSymbol(const char *name, void *ptr)</div><div class="ttdoc">Backend function to register system-wide library symbol. </div></div>
-<div class="ttc" id="c__backend__api_8h_html_ac1b48128210969500e27aad08a7fe51b"><div class="ttname"><a href="c__backend__api_8h.html#ac1b48128210969500e27aad08a7fe51b">FTVMParallelLambda</a></div><div class="ttdeci">int(* FTVMParallelLambda)(int task_id, TVMParallelGroupEnv *penv, void *cdata)</div><div class="ttdoc">The callback function to execute a parallel lambda. </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:118</div></div>
-<div class="ttc" id="structTVMParallelGroupEnv_html_a0633fa0370c01f1ab38948a53801d90c"><div class="ttname"><a href="structTVMParallelGroupEnv.html#a0633fa0370c01f1ab38948a53801d90c">TVMParallelGroupEnv::sync_handle</a></div><div class="ttdeci">void * sync_handle</div><div class="ttdoc">Auxiliary used for synchronization. </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:107</div></div>
+<div class="ttc" id="c__backend__api_8h_html_ac1b48128210969500e27aad08a7fe51b"><div class="ttname"><a href="c__backend__api_8h.html#ac1b48128210969500e27aad08a7fe51b">FTVMParallelLambda</a></div><div class="ttdeci">int(* FTVMParallelLambda)(int task_id, TVMParallelGroupEnv *penv, void *cdata)</div><div class="ttdoc">The callback function to execute a parallel lambda. </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:120</div></div>
+<div class="ttc" id="structTVMParallelGroupEnv_html_a0633fa0370c01f1ab38948a53801d90c"><div class="ttname"><a href="structTVMParallelGroupEnv.html#a0633fa0370c01f1ab38948a53801d90c">TVMParallelGroupEnv::sync_handle</a></div><div class="ttdeci">void * sync_handle</div><div class="ttdoc">Auxiliary used for synchronization. </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:109</div></div>
 <div class="ttc" id="c__backend__api_8h_html_a2d54b04a58a58eb9ff43e33c320e60a7"><div class="ttname"><a href="c__backend__api_8h.html#a2d54b04a58a58eb9ff43e33c320e60a7">TVMBackendParallelBarrier</a></div><div class="ttdeci">int TVMBackendParallelBarrier(int task_id, TVMParallelGroupEnv *penv)</div><div class="ttdoc">BSP barrrier between parallel threads. </div></div>
 <div class="ttc" id="c__backend__api_8h_html_a4560d2cbefdae811371596672e455dfd"><div class="ttname"><a href="c__backend__api_8h.html#a4560d2cbefdae811371596672e455dfd">TVMBackendFreeWorkspace</a></div><div class="ttdeci">int TVMBackendFreeWorkspace(int device_type, int device_id, void *ptr)</div><div class="ttdoc">Backend function to free temporal workspace. </div></div>
-<div class="ttc" id="structTVMParallelGroupEnv_html_a6ff807972a918ee61dfc158abce825f6"><div class="ttname"><a href="structTVMParallelGroupEnv.html#a6ff807972a918ee61dfc158abce825f6">TVMParallelGroupEnv::num_task</a></div><div class="ttdeci">int32_t num_task</div><div class="ttdoc">total amount of task </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:109</div></div>
+<div class="ttc" id="c__backend__api_8h_html_a58f5af221f14f8e68bd57f83643b3cac"><div class="ttname"><a href="c__backend__api_8h.html#a58f5af221f14f8e68bd57f83643b3cac">TVMBackendPackedCFunc</a></div><div class="ttdeci">int(* TVMBackendPackedCFunc)(TVMValue *args, int *type_codes, int num_args, TVMValue *out_ret_value, int *out_ret_tcode, void *resource_handle)</div><div class="ttdoc">Signature for backend functions exported as DLL. </div><div class="ttdef"><b>Definition:</b> c_backend_ap [...]
+<div class="ttc" id="structTVMParallelGroupEnv_html_a6ff807972a918ee61dfc158abce825f6"><div class="ttname"><a href="structTVMParallelGroupEnv.html#a6ff807972a918ee61dfc158abce825f6">TVMParallelGroupEnv::num_task</a></div><div class="ttdeci">int32_t num_task</div><div class="ttdoc">total amount of task </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:111</div></div>
 <div class="ttc" id="c__runtime__api_8h_html"><div class="ttname"><a href="c__runtime__api_8h.html">c_runtime_api.h</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
diff --git a/docs/api/doxygen/c__runtime__api_8h.html b/docs/api/doxygen/c__runtime__api_8h.html
index 61ec3bb..f2c3aad 100644
--- a/docs/api/doxygen/c__runtime__api_8h.html
+++ b/docs/api/doxygen/c__runtime__api_8h.html
@@ -107,7 +107,7 @@ Include dependency graph for c_runtime_api.h:</div>
 </div><div class="textblock"><div class="dynheader">
 This graph shows which files directly or indirectly include this file:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="c__runtime__api_8h__dep__incl.svg" width="3183" height="1514"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="c__runtime__api_8h__dep__incl.svg" width="3108" height="1528"><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/api/doxygen/c__runtime__api_8h__dep__incl.svg b/docs/api/doxygen/c__runtime__api_8h__dep__incl.svg
index 19bd930..db0e154 100644
--- a/docs/api/doxygen/c__runtime__api_8h__dep__incl.svg
+++ b/docs/api/doxygen/c__runtime__api_8h__dep__incl.svg
@@ -4,1136 +4,1149 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/runtime/c_runtime_api.h Pages: 1 -->
-<svg width="2387pt" height="1135pt"
- viewBox="0.00 0.00 2386.50 1135.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 1131)">
+<svg width="2331pt" height="1146pt"
+ viewBox="0.00 0.00 2330.50 1146.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 1142)">
 <title>include/tvm/runtime/c_runtime_api.h</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-1131 2382.5,-1131 2382.5,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-1142 2326.5,-1142 2326.5,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="1003.5,-1096.5 1003.5,-1126.5 1116.5,-1126.5 1116.5,-1096.5 1003.5,-1096.5"/>
-<text text-anchor="start" x="1011.5" y="-1114.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1060" y="-1103.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_runtime_api.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="769,-1107.5 769,-1137.5 882,-1137.5 882,-1107.5 769,-1107.5"/>
+<text text-anchor="start" x="777" y="-1125.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="825.5" y="-1114.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_runtime_api.h</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
 <g id="a_node2"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="white" stroke="black" points="974.5,-593.5 974.5,-612.5 1109.5,-612.5 1109.5,-593.5 974.5,-593.5"/>
-<text text-anchor="middle" x="1042" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/node.h</text>
+<polygon fill="white" stroke="black" points="1349,-593.5 1349,-612.5 1484,-612.5 1484,-593.5 1349,-593.5"/>
+<text text-anchor="middle" x="1416.5" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/node.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M992.989,-1110.05C805.844,-1108.28 287.04,-1099.82 222,-1060 186.148,-1038.05 174,-1020.54 174,-978.5 174,-978.5 174,-978.5 174,-842.5 174,-809.401 174.685,-795.494 198,-772 373.525,-595.131 498.745,-687.078 745,-649 828.492,-636.09 925.249,-621.499 985.047,-612.524"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="993.211,-1113.55 1003.24,-1110.14 993.275,-1106.55 993.211,-1113.55"/>
+<path fill="none" stroke="midnightblue" d="M885.086,-1104.55C914.73,-1095.57 950.891,-1083.75 982.5,-1071 1006.02,-1061.51 1376.59,-889.76 1392.5,-870 1415.89,-840.948 1412.5,-825.797 1412.5,-788.5 1412.5,-788.5 1412.5,-788.5 1412.5,-719.5 1412.5,-679.572 1414.92,-631.927 1415.99,-612.69"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="883.87,-1101.27 875.298,-1107.49 885.882,-1107.97 883.87,-1101.27"/>
 </g>
 <!-- Node16 -->
 <g id="node16" class="node"><title>Node16</title>
 <g id="a_node16"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
-<polygon fill="white" stroke="red" points="827.5,-291.5 827.5,-310.5 944.5,-310.5 944.5,-291.5 827.5,-291.5"/>
-<text text-anchor="middle" x="886" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr.h</text>
+<polygon fill="white" stroke="red" points="1197,-291.5 1197,-310.5 1314,-310.5 1314,-291.5 1197,-291.5"/>
+<text text-anchor="middle" x="1255.5" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node16 -->
-<g id="edge141" class="edge"><title>Node1&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M993.195,-1110.53C815.539,-1110.01 334.669,-1104.4 183,-1060 112.051,-1039.23 38,-1052.43 38,-978.5 38,-978.5 38,-978.5 38,-423 38,-327.91 145.124,-367.402 238,-347 349.453,-322.517 689.649,-308.621 827.283,-303.874"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="993.437,-1114.03 1003.45,-1110.56 993.455,-1107.03 993.437,-1114.03"/>
+<g id="edge143" class="edge"><title>Node1&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M758.663,-1119.64C620.839,-1115.18 314.94,-1101.9 279.5,-1071 251.464,-1046.56 260.5,-1026.69 260.5,-989.5 260.5,-989.5 260.5,-989.5 260.5,-920.5 260.5,-763.188 533.662,-415.037 675.5,-347 766.449,-303.374 1068.59,-300.431 1196.97,-301.244"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="758.582,-1123.14 768.688,-1119.95 758.804,-1116.14 758.582,-1123.14"/>
 </g>
-<!-- Node28 -->
-<g id="node28" class="node"><title>Node28</title>
-<g id="a_node28"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="white" stroke="black" points="837.5,-649.5 837.5,-668.5 992.5,-668.5 992.5,-649.5 837.5,-649.5"/>
-<text text-anchor="middle" x="915" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/reflection.h</text>
+<!-- Node23 -->
+<g id="node23" class="node"><title>Node23</title>
+<g id="a_node23"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
+<polygon fill="white" stroke="black" points="745,-649.5 745,-668.5 900,-668.5 900,-649.5 745,-649.5"/>
+<text text-anchor="middle" x="822.5" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/reflection.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node23 -->
+<g id="edge45" class="edge"><title>Node1&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M758.893,-1116.41C676.706,-1109.24 542.442,-1094.36 498.5,-1071 462.678,-1051.95 451.297,-1041.78 436.5,-1004 409.754,-935.718 393.964,-898.737 436.5,-839 464.871,-799.156 495.472,-822.105 540.5,-803 594.444,-780.112 754.55,-695.94 806.224,-668.623"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="758.632,-1119.9 768.894,-1117.26 759.23,-1112.92 758.632,-1119.9"/>
+</g>
+<!-- Node25 -->
+<g id="node25" class="node"><title>Node25</title>
+<g id="a_node25"><a xlink:href="serialization_8h.html" target="_top" xlink:title="include/tvm/node/serialization.h">
+<polygon fill="white" stroke="black" points="1310.5,-979 1310.5,-998 1478.5,-998 1478.5,-979 1310.5,-979"/>
+<text text-anchor="middle" x="1394.5" y="-986" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/serialization.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node28 -->
-<g id="edge51" class="edge"><title>Node1&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M1126.84,-1108.77C1294.75,-1104.04 1730.97,-1089.24 1873,-1060 1964.91,-1041.08 2094.78,-1049.15 2060,-962 2001.62,-815.717 1959.12,-770.747 1816,-705 1742.26,-671.126 1197.4,-662.606 992.554,-660.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1126.55,-1105.28 1116.65,-1109.06 1126.74,-1112.28 1126.55,-1105.28"/>
+<!-- Node1&#45;&gt;Node25 -->
+<g id="edge49" class="edge"><title>Node1&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M892.245,-1119.09C1004.37,-1114.26 1225.26,-1101.14 1296.5,-1071 1336.44,-1054.1 1372.67,-1015.3 1387.46,-998.047"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="891.914,-1115.6 882.07,-1119.52 892.209,-1122.59 891.914,-1115.6"/>
+</g>
+<!-- Node26 -->
+<g id="node26" class="node"><title>Node26</title>
+<g id="a_node26"><a xlink:href="include_2tvm_2relay_2qnn_2transform_8h.html" target="_top" xlink:title="include/tvm/relay/qnn\l/transform.h">
+<polygon fill="white" stroke="black" points="289,-1040.5 289,-1070.5 408,-1070.5 408,-1040.5 289,-1040.5"/>
+<text text-anchor="start" x="297" y="-1058.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
+<text text-anchor="middle" x="348.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node26 -->
+<g id="edge50" class="edge"><title>Node1&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M758.982,-1114.58C678.92,-1105.93 540.51,-1089.93 422.5,-1071 417.847,-1070.25 413.039,-1069.43 408.211,-1068.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="758.611,-1118.06 768.928,-1115.65 759.359,-1111.1 758.611,-1118.06"/>
+</g>
+<!-- Node27 -->
+<g id="node27" class="node"><title>Node27</title>
+<g id="a_node27"><a xlink:href="c__backend__api_8h.html" target="_top" xlink:title="TVM runtime backend API. ">
+<polygon fill="white" stroke="black" points="119,-1040.5 119,-1070.5 232,-1070.5 232,-1040.5 119,-1040.5"/>
+<text text-anchor="start" x="127" y="-1058.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="175.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_backend_api.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node27 -->
+<g id="edge51" class="edge"><title>Node1&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M758.853,-1118.17C650.839,-1112.22 431.021,-1097.8 246.5,-1071 241.893,-1070.33 237.135,-1069.55 232.366,-1068.71"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="758.777,-1121.67 768.953,-1118.72 759.157,-1114.68 758.777,-1121.67"/>
 </g>
 <!-- Node30 -->
 <g id="node30" class="node"><title>Node30</title>
-<g id="a_node30"><a xlink:href="serialization_8h.html" target="_top" xlink:title="include/tvm/node/serialization.h">
-<polygon fill="white" stroke="black" points="1866,-968 1866,-987 2034,-987 2034,-968 1866,-968"/>
-<text text-anchor="middle" x="1950" y="-975" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/serialization.h</text>
+<g id="a_node30"><a xlink:href="crt_2packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
+<polygon fill="white" stroke="black" points="43,-839.5 43,-869.5 156,-869.5 156,-839.5 43,-839.5"/>
+<text text-anchor="start" x="51" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="99.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/packed_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node30 -->
-<g id="edge55" class="edge"><title>Node1&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M1126.85,-1104.1C1212.73,-1095.57 1366.31,-1079.29 1497,-1060 1648.78,-1037.6 1827.7,-1002.96 1907.68,-987.034"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1126.33,-1100.63 1116.72,-1105.1 1127.01,-1107.6 1126.33,-1100.63"/>
+<g id="edge58" class="edge"><title>Node1&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M758.803,-1120.36C591.517,-1116.99 163.606,-1105.12 109.5,-1071 45.8474,-1030.86 52.6541,-978.855 71.5,-906 74.9144,-892.801 82.6033,-879.373 89.0615,-869.685"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="758.895,-1123.86 768.962,-1120.56 759.033,-1116.86 758.895,-1123.86"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node"><title>Node31</title>
-<g id="a_node31"><a xlink:href="include_2tvm_2relay_2qnn_2transform_8h.html" target="_top" xlink:title="include/tvm/relay/qnn\l/transform.h">
-<polygon fill="white" stroke="black" points="2128.5,-1029.5 2128.5,-1059.5 2247.5,-1059.5 2247.5,-1029.5 2128.5,-1029.5"/>
-<text text-anchor="start" x="2136.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
-<text text-anchor="middle" x="2188" y="-1036.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
+<g id="a_node31"><a xlink:href="graph__runtime_8h.html" target="_top" xlink:title="Tiny graph runtime that can run graph containing only tvm PackedFunc. ">
+<polygon fill="white" stroke="black" points="0,-772.5 0,-802.5 115,-802.5 115,-772.5 0,-772.5"/>
+<text text-anchor="start" x="8" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="57.5" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/graph_runtime.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node31 -->
-<g id="edge56" class="edge"><title>Node1&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M1126.62,-1110.67C1293.53,-1110.35 1742.81,-1105.02 2114,-1060 2118.68,-1059.43 2123.5,-1058.74 2128.34,-1057.96"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1126.51,-1107.17 1116.52,-1110.68 1126.52,-1114.17 1126.51,-1107.17"/>
+<g id="edge57" class="edge"><title>Node1&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M758.887,-1120.27C585.876,-1116.64 131.583,-1104.02 72.5,-1071 33.6912,-1049.31 14.5,-1033.96 14.5,-989.5 14.5,-989.5 14.5,-989.5 14.5,-920.5 14.5,-875.67 37.1994,-826.302 49.6131,-802.655"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="758.816,-1123.77 768.886,-1120.48 758.961,-1116.77 758.816,-1123.77"/>
 </g>
 <!-- Node32 -->
 <g id="node32" class="node"><title>Node32</title>
-<g id="a_node32"><a xlink:href="c__backend__api_8h.html" target="_top" xlink:title="TVM runtime backend API. ">
-<polygon fill="white" stroke="black" points="2265.5,-1029.5 2265.5,-1059.5 2378.5,-1059.5 2378.5,-1029.5 2265.5,-1029.5"/>
-<text text-anchor="start" x="2273.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="2322" y="-1036.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_backend_api.h</text>
+<g id="a_node32"><a xlink:href="data__type_8h.html" target="_top" xlink:title="include/tvm/runtime\l/data_type.h">
+<polygon fill="white" stroke="black" points="508,-1040.5 508,-1070.5 621,-1070.5 621,-1040.5 508,-1040.5"/>
+<text text-anchor="start" x="516" y="-1058.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="564.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">/data_type.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node32 -->
-<g id="edge57" class="edge"><title>Node1&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M1126.82,-1109.24C1345.11,-1104.88 2035.86,-1089.1 2257,-1060 2259.75,-1059.64 2262.56,-1059.22 2265.39,-1058.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1126.72,-1105.74 1116.79,-1109.44 1126.86,-1112.74 1126.72,-1105.74"/>
+<g id="edge59" class="edge"><title>Node1&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M759.453,-1105.05C716.784,-1094.43 661.839,-1080.74 621.161,-1070.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="758.639,-1108.46 769.188,-1107.48 760.33,-1101.66 758.639,-1108.46"/>
 </g>
-<!-- Node33 -->
-<g id="node33" class="node"><title>Node33</title>
-<g id="a_node33"><a xlink:href="data__type_8h.html" target="_top" xlink:title="include/tvm/runtime\l/data_type.h">
-<polygon fill="white" stroke="black" points="231.5,-1029.5 231.5,-1059.5 344.5,-1059.5 344.5,-1029.5 231.5,-1029.5"/>
-<text text-anchor="start" x="239.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="288" y="-1036.5" font-family="Helvetica,sans-Serif" font-size="10.00">/data_type.h</text>
+<!-- Node35 -->
+<g id="node35" class="node"><title>Node35</title>
+<g id="a_node35"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device&#45;independent managed NDArray abstraction. ">
+<polygon fill="white" stroke="black" points="854,-973.5 854,-1003.5 967,-1003.5 967,-973.5 854,-973.5"/>
+<text text-anchor="start" x="862" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="910.5" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00">/ndarray.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node33 -->
-<g id="edge58" class="edge"><title>Node1&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M993.03,-1106.65C873.261,-1099.48 614.543,-1082.74 397,-1060 379.912,-1058.21 361.367,-1055.89 344.501,-1053.63"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="992.953,-1110.15 1003.14,-1107.25 993.369,-1103.16 992.953,-1110.15"/>
+<!-- Node1&#45;&gt;Node35 -->
+<g id="edge113" class="edge"><title>Node1&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M840.096,-1098.83C857.719,-1071.47 886.813,-1026.28 901.469,-1003.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="837.068,-1097.07 834.596,-1107.37 842.953,-1100.86 837.068,-1097.07"/>
 </g>
 <!-- Node36 -->
 <g id="node36" class="node"><title>Node36</title>
-<g id="a_node36"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device&#45;independent managed NDArray abstraction. ">
-<polygon fill="white" stroke="black" points="439.5,-962.5 439.5,-992.5 552.5,-992.5 552.5,-962.5 439.5,-962.5"/>
-<text text-anchor="start" x="447.5" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="496" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00">/ndarray.h</text>
+<g id="a_node36"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
+<polygon fill="white" stroke="black" points="819,-906.5 819,-936.5 932,-936.5 932,-906.5 819,-906.5"/>
+<text text-anchor="start" x="827" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="875.5" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">/packed_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node36 -->
-<g id="edge110" class="edge"><title>Node1&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M993.519,-1094.94C881.6,-1068.75 657.533,-1016.31 552.623,-991.752"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="992.805,-1098.37 1003.34,-1097.24 994.4,-1091.55 992.805,-1098.37"/>
-</g>
-<!-- Node37 -->
-<g id="node37" class="node"><title>Node37</title>
-<g id="a_node37"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
-<polygon fill="white" stroke="black" points="782.5,-895.5 782.5,-925.5 895.5,-925.5 895.5,-895.5 782.5,-895.5"/>
-<text text-anchor="start" x="790.5" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="839" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">/packed_func.h</text>
-</a>
-</g>
-</g>
-<!-- Node1&#45;&gt;Node37 -->
-<g id="edge139" class="edge"><title>Node1&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M1036.56,-1089.39C991.316,-1048.65 893.067,-960.184 854.75,-925.682"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1034.33,-1092.1 1044.11,-1096.19 1039.02,-1086.9 1034.33,-1092.1"/>
+<g id="edge141" class="edge"><title>Node1&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M825.506,-1097.12C826.21,-1067.09 829.724,-1014.92 844.5,-973 849.151,-959.805 857.61,-946.377 864.517,-936.688"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="822.007,-1097.07 825.358,-1107.12 829.006,-1097.17 822.007,-1097.07"/>
 </g>
 <!-- Node42 -->
 <g id="node42" class="node"><title>Node42</title>
 <g id="a_node42"><a xlink:href="device__api_8h.html" target="_top" xlink:title="Abstract device memory management API. ">
-<polygon fill="white" stroke="black" points="1790.5,-828.5 1790.5,-858.5 1903.5,-858.5 1903.5,-828.5 1790.5,-828.5"/>
-<text text-anchor="start" x="1798.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1847" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">/device_api.h</text>
+<polygon fill="white" stroke="black" points="1271,-839.5 1271,-869.5 1384,-869.5 1384,-839.5 1271,-839.5"/>
+<text text-anchor="start" x="1279" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1327.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">/device_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node42 -->
-<g id="edge108" class="edge"><title>Node1&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M1126.6,-1107.65C1337.95,-1097.92 1983.17,-1062.68 2043,-993 2051.98,-982.547 2050.66,-973.454 2043,-962 2019.75,-927.21 1992.37,-946.69 1956,-926 1920.67,-905.906 1883.61,-876.023 1863.1,-858.575"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1126.4,-1104.15 1116.57,-1108.11 1126.72,-1111.15 1126.4,-1104.15"/>
+<g id="edge111" class="edge"><title>Node1&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M868.907,-1103.24C890.113,-1094.03 915.875,-1082.42 938.5,-1071 1071.58,-1003.85 1099.48,-977.095 1230.5,-906 1253.7,-893.413 1280.3,-879.607 1299.77,-869.616"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="867.308,-1100.12 859.512,-1107.29 870.08,-1106.55 867.308,-1100.12"/>
 </g>
 <!-- Node43 -->
 <g id="node43" class="node"><title>Node43</title>
 <g id="a_node43"><a xlink:href="runtime_2module_8h.html" target="_top" xlink:title="Runtime container of the functions generated by TVM, This is used to support dynamically link...">
-<polygon fill="white" stroke="black" points="1032.5,-828.5 1032.5,-858.5 1145.5,-858.5 1145.5,-828.5 1032.5,-828.5"/>
-<text text-anchor="start" x="1040.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1089" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">/module.h</text>
+<polygon fill="white" stroke="black" points="1441,-839.5 1441,-869.5 1554,-869.5 1554,-839.5 1441,-839.5"/>
+<text text-anchor="start" x="1449" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1497.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">/module.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node43 -->
-<g id="edge109" class="edge"><title>Node1&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1062.66,-1086.07C1068.6,-1031.57 1082.78,-901.521 1087.47,-858.549"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1059.16,-1085.88 1061.56,-1096.2 1066.12,-1086.64 1059.16,-1085.88"/>
+<g id="edge112" class="edge"><title>Node1&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M892.225,-1121.62C998.973,-1120.54 1201.91,-1112.85 1258.5,-1071 1296.74,-1042.72 1270.06,-1008.69 1301.5,-973 1345.82,-922.686 1417.04,-887.595 1460.33,-869.555"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="892.173,-1118.12 882.203,-1121.71 892.232,-1125.12 892.173,-1118.12"/>
 </g>
 <!-- Node47 -->
 <g id="node47" class="node"><title>Node47</title>
 <g id="a_node47"><a xlink:href="serializer_8h.html" target="_top" xlink:title="Serializer extension to support TVM data types Include this file to enable serialization of DLDataTyp...">
-<polygon fill="white" stroke="black" points="354.5,-895.5 354.5,-925.5 467.5,-925.5 467.5,-895.5 354.5,-895.5"/>
-<text text-anchor="start" x="362.5" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="411" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">/serializer.h</text>
+<polygon fill="white" stroke="black" points="950,-906.5 950,-936.5 1063,-936.5 1063,-906.5 950,-906.5"/>
+<text text-anchor="start" x="958" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1006.5" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">/serializer.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node47 -->
-<g id="edge140" class="edge"><title>Node1&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M993.166,-1107.31C847.616,-1098.94 508.705,-1071.31 430,-993 412.08,-975.169 409.742,-943.926 410.084,-925.74"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="993.125,-1110.81 1003.31,-1107.88 993.518,-1103.82 993.125,-1110.81"/>
+<g id="edge142" class="edge"><title>Node1&#45;&gt;Node47</title>
+<path fill="none" stroke="midnightblue" d="M860.031,-1102.11C893.678,-1081.64 944.206,-1046.48 975.5,-1004 990.853,-983.158 999.527,-953.796 1003.59,-936.595"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="857.813,-1099.36 851.019,-1107.49 861.4,-1105.37 857.813,-1099.36"/>
 </g>
 <!-- Node48 -->
 <g id="node48" class="node"><title>Node48</title>
 <g id="a_node48"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
-<polygon fill="white" stroke="black" points="1375.5,-1029.5 1375.5,-1059.5 1488.5,-1059.5 1488.5,-1029.5 1375.5,-1029.5"/>
-<text text-anchor="start" x="1383.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1432" y="-1036.5" font-family="Helvetica,sans-Serif" font-size="10.00">/object.h</text>
+<polygon fill="white" stroke="black" points="1670,-1040.5 1670,-1070.5 1783,-1070.5 1783,-1040.5 1670,-1040.5"/>
+<text text-anchor="start" x="1678" y="-1058.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1726.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">/object.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node48 -->
-<g id="edge111" class="edge"><title>Node1&#45;&gt;Node48</title>
-<path fill="none" stroke="midnightblue" d="M1127.07,-1098.78C1198.02,-1086.38 1308.71,-1067.04 1375.41,-1055.39"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1126.15,-1095.39 1116.9,-1100.56 1127.36,-1102.28 1126.15,-1095.39"/>
+<g id="edge114" class="edge"><title>Node1&#45;&gt;Node48</title>
+<path fill="none" stroke="midnightblue" d="M892.293,-1116.68C1062.69,-1104.39 1511.3,-1072.03 1669.93,-1060.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="891.925,-1113.2 882.203,-1117.41 892.429,-1120.18 891.925,-1113.2"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
 <g id="a_node3"><a xlink:href="ir_2adt_8h.html" target="_top" xlink:title="Algebraic data type definitions. ">
-<polygon fill="white" stroke="red" points="994.5,-353 994.5,-372 1103.5,-372 1103.5,-353 994.5,-353"/>
-<text text-anchor="middle" x="1049" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/adt.h</text>
+<polygon fill="white" stroke="red" points="1850,-353 1850,-372 1959,-372 1959,-353 1850,-353"/>
+<text text-anchor="middle" x="1904.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node3 -->
 <g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1042.55,-583.171C1043.98,-534.603 1047.74,-406.489 1048.75,-372.099"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1039.05,-583.13 1042.26,-593.229 1046.05,-583.336 1039.05,-583.13"/>
+<path fill="none" stroke="midnightblue" d="M1425.85,-584.26C1435.66,-567.193 1452.55,-541.726 1473.5,-526 1595.33,-434.545 1774.51,-389.217 1858.22,-372.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1422.68,-582.755 1420.92,-593.201 1428.81,-586.136 1422.68,-582.755"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
 <g id="a_node4"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
-<polygon fill="white" stroke="red" points="1231.5,-414.5 1231.5,-433.5 1344.5,-433.5 1344.5,-414.5 1231.5,-414.5"/>
-<text text-anchor="middle" x="1288" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/expr.h</text>
+<polygon fill="white" stroke="red" points="1472,-414.5 1472,-433.5 1585,-433.5 1585,-414.5 1472,-414.5"/>
+<text text-anchor="middle" x="1528.5" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node4 -->
 <g id="edge3" class="edge"><title>Node2&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1049.99,-584.274C1063.7,-555.879 1094.38,-500.319 1137,-470 1164.75,-450.259 1201.22,-439.076 1231.37,-432.796"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1046.79,-582.868 1045.72,-593.409 1053.13,-585.833 1046.79,-582.868"/>
+<path fill="none" stroke="midnightblue" d="M1414.98,-583.02C1413.78,-555.384 1415.46,-503.701 1440.5,-470 1454.01,-451.818 1476.98,-440.422 1496.07,-433.648"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1411.51,-583.502 1415.61,-593.269 1418.49,-583.072 1411.51,-583.502"/>
 </g>
 <!-- Node2&#45;&gt;Node16 -->
-<g id="edge49" class="edge"><title>Node2&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M975.9,-591.326C915.985,-577.436 837,-546.671 837,-481 837,-481 837,-481 837,-423 837,-388.183 841.915,-378.841 856,-347 862.002,-333.433 872.023,-319.471 878.815,-310.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="975.192,-594.754 985.712,-593.492 976.701,-587.918 975.192,-594.754"/>
+<g id="edge43" class="edge"><title>Node2&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M1400.04,-585.917C1379.63,-564.175 1347.5,-523.243 1347.5,-481 1347.5,-481 1347.5,-481 1347.5,-423 1347.5,-388.072 1348.21,-375.124 1327.5,-347 1315,-330.027 1294,-317.975 1277.89,-310.642"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1397.71,-588.546 1407.19,-593.273 1402.73,-583.665 1397.71,-588.546"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node"><title>Node17</title>
 <g id="a_node17"><a xlink:href="base_8h.html" target="_top" xlink:title="Base classes for the Relay IR. ">
-<polygon fill="white" stroke="red" points="354,-230 354,-249 488,-249 488,-230 354,-230"/>
-<text text-anchor="middle" x="421" y="-237" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/base.h</text>
+<polygon fill="white" stroke="red" points="918.5,-230 918.5,-249 1052.5,-249 1052.5,-230 918.5,-230"/>
+<text text-anchor="middle" x="985.5" y="-237" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/base.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node17 -->
-<g id="edge48" class="edge"><title>Node2&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M964.212,-591.736C928.463,-585.022 886.27,-574.191 851,-557 716.854,-491.615 710.428,-433.75 589,-347 534.206,-307.855 465.411,-266.552 435.737,-249.091"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="963.65,-595.191 974.113,-593.522 964.893,-588.302 963.65,-595.191"/>
+<g id="edge42" class="edge"><title>Node2&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1348.16,-591.629C1260.58,-574.635 1110.35,-532.323 1028.5,-434 980.943,-376.871 983.026,-278.392 984.838,-249.012"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1347.52,-595.071 1357.99,-593.483 1348.81,-588.192 1347.52,-595.071"/>
 </g>
-<!-- Node24 -->
-<g id="node24" class="node"><title>Node24</title>
-<g id="a_node24"><a xlink:href="var_8h.html" target="_top" xlink:title="Variables in the TIR. ">
-<polygon fill="white" stroke="red" points="865.5,-353 865.5,-372 976.5,-372 976.5,-353 865.5,-353"/>
-<text text-anchor="middle" x="921" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/var.h</text>
+<!-- Node19 -->
+<g id="node19" class="node"><title>Node19</title>
+<g id="a_node19"><a xlink:href="var_8h.html" target="_top" xlink:title="Variables in the TIR. ">
+<polygon fill="white" stroke="red" points="1208,-353 1208,-372 1319,-372 1319,-353 1208,-353"/>
+<text text-anchor="middle" x="1263.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/var.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node24 -->
-<g id="edge50" class="edge"><title>Node2&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M1032.91,-584.084C1008.63,-536.229 942.921,-406.707 925.363,-372.099"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1029.9,-585.894 1037.55,-593.229 1036.15,-582.727 1029.9,-585.894"/>
+<!-- Node2&#45;&gt;Node19 -->
+<g id="edge44" class="edge"><title>Node2&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1380.74,-589.47C1364.43,-582.191 1346.01,-571.541 1333.5,-557 1283.4,-498.78 1268.08,-401.868 1264.46,-372.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1379.46,-592.729 1390.04,-593.369 1382.17,-586.274 1379.46,-592.729"/>
 </g>
-<!-- Node26 -->
-<g id="node26" class="node"><title>Node26</title>
-<g id="a_node26"><a xlink:href="span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
-<polygon fill="white" stroke="red" points="1190,-532 1190,-551 1306,-551 1306,-532 1190,-532"/>
-<text text-anchor="middle" x="1248" y="-539" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/span.h</text>
+<!-- Node21 -->
+<g id="node21" class="node"><title>Node21</title>
+<g id="a_node21"><a xlink:href="span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
+<polygon fill="white" stroke="red" points="1482.5,-532 1482.5,-551 1598.5,-551 1598.5,-532 1482.5,-532"/>
+<text text-anchor="middle" x="1540.5" y="-539" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/span.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node26 -->
-<g id="edge40" class="edge"><title>Node2&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1081.21,-590.676C1121.23,-579.114 1182.46,-561.429 1218.54,-551.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1080.15,-587.338 1071.51,-593.475 1082.09,-594.063 1080.15,-587.338"/>
+<!-- Node2&#45;&gt;Node21 -->
+<g id="edge34" class="edge"><title>Node2&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1443.55,-589.021C1467.6,-577.482 1502.06,-560.943 1522.77,-551.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1441.77,-585.993 1434.27,-593.475 1444.8,-592.304 1441.77,-585.993"/>
 </g>
-<!-- Node27 -->
-<g id="node27" class="node"><title>Node27</title>
-<g id="a_node27"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM. ">
-<polygon fill="white" stroke="red" points="1146,-470.5 1146,-489.5 1260,-489.5 1260,-470.5 1146,-470.5"/>
-<text text-anchor="middle" x="1203" y="-477.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type.h</text>
+<!-- Node22 -->
+<g id="node22" class="node"><title>Node22</title>
+<g id="a_node22"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM. ">
+<polygon fill="white" stroke="red" points="1716.5,-470.5 1716.5,-489.5 1830.5,-489.5 1830.5,-470.5 1716.5,-470.5"/>
+<text text-anchor="middle" x="1773.5" y="-477.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type.h</text>
 </a>
 </g>
 </g>
-<!-- Node2&#45;&gt;Node27 -->
-<g id="edge47" class="edge"><title>Node2&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1061.52,-587.328C1095.43,-561.843 1164.2,-510.161 1191.48,-489.661"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1059.21,-584.686 1053.32,-593.492 1063.42,-590.281 1059.21,-584.686"/>
+<!-- Node2&#45;&gt;Node22 -->
+<g id="edge41" class="edge"><title>Node2&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1474.29,-591.49C1512.61,-583.766 1563.72,-572.014 1607.5,-557 1664.47,-537.464 1728.31,-505.063 1757.45,-489.654"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1473.46,-588.085 1464.33,-593.463 1474.82,-594.952 1473.46,-588.085"/>
 </g>
 <!-- Node4&#45;&gt;Node3 -->
 <g id="edge14" class="edge"><title>Node4&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1243.98,-412.041C1197.58,-400.49 1125.48,-382.539 1083.18,-372.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1243.21,-415.456 1253.76,-414.475 1244.9,-408.663 1243.21,-415.456"/>
+<path fill="none" stroke="midnightblue" d="M1592.32,-412.901C1665.01,-401.398 1782.51,-382.804 1850.73,-372.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1591.7,-409.455 1582.37,-414.475 1592.8,-416.369 1591.7,-409.455"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
 <g id="a_node5"><a xlink:href="bound_8h.html" target="_top" xlink:title="Bound deducers. ">
-<polygon fill="white" stroke="black" points="1222.5,-168.5 1222.5,-187.5 1361.5,-187.5 1361.5,-168.5 1222.5,-168.5"/>
-<text text-anchor="middle" x="1292" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/bound.h</text>
+<polygon fill="white" stroke="black" points="1347,-168.5 1347,-187.5 1486,-187.5 1486,-168.5 1347,-168.5"/>
+<text text-anchor="middle" x="1416.5" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/bound.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node5 -->
 <g id="edge4" class="edge"><title>Node4&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1290.24,-404.032C1293,-387.526 1299.04,-363.696 1312,-347 1340.89,-309.784 1360.18,-312.697 1402,-291 1438.42,-272.105 1464.34,-289.202 1487,-255 1494.61,-243.514 1495.58,-234.782 1487,-224 1471.35,-204.321 1411.05,-192.509 1361.6,-185.96"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1286.75,-403.718 1288.8,-414.112 1293.68,-404.704 1286.75,-403.718"/>
+<path fill="none" stroke="midnightblue" d="M1550.13,-408.126C1559.94,-400.277 1570.82,-389.822 1577.5,-378 1611.61,-317.627 1645.38,-278.492 1602.5,-224 1587.96,-205.528 1532.67,-193.728 1486.12,-186.868"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1547.79,-405.506 1541.91,-414.322 1552.01,-411.095 1547.79,-405.506"/>
 </g>
 <!-- Node10 -->
 <g id="node10" class="node"><title>Node10</title>
 <g id="a_node10"><a xlink:href="int__set_8h.html" target="_top" xlink:title="Integer set. ">
-<polygon fill="white" stroke="red" points="1236,-224.5 1236,-254.5 1348,-254.5 1348,-224.5 1236,-224.5"/>
-<text text-anchor="start" x="1244" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
-<text text-anchor="middle" x="1292" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">_set.h</text>
+<polygon fill="white" stroke="red" points="1351.5,-224.5 1351.5,-254.5 1463.5,-254.5 1463.5,-224.5 1351.5,-224.5"/>
+<text text-anchor="start" x="1359.5" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
+<text text-anchor="middle" x="1407.5" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">_set.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node10 -->
 <g id="edge10" class="edge"><title>Node4&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M1263.63,-408.726C1253.05,-401.089 1241.78,-390.64 1236,-378 1219.93,-342.833 1220.29,-326.33 1236,-291 1242.7,-275.928 1256.37,-263.459 1268.53,-254.682"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1261.96,-411.818 1272.22,-414.467 1265.85,-405.999 1261.96,-411.818"/>
+<path fill="none" stroke="midnightblue" d="M1532.05,-403.837C1534.08,-387.871 1534.8,-364.928 1526.5,-347 1506.93,-304.731 1461.8,-272.074 1433.08,-254.618"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1528.54,-403.637 1530.45,-414.058 1535.45,-404.719 1528.54,-403.637"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node"><title>Node11</title>
 <g id="a_node11"><a xlink:href="int__solver_8h.html" target="_top" xlink:title="integer constraints data structures and solvers ">
-<polygon fill="white" stroke="black" points="1366,-224.5 1366,-254.5 1478,-254.5 1478,-224.5 1366,-224.5"/>
-<text text-anchor="start" x="1374" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
-<text text-anchor="middle" x="1422" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">_solver.h</text>
+<polygon fill="white" stroke="black" points="1481.5,-224.5 1481.5,-254.5 1593.5,-254.5 1593.5,-224.5 1481.5,-224.5"/>
+<text text-anchor="start" x="1489.5" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
+<text text-anchor="middle" x="1537.5" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">_solver.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node11 -->
 <g id="edge12" class="edge"><title>Node4&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1279.18,-405.138C1267.1,-377.82 1249.51,-325.236 1274,-291 1280,-282.609 1331.05,-266.379 1371.54,-254.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1276.05,-406.696 1283.45,-414.279 1282.39,-403.737 1276.05,-406.696"/>
+<path fill="none" stroke="midnightblue" d="M1543.48,-406.473C1549.72,-398.479 1556.27,-388.378 1559.5,-378 1570.99,-341.079 1567.39,-328.854 1559.5,-291 1556.81,-278.08 1550.63,-264.415 1545.5,-254.562"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1540.71,-404.318 1536.98,-414.234 1546.08,-408.81 1540.71,-404.318"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node"><title>Node12</title>
 <g id="a_node12"><a xlink:href="pattern_8h.html" target="_top" xlink:title="Expression pattern detectors. ">
-<polygon fill="white" stroke="black" points="1534,-230 1534,-249 1678,-249 1678,-230 1534,-230"/>
-<text text-anchor="middle" x="1606" y="-237" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/pattern.h</text>
+<polygon fill="white" stroke="black" points="1649.5,-230 1649.5,-249 1793.5,-249 1793.5,-230 1649.5,-230"/>
+<text text-anchor="middle" x="1721.5" y="-237" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/pattern.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node12 -->
 <g id="edge13" class="edge"><title>Node4&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1297.44,-405.381C1307.32,-388.405 1324.26,-363.006 1345,-347 1414.35,-293.473 1514.32,-262.731 1568.19,-249.081"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1294.3,-403.833 1292.47,-414.268 1300.4,-407.251 1294.3,-403.833"/>
+<path fill="none" stroke="midnightblue" d="M1572.33,-411.351C1593.13,-404.224 1617.35,-393.445 1635.5,-378 1680.1,-340.049 1709,-272.997 1718.27,-249.187"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1571.17,-408.048 1562.74,-414.467 1573.33,-414.706 1571.17,-408.048"/>
 </g>
 <!-- Node13 -->
 <g id="node13" class="node"><title>Node13</title>
 <g id="a_node13"><a xlink:href="ir_2attrs_8h.html" target="_top" xlink:title="Helpers for attribute objects. ">
-<polygon fill="white" stroke="red" points="430,-353 430,-372 546,-372 546,-353 430,-353"/>
-<text text-anchor="middle" x="488" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/attrs.h</text>
+<polygon fill="white" stroke="red" points="822.5,-353 822.5,-372 938.5,-372 938.5,-353 822.5,-353"/>
+<text text-anchor="middle" x="880.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/attrs.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node13 -->
 <g id="edge15" class="edge"><title>Node4&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1221.11,-418.879C1103.79,-411.53 853.279,-395.303 642,-378 610.284,-375.403 574.933,-372.103 546.107,-369.308"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1221.17,-422.389 1231.37,-419.52 1221.6,-415.403 1221.17,-422.389"/>
+<path fill="none" stroke="midnightblue" d="M1461.83,-416.879C1334.52,-405.189 1058.78,-379.87 938.535,-368.829"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1461.57,-420.369 1471.85,-417.798 1462.21,-413.398 1461.57,-420.369"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node"><title>Node15</title>
 <g id="a_node15"><a xlink:href="target__id_8h.html" target="_top" xlink:title="Target id registry. ">
-<polygon fill="white" stroke="red" points="1354,-347.5 1354,-377.5 1458,-377.5 1458,-347.5 1354,-347.5"/>
-<text text-anchor="start" x="1362" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="1406" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target_id.h</text>
+<polygon fill="white" stroke="red" points="1413.5,-347.5 1413.5,-377.5 1517.5,-377.5 1517.5,-347.5 1413.5,-347.5"/>
+<text text-anchor="start" x="1421.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="1465.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target_id.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node15 -->
 <g id="edge17" class="edge"><title>Node4&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1313.9,-409.938C1332.93,-400.347 1358.73,-387.334 1378.19,-377.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1312.26,-406.847 1304.91,-414.475 1315.41,-413.098 1312.26,-406.847"/>
+<path fill="none" stroke="midnightblue" d="M1511.95,-407.369C1502.15,-398.113 1489.83,-386.482 1480.35,-377.523"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1509.8,-410.153 1519.47,-414.475 1514.61,-405.064 1509.8,-410.153"/>
 </g>
 <!-- Node4&#45;&gt;Node16 -->
 <g id="edge18" class="edge"><title>Node4&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1262.32,-409.859C1228.61,-393.095 1167.24,-364.214 1112,-347 1056.43,-329.682 991.019,-317.513 944.908,-310.235"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1260.95,-413.089 1271.46,-414.447 1264.09,-406.833 1260.95,-413.089"/>
+<path fill="none" stroke="midnightblue" d="M1487.87,-411.392C1463.06,-403.547 1431.1,-392.066 1404.5,-378 1383.67,-366.988 1382.03,-358.564 1361.5,-347 1334.68,-331.888 1301.77,-318.673 1279.8,-310.542"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1487.1,-414.817 1497.69,-414.425 1489.17,-408.129 1487.1,-414.817"/>
 </g>
-<!-- Node4&#45;&gt;Node24 -->
-<g id="edge37" class="edge"><title>Node4&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M1221.41,-414.579C1159.86,-406.448 1065.96,-393.161 985,-378 975.706,-376.26 965.711,-374.123 956.446,-372.031"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1221.01,-418.057 1231.39,-415.889 1221.93,-411.116 1221.01,-418.057"/>
+<!-- Node4&#45;&gt;Node19 -->
+<g id="edge31" class="edge"><title>Node4&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1480.66,-412.258C1429.25,-400.716 1348.59,-382.606 1301.4,-372.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1480.01,-415.699 1490.53,-414.475 1481.54,-408.869 1480.01,-415.699"/>
 </g>
-<!-- Node25 -->
-<g id="node25" class="node"><title>Node25</title>
-<g id="a_node25"><a xlink:href="util_8h.html" target="_top" xlink:title="Topi utility function. ">
-<polygon fill="white" stroke="black" points="651.5,-353 651.5,-372 770.5,-372 770.5,-353 651.5,-353"/>
-<text text-anchor="middle" x="711" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/util.h</text>
+<!-- Node20 -->
+<g id="node20" class="node"><title>Node20</title>
+<g id="a_node20"><a xlink:href="util_8h.html" target="_top" xlink:title="Topi utility function. ">
+<polygon fill="white" stroke="black" points="1071,-353 1071,-372 1190,-372 1190,-353 1071,-353"/>
+<text text-anchor="middle" x="1130.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/util.h</text>
 </a>
 </g>
 </g>
-<!-- Node4&#45;&gt;Node25 -->
-<g id="edge39" class="edge"><title>Node4&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1221.41,-416.133C1107.97,-404.435 879.005,-380.825 770.552,-369.641"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1221.05,-419.615 1231.36,-417.159 1221.77,-412.652 1221.05,-419.615"/>
+<!-- Node4&#45;&gt;Node20 -->
+<g id="edge33" class="edge"><title>Node4&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1461.98,-415.407C1395.17,-407.434 1289.39,-393.864 1198.5,-378 1188.63,-376.277 1178.01,-374.147 1168.17,-372.055"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1461.61,-418.888 1471.95,-416.59 1462.44,-411.936 1461.61,-418.888"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node"><title>Node6</title>
 <g id="a_node6"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
-<polygon fill="white" stroke="red" points="1152.5,-112.5 1152.5,-131.5 1279.5,-131.5 1279.5,-112.5 1152.5,-112.5"/>
-<text text-anchor="middle" x="1216" y="-119.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
+<polygon fill="white" stroke="red" points="1353,-112.5 1353,-131.5 1480,-131.5 1480,-112.5 1353,-112.5"/>
+<text text-anchor="middle" x="1416.5" y="-119.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node6 -->
 <g id="edge5" class="edge"><title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M1271.42,-162.38C1257.69,-152.62 1240.07,-140.106 1228.43,-131.834"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1269.61,-165.385 1279.79,-168.324 1273.66,-159.679 1269.61,-165.385"/>
+<path fill="none" stroke="midnightblue" d="M1416.5,-157.805C1416.5,-148.91 1416.5,-138.78 1416.5,-131.751"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1413,-158.083 1416.5,-168.083 1420,-158.083 1413,-158.083"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node"><title>Node7</title>
 <g id="a_node7"><a xlink:href="autodiff_8h.html" target="_top" xlink:title="Automatic differentiation of tensor expressions. ">
-<polygon fill="white" stroke="black" points="1084.5,-56.5 1084.5,-75.5 1217.5,-75.5 1217.5,-56.5 1084.5,-56.5"/>
-<text text-anchor="middle" x="1151" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
+<polygon fill="white" stroke="black" points="1350,-56.5 1350,-75.5 1483,-75.5 1483,-56.5 1350,-56.5"/>
+<text text-anchor="middle" x="1416.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node7 -->
 <g id="edge6" class="edge"><title>Node6&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1197.73,-105.82C1186.08,-96.1452 1171.4,-83.9481 1161.63,-75.8339"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1195.63,-108.626 1205.56,-112.324 1200.1,-103.242 1195.63,-108.626"/>
+<path fill="none" stroke="midnightblue" d="M1416.5,-101.805C1416.5,-92.9102 1416.5,-82.7798 1416.5,-75.7511"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1413,-102.083 1416.5,-112.083 1420,-102.083 1413,-102.083"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node"><title>Node8</title>
 <g id="a_node8"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
-<polygon fill="white" stroke="red" points="984.5,-0.5 984.5,-19.5 1127.5,-19.5 1127.5,-0.5 984.5,-0.5"/>
-<text text-anchor="middle" x="1056" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
+<polygon fill="white" stroke="red" points="1190,-0.5 1190,-19.5 1333,-19.5 1333,-0.5 1190,-0.5"/>
+<text text-anchor="middle" x="1261.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node8 -->
 <g id="edge7" class="edge"><title>Node6&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1225.33,-103.223C1231.35,-89.0396 1236.31,-69.3961 1226,-56 1212.73,-38.7623 1161.56,-26.7718 1118.79,-19.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1222.1,-101.883 1220.97,-112.418 1228.42,-104.885 1222.1,-101.883"/>
+<path fill="none" stroke="midnightblue" d="M1449.9,-108.411C1477.14,-96.2606 1508.55,-76.7045 1491.5,-56 1471.65,-31.8917 1392.91,-20.5156 1333.04,-15.2707"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1448.36,-105.261 1440.52,-112.39 1451.09,-111.705 1448.36,-105.261"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node"><title>Node9</title>
 <g id="a_node9"><a xlink:href="schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
-<polygon fill="white" stroke="red" points="888,-56.5 888,-75.5 1028,-75.5 1028,-56.5 888,-56.5"/>
-<text text-anchor="middle" x="958" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
+<polygon fill="white" stroke="red" points="1191.5,-56.5 1191.5,-75.5 1331.5,-75.5 1331.5,-56.5 1191.5,-56.5"/>
+<text text-anchor="middle" x="1261.5" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node9 -->
 <g id="edge8" class="edge"><title>Node6&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1165.1,-110.346C1116.34,-100.141 1043.71,-84.94 998.69,-75.5164"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1164.61,-113.821 1175.12,-112.444 1166.05,-106.969 1164.61,-113.821"/>
+<path fill="none" stroke="midnightblue" d="M1382.17,-109.039C1353,-98.8786 1311.86,-84.5457 1285.95,-75.5164"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1381.34,-112.459 1391.94,-112.444 1383.65,-105.848 1381.34,-112.459"/>
 </g>
 <!-- Node9&#45;&gt;Node8 -->
 <g id="edge9" class="edge"><title>Node9&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M982.586,-51.4526C1000.68,-41.4835 1024.73,-28.2279 1040.29,-19.6545"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="980.815,-48.4324 973.745,-56.324 984.193,-54.5633 980.815,-48.4324"/>
+<path fill="none" stroke="midnightblue" d="M1261.5,-45.8045C1261.5,-36.9102 1261.5,-26.7798 1261.5,-19.7511"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1258,-46.083 1261.5,-56.083 1265,-46.083 1258,-46.083"/>
 </g>
 <!-- Node10&#45;&gt;Node5 -->
 <g id="edge11" class="edge"><title>Node10&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1292,-214.289C1292,-204.857 1292,-194.655 1292,-187.658"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1288.5,-214.399 1292,-224.399 1295.5,-214.399 1288.5,-214.399"/>
+<path fill="none" stroke="midnightblue" d="M1411.16,-214.289C1412.59,-204.857 1414.13,-194.655 1415.19,-187.658"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1407.67,-213.988 1409.63,-224.399 1414.59,-215.035 1407.67,-213.988"/>
 </g>
 <!-- Node14 -->
 <g id="node14" class="node"><title>Node14</title>
 <g id="a_node14"><a xlink:href="relay_2type_8h.html" target="_top" xlink:title="Relay typed AST nodes. ">
-<polygon fill="white" stroke="red" points="243.5,-168.5 243.5,-187.5 374.5,-187.5 374.5,-168.5 243.5,-168.5"/>
-<text text-anchor="middle" x="309" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/type.h</text>
+<polygon fill="white" stroke="red" points="728,-168.5 728,-187.5 859,-187.5 859,-168.5 728,-168.5"/>
+<text text-anchor="middle" x="793.5" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/type.h</text>
 </a>
 </g>
 </g>
 <!-- Node13&#45;&gt;Node14 -->
 <g id="edge16" class="edge"><title>Node13&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M419.623,-354.713C309.649,-342.227 101.293,-311.57 57,-255 48.5062,-244.152 48.1553,-234.564 57,-224 80.3231,-196.143 176.646,-185.513 243.209,-181.469"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="419.3,-358.198 429.627,-355.829 420.076,-351.241 419.3,-358.198"/>
+<path fill="none" stroke="midnightblue" d="M839.324,-349.732C796.935,-335.165 733.157,-305.836 704.5,-255 697.734,-242.998 697.283,-235.736 704.5,-224 715.928,-205.417 737.666,-194.225 756.798,-187.651"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="838.485,-353.14 849.078,-352.954 840.68,-346.493 838.485,-353.14"/>
 </g>
 <!-- Node16&#45;&gt;Node5 -->
 <g id="edge19" class="edge"><title>Node16&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M954.599,-293.961C1007.86,-287.889 1083,-276.273 1146,-255 1197.98,-237.446 1254.12,-203.473 1278.93,-187.584"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.137,-290.49 944.582,-295.066 954.906,-297.448 954.137,-290.49"/>
+<path fill="none" stroke="midnightblue" d="M1271.61,-284.42C1288.56,-268.397 1316.36,-243.147 1342.5,-224 1361.67,-209.962 1385.36,-196.11 1400.7,-187.563"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1269.03,-282.042 1264.22,-291.478 1273.87,-287.106 1269.03,-282.042"/>
 </g>
 <!-- Node16&#45;&gt;Node6 -->
 <g id="edge28" class="edge"><title>Node16&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M954.804,-297.954C1001,-293.843 1061.66,-282.937 1108,-255 1135.01,-238.719 1191.84,-158.15 1210.17,-131.543"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.27,-294.486 944.582,-298.775 954.831,-301.463 954.27,-294.486"/>
+<path fill="none" stroke="midnightblue" d="M1263.03,-282.055C1275.26,-254.628 1301.73,-201.901 1337.5,-168 1354.57,-151.821 1378.53,-139.231 1395.58,-131.533"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1259.81,-280.669 1259.05,-291.236 1266.24,-283.454 1259.81,-280.669"/>
 </g>
 <!-- Node16&#45;&gt;Node7 -->
 <g id="edge27" class="edge"><title>Node16&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M955.143,-297.736C992.863,-293.181 1038.21,-281.882 1070,-255 1099.85,-229.758 1138.22,-109.058 1148.42,-75.6102"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.296,-294.306 944.724,-298.849 955.039,-301.267 954.296,-294.306"/>
+<path fill="none" stroke="midnightblue" d="M1257.86,-281.235C1260.26,-265.51 1264.76,-242.697 1272.5,-224 1295.04,-169.545 1301.56,-153.412 1343.5,-112 1359.5,-96.2038 1382.02,-83.386 1397.81,-75.5287"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1254.37,-280.886 1256.46,-291.272 1261.3,-281.849 1254.37,-280.886"/>
 </g>
 <!-- Node16&#45;&gt;Node8 -->
 <g id="edge29" class="edge"><title>Node16&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M954.935,-294.431C983.875,-288.667 1015.69,-277.283 1037,-255 1061.06,-229.837 1056,-213.817 1056,-179 1056,-179 1056,-179 1056,-121 1056,-83.1875 1056,-38.0636 1056,-19.5578"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.064,-291.031 944.841,-296.243 955.302,-297.921 954.064,-291.031"/>
+<path fill="none" stroke="midnightblue" d="M1234.14,-285.528C1206.96,-265.2 1163.5,-225.434 1163.5,-179 1163.5,-179 1163.5,-179 1163.5,-121 1163.5,-90.9022 1163.84,-79.6156 1182.5,-56 1196.3,-38.5374 1218.86,-26.6598 1236.35,-19.5123"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1232.16,-288.415 1242.32,-291.429 1236.26,-282.739 1232.16,-288.415"/>
 </g>
 <!-- Node16&#45;&gt;Node9 -->
 <g id="edge30" class="edge"><title>Node16&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M817.394,-291.266C726.48,-279.531 576.996,-259.611 573,-255 563.977,-244.587 568.22,-236.922 573,-224 618.017,-102.308 789.626,-74.1049 887.861,-68.1"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="816.995,-294.743 827.361,-292.55 817.89,-287.8 816.995,-294.743"/>
+<path fill="none" stroke="midnightblue" d="M1244.74,-282.685C1240.32,-274.595 1235.73,-264.637 1233.5,-255 1219.17,-193.08 1216.04,-173.11 1233.5,-112 1237.49,-98.0212 1247.22,-84.156 1254.09,-75.5891"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1241.8,-284.603 1249.86,-291.481 1247.85,-281.078 1241.8,-284.603"/>
 </g>
 <!-- Node16&#45;&gt;Node10 -->
 <g id="edge20" class="edge"><title>Node16&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M954.933,-292.222C1023.01,-284.199 1129.98,-270.673 1222,-255 1226.53,-254.229 1231.21,-253.378 1235.9,-252.486"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.289,-288.773 944.765,-293.413 955.104,-295.726 954.289,-288.773"/>
+<path fill="none" stroke="midnightblue" d="M1286.87,-287.719C1311.54,-278.062 1345.93,-264.602 1371.68,-254.523"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1285.31,-284.571 1277.28,-291.475 1287.87,-291.089 1285.31,-284.571"/>
 </g>
 <!-- Node16&#45;&gt;Node11 -->
 <g id="edge21" class="edge"><title>Node16&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M954.692,-296.12C1046.71,-290.311 1214.88,-277.552 1357,-255 1359.85,-254.547 1362.77,-254.044 1365.71,-253.506"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.433,-292.629 944.67,-296.744 954.868,-299.616 954.433,-292.629"/>
+<path fill="none" stroke="midnightblue" d="M1307.43,-289.458C1351.42,-280.475 1416.14,-267.129 1472.5,-255 1475.44,-254.368 1478.45,-253.714 1481.49,-253.05"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1306.64,-286.047 1297.54,-291.476 1308.04,-292.906 1306.64,-286.047"/>
 </g>
 <!-- Node16&#45;&gt;Node12 -->
 <g id="edge22" class="edge"><title>Node16&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M954.635,-295.903C1066.34,-289.001 1294.38,-273.936 1487,-255 1504.4,-253.29 1523.19,-251.14 1540.59,-249.025"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="954.283,-292.418 944.517,-296.526 954.713,-299.405 954.283,-292.418"/>
+<path fill="none" stroke="midnightblue" d="M1324.03,-291.25C1412.92,-279.9 1567,-260.228 1654.92,-249.001"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1323.52,-287.786 1314.05,-292.525 1324.41,-294.73 1323.52,-287.786"/>
 </g>
 <!-- Node16&#45;&gt;Node14 -->
 <g id="edge25" class="edge"><title>Node16&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M817.192,-291.48C718.125,-279.153 546.398,-257.533 540,-255 518.095,-246.327 518.417,-233.817 497,-224 456.881,-205.611 408.373,-194.24 370.679,-187.529"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="816.777,-294.955 827.132,-292.716 817.641,-288.009 816.777,-294.955"/>
+<path fill="none" stroke="midnightblue" d="M1225.71,-287.452C1179.76,-268.252 1093.57,-232.872 1061.5,-224 993.634,-205.227 913.808,-193.048 859.035,-186.156"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1224.56,-290.765 1235.13,-291.4 1227.26,-284.308 1224.56,-290.765"/>
 </g>
 <!-- Node16&#45;&gt;Node17 -->
 <g id="edge23" class="edge"><title>Node16&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M817.443,-291.533C815.949,-291.353 814.466,-291.175 813,-291 674.838,-274.487 639.661,-275.269 502,-255 490.269,-253.273 477.63,-251.141 465.906,-249.049"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="817.086,-295.015 827.434,-292.741 817.926,-288.066 817.086,-295.015"/>
+<path fill="none" stroke="midnightblue" d="M1206.76,-289.258C1154.38,-277.716 1072.2,-259.606 1024.11,-249.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1206.3,-292.741 1216.82,-291.475 1207.8,-285.905 1206.3,-292.741"/>
 </g>
 <!-- Node18 -->
 <g id="node18" class="node"><title>Node18</title>
 <g id="a_node18"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
-<polygon fill="white" stroke="black" points="66,-224.5 66,-254.5 170,-254.5 170,-224.5 66,-224.5"/>
-<text text-anchor="start" x="74" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="118" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
+<polygon fill="white" stroke="black" points="713.5,-224.5 713.5,-254.5 817.5,-254.5 817.5,-224.5 713.5,-224.5"/>
+<text text-anchor="start" x="721.5" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="765.5" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
 </a>
 </g>
 </g>
 <!-- Node16&#45;&gt;Node18 -->
 <g id="edge26" class="edge"><title>Node16&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M816.984,-297.141C695.465,-291.71 435.479,-278.312 217,-255 201.714,-253.369 185.165,-251.133 170.053,-248.905"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="817.107,-300.65 827.252,-297.596 817.416,-293.657 817.107,-300.65"/>
-</g>
-<!-- Node19 -->
-<g id="node19" class="node"><title>Node19</title>
-<g id="a_node19"><a xlink:href="tir_2analysis_8h.html" target="_top" xlink:title="Analysis utilitie and passes for TIR. ">
-<polygon fill="white" stroke="red" points="630.5,-168.5 630.5,-187.5 765.5,-187.5 765.5,-168.5 630.5,-168.5"/>
-<text text-anchor="middle" x="698" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/analysis.h</text>
-</a>
+<path fill="none" stroke="midnightblue" d="M1186.67,-291.643C1087.57,-279.609 906.838,-257.662 817.849,-246.857"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1186.53,-295.151 1196.88,-292.882 1187.38,-288.202 1186.53,-295.151"/>
 </g>
+<!-- Node17&#45;&gt;Node14 -->
+<g id="edge24" class="edge"><title>Node17&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M948.005,-226.881C910.685,-215.315 854.297,-197.841 820.958,-187.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="947.403,-230.358 957.991,-229.975 949.475,-223.672 947.403,-230.358"/>
+</g>
+<!-- Node19&#45;&gt;Node16 -->
+<g id="edge32" class="edge"><title>Node19&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M1260.99,-342.817C1259.53,-331.996 1257.77,-318.898 1256.64,-310.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1257.55,-343.531 1262.35,-352.975 1264.49,-342.598 1257.55,-343.531"/>
+</g>
+<!-- Node21&#45;&gt;Node4 -->
+<g id="edge35" class="edge"><title>Node21&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1538.54,-521.664C1535.91,-496.365 1531.35,-452.435 1529.41,-433.782"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1535.08,-522.234 1539.6,-531.819 1542.05,-521.511 1535.08,-522.234"/>
+</g>
+<!-- Node21&#45;&gt;Node17 -->
+<g id="edge40" class="edge"><title>Node21&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1472.3,-533.036C1371.96,-518.887 1183.29,-479.847 1061.5,-378 1017.77,-341.431 994.788,-272.926 987.823,-249.004"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1471.94,-536.519 1482.32,-534.407 1472.89,-529.584 1471.94,-536.519"/>
+</g>
+<!-- Node21&#45;&gt;Node22 -->
+<g id="edge36" class="edge"><title>Node21&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1583.7,-529.468C1628.94,-517.915 1699.03,-500.017 1740.18,-489.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1582.71,-526.11 1573.88,-531.975 1584.44,-532.892 1582.71,-526.11"/>
+</g>
+<!-- Node22&#45;&gt;Node3 -->
+<g id="edge37" class="edge"><title>Node22&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M1795.08,-464.671C1807.32,-456.222 1822.7,-445.048 1835.5,-434 1859.36,-413.412 1884.56,-385.999 1896.86,-372.207"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1793.11,-461.782 1786.81,-470.301 1797.04,-467.569 1793.11,-461.782"/>
+</g>
+<!-- Node22&#45;&gt;Node4 -->
+<g id="edge38" class="edge"><title>Node22&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1724.87,-468.281C1678.57,-458.077 1609.81,-442.92 1567.14,-433.516"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1724.16,-471.709 1734.68,-470.444 1725.67,-464.873 1724.16,-471.709"/>
+</g>
+<!-- Node22&#45;&gt;Node14 -->
+<g id="edge39" class="edge"><title>Node22&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1785.71,-461.768C1799.93,-439.969 1821.5,-400.764 1821.5,-363.5 1821.5,-363.5 1821.5,-363.5 1821.5,-300 1821.5,-265.183 1829.46,-246.033 1802.5,-224 1765.97,-194.144 1077.53,-182.681 859.283,-179.788"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1782.68,-459.997 1779.97,-470.24 1788.48,-463.922 1782.68,-459.997"/>
+</g>
+<!-- Node23&#45;&gt;Node2 -->
+<g id="edge48" class="edge"><title>Node23&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M910.364,-650.012C1029.85,-639.15 1241.03,-619.952 1348.93,-610.143"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="909.797,-646.549 900.155,-650.94 910.431,-653.521 909.797,-646.549"/>
 </g>
-<!-- Node16&#45;&gt;Node19 -->
-<g id="edge31" class="edge"><title>Node16&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M839.553,-288.583C815.896,-281.366 787.465,-270.44 765,-255 737.458,-236.07 713.892,-203.375 703.572,-187.775"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="838.788,-292.006 849.368,-291.451 840.751,-285.287 838.788,-292.006"/>
-</g>
-<!-- Node20 -->
-<g id="node20" class="node"><title>Node20</title>
-<g id="a_node20"><a xlink:href="builtin_8h.html" target="_top" xlink:title="TIR builtin intrinsics. ">
-<polygon fill="white" stroke="red" points="774.5,-230 774.5,-249 899.5,-249 899.5,-230 774.5,-230"/>
-<text text-anchor="middle" x="837" y="-237" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/builtin.h</text>
+<!-- Node24 -->
+<g id="node24" class="node"><title>Node24</title>
+<g id="a_node24"><a xlink:href="env__func_8h.html" target="_top" xlink:title="Serializable global function used in IR. ">
+<polygon fill="white" stroke="red" points="517,-526.5 517,-556.5 618,-556.5 618,-526.5 517,-526.5"/>
+<text text-anchor="start" x="525" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/env</text>
+<text text-anchor="middle" x="567.5" y="-533.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
 </a>
 </g>
 </g>
-<!-- Node16&#45;&gt;Node20 -->
-<g id="edge32" class="edge"><title>Node16&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M872.551,-283.669C863.313,-272.452 851.425,-258.016 844.007,-249.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="869.921,-285.981 878.979,-291.475 875.324,-281.531 869.921,-285.981"/>
-</g>
-<!-- Node21 -->
-<g id="node21" class="node"><title>Node21</title>
-<g id="a_node21"><a xlink:href="data__layout_8h.html" target="_top" xlink:title="Layout expression to describe the data organization of a tensor. And BijectiveLayout to mapping two d...">
-<polygon fill="white" stroke="red" points="918,-224.5 918,-254.5 1028,-254.5 1028,-224.5 918,-224.5"/>
-<text text-anchor="start" x="926" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/data</text>
-<text text-anchor="middle" x="973" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">_layout.h</text>
-</a>
-</g>
+<!-- Node23&#45;&gt;Node24 -->
+<g id="edge46" class="edge"><title>Node23&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M794.103,-645.138C745.896,-623.303 648.433,-579.158 598.509,-556.545"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="792.78,-648.381 803.334,-649.319 795.668,-642.005 792.78,-648.381"/>
 </g>
-<!-- Node16&#45;&gt;Node21 -->
-<g id="edge33" class="edge"><title>Node16&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M906.852,-285.739C920.679,-276.282 938.74,-263.93 952.496,-254.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="904.743,-282.941 898.465,-291.475 908.695,-288.719 904.743,-282.941"/>
+<!-- Node24&#45;&gt;Node14 -->
+<g id="edge47" class="edge"><title>Node24&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M566.503,-516.222C565.63,-492.853 564.5,-456.516 564.5,-425 564.5,-425 564.5,-425 564.5,-300 564.5,-225.582 660.209,-196.813 727.878,-185.773"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="563.008,-516.421 566.893,-526.278 570.003,-516.15 563.008,-516.421"/>
 </g>
-<!-- Node22 -->
-<g id="node22" class="node"><title>Node22</title>
-<g id="a_node22"><a xlink:href="tir_2expr__functor_8h.html" target="_top" xlink:title="Functors for tir expressions. ">
-<polygon fill="white" stroke="red" points="226.5,-224.5 226.5,-254.5 335.5,-254.5 335.5,-224.5 226.5,-224.5"/>
-<text text-anchor="start" x="234.5" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr</text>
-<text text-anchor="middle" x="281" y="-231.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<!-- Node28 -->
+<g id="node28" class="node"><title>Node28</title>
+<g id="a_node28"><a xlink:href="func__registry_8h.html" target="_top" xlink:title="Defines generic string&#45;based function lookup structs. ">
+<polygon fill="white" stroke="black" points="81,-973.5 81,-1003.5 194,-1003.5 194,-973.5 81,-973.5"/>
+<text text-anchor="start" x="89" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="137.5" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/func_registry.h</text>
 </a>
 </g>
 </g>
-<!-- Node16&#45;&gt;Node22 -->
-<g id="edge34" class="edge"><title>Node16&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M816.96,-297.35C713.767,-292.691 513.404,-280.951 345,-255 341.96,-254.532 338.849,-254.001 335.716,-253.426"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="817.098,-300.859 827.243,-297.805 817.407,-293.866 817.098,-300.859"/>
+<!-- Node27&#45;&gt;Node28 -->
+<g id="edge52" class="edge"><title>Node27&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M162.098,-1031.58C156.641,-1022.24 150.507,-1011.75 145.729,-1003.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="159.186,-1033.53 167.255,-1040.4 165.229,-1030 159.186,-1033.53"/>
 </g>
-<!-- Node23 -->
-<g id="node23" class="node"><title>Node23</title>
-<g id="a_node23"><a xlink:href="tir_2function_8h.html" target="_top" xlink:title="TIR Function. ">
-<polygon fill="white" stroke="red" points="582.5,-230 582.5,-249 717.5,-249 717.5,-230 582.5,-230"/>
-<text text-anchor="middle" x="650" y="-237" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/function.h</text>
+<!-- Node29 -->
+<g id="node29" class="node"><title>Node29</title>
+<g id="a_node29"><a xlink:href="runtime_2crt_2module_8h.html" target="_top" xlink:title="Runtime container of the functions. ">
+<polygon fill="white" stroke="black" points="81,-906.5 81,-936.5 194,-936.5 194,-906.5 81,-906.5"/>
+<text text-anchor="start" x="89" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="137.5" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/module.h</text>
 </a>
 </g>
 </g>
-<!-- Node16&#45;&gt;Node23 -->
-<g id="edge35" class="edge"><title>Node16&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M842.245,-288.968C796.418,-277.415 725.43,-259.517 683.75,-249.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="841.635,-292.424 852.187,-291.475 843.346,-285.637 841.635,-292.424"/>
+<!-- Node27&#45;&gt;Node29 -->
+<g id="edge56" class="edge"><title>Node27&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M192.202,-1031.93C202.401,-1015.2 211.843,-992.091 202.5,-973 194.836,-957.341 179.715,-945.138 165.984,-936.653"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="189.137,-1030.22 186.572,-1040.5 194.988,-1034.06 189.137,-1030.22"/>
 </g>
-<!-- Node17&#45;&gt;Node14 -->
-<g id="edge24" class="edge"><title>Node17&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M395.987,-225.212C374.295,-213.688 343.551,-197.355 325.017,-187.509"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="394.48,-228.374 404.953,-229.975 397.764,-222.193 394.48,-228.374"/>
-</g>
-<!-- Node23&#45;&gt;Node19 -->
-<g id="edge36" class="edge"><title>Node23&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M663.175,-222.169C672.224,-210.952 683.869,-196.516 691.136,-187.509"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="660.432,-219.994 656.877,-229.975 665.88,-224.39 660.432,-219.994"/>
-</g>
-<!-- Node24&#45;&gt;Node16 -->
-<g id="edge38" class="edge"><title>Node24&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M910.806,-344.171C904.299,-333.108 896.148,-319.251 891.005,-310.509"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="907.898,-346.13 915.985,-352.975 913.932,-342.581 907.898,-346.13"/>
-</g>
-<!-- Node26&#45;&gt;Node4 -->
-<g id="edge41" class="edge"><title>Node26&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1256.08,-522.433C1260.2,-512.887 1265.15,-500.916 1269,-490 1276.04,-470.044 1282.57,-446.016 1285.83,-433.508"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1252.84,-521.112 1252.02,-531.675 1259.24,-523.929 1252.84,-521.112"/>
-</g>
-<!-- Node26&#45;&gt;Node17 -->
-<g id="edge46" class="edge"><title>Node26&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M1217.81,-527.854C1143.41,-496.724 945.172,-414.041 779,-347 716.086,-321.618 701.758,-311.221 637,-291 604.467,-280.842 513.664,-260.589 460.719,-249.057"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1216.9,-531.265 1227.48,-531.897 1219.6,-524.808 1216.9,-531.265"/>
-</g>
-<!-- Node26&#45;&gt;Node27 -->
-<g id="edge42" class="edge"><title>Node26&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1235.4,-523.838C1226.95,-512.669 1216.18,-498.428 1209.44,-489.509"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1232.73,-526.111 1241.55,-531.975 1238.31,-521.888 1232.73,-526.111"/>
-</g>
-<!-- Node27&#45;&gt;Node3 -->
-<g id="edge43" class="edge"><title>Node27&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1183.13,-464.096C1150.58,-439.688 1086.92,-391.944 1060.71,-372.282"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1181.32,-467.119 1191.42,-470.319 1185.52,-461.519 1181.32,-467.119"/>
-</g>
-<!-- Node27&#45;&gt;Node4 -->
-<g id="edge44" class="edge"><title>Node27&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1225.19,-464.901C1240.78,-454.999 1261.13,-442.071 1274.38,-433.655"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1223.22,-462.007 1216.66,-470.324 1226.97,-467.916 1223.22,-462.007"/>
-</g>
-<!-- Node27&#45;&gt;Node14 -->
-<g id="edge45" class="edge"><title>Node27&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1197.44,-460.52C1181.64,-411.657 1131.42,-279.034 1037,-224 1008.64,-207.47 548.517,-188.192 374.747,-181.465"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1194.18,-461.838 1200.51,-470.338 1200.87,-459.749 1194.18,-461.838"/>
-</g>
-<!-- Node28&#45;&gt;Node2 -->
-<g id="edge54" class="edge"><title>Node28&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M944.391,-645.503C968.2,-635.38 1001.11,-621.388 1021.97,-612.516"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="942.957,-642.31 935.124,-649.444 945.696,-648.751 942.957,-642.31"/>
+<!-- Node28&#45;&gt;Node29 -->
+<g id="edge53" class="edge"><title>Node28&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M137.5,-963.108C137.5,-954.154 137.5,-944.323 137.5,-936.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="134,-963.396 137.5,-973.396 141,-963.396 134,-963.396"/>
+</g>
+<!-- Node29&#45;&gt;Node30 -->
+<g id="edge54" class="edge"><title>Node29&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M124.098,-897.576C118.641,-888.241 112.507,-877.748 107.729,-869.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="121.186,-899.529 129.255,-906.396 127.229,-895.997 121.186,-899.529"/>
+</g>
+<!-- Node30&#45;&gt;Node31 -->
+<g id="edge55" class="edge"><title>Node30&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M84.8755,-830.867C78.7969,-821.459 71.9308,-810.833 66.5956,-802.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="82.0197,-832.896 90.3866,-839.396 87.8991,-829.097 82.0197,-832.896"/>
+</g>
+<!-- Node32&#45;&gt;Node16 -->
+<g id="edge109" class="edge"><title>Node32&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M562.764,-1030.2C562.248,-1021.89 561.754,-1012.55 561.5,-1004 561.091,-990.228 561.32,-986.777 561.5,-973 563.382,-828.837 531.549,-785.657 577.5,-649 603.226,-572.49 646.5,-561.719 646.5,-481 646.5,-481 646.5,-481 646.5,-423 646.5,-311.499 1044.2,-301.19 1196.83,-301.339"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="559.283,-1030.61 563.435,-1040.36 566.268,-1030.15 559.283,-1030.61"/>
+</g>
+<!-- Node32&#45;&gt;Node19 -->
+<g id="edge110" class="edge"><title>Node32&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M497.468,-1052.31C461.994,-1047.31 421.19,-1034.62 398.5,-1004 338.516,-923.054 261.592,-1046.59 540.5,-772 767.033,-548.974 1139.71,-407.085 1238.71,-372.021"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="497.443,-1055.83 507.795,-1053.58 498.295,-1048.89 497.443,-1055.83"/>
+</g>
+<!-- Node32&#45;&gt;Node22 -->
+<g id="edge60" class="edge"><title>Node32&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M563.964,-1030.14C564.098,-1013.79 565.236,-991.874 569.5,-973 605.153,-815.177 603.776,-742.958 735.5,-649 816.405,-591.291 1510.67,-510.208 1716.32,-487.266"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="560.465,-1030.48 564.006,-1040.46 567.465,-1030.45 560.465,-1030.48"/>
+</g>
+<!-- Node32&#45;&gt;Node23 -->
+<g id="edge61" class="edge"><title>Node32&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M567.665,-1030.42C570.433,-1013.78 575.326,-991.408 583.5,-973 642.338,-840.489 672.082,-812.383 769.5,-705 782.314,-690.875 799.5,-677.044 810.779,-668.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="564.186,-1030.02 566.139,-1040.43 571.106,-1031.08 564.186,-1030.02"/>
 </g>
-<!-- Node29 -->
-<g id="node29" class="node"><title>Node29</title>
-<g id="a_node29"><a xlink:href="env__func_8h.html" target="_top" xlink:title="Serializable global function used in IR. ">
-<polygon fill="white" stroke="red" points="658.5,-526.5 658.5,-556.5 759.5,-556.5 759.5,-526.5 658.5,-526.5"/>
-<text text-anchor="start" x="666.5" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/env</text>
-<text text-anchor="middle" x="709" y="-533.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
+<!-- Node33 -->
+<g id="node33" class="node"><title>Node33</title>
+<g id="a_node33"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
+<polygon fill="white" stroke="black" points="1198.5,-705.5 1198.5,-735.5 1346.5,-735.5 1346.5,-705.5 1198.5,-705.5"/>
+<text text-anchor="start" x="1206.5" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
+<text text-anchor="middle" x="1272.5" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
 </a>
 </g>
 </g>
-<!-- Node28&#45;&gt;Node29 -->
-<g id="edge52" class="edge"><title>Node28&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M890.327,-644.166C850.823,-622.017 773.792,-578.828 734.05,-556.545"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="889.082,-647.481 899.517,-649.319 892.506,-641.375 889.082,-647.481"/>
-</g>
-<!-- Node29&#45;&gt;Node14 -->
-<g id="edge53" class="edge"><title>Node29&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M697.081,-517.353C674.846,-476.523 623.061,-391.802 555,-347 424.958,-261.398 311.532,-378.702 217,-255 208.634,-244.053 209.705,-235.688 217,-224 228.673,-205.296 250.623,-194.153 270.155,-187.636"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="694.053,-519.112 701.853,-526.283 700.227,-515.813 694.053,-519.112"/>
-</g>
-<!-- Node33&#45;&gt;Node16 -->
-<g id="edge106" class="edge"><title>Node33&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M221.551,-1026.79C166.76,-1008.56 98,-973.356 98,-911.5 98,-911.5 98,-911.5 98,-842.5 98,-733.817 152,-712.683 152,-604 152,-604 152,-604 152,-479 152,-356.485 276.787,-382.653 394,-347 473.599,-322.788 715.102,-309.43 827.41,-304.38"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="220.66,-1030.18 231.251,-1029.9 222.793,-1023.52 220.66,-1030.18"/>
-</g>
-<!-- Node33&#45;&gt;Node24 -->
-<g id="edge107" class="edge"><title>Node33&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M239.999,-1025.37C195.458,-1005.06 136,-967.46 136,-911.5 136,-911.5 136,-911.5 136,-842.5 136,-767.197 180.351,-756.808 235,-705 331.312,-613.696 357.266,-589.13 474,-526 619.446,-447.342 810.858,-392.311 887.329,-372.072"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="238.688,-1028.62 249.251,-1029.44 241.508,-1022.21 238.688,-1028.62"/>
-</g>
-<!-- Node33&#45;&gt;Node27 -->
-<g id="edge59" class="edge"><title>Node33&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M266.07,-1021.92C243.621,-997.421 212,-955.166 212,-911.5 212,-911.5 212,-911.5 212,-842.5 212,-778.864 400.792,-611.756 649,-526 739.637,-494.685 1023.46,-484.87 1145.87,-482.047"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="263.57,-1024.37 272.985,-1029.23 268.655,-1019.56 263.57,-1024.37"/>
-</g>
-<!-- Node33&#45;&gt;Node28 -->
-<g id="edge60" class="edge"><title>Node33&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M276.846,-1019.86C265.634,-993.89 250,-950.658 250,-911.5 250,-911.5 250,-911.5 250,-842.5 250,-721.882 661.995,-678.077 837.415,-664.892"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="273.76,-1021.53 281.03,-1029.24 280.152,-1018.68 273.76,-1021.53"/>
+<!-- Node32&#45;&gt;Node33 -->
+<g id="edge62" class="edge"><title>Node32&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M584.146,-1032.54C591.86,-1023.77 600.714,-1013.5 608.5,-1004 637.823,-968.207 698.495,-866.777 735.5,-839 770.616,-812.641 787.322,-820.709 827.5,-803 856.056,-790.414 860.584,-780.88 890.5,-772 1018.81,-733.912 1057.08,-755.524 1189.5,-736 1192.39,-735.573 1195.34,-735.125 1198.32,-734.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="581.449,-1030.31 577.445,-1040.12 586.692,-1034.94 581.449,-1030.31"/>
 </g>
 <!-- Node34 -->
 <g id="node34" class="node"><title>Node34</title>
-<g id="a_node34"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
-<polygon fill="white" stroke="black" points="544,-705.5 544,-735.5 692,-735.5 692,-705.5 544,-705.5"/>
-<text text-anchor="start" x="552" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
-<text text-anchor="middle" x="618" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
+<g id="a_node34"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="include/tvm/node/structural\l_hash.h">
+<polygon fill="white" stroke="black" points="1032.5,-705.5 1032.5,-735.5 1180.5,-735.5 1180.5,-705.5 1032.5,-705.5"/>
+<text text-anchor="start" x="1040.5" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
+<text text-anchor="middle" x="1106.5" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
 </a>
 </g>
 </g>
-<!-- Node33&#45;&gt;Node34 -->
-<g id="edge61" class="edge"><title>Node33&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M288,-1018.99C288,-992.487 288,-948.997 288,-911.5 288,-911.5 288,-911.5 288,-842.5 288,-788.343 446.647,-751.116 543.942,-733.378"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="284.5,-1019.24 288,-1029.24 291.5,-1019.24 284.5,-1019.24"/>
+<!-- Node32&#45;&gt;Node34 -->
+<g id="edge66" class="edge"><title>Node32&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M574.02,-1030.99C592.652,-987.607 637.834,-894.379 702.5,-839 730.537,-814.989 819.306,-783.137 854.5,-772 913.1,-753.457 981.599,-740.247 1032.38,-732.001"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="570.706,-1029.84 570.055,-1040.41 577.159,-1032.55 570.706,-1029.84"/>
 </g>
-<!-- Node35 -->
-<g id="node35" class="node"><title>Node35</title>
-<g id="a_node35"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="include/tvm/node/structural\l_hash.h">
-<polygon fill="white" stroke="black" points="710,-705.5 710,-735.5 858,-735.5 858,-705.5 710,-705.5"/>
-<text text-anchor="start" x="718" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/structural</text>
-<text text-anchor="middle" x="784" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
-</a>
+<!-- Node32&#45;&gt;Node35 -->
+<g id="edge70" class="edge"><title>Node32&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M631.329,-1041.95C695.934,-1029.81 792.746,-1011.62 853.722,-1000.17"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="630.429,-1038.55 621.247,-1043.84 631.722,-1045.43 630.429,-1038.55"/>
 </g>
+<!-- Node32&#45;&gt;Node36 -->
+<g id="edge108" class="edge"><title>Node32&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M631.069,-1037.81C661.877,-1029.19 698.629,-1017.61 730.5,-1004 776.177,-984.489 825.931,-954.406 853.664,-936.764"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="630,-1034.48 621.289,-1040.51 631.859,-1041.22 630,-1034.48"/>
 </g>
-<!-- Node33&#45;&gt;Node35 -->
-<g id="edge65" class="edge"><title>Node33&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M294.972,-1019.25C306.003,-982.203 327.971,-913.826 345,-895 443.525,-786.078 522.099,-845.193 659,-792 674.986,-785.789 677.146,-780.573 692,-772 713.935,-759.34 739.173,-745.54 757.66,-735.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="291.502,-1018.65 292.041,-1029.23 298.218,-1020.62 291.502,-1018.65"/>
+<!-- Node33&#45;&gt;Node2 -->
+<g id="edge64" class="edge"><title>Node33&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1298.17,-698.914C1330.06,-673.333 1383.04,-630.837 1405.69,-612.669"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1295.77,-696.35 1290.16,-705.337 1300.15,-701.811 1295.77,-696.35"/>
 </g>
-<!-- Node33&#45;&gt;Node36 -->
-<g id="edge69" class="edge"><title>Node33&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M342.578,-1026.44C376.295,-1015.91 419.042,-1002.55 450.845,-992.611"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="341.378,-1023.15 332.877,-1029.48 343.466,-1029.83 341.378,-1023.15"/>
+<!-- Node33&#45;&gt;Node13 -->
+<g id="edge63" class="edge"><title>Node33&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1188.42,-704.754C1097.83,-686.415 966.5,-651.617 966.5,-604 966.5,-604 966.5,-604 966.5,-479 966.5,-430.5 917.112,-389.178 893.19,-372.008"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1187.93,-708.226 1198.43,-706.746 1189.3,-701.361 1187.93,-708.226"/>
 </g>
-<!-- Node33&#45;&gt;Node37 -->
-<g id="edge105" class="edge"><title>Node33&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M354.622,-1033.13C410.144,-1024.03 491.151,-1009.65 561,-993 645.149,-972.938 741.717,-943.044 796.029,-925.586"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="353.867,-1029.71 344.559,-1034.77 354.992,-1036.62 353.867,-1029.71"/>
+<!-- Node33&#45;&gt;Node23 -->
+<g id="edge65" class="edge"><title>Node33&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1188.14,-704.843C1082.81,-689.372 972.406,-676.405 900.336,-668.38"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1187.91,-708.347 1198.32,-706.348 1188.94,-701.422 1187.91,-708.347"/>
 </g>
 <!-- Node34&#45;&gt;Node2 -->
-<g id="edge63" class="edge"><title>Node34&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M659.99,-701.395C697.645,-685.732 754.703,-663.395 806,-649 865.034,-632.433 934.087,-620.055 982.187,-612.517"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="658.248,-698.331 650.379,-705.424 660.954,-704.786 658.248,-698.331"/>
+<g id="edge68" class="edge"><title>Node34&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1153.77,-701.888C1221.37,-676.701 1343.07,-631.357 1393.57,-612.542"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1152.35,-698.682 1144.2,-705.453 1154.79,-705.241 1152.35,-698.682"/>
 </g>
 <!-- Node34&#45;&gt;Node13 -->
-<g id="edge62" class="edge"><title>Node34&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M586.825,-699.567C545.57,-670.471 478,-612.181 478,-542.5 478,-542.5 478,-542.5 478,-479 478,-438.947 484.043,-391.372 486.733,-372.171"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="584.973,-702.541 595.195,-705.326 588.941,-696.774 584.973,-702.541"/>
-</g>
-<!-- Node34&#45;&gt;Node28 -->
-<g id="edge64" class="edge"><title>Node34&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M697.943,-703.485C754.155,-692.223 827.158,-677.598 872.54,-668.506"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="697.126,-700.078 688.009,-705.475 698.501,-706.942 697.126,-700.078"/>
-</g>
-<!-- Node35&#45;&gt;Node2 -->
-<g id="edge67" class="edge"><title>Node35&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M792.928,-695.858C800.065,-680.182 811.606,-660.459 828,-649 870.786,-619.093 929.347,-608.331 974.393,-604.775"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="789.543,-694.874 788.867,-705.447 795.989,-697.604 789.543,-694.874"/>
-</g>
-<!-- Node35&#45;&gt;Node13 -->
-<g id="edge66" class="edge"><title>Node35&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M765.607,-697.379C708.019,-628.117 532.775,-417.351 495.159,-372.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="762.945,-699.652 772.03,-705.103 768.328,-695.176 762.945,-699.652"/>
-</g>
-<!-- Node35&#45;&gt;Node28 -->
-<g id="edge68" class="edge"><title>Node35&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M824.229,-701.228C848.084,-690.393 877.22,-677.16 895.938,-668.658"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="822.703,-698.077 815.045,-705.399 825.597,-704.451 822.703,-698.077"/>
-</g>
-<!-- Node36&#45;&gt;Node28 -->
-<g id="edge70" class="edge"><title>Node36&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M487.708,-952.299C478.323,-919.987 467.84,-862.797 497,-828 553.606,-760.451 606.525,-813.474 692,-792 771.202,-772.103 802.416,-785.978 867,-736 890.573,-717.758 905.69,-684.431 911.847,-668.683"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="484.485,-953.72 490.79,-962.234 491.171,-951.646 484.485,-953.72"/>
+<g id="edge67" class="edge"><title>Node34&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1022.47,-704.967C997.796,-697.462 972.177,-686.119 952.5,-669 905.262,-627.904 890.5,-605.112 890.5,-542.5 890.5,-542.5 890.5,-542.5 890.5,-479 890.5,-438.947 884.457,-391.372 881.767,-372.171"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1021.66,-708.374 1032.23,-707.757 1023.58,-701.643 1021.66,-708.374"/>
+</g>
+<!-- Node34&#45;&gt;Node23 -->
+<g id="edge69" class="edge"><title>Node34&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1029.72,-703.415C976.016,-692.163 906.408,-677.579 863.102,-668.506"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1029.05,-706.85 1039.56,-705.475 1030.49,-699.998 1029.05,-706.85"/>
+</g>
+<!-- Node35&#45;&gt;Node23 -->
+<g id="edge71" class="edge"><title>Node35&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M852.834,-969.774C807.954,-952.438 749.271,-921.066 724.5,-870 705.185,-830.181 791.443,-703.711 816.085,-668.928"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="851.878,-973.153 862.471,-973.365 854.323,-966.593 851.878,-973.153"/>
+</g>
+<!-- Node35&#45;&gt;Node36 -->
+<g id="edge72" class="edge"><title>Node35&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M898.156,-964.576C893.13,-955.241 887.48,-944.748 883.08,-936.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="895.083,-966.251 902.906,-973.396 901.246,-962.932 895.083,-966.251"/>
+</g>
+<!-- Node35&#45;&gt;Node47 -->
+<g id="edge106" class="edge"><title>Node35&#45;&gt;Node47</title>
+<path fill="none" stroke="midnightblue" d="M933.822,-967.451C947.813,-957.452 965.523,-945.6 980.035,-936.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="931.679,-964.682 925.652,-973.396 935.797,-970.342 931.679,-964.682"/>
+</g>
+<!-- Node36&#45;&gt;Node13 -->
+<g id="edge74" class="edge"><title>Node36&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M808.981,-913.289C745.393,-905.298 655.098,-890.741 626.5,-870 598.788,-849.901 597.233,-836.101 588.5,-803 571.039,-736.82 561.952,-712.086 588.5,-649 619.369,-575.646 820.658,-411.385 869.727,-372.072"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="808.591,-916.767 818.944,-914.515 809.446,-909.82 808.591,-916.767"/>
+</g>
+<!-- Node36&#45;&gt;Node15 -->
+<g id="edge104" class="edge"><title>Node36&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M942.037,-905.913C1045.59,-889.031 1200.86,-915.996 1147.5,-839 1121.54,-801.546 1090.86,-825.961 1051.5,-803 1032.97,-792.19 1033.15,-782.6 1014.5,-772 896.683,-705.04 653.938,-757.222 735.5,-649 824.823,-530.48 917.63,-609.352 1056.5,-557 1205.71,-500.749 1375.46,-412.036 1439.35,-377.714"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="941.407,-902.47 932.187,-907.689 942.649,-909.359 941.407,-902.47"/>
+</g>
+<!-- Node36&#45;&gt;Node18 -->
+<g id="edge102" class="edge"><title>Node36&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M808.624,-915.42C680.387,-903.831 412.5,-869.881 412.5,-788.5 412.5,-788.5 412.5,-788.5 412.5,-602 412.5,-419.544 645.535,-294.932 732.923,-254.618"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="808.458,-918.919 818.727,-916.313 809.074,-911.946 808.458,-918.919"/>
+</g>
+<!-- Node36&#45;&gt;Node20 -->
+<g id="edge105" class="edge"><title>Node36&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M808.916,-910.582C780.123,-903.405 747.769,-891.088 724.5,-870 649.085,-801.653 611.102,-735.645 664.5,-649 746.987,-515.156 849.284,-576.607 980.5,-490 1038.5,-451.718 1099.31,-394.119 1121.63,-372.299"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="808.398,-914.055 818.931,-912.913 809.984,-907.237 808.398,-914.055"/>
+</g>
+<!-- Node36&#45;&gt;Node23 -->
+<g id="edge86" class="edge"><title>Node36&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M808.716,-913.138C781.352,-906.457 752.231,-893.822 735.5,-870 703.727,-824.762 780.768,-795.94 806.5,-736 816.394,-712.954 820.357,-683.277 821.785,-668.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="808.172,-916.602 818.691,-915.34 809.681,-909.767 808.172,-916.602"/>
+</g>
+<!-- Node37 -->
+<g id="node37" class="node"><title>Node37</title>
+<g id="a_node37"><a xlink:href="driver__api_8h.html" target="_top" xlink:title="Compiler driver APIs to drive the compilation. ">
+<polygon fill="white" stroke="black" points="744.5,-839.5 744.5,-869.5 846.5,-869.5 846.5,-839.5 744.5,-839.5"/>
+<text text-anchor="start" x="752.5" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
+<text text-anchor="middle" x="795.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
+</a>
+</g>
 </g>
 <!-- Node36&#45;&gt;Node37 -->
-<g id="edge71" class="edge"><title>Node36&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M562.612,-963.877C626.501,-951.769 721.919,-933.687 782.276,-922.249"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="561.813,-960.466 552.639,-965.767 563.116,-967.343 561.813,-960.466"/>
-</g>
-<!-- Node36&#45;&gt;Node47 -->
-<g id="edge103" class="edge"><title>Node36&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M463.493,-956.451C449.64,-946.452 434.346,-934.6 423.733,-925.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="461.696,-959.467 471.878,-962.396 465.745,-953.757 461.696,-959.467"/>
-</g>
-<!-- Node37&#45;&gt;Node13 -->
-<g id="edge73" class="edge"><title>Node37&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M772.367,-907.035C676.959,-902.457 507.173,-890.103 455,-859 426.021,-841.724 378.447,-767.358 366,-736 322.305,-625.919 317.349,-583.846 350,-470 358.091,-441.787 363.208,-433.661 385,-414 407.181,-393.989 438.731,-380.091 461.055,-372.012"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="772.339,-910.537 782.491,-907.505 772.664,-903.545 772.339,-910.537"/>
-</g>
-<!-- Node37&#45;&gt;Node15 -->
-<g id="edge101" class="edge"><title>Node37&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M819.302,-887.884C800.597,-868.832 770.694,-841.992 739,-828 689.262,-806.041 532.504,-833.176 497,-792 453.57,-741.632 543.013,-593.461 649,-526 715.55,-483.641 1284.86,-473.748 1353,-434 1375.49,-420.884 1391.48,-394.099 1399.69,-377.582"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="816.925,-890.463 826.371,-895.261 821.98,-885.62 816.925,-890.463"/>
-</g>
-<!-- Node37&#45;&gt;Node18 -->
-<g id="edge99" class="edge"><title>Node37&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M771.986,-906.046C670.139,-900.024 481.707,-885.625 420,-859 257.453,-788.865 114,-781.032 114,-604 114,-604 114,-604 114,-361.5 114,-322.826 116.066,-277.237 117.229,-254.653"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="771.978,-909.552 782.164,-906.637 772.384,-902.563 771.978,-909.552"/>
-</g>
-<!-- Node37&#45;&gt;Node25 -->
-<g id="edge102" class="edge"><title>Node37&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M772.334,-904.431C686.933,-897.122 544.289,-881.931 497,-859 477.48,-849.534 438.724,-809.571 426,-792 387.985,-739.503 364,-724.816 364,-660 364,-660 364,-660 364,-479 364,-439.077 390.816,-432.866 426,-414 464.085,-393.578 579.647,-377.802 651.384,-369.647"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="772.197,-907.931 782.455,-905.283 772.784,-900.956 772.197,-907.931"/>
-</g>
-<!-- Node37&#45;&gt;Node28 -->
-<g id="edge85" class="edge"><title>Node37&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M824.13,-886.464C815.409,-869.943 807.453,-847.291 815,-828 835.283,-776.157 874.77,-785.624 900,-736 911.337,-713.701 914.118,-683.686 914.792,-668.938"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="821.241,-888.464 829.241,-895.41 827.319,-884.991 821.241,-888.464"/>
+<g id="edge73" class="edge"><title>Node36&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M850.125,-899.883C837.968,-890.005 823.721,-878.429 812.825,-869.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="848.173,-902.806 858.141,-906.396 852.587,-897.374 848.173,-902.806"/>
 </g>
 <!-- Node38 -->
 <g id="node38" class="node"><title>Node38</title>
-<g id="a_node38"><a xlink:href="driver__api_8h.html" target="_top" xlink:title="Compiler driver APIs to drive the compilation. ">
-<polygon fill="white" stroke="black" points="506,-828.5 506,-858.5 608,-858.5 608,-828.5 506,-828.5"/>
-<text text-anchor="start" x="514" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
-<text text-anchor="middle" x="557" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
+<g id="a_node38"><a xlink:href="node_2container_8h.html" target="_top" xlink:title="Array/Map container in the DSL graph. ">
+<polygon fill="white" stroke="red" points="1949,-778 1949,-797 2104,-797 2104,-778 1949,-778"/>
+<text text-anchor="middle" x="2026.5" y="-785" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/container.h</text>
 </a>
 </g>
 </g>
-<!-- Node37&#45;&gt;Node38 -->
-<g id="edge72" class="edge"><title>Node37&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M772.354,-894.585C728.238,-884.652 669.123,-871.226 617,-859 614.079,-858.315 611.079,-857.606 608.052,-856.887"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="771.855,-898.06 782.379,-896.841 773.391,-891.231 771.855,-898.06"/>
+<!-- Node36&#45;&gt;Node38 -->
+<g id="edge75" class="edge"><title>Node36&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M942.337,-905.825C1065.34,-886.018 1105.7,-914.622 1218.5,-870 1240.41,-861.333 1239.33,-846.974 1261.5,-839 1269.53,-836.112 1755.85,-805.43 1948.82,-793.348"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="941.438,-902.427 932.16,-907.543 942.603,-909.329 941.438,-902.427"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node"><title>Node39</title>
-<g id="a_node39"><a xlink:href="node_2container_8h.html" target="_top" xlink:title="Array/Map container in the DSL graph. ">
-<polygon fill="white" stroke="red" points="1286.5,-772.5 1286.5,-791.5 1441.5,-791.5 1441.5,-772.5 1286.5,-772.5"/>
-<text text-anchor="middle" x="1364" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/container.h</text>
+<g id="a_node39"><a xlink:href="parser_8h.html" target="_top" xlink:title="A parser for TVM IR. ">
+<polygon fill="white" stroke="black" points="899.5,-772.5 899.5,-802.5 1005.5,-802.5 1005.5,-772.5 899.5,-772.5"/>
+<text text-anchor="start" x="907.5" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/parser</text>
+<text text-anchor="middle" x="952.5" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">/parser.h</text>
 </a>
 </g>
 </g>
-<!-- Node37&#45;&gt;Node39 -->
-<g id="edge74" class="edge"><title>Node37&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M881.693,-891.394C901.642,-882.421 925.466,-870.959 946,-859 966.672,-846.961 967.669,-836.578 990,-828 1042.43,-807.861 1192.85,-794.49 1286.18,-787.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="880.253,-888.204 872.535,-895.462 883.095,-894.601 880.253,-888.204"/>
+<!-- Node36&#45;&gt;Node39 -->
+<g id="edge87" class="edge"><title>Node36&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M876.834,-895.981C878.697,-878.964 883.109,-856.331 893.5,-839 902.375,-824.199 917.125,-811.574 929.656,-802.649"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="873.322,-895.974 875.941,-906.24 880.295,-896.581 873.322,-895.974"/>
 </g>
 <!-- Node40 -->
 <g id="node40" class="node"><title>Node40</title>
 <g id="a_node40"><a xlink:href="runtime_2container_8h.html" target="_top" xlink:title="Common POD(plain old data) container types. ">
-<polygon fill="white" stroke="red" points="1506.5,-828.5 1506.5,-858.5 1619.5,-858.5 1619.5,-828.5 1506.5,-828.5"/>
-<text text-anchor="start" x="1514.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1563" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">/container.h</text>
+<polygon fill="white" stroke="red" points="1877,-839.5 1877,-869.5 1990,-869.5 1990,-839.5 1877,-839.5"/>
+<text text-anchor="start" x="1885" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1933.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">/container.h</text>
 </a>
 </g>
 </g>
-<!-- Node37&#45;&gt;Node40 -->
-<g id="edge86" class="edge"><title>Node37&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M905.767,-903.506C1047.13,-890.814 1374.47,-861.426 1506.39,-849.582"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="905.156,-900.046 895.51,-904.427 905.782,-907.018 905.156,-900.046"/>
+<!-- Node36&#45;&gt;Node40 -->
+<g id="edge88" class="edge"><title>Node36&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M942.377,-906.026C1070.65,-891.813 1685.79,-865.727 1876.83,-857.823"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="941.62,-902.592 932.119,-907.28 942.469,-909.541 941.62,-902.592"/>
 </g>
-<!-- Node37&#45;&gt;Node42 -->
-<g id="edge91" class="edge"><title>Node37&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M906.203,-905.249C1042.38,-896.622 1360.68,-876.404 1628,-859 1683.13,-855.41 1746.07,-851.235 1790.28,-848.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="905.693,-901.774 895.934,-905.899 906.136,-908.76 905.693,-901.774"/>
+<!-- Node36&#45;&gt;Node42 -->
+<g id="edge93" class="edge"><title>Node36&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M942.36,-905.796C1081.69,-883.011 1120.17,-891.644 1256.5,-870 1261.1,-869.27 1265.85,-868.448 1270.61,-867.576"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="941.442,-902.4 932.151,-907.491 942.589,-909.305 941.442,-902.4"/>
 </g>
-<!-- Node37&#45;&gt;Node43 -->
-<g id="edge92" class="edge"><title>Node37&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M897.044,-892.854C937.716,-881.981 991.735,-867.971 1032.15,-857.833"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="896.022,-889.504 887.271,-895.476 897.836,-896.265 896.022,-889.504"/>
+<!-- Node36&#45;&gt;Node43 -->
+<g id="edge94" class="edge"><title>Node36&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M938.348,-905.004C1132.56,-876.502 1186.48,-891.431 1383.5,-870 1402.07,-867.98 1422.42,-865.283 1440.78,-862.762"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="937.768,-901.552 928.391,-906.485 938.797,-908.476 937.768,-901.552"/>
 </g>
 <!-- Node44 -->
 <g id="node44" class="node"><title>Node44</title>
 <g id="a_node44"><a xlink:href="registry_8h.html" target="_top" xlink:title="This file defines the TVM global function registry. ">
-<polygon fill="white" stroke="red" points="824.5,-828.5 824.5,-858.5 937.5,-858.5 937.5,-828.5 824.5,-828.5"/>
-<text text-anchor="start" x="832.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="881" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">/registry.h</text>
+<polygon fill="white" stroke="red" points="903,-839.5 903,-869.5 1016,-869.5 1016,-839.5 903,-839.5"/>
+<text text-anchor="start" x="911" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="959.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">/registry.h</text>
 </a>
 </g>
 </g>
-<!-- Node37&#45;&gt;Node44 -->
-<g id="edge94" class="edge"><title>Node37&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M853.624,-886.867C859.703,-877.459 866.569,-866.833 871.904,-858.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="850.601,-885.097 848.113,-895.396 856.48,-888.896 850.601,-885.097"/>
+<!-- Node36&#45;&gt;Node44 -->
+<g id="edge96" class="edge"><title>Node36&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M901.776,-900.168C914.62,-890.228 929.758,-878.514 941.309,-869.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="899.494,-897.508 893.727,-906.396 903.777,-903.044 899.494,-897.508"/>
 </g>
 <!-- Node45 -->
 <g id="node45" class="node"><title>Node45</title>
-<g id="a_node45"><a xlink:href="vm_8h.html" target="_top" xlink:title="A virtual machine for executing Relay programs. ">
-<polygon fill="white" stroke="black" points="1460,-772.5 1460,-791.5 1600,-791.5 1600,-772.5 1460,-772.5"/>
-<text text-anchor="middle" x="1530" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime/vm.h</text>
+<g id="a_node45"><a xlink:href="runtime_2vm_8h.html" target="_top" xlink:title="A virtual machine for executing Relay programs. ">
+<polygon fill="white" stroke="black" points="1638.5,-778 1638.5,-797 1778.5,-797 1778.5,-778 1638.5,-778"/>
+<text text-anchor="middle" x="1708.5" y="-785" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime/vm.h</text>
 </a>
 </g>
 </g>
-<!-- Node37&#45;&gt;Node45 -->
-<g id="edge98" class="edge"><title>Node37&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M900.627,-892.334C926.529,-883.961 956.504,-872.712 982,-859 1002.12,-848.18 1001.67,-836.17 1023,-828 1111.93,-793.943 1355.23,-801.324 1450,-792 1453.2,-791.685 1456.47,-791.354 1459.77,-791.013"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="899.398,-889.051 890.917,-895.401 901.506,-895.726 899.398,-889.051"/>
+<!-- Node36&#45;&gt;Node45 -->
+<g id="edge101" class="edge"><title>Node36&#45;&gt;Node45</title>
+<path fill="none" stroke="midnightblue" d="M942.018,-905.842C1048.53,-887.476 1082.55,-906.997 1180.5,-870 1204.26,-861.026 1204.55,-847.448 1228.5,-839 1302.29,-812.971 1523.86,-798.044 1638.33,-791.873"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="941.395,-902.397 932.172,-907.611 942.633,-909.287 941.395,-902.397"/>
 </g>
 <!-- Node46 -->
 <g id="node46" class="node"><title>Node46</title>
 <g id="a_node46"><a xlink:href="generic__func_8h.html" target="_top" xlink:title="Generic function that can be specialzied on a per target basis. ">
-<polygon fill="white" stroke="red" points="626,-828.5 626,-858.5 730,-858.5 730,-828.5 626,-828.5"/>
-<text text-anchor="start" x="634" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="678" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
+<polygon fill="white" stroke="red" points="1034.5,-839.5 1034.5,-869.5 1138.5,-869.5 1138.5,-839.5 1034.5,-839.5"/>
+<text text-anchor="start" x="1042.5" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="1086.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
 </a>
 </g>
 </g>
-<!-- Node37&#45;&gt;Node46 -->
-<g id="edge100" class="edge"><title>Node37&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M794.525,-891.544C768.762,-881.143 736.797,-868.238 712.866,-858.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="793.482,-894.898 804.065,-895.396 796.103,-888.407 793.482,-894.898"/>
-</g>
-<!-- Node39&#45;&gt;Node2 -->
-<g id="edge80" class="edge"><title>Node39&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M1344.28,-766.452C1308.5,-740.502 1229.92,-685.529 1158,-649 1128.34,-633.936 1092.39,-620.711 1068.45,-612.564"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1342.28,-769.328 1352.42,-772.395 1346.41,-763.673 1342.28,-769.328"/>
-</g>
-<!-- Node39&#45;&gt;Node3 -->
-<g id="edge77" class="edge"><title>Node39&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1366.02,-762.111C1368.39,-738.323 1372,-696.185 1372,-660 1372,-660 1372,-660 1372,-602 1372,-564.996 1360.54,-555.349 1338,-526 1313.95,-494.674 1302.33,-491.19 1269,-470 1200.42,-426.402 1111.34,-388.436 1070.8,-372.072"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1362.53,-761.901 1364.98,-772.207 1369.49,-762.62 1362.53,-761.901"/>
-</g>
-<!-- Node39&#45;&gt;Node4 -->
-<g id="edge78" class="edge"><title>Node39&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1374.76,-763.685C1379.18,-755.595 1383.77,-745.637 1386,-736 1407.04,-645.069 1404.07,-617.567 1386,-526 1380.79,-499.603 1380.54,-490.404 1363,-470 1348.65,-453.303 1326.49,-441.084 1309.98,-433.627"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1371.65,-762.078 1369.64,-772.481 1377.7,-765.603 1371.65,-762.078"/>
-</g>
-<!-- Node39&#45;&gt;Node5 -->
-<g id="edge75" class="edge"><title>Node39&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M1399.18,-768.804C1417.88,-761.224 1440.56,-750.203 1458,-736 1487.02,-712.372 1490.13,-701.32 1509,-669 1616.38,-485.032 1828.84,-382.919 1687,-224 1665.77,-200.217 1469.46,-187.324 1361.83,-181.99"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1397.85,-765.563 1389.8,-772.453 1400.39,-772.086 1397.85,-765.563"/>
-</g>
-<!-- Node39&#45;&gt;Node6 -->
-<g id="edge83" class="edge"><title>Node39&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M1414,-770.171C1539.16,-739.82 1856,-641.596 1856,-425 1856,-425 1856,-425 1856,-238.5 1856,-180.353 1441.59,-140.998 1279.71,-127.842"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1413.18,-766.768 1404.26,-772.489 1414.8,-773.578 1413.18,-766.768"/>
-</g>
-<!-- Node39&#45;&gt;Node12 -->
-<g id="edge76" class="edge"><title>Node39&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1388.98,-767.14C1401.92,-759.157 1417.39,-748.281 1429,-736 1494.81,-666.372 1524,-638.306 1524,-542.5 1524,-542.5 1524,-542.5 1524,-361.5 1524,-311.762 1572.07,-267.258 1594.6,-249.128"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1386.9,-764.301 1380.09,-772.42 1390.48,-770.319 1386.9,-764.301"/>
-</g>
-<!-- Node39&#45;&gt;Node16 -->
-<g id="edge84" class="edge"><title>Node39&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1380.49,-765.061C1388.32,-756.889 1397.38,-746.47 1404,-736 1453.91,-657.049 1486,-635.903 1486,-542.5 1486,-542.5 1486,-542.5 1486,-423 1486,-388.183 1493.59,-369.471 1467,-347 1427.71,-313.801 1084.16,-304.95 944.58,-302.714"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1377.77,-762.836 1373.22,-772.403 1382.74,-767.764 1377.77,-762.836"/>
-</g>
-<!-- Node39&#45;&gt;Node27 -->
-<g id="edge79" class="edge"><title>Node39&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1356.65,-763.074C1347.77,-739.75 1334,-697.537 1334,-660 1334,-660 1334,-660 1334,-602 1334,-567.183 1337.88,-552.248 1315,-526 1298.48,-507.043 1272.84,-495.97 1250.25,-489.556"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1353.4,-764.359 1360.32,-772.377 1359.91,-761.79 1353.4,-764.359"/>
-</g>
-<!-- Node39&#45;&gt;Node34 -->
-<g id="edge81" class="edge"><title>Node39&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M1276.36,-777.988C1149.21,-772.954 906.326,-760.833 701,-736 698.096,-735.649 695.138,-735.264 692.154,-734.853"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1276.3,-781.489 1286.43,-778.382 1276.57,-774.494 1276.3,-781.489"/>
-</g>
-<!-- Node39&#45;&gt;Node35 -->
-<g id="edge82" class="edge"><title>Node39&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M1276.3,-772.003C1162.36,-760.314 965.408,-740.11 858.408,-729.133"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1276.08,-775.498 1286.38,-773.037 1276.79,-768.535 1276.08,-775.498"/>
+<!-- Node36&#45;&gt;Node46 -->
+<g id="edge103" class="edge"><title>Node36&#45;&gt;Node46</title>
+<path fill="none" stroke="midnightblue" d="M930.866,-903.444C965.069,-892.908 1008.43,-879.549 1040.69,-869.611"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="929.55,-900.187 921.024,-906.476 931.611,-906.877 929.55,-900.187"/>
+</g>
+<!-- Node38&#45;&gt;Node2 -->
+<g id="edge81" class="edge"><title>Node38&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1986.83,-774.896C1959.03,-766.025 1921.47,-752.524 1890.5,-736 1869.71,-724.91 1868.62,-715.444 1847.5,-705 1770.5,-666.917 1746,-669.206 1662.5,-649 1598.36,-633.478 1523.66,-620.524 1473.55,-612.561"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1986.01,-778.307 1996.6,-777.952 1988.1,-771.626 1986.01,-778.307"/>
+</g>
+<!-- Node38&#45;&gt;Node3 -->
+<g id="edge78" class="edge"><title>Node38&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M2029.53,-767.831C2032.38,-751.223 2037.01,-726.331 2042.5,-705 2061.39,-631.561 2094.5,-618.33 2094.5,-542.5 2094.5,-542.5 2094.5,-542.5 2094.5,-479 2094.5,-448.205 2092.9,-435.131 2070.5,-414 2040.48,-385.682 1995.05,-373.211 1959.3,-367.735"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2026.05,-767.421 2027.86,-777.861 2032.96,-768.573 2026.05,-767.421"/>
+</g>
+<!-- Node38&#45;&gt;Node4 -->
+<g id="edge79" class="edge"><title>Node38&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M2018.84,-768.556C1991.96,-706.502 1900.2,-502.987 1839.5,-470 1796.78,-446.782 1662.77,-434.08 1585.31,-428.506"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2015.67,-770.043 2022.84,-777.845 2022.1,-767.276 2015.67,-770.043"/>
+</g>
+<!-- Node38&#45;&gt;Node5 -->
+<g id="edge76" class="edge"><title>Node38&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M2064.4,-774.609C2127.32,-752.231 2246.5,-697.504 2246.5,-604 2246.5,-604 2246.5,-604 2246.5,-300 2246.5,-223.413 1685.99,-190.987 1486.19,-181.862"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2063.12,-771.349 2054.81,-777.924 2065.41,-777.964 2063.12,-771.349"/>
+</g>
+<!-- Node38&#45;&gt;Node6 -->
+<g id="edge84" class="edge"><title>Node38&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M2114.2,-779.243C2188.99,-767.679 2284.5,-737.701 2284.5,-660 2284.5,-660 2284.5,-660 2284.5,-238.5 2284.5,-157.358 1680.78,-131.225 1480.33,-124.784"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2113.65,-775.786 2104.26,-780.692 2114.66,-782.713 2113.65,-775.786"/>
+</g>
+<!-- Node38&#45;&gt;Node12 -->
+<g id="edge77" class="edge"><title>Node38&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M2055.98,-773.595C2107.5,-748.809 2208.5,-689.336 2208.5,-604 2208.5,-604 2208.5,-604 2208.5,-361.5 2208.5,-277.049 1929.19,-251.113 1793.62,-243.499"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2054.24,-770.541 2046.67,-777.952 2057.21,-776.88 2054.24,-770.541"/>
+</g>
+<!-- Node38&#45;&gt;Node16 -->
+<g id="edge85" class="edge"><title>Node38&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M2044.22,-770.639C2082.71,-734.356 2170.5,-640.818 2170.5,-542.5 2170.5,-542.5 2170.5,-542.5 2170.5,-423 2170.5,-327.078 2062.29,-367.131 1968.5,-347 1844.12,-320.303 1461.3,-307.497 1314.05,-303.462"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2041.37,-768.511 2036.4,-777.867 2046.12,-773.654 2041.37,-768.511"/>
+</g>
+<!-- Node38&#45;&gt;Node22 -->
+<g id="edge80" class="edge"><title>Node38&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1998.92,-773.279C1962.93,-753.879 1904.5,-714.056 1904.5,-660 1904.5,-660 1904.5,-660 1904.5,-602 1904.5,-543.485 1833.1,-505.419 1795.72,-489.502"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1997.48,-776.478 2007.97,-777.986 2000.71,-770.267 1997.48,-776.478"/>
+</g>
+<!-- Node38&#45;&gt;Node33 -->
+<g id="edge82" class="edge"><title>Node38&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M1938.56,-778.919C1788.68,-765.999 1486.42,-739.942 1346.58,-727.886"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1938.38,-782.417 1948.65,-779.789 1938.99,-775.443 1938.38,-782.417"/>
+</g>
+<!-- Node38&#45;&gt;Node34 -->
+<g id="edge83" class="edge"><title>Node38&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1938.67,-781.162C1893.5,-778.419 1837.55,-775.025 1787.5,-772 1521.73,-755.938 1453.95,-766.96 1189.5,-736 1186.59,-735.66 1183.64,-735.284 1180.65,-734.881"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1938.54,-784.66 1948.73,-781.773 1938.96,-777.673 1938.54,-784.66"/>
 </g>
 <!-- Node40&#45;&gt;Node2 -->
-<g id="edge88" class="edge"><title>Node40&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M1590.88,-821.784C1606.68,-807.484 1621.1,-788.202 1609,-772 1547.34,-689.426 1233.72,-633.048 1101.21,-612.559"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1588.48,-819.23 1583.12,-828.369 1593.01,-824.567 1588.48,-819.23"/>
+<g id="edge90" class="edge"><title>Node40&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1888.37,-835.379C1868.5,-826.654 1845.23,-815.394 1825.5,-803 1807.04,-791.407 1806.75,-782.217 1787.5,-772 1738.31,-745.899 1714.79,-765.401 1667.5,-736 1622.63,-708.104 1631.82,-676.159 1586.5,-649 1554.81,-630.009 1515.1,-618.917 1482.03,-612.5"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1887.25,-838.71 1897.82,-839.453 1890.02,-832.281 1887.25,-838.71"/>
 </g>
 <!-- Node40&#45;&gt;Node15 -->
-<g id="edge90" class="edge"><title>Node40&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1629.51,-835.576C1726.15,-821.424 1894,-779.626 1894,-660 1894,-660 1894,-660 1894,-540.5 1894,-448.575 1584.12,-390.759 1458.22,-371.064"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1628.94,-832.121 1619.52,-836.977 1629.91,-839.053 1628.94,-832.121"/>
+<g id="edge92" class="edge"><title>Node40&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M1934.99,-829.386C1937.22,-782.895 1939.22,-677.951 1918.5,-593 1903.1,-529.88 1894.38,-504.77 1839.5,-470 1736.84,-404.967 1593.65,-378.735 1517.67,-368.891"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1931.49,-829.229 1934.45,-839.4 1938.48,-829.6 1931.49,-829.229"/>
 </g>
-<!-- Node40&#45;&gt;Node39 -->
-<g id="edge87" class="edge"><title>Node40&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M1506.37,-825.568C1469.15,-814.44 1422.04,-800.353 1392.45,-791.506"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1505.51,-828.963 1516.09,-828.475 1507.51,-822.257 1505.51,-828.963"/>
+<!-- Node40&#45;&gt;Node38 -->
+<g id="edge89" class="edge"><title>Node40&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M1961.91,-833.641C1979.46,-821.374 2001.09,-806.261 2014.33,-797.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1959.87,-830.798 1953.68,-839.396 1963.88,-836.536 1959.87,-830.798"/>
 </g>
 <!-- Node41 -->
 <g id="node41" class="node"><title>Node41</title>
 <g id="a_node41"><a xlink:href="interpreter_8h.html" target="_top" xlink:title="An interpreter for Relay. ">
-<polygon fill="white" stroke="black" points="1628.5,-711 1628.5,-730 1789.5,-730 1789.5,-711 1628.5,-711"/>
-<text text-anchor="middle" x="1709" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/interpreter.h</text>
+<polygon fill="white" stroke="black" points="1677,-711 1677,-730 1838,-730 1838,-711 1677,-711"/>
+<text text-anchor="middle" x="1757.5" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/interpreter.h</text>
 </a>
 </g>
 </g>
 <!-- Node40&#45;&gt;Node41 -->
-<g id="edge89" class="edge"><title>Node40&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M1596.92,-823.309C1611.37,-814.514 1628.07,-803.495 1642,-792 1665.97,-772.228 1690.09,-744.458 1701.77,-730.401"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1595.05,-820.349 1588.26,-828.482 1598.64,-826.358 1595.05,-820.349"/>
+<g id="edge91" class="edge"><title>Node40&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M1906.35,-833.14C1867.2,-803.772 1796.54,-750.78 1768.96,-730.097"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1904.56,-836.174 1914.66,-839.374 1908.76,-830.574 1904.56,-836.174"/>
 </g>
-<!-- Node43&#45;&gt;Node37 -->
-<g id="edge93" class="edge"><title>Node43&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M1030.75,-861.202C990.067,-872.076 936.117,-886.067 895.765,-896.189"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1031.77,-864.551 1040.52,-858.58 1029.96,-857.79 1031.77,-864.551"/>
+<!-- Node43&#45;&gt;Node36 -->
+<g id="edge95" class="edge"><title>Node43&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M1430.76,-866.48C1420.98,-867.755 1411,-868.966 1401.5,-870 1201.16,-891.793 1148.78,-875.988 949.5,-906 943.898,-906.844 938.059,-907.896 932.216,-909.045"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1431.41,-869.925 1440.86,-865.134 1430.48,-862.986 1431.41,-869.925"/>
 </g>
 <!-- Node44&#45;&gt;Node14 -->
-<g id="edge95" class="edge"><title>Node44&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M814.268,-834.952C712.359,-823.239 526.595,-801.09 497,-792 260.734,-719.43 0,-789.66 0,-542.5 0,-542.5 0,-542.5 0,-300 0,-260.285 14.0771,-246.212 47,-224 78.2768,-202.899 176.473,-190.395 243.351,-184.115"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="814.127,-838.458 824.461,-836.121 814.925,-831.504 814.127,-838.458"/>
+<g id="edge98" class="edge"><title>Node44&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M897.626,-836.497C769.816,-797.195 488.5,-687.26 488.5,-481 488.5,-481 488.5,-481 488.5,-300 488.5,-248.322 530.158,-246.869 576.5,-224 623.941,-200.589 683.022,-189.344 727.552,-183.951"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="896.71,-839.877 907.295,-839.426 898.739,-833.177 896.71,-839.877"/>
+</g>
+<!-- Node44&#45;&gt;Node39 -->
+<g id="edge97" class="edge"><title>Node44&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M956.905,-829.403C955.932,-820.37 954.859,-810.408 954.016,-802.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="953.43,-829.828 957.981,-839.396 960.39,-829.079 953.43,-829.828"/>
 </g>
 <!-- Node44&#45;&gt;Node45 -->
-<g id="edge96" class="edge"><title>Node44&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M947.555,-833.064C961.557,-831.242 976.251,-829.451 990,-828 1193.94,-806.471 1245.86,-811.466 1450,-792 1453.2,-791.695 1456.47,-791.372 1459.77,-791.037"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="946.959,-829.612 937.504,-834.392 947.876,-836.552 946.959,-829.612"/>
+<g id="edge99" class="edge"><title>Node44&#45;&gt;Node45</title>
+<path fill="none" stroke="midnightblue" d="M1026.3,-839.069C1159.73,-820.888 1492.4,-800.759 1638.28,-792.417"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1025.7,-835.62 1016.29,-840.486 1026.68,-842.551 1025.7,-835.62"/>
 </g>
 <!-- Node45&#45;&gt;Node41 -->
-<g id="edge97" class="edge"><title>Node45&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M1565.4,-769.232C1600.2,-757.666 1652.45,-740.297 1683.4,-730.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1564.03,-765.999 1555.65,-772.475 1566.24,-772.642 1564.03,-765.999"/>
+<g id="edge100" class="edge"><title>Node45&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M1721.39,-769.404C1730.91,-756.773 1743.48,-740.104 1751,-730.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1718.33,-767.642 1715.11,-777.734 1723.92,-771.855 1718.33,-767.642"/>
 </g>
-<!-- Node47&#45;&gt;Node36 -->
-<g id="edge104" class="edge"><title>Node47&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M443.464,-931.518C457.314,-941.514 472.612,-953.367 483.235,-962.396"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="445.265,-928.504 435.083,-925.577 441.217,-934.215 445.265,-928.504"/>
+<!-- Node47&#45;&gt;Node35 -->
+<g id="edge107" class="edge"><title>Node47&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M983.221,-942.518C969.237,-952.514 951.528,-964.367 937.009,-973.396"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="985.359,-945.291 991.385,-936.577 981.24,-939.631 985.359,-945.291"/>
 </g>
 <!-- Node48&#45;&gt;Node2 -->
-<g id="edge122" class="edge"><title>Node48&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M1372.01,-1025.88C1351.58,-1017.99 1329.51,-1007.19 1312,-993 1238.24,-933.208 1077.75,-664.589 1047.11,-612.694"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1370.97,-1029.23 1381.56,-1029.42 1373.4,-1022.67 1370.97,-1029.23"/>
+<g id="edge124" class="edge"><title>Node48&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1704.56,-1032.9C1696.83,-1024.43 1688.56,-1014.28 1682.5,-1004 1642.87,-936.783 1662.23,-906.158 1622.5,-839 1563.38,-739.074 1459.15,-641.996 1426.54,-612.832"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1702.02,-1035.31 1711.44,-1040.17 1707.11,-1030.5 1702.02,-1035.31"/>
 </g>
 <!-- Node48&#45;&gt;Node3 -->
-<g id="edge112" class="edge"><title>Node48&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1414.59,-1020.96C1408.02,-1012.31 1400.55,-1002.28 1394,-993 1332.21,-905.496 1314.41,-884.854 1261,-792 1166.85,-628.323 1072.61,-417.154 1052.8,-372.164"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1411.94,-1023.26 1420.79,-1029.09 1417.5,-1019.02 1411.94,-1023.26"/>
+<g id="edge115" class="edge"><title>Node48&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M1793.21,-1051.92C1893.48,-1047.09 2077.49,-1034.32 2135.5,-1004 2178.6,-981.475 2208.5,-971.128 2208.5,-922.5 2208.5,-922.5 2208.5,-922.5 2208.5,-786.5 2208.5,-672.917 2132.5,-656.083 2132.5,-542.5 2132.5,-542.5 2132.5,-542.5 2132.5,-479 2132.5,-445.079 2119.69,-434.279 2092.5,-414 2086.25,-409.34 1991.36,-385.167 1938.84,-372.027"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1793.01,-1048.42 1783.18,-1052.39 1793.33,-1055.42 1793.01,-1048.42"/>
 </g>
 <!-- Node48&#45;&gt;Node4 -->
-<g id="edge113" class="edge"><title>Node48&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1498.91,-1027.72C1568.2,-1012.83 1590.66,-1017.59 1658,-993 1815.01,-935.663 1970,-950.151 1970,-783 1970,-783 1970,-783 1970,-658 1970,-526.231 1508.34,-453.566 1344.68,-431.946"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1497.82,-1024.38 1488.81,-1029.96 1499.33,-1031.21 1497.82,-1024.38"/>
+<g id="edge116" class="edge"><title>Node48&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1793.33,-1050.77C1885.03,-1044.74 2044.34,-1030.73 2095.5,-1004 2139.13,-981.205 2170.5,-971.726 2170.5,-922.5 2170.5,-922.5 2170.5,-922.5 2170.5,-853.5 2170.5,-635.447 2064.34,-557.242 1864.5,-470 1815.62,-448.66 1667.53,-434.981 1585.21,-428.811"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1793.06,-1047.28 1783.31,-1051.42 1793.51,-1054.27 1793.06,-1047.28"/>
 </g>
 <!-- Node48&#45;&gt;Node7 -->
-<g id="edge138" class="edge"><title>Node48&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M1498.67,-1027.94C1686.03,-992.637 1753.58,-1023.27 1918,-926 1964.44,-898.524 2008,-898.463 2008,-844.5 2008,-844.5 2008,-844.5 2008,-177 2008,-97.4034 1418.89,-74.1791 1217.53,-68.5658"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1497.95,-1024.52 1488.79,-1029.85 1499.27,-1031.39 1497.95,-1024.52"/>
-</g>
-<!-- Node48&#45;&gt;Node26 -->
-<g id="edge114" class="edge"><title>Node48&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1421.15,-1020.09C1417.26,-1011.59 1412.88,-1001.88 1409,-993 1377.19,-920.155 1392.64,-887.556 1340,-828 1318.64,-803.837 1296.71,-817.527 1277,-792 1257.17,-766.313 1258,-753.951 1258,-721.5 1258,-721.5 1258,-721.5 1258,-658 1258,-617.947 1251.96,-570.372 1249.27,-551.171"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1418.08,-1021.78 1425.44,-1029.4 1424.44,-1018.86 1418.08,-1021.78"/>
-</g>
-<!-- Node48&#45;&gt;Node27 -->
-<g id="edge115" class="edge"><title>Node48&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1497.63,-1026.95C1550.31,-1013.52 1616.4,-996.293 1622,-993 1709.77,-941.354 1706.5,-897.435 1781,-828 1834.65,-777.998 1934.09,-764.345 1891,-705 1813.27,-597.953 1397.72,-515.422 1252.86,-489.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1496.46,-1023.63 1487.63,-1029.49 1498.18,-1030.42 1496.46,-1023.63"/>
-</g>
-<!-- Node48&#45;&gt;Node28 -->
-<g id="edge123" class="edge"><title>Node48&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M1497.59,-1026.74C1534.41,-1016.58 1576.07,-1003.57 1592,-993 1624.58,-971.385 1624.27,-956.277 1649,-926 1686.47,-880.13 1838.8,-747.935 1798,-705 1770.47,-676.036 1203.41,-664.417 992.828,-661.09"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1496.58,-1023.39 1487.86,-1029.4 1498.43,-1030.14 1496.58,-1023.39"/>
-</g>
-<!-- Node48&#45;&gt;Node30 -->
-<g id="edge124" class="edge"><title>Node48&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M1498.83,-1036.03C1581.75,-1026.64 1727.45,-1009.7 1852,-993 1865.72,-991.16 1880.51,-989.044 1894.32,-987.006"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1498.33,-1032.57 1488.79,-1037.17 1499.12,-1039.52 1498.33,-1032.57"/>
+<g id="edge140" class="edge"><title>Node48&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1793.49,-1053.68C1949.23,-1049.96 2322.5,-1029.85 2322.5,-922.5 2322.5,-922.5 2322.5,-922.5 2322.5,-177 2322.5,-92.429 1692.35,-72.4115 1483.12,-68.0959"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1793.03,-1050.19 1783.11,-1053.91 1793.18,-1057.19 1793.03,-1050.19"/>
+</g>
+<!-- Node48&#45;&gt;Node21 -->
+<g id="edge117" class="edge"><title>Node48&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1717.72,-1030.71C1702.98,-990.895 1672.11,-908.296 1644.5,-839 1638.08,-822.898 1634.82,-819.497 1629.5,-803 1618.09,-767.601 1610.5,-758.694 1610.5,-721.5 1610.5,-721.5 1610.5,-721.5 1610.5,-658 1610.5,-612.278 1569.88,-569.196 1550.53,-551.26"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1714.53,-1032.16 1721.28,-1040.32 1721.09,-1029.73 1714.53,-1032.16"/>
+</g>
+<!-- Node48&#45;&gt;Node22 -->
+<g id="edge118" class="edge"><title>Node48&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1793.25,-1049.31C1875.62,-1042.03 2010.23,-1027.05 2054.5,-1004 2098.97,-980.845 2132.5,-972.638 2132.5,-922.5 2132.5,-922.5 2132.5,-922.5 2132.5,-853.5 2132.5,-671.988 2038.16,-628.71 1888.5,-526 1863.4,-508.773 1830.76,-496.812 1806.67,-489.575"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1792.88,-1045.83 1783.22,-1050.18 1793.49,-1052.8 1792.88,-1045.83"/>
+</g>
+<!-- Node48&#45;&gt;Node23 -->
+<g id="edge125" class="edge"><title>Node48&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1672.36,-1036.37C1655.56,-1028.58 1638.16,-1017.98 1625.5,-1004 1572.81,-945.818 1625.19,-886.241 1562.5,-839 1487.69,-782.624 1233.52,-825.161 1142.5,-803 1066.8,-784.568 1051.64,-767.788 980.5,-736 928.532,-712.777 868.18,-682.929 839.421,-668.526"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1671.03,-1039.61 1681.6,-1040.41 1673.84,-1033.2 1671.03,-1039.61"/>
+</g>
+<!-- Node48&#45;&gt;Node25 -->
+<g id="edge126" class="edge"><title>Node48&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M1659.9,-1041.46C1593.84,-1028.53 1494.53,-1009.08 1437.99,-998.014"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1659.32,-1044.91 1669.8,-1043.4 1660.66,-1038.04 1659.32,-1044.91"/>
+</g>
+<!-- Node48&#45;&gt;Node35 -->
+<g id="edge137" class="edge"><title>Node48&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M1659.78,-1049.19C1503,-1036.7 1113.34,-1005.66 967.127,-994.011"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1659.52,-1052.68 1669.77,-1049.98 1660.08,-1045.7 1659.52,-1052.68"/>
 </g>
 <!-- Node48&#45;&gt;Node36 -->
-<g id="edge135" class="edge"><title>Node48&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M1365.06,-1038.85C1189.21,-1026.64 716.485,-993.811 552.752,-982.441"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1364.99,-1042.35 1375.21,-1039.56 1365.47,-1035.37 1364.99,-1042.35"/>
+<g id="edge138" class="edge"><title>Node48&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M1659.51,-1043.66C1620.62,-1035.82 1571.39,-1023.17 1530.5,-1004 1509.17,-993.999 1509.67,-980.972 1487.5,-973 1372.87,-931.781 1061.08,-954.313 940.5,-937 937.753,-936.606 934.95,-936.158 932.126,-935.67"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1659.19,-1047.17 1669.68,-1045.65 1660.54,-1040.3 1659.19,-1047.17"/>
 </g>
-<!-- Node48&#45;&gt;Node37 -->
-<g id="edge136" class="edge"><title>Node48&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M1365.12,-1034.95C1302.03,-1026.33 1205.03,-1011.65 1122,-993 1035.7,-973.616 936.798,-943.211 881.739,-925.533"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1364.95,-1038.46 1375.33,-1036.33 1365.89,-1031.52 1364.95,-1038.46"/>
-</g>
-<!-- Node48&#45;&gt;Node39 -->
-<g id="edge116" class="edge"><title>Node48&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M1426.44,-1019.44C1417.1,-979.491 1397.38,-897.054 1378,-828 1374.42,-815.238 1369.76,-800.608 1366.83,-791.584"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1423.06,-1020.36 1428.73,-1029.31 1429.88,-1018.77 1423.06,-1020.36"/>
+<!-- Node48&#45;&gt;Node38 -->
+<g id="edge119" class="edge"><title>Node48&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M1793.17,-1053.2C1873.79,-1050.04 2002.43,-1039.43 2032.5,-1004 2085.29,-941.785 2043.82,-829.258 2030.35,-797.223"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1792.97,-1049.7 1783.11,-1053.56 1793.23,-1056.7 1792.97,-1049.7"/>
 </g>
 <!-- Node48&#45;&gt;Node40 -->
-<g id="edge126" class="edge"><title>Node48&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M1461.89,-1023.36C1490.16,-1002.55 1531.26,-967.331 1552,-926 1562.88,-904.306 1564.16,-875.484 1563.8,-858.568"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1459.64,-1020.67 1453.57,-1029.35 1463.73,-1026.35 1459.64,-1020.67"/>
+<g id="edge128" class="edge"><title>Node48&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M1793.05,-1046.21C1823.11,-1039.36 1857.05,-1026.85 1880.5,-1004 1919.12,-966.366 1929.69,-898.714 1932.51,-869.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1792.09,-1042.83 1783.03,-1048.32 1793.54,-1049.68 1792.09,-1042.83"/>
 </g>
 <!-- Node48&#45;&gt;Node41 -->
-<g id="edge125" class="edge"><title>Node48&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M1492.73,-1026.06C1515.03,-1018.03 1539.76,-1007.09 1560,-993 1658.63,-924.344 1698.61,-768.628 1707.17,-730.197"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1491.3,-1022.85 1483,-1029.44 1493.6,-1029.47 1491.3,-1022.85"/>
+<g id="edge127" class="edge"><title>Node48&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M1793.52,-1046.44C1829.03,-1039.6 1871.91,-1027.03 1904.5,-1004 1964.12,-961.864 1977.34,-939.561 1999.5,-870 2003.68,-856.872 2006.81,-850.678 1999.5,-839 1992.96,-828.559 1832.8,-755.507 1776.7,-730.148"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1792.46,-1043.08 1783.24,-1048.3 1793.7,-1049.97 1792.46,-1043.08"/>
 </g>
 <!-- Node48&#45;&gt;Node43 -->
-<g id="edge134" class="edge"><title>Node48&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1365.41,-1038.05C1295.51,-1031.14 1191.47,-1017.13 1160,-993 1115.1,-958.569 1097.18,-888.565 1091.37,-858.612"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1365.17,-1041.54 1375.46,-1039.02 1365.84,-1034.58 1365.17,-1041.54"/>
+<g id="edge136" class="edge"><title>Node48&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M1660.04,-1045.64C1629.26,-1038.66 1593.96,-1026.2 1568.5,-1004 1526.07,-967.003 1506.9,-899.008 1500.31,-869.632"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1659.35,-1049.07 1669.86,-1047.72 1660.8,-1042.22 1659.35,-1049.07"/>
 </g>
 <!-- Node48&#45;&gt;Node45 -->
-<g id="edge137" class="edge"><title>Node48&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M1476.88,-1025.03C1493.95,-1016.74 1512.9,-1005.9 1528,-993 1584.5,-944.732 1604.59,-929.526 1628,-859 1632.34,-845.924 1635.44,-839.598 1628,-828 1615.82,-809.009 1593.4,-797.926 1573.07,-791.514"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1475.19,-1021.96 1467.63,-1029.37 1478.17,-1028.3 1475.19,-1021.96"/>
+<g id="edge139" class="edge"><title>Node48&#45;&gt;Node45</title>
+<path fill="none" stroke="midnightblue" d="M1761.74,-1035.09C1803.06,-1009.46 1863.96,-961.064 1847.5,-906 1837.29,-871.868 1829.83,-862.999 1803.5,-839 1782.38,-819.748 1752.57,-805.47 1732,-797.097"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1759.75,-1032.2 1753,-1040.36 1763.37,-1038.2 1759.75,-1032.2"/>
 </g>
 <!-- Node49 -->
 <g id="node49" class="node"><title>Node49</title>
 <g id="a_node49"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures. ">
-<polygon fill="white" stroke="red" points="506,-772.5 506,-791.5 650,-791.5 650,-772.5 506,-772.5"/>
-<text text-anchor="middle" x="578" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/functor.h</text>
+<polygon fill="white" stroke="red" points="1233.5,-778 1233.5,-797 1377.5,-797 1377.5,-778 1233.5,-778"/>
+<text text-anchor="middle" x="1305.5" y="-785" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node48&#45;&gt;Node49 -->
-<g id="edge117" class="edge"><title>Node48&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M1365.13,-1036.84C1304.69,-1029.47 1221.68,-1015.56 1198,-993 1143.06,-940.638 1212.34,-876.549 1154,-828 1116.08,-796.44 796.216,-786.811 650.187,-784.044"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1365.04,-1040.35 1375.38,-1038.05 1365.86,-1033.4 1365.04,-1040.35"/>
+<g id="edge120" class="edge"><title>Node48&#45;&gt;Node49</title>
+<path fill="none" stroke="midnightblue" d="M1682.88,-1035.54C1668.9,-1027.58 1654.47,-1017.09 1644.5,-1004 1598.22,-943.244 1653.42,-889.918 1596.5,-839 1564.97,-810.797 1453.2,-797.971 1377.72,-792.416"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1681.49,-1038.76 1691.95,-1040.4 1684.79,-1032.59 1681.49,-1038.76"/>
 </g>
 <!-- Node50 -->
 <g id="node50" class="node"><title>Node50</title>
 <g id="a_node50"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
-<polygon fill="white" stroke="black" points="1430.5,-895.5 1430.5,-925.5 1543.5,-925.5 1543.5,-895.5 1430.5,-895.5"/>
-<text text-anchor="start" x="1438.5" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="1487" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">/memory.h</text>
+<polygon fill="white" stroke="black" points="1725,-906.5 1725,-936.5 1838,-936.5 1838,-906.5 1725,-906.5"/>
+<text text-anchor="start" x="1733" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1781.5" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">/memory.h</text>
 </a>
 </g>
 </g>
 <!-- Node48&#45;&gt;Node50 -->
-<g id="edge127" class="edge"><title>Node48&#45;&gt;Node50</title>
-<path fill="none" stroke="midnightblue" d="M1441.74,-1020.12C1453.17,-992.682 1471.76,-948.086 1481.16,-925.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1438.5,-1018.8 1437.89,-1029.37 1444.96,-1021.49 1438.5,-1018.8"/>
+<g id="edge129" class="edge"><title>Node48&#45;&gt;Node50</title>
+<path fill="none" stroke="midnightblue" d="M1736.24,-1031.12C1747.67,-1003.68 1766.26,-959.086 1775.66,-936.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1733,-1029.8 1732.39,-1040.37 1739.46,-1032.49 1733,-1029.8"/>
 </g>
 <!-- Node49&#45;&gt;Node16 -->
-<g id="edge120" class="edge"><title>Node49&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M560.006,-765.288C551.56,-757.193 541.865,-746.773 535,-736 438.179,-584.068 299.898,-480.387 421,-347 447.816,-317.463 708.078,-306.747 827.114,-303.369"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="557.863,-768.072 567.589,-772.273 562.605,-762.923 557.863,-768.072"/>
+<g id="edge123" class="edge"><title>Node49&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M1326.54,-771.761C1337.4,-762.817 1349.59,-750.366 1355.5,-736 1360.74,-723.258 1360.43,-717.864 1355.5,-705 1285.53,-522.518 1131.47,-560.482 1061.5,-378 1056.57,-365.136 1052.93,-357.787 1061.5,-347 1078.17,-326.021 1145.77,-313.95 1196.52,-307.69"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1324.38,-769.003 1318.61,-777.89 1328.66,-774.54 1324.38,-769.003"/>
 </g>
-<!-- Node49&#45;&gt;Node22 -->
-<g id="edge121" class="edge"><title>Node49&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M544.032,-768.905C449.455,-732.818 190,-616.378 190,-425 190,-425 190,-425 190,-361.5 190,-314.976 233.502,-274.943 260.351,-254.665"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="542.842,-772.197 553.435,-772.434 545.302,-765.644 542.842,-772.197"/>
+<!-- Node49&#45;&gt;Node33 -->
+<g id="edge121" class="edge"><title>Node49&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M1296.47,-768.713C1291.18,-758.287 1284.58,-745.301 1279.65,-735.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1293.4,-770.402 1301.05,-777.734 1299.64,-767.233 1293.4,-770.402"/>
 </g>
 <!-- Node49&#45;&gt;Node34 -->
-<g id="edge118" class="edge"><title>Node49&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M589.453,-763.963C595.508,-754.956 602.851,-744.034 608.573,-735.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="586.406,-762.223 583.731,-772.475 592.215,-766.129 586.406,-762.223"/>
-</g>
-<!-- Node49&#45;&gt;Node35 -->
-<g id="edge119" class="edge"><title>Node49&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M617.438,-769.609C651.042,-759.903 699.468,-745.916 735.45,-735.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="616.151,-766.338 607.515,-772.475 618.093,-773.063 616.151,-766.338"/>
+<g id="edge122" class="edge"><title>Node49&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1269.17,-774.633C1235.43,-763.612 1185.16,-747.193 1149.45,-735.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1268.48,-778.091 1279.07,-777.869 1270.66,-771.437 1268.48,-778.091"/>
 </g>
 <!-- Node50&#45;&gt;Node2 -->
-<g id="edge129" class="edge"><title>Node50&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M1449.31,-890.803C1406.41,-868.982 1334.8,-830.902 1277,-792 1184.68,-729.859 1083.3,-640.977 1051.85,-612.871"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1447.77,-893.946 1458.27,-895.337 1450.93,-887.7 1447.77,-893.946"/>
+<g id="edge131" class="edge"><title>Node50&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M1748.43,-900.908C1715.17,-879.941 1664,-844.093 1629.5,-803 1579.77,-743.775 1607.27,-699.267 1548.5,-649 1526.33,-630.036 1495.78,-618.955 1469.66,-612.537"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1746.96,-904.118 1757.31,-906.419 1750.66,-898.171 1746.96,-904.118"/>
 </g>
-<!-- Node50&#45;&gt;Node28 -->
-<g id="edge130" class="edge"><title>Node50&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M1445.13,-891.237C1330.79,-841.364 1016.34,-704.202 934.616,-668.556"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1444.04,-894.581 1454.61,-895.371 1446.84,-888.165 1444.04,-894.581"/>
+<!-- Node50&#45;&gt;Node23 -->
+<g id="edge132" class="edge"><title>Node50&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1747.56,-901.592C1711.33,-882.369 1651.67,-853.424 1596.5,-839 1435.8,-796.985 1386.27,-840.7 1224.5,-803 1186.55,-794.157 1179.39,-784.537 1142.5,-772 1090.18,-754.22 1073.03,-760.491 1023.5,-736 1002.38,-725.558 1001.7,-715.27 980.5,-705 944.435,-687.532 900.365,-675.683 867.941,-668.547"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1746.22,-904.848 1756.69,-906.495 1749.54,-898.681 1746.22,-904.848"/>
 </g>
-<!-- Node50&#45;&gt;Node39 -->
-<g id="edge128" class="edge"><title>Node50&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M1469.09,-887.275C1455.19,-870.451 1435.13,-847.065 1416,-828 1402.47,-814.515 1385.54,-800.308 1374.75,-791.549"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1466.71,-889.898 1475.76,-895.416 1472.13,-885.463 1466.71,-889.898"/>
+<!-- Node50&#45;&gt;Node38 -->
+<g id="edge130" class="edge"><title>Node50&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M1848.33,-912.274C1903.98,-904.147 1977.54,-890.021 1999.5,-870 2020.87,-850.518 2025.36,-813.759 2026.28,-797.097"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1847.57,-908.847 1838.16,-913.722 1848.56,-915.777 1847.57,-908.847"/>
 </g>
 <!-- Node50&#45;&gt;Node40 -->
-<g id="edge131" class="edge"><title>Node50&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M1511.11,-888.883C1522.66,-879.005 1536.19,-867.429 1546.54,-858.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1508.82,-886.236 1503.49,-895.396 1513.37,-891.556 1508.82,-886.236"/>
+<g id="edge133" class="edge"><title>Node50&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M1823.81,-902.407C1848.08,-892.029 1878.09,-879.195 1900.58,-869.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1822.3,-899.246 1814.48,-906.396 1825.05,-905.682 1822.3,-899.246"/>
 </g>
 <!-- Node50&#45;&gt;Node43 -->
-<g id="edge132" class="edge"><title>Node50&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1420.34,-898.613C1343.4,-886.048 1218.19,-865.599 1145.73,-853.765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1419.97,-902.098 1430.4,-900.256 1421.09,-895.19 1419.97,-902.098"/>
+<g id="edge134" class="edge"><title>Node50&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M1714.87,-905.251C1666.05,-894.078 1600.5,-879.075 1554.19,-868.475"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1714.18,-908.683 1724.71,-907.503 1715.74,-901.86 1714.18,-908.683"/>
 </g>
 <!-- Node50&#45;&gt;Node45 -->
-<g id="edge133" class="edge"><title>Node50&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M1486.79,-885.401C1487.39,-868.746 1489.72,-846.372 1497,-828 1502.57,-813.95 1513.61,-800.313 1521.38,-791.804"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1483.29,-885.357 1486.6,-895.419 1490.29,-885.485 1483.29,-885.357"/>
+<g id="edge135" class="edge"><title>Node50&#45;&gt;Node45</title>
+<path fill="none" stroke="midnightblue" d="M1789.42,-896.487C1793.57,-879.429 1796.03,-856.532 1786.5,-839 1775.32,-818.451 1751.78,-804.979 1733.47,-797.159"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1786.01,-895.683 1786.71,-906.254 1792.76,-897.554 1786.01,-895.683"/>
 </g>
 </g>
 </svg>
diff --git a/docs/api/doxygen/c__runtime__api_8h_source.html b/docs/api/doxygen/c__runtime__api_8h_source.html
index f865a61..942f640 100644
--- a/docs/api/doxygen/c__runtime__api_8h_source.html
+++ b/docs/api/doxygen/c__runtime__api_8h_source.html
@@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="unionTVMValue_html_a93e4b1809f77d08e5fb68384cd4c9088"><div class="ttname"><a href="unionTVMValue.html#a93e4b1809f77d08e5fb68384cd4c9088">TVMValue::v_ctx</a></div><div class="ttdeci">TVMContext v_ctx</div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:150</div></div>
 <div class="ttc" id="structTVMByteArray_html_ab124e3227a75e0e4d55452f675f4fde1"><div class="ttname"><a href="structTVMByteArray.html#ab124e3227a75e0e4d55452f675f4fde1">TVMByteArray::data</a></div><div class="ttdeci">const char * data</div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:158</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_a775383bcd8c0237e36bdf0c9654d62c3"><div class="ttname"><a href="c__runtime__api_8h.html#a775383bcd8c0237e36bdf0c9654d62c3">TVMGetLastError</a></div><div class="ttdeci">const char * TVMGetLastError(void)</div><div class="ttdoc">return str message of the last error all function in this file will return 0 when success and -1 when...</div></div>
-<div class="ttc" id="namespacetopi_html_a649c66231bc50f3ed98ac8bb6b6e2518"><div class="ttname"><a href="namespacetopi.html#a649c66231bc50f3ed98ac8bb6b6e2518">topi::shape</a></div><div class="ttdeci">Tensor shape(const Tensor &amp;src, DataType dtype, const std::string name=&quot;T_shape&quot;, const std::string tag=kInjective)</div><div class="ttdoc">Get the shape of input tensor. </div><div class="ttdef"><b>Definition:</b> transform.h:1338</div></div>
+<div class="ttc" id="namespacetopi_html_a649c66231bc50f3ed98ac8bb6b6e2518"><div class="ttname"><a href="namespacetopi.html#a649c66231bc50f3ed98ac8bb6b6e2518">topi::shape</a></div><div class="ttdeci">Tensor shape(const Tensor &amp;src, DataType dtype, const std::string name=&quot;T_shape&quot;, const std::string tag=kInjective)</div><div class="ttdoc">Get the shape of input tensor. </div><div class="ttdef"><b>Definition:</b> transform.h:1375</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_abe571a96309678ac2b510df00815fb56"><div class="ttname"><a href="c__runtime__api_8h.html#abe571a96309678ac2b510df00815fb56">TVMDeviceFreeDataSpace</a></div><div class="ttdeci">int TVMDeviceFreeDataSpace(TVMContext ctx, void *ptr)</div><div class="ttdoc">Free a data space on device. </div></div>
 <div class="ttc" id="structTVMByteArray_html"><div class="ttname"><a href="structTVMByteArray.html">TVMByteArray</a></div><div class="ttdoc">Byte array type used to pass in byte array When kTVMBytes is used as data type. </div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:157</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_ab1d5f6b7945e1410602a8a057fda5757"><div class="ttname"><a href="c__runtime__api_8h.html#ab1d5f6b7945e1410602a8a057fda5757">TVMStreamHandle</a></div><div class="ttdeci">void * TVMStreamHandle</div><div class="ttdoc">The stream that is specific to device can be NULL, which indicates the default one. </div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:172</div></div>
diff --git a/docs/api/doxygen/classes.html b/docs/api/doxygen/classes.html
index ef8e14e..79400d8 100644
--- a/docs/api/doxygen/classes.html
+++ b/docs/api/doxygen/classes.html
@@ -90,158 +90,160 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|& [...]
 <table class="classindex">
 <tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html">Conv3DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransform.html">IntConstraintsTransform</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternConstructor.html">Pat [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html">Conv3DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html">IntConstraintsTransformNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternConstructorNode. [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html">AdaptivePool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html">ConvGemmWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Integer.html">Integer</a> (<a [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html">AdaptivePool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html">ConvWinogradWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterC [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Add.html">Add</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html">CorrelationAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterClosureObj.html">InterpreterClosureObj</a> (<a class="el" href="namespac [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html">CropAndResizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IntImm.html">IntImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&# [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADT.html">ADT</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternTuple.html">PatternTuple</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1StmtNode.html">StmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#16 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADTObj.html">ADTObj</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSet.html">IntSet</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternTupleNode.html">PatternTupleNode</a> (<a class="el" href="namespacetvm_1_1relay [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AffineGridAttrs.html">AffineGridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a> (<a class="el" href="namesp [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Allocate.html">Allocate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSetNode.html">IntSetNode</a> (<a class="el" href="namespacetvm_1_1arith.html" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateNode.html">AllocateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IRModule.html">IRModule</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#1 [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocStorageAttrs.html">AllocStorageAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePattern.html">DataTypePattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IRModuleNode.html">IRModuleNode</a> (<a class="el" href="nam [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocTensorAttrs.html">AllocTensorAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html">DataTypePatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1IterAdapter.html">IterAdapter</a> (<a class [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPattern.html">AltPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html">DebugAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVar.html">IterVar</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm: [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPatternNode.html">AltPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html">DeformableConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttr.html">IterVarAttr</a> (<a class="el" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html">DenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttrNode.html">IterVarAttrNode</a> (<a class="el" href="namespacetvm_1_1te. [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1And.html">And</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DenseMapNode.html">DenseMapNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVarNode.html">IterVarNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AndNode.html">AndNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html">DeviceAPI</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html">IterVarRelation</a> (<a class="el" href="namespacetvm_1_1te.html" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Any.html">Any</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html">DeviceCopyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelationNode.html">IterVarRelationNode</a> (<a class="el" href="namespacetvm_1_1t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160; [...]
-</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html">PReluAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1SubPixelAttrs.html">SubPixelAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArangeAttrs.html">ArangeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">DFPatternCallback</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> (<a class="el" href="namespacetvm.html"> [...]
+</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html">ConvGemmWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterClosureObj.html">InterpreterClosureObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternMutator.h [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html">ConvWinogradWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternNode.html">Patte [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html">AdaptivePool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html">CorrelationAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html">IntGroupBoundsNode< [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html">AdaptivePool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html">CropAndResizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IntImm.html">IntImm</a> (<a class="el" href="name [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Add.html">Add</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1StridedSliceAttrs.html">StridedSliceAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm: [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSet.html">IntSet</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVarNode.html">PatternVarNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::re [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADT.html">ADT</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.htm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADTObj.html">ADTObj</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSetNode.html">IntSetNode</a> (<a class="el" href="namespacetvm_1_1ari [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AffineGridAttrs.html">AffineGridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IRModule.html">IRModule</a> (<a class="el" href="namespacetvm.html">tvm< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Allocate.html">Allocate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePattern.html">DataTypePattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IRModuleNode.html">IRModuleNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)& [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateNode.html">AllocateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html">DataTypePatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1IterAdapter.html">IterAdapter</a> (<a class="el" href="nam [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocStorageAttrs.html">AllocStorageAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html">DebugAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVar.html">IterVar</a> (<a class="el" href="namespacetvm_1_ [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocTensorAttrs.html">AllocTensorAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html">DeformableConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttr.html">IterVarAttr</a> (<a class [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPattern.html">AltPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html">DenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttrNode.html">IterVarAttrNode</a> (<a class="el" href="namespacetvm_1_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPatternNode.html">AltPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DenseMapNode.html">DenseMapNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVarNode.html">IterVarNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</ [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgsortAttrs.html">ArgsortAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">DFPatternCallbackNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html">L2NormalizeAttrs</a> (<a  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html">DFPatternFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html">LayerNormAttrs</a> (<a class="el" href="namesp [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1ArrayHandler.html">SimpleObjAllocator::ArrayHandler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ArrayNode.html">ArrayNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternNode.html">DFPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutAxis.html">LayoutAxis</a> (<a class="el" href="namespacetvm_1_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmt.html">AssertStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternVisitor.html">DFPatternVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutNode.html">LayoutNode</a> (<a class="el" href="namespacetvm_1_1tir [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html">AssertStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrs.html">DictAttrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html">LayoutTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LE.html">LE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&# [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocVisitor.html">AttrDocVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html">DilateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html">LeakyReluAttrs</a> (<a class="el" href=" [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1AttrError.html">AttrError</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html">Dilation2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1LENode.html">LENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&# [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrExistVisitor.html">AttrExistVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Div.html">Div</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Let.html">Let</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DivNode.html">DivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Let.html">Let</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPattern.html">DominatorPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetNode.html">LetNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm: [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPatternNode.html">DominatorPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetNode.html">LetNode</a> (<a class="el" href= [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1TensorComputeOpNode.html">TensorComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html">DropoutAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmt.html">LetStmt</a> (<a class="el" href="namespacetvm_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html">AttrNonDefaultVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html">LetStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html">QuantizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay_1_1qnn.html">tvm::relay::qnn</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1TensorIntrin.html">TensorIntrin</a> (<a class="el" href= [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Load.html">Load</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&# [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1TensorIntrinCall.html">TensorIntrinCall</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNormalVisitor.html">AttrNormalVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFunc.html">EnvFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoadNode.html">LoadNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#16 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPattern.html">AttrPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFuncNode.html">EnvFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html">LRNAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#16 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html">AttrPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQ.html">EQ</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LT.html">LT</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&# [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMap.html">AttrRegistryMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQNode.html">EQNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LTNode.html">LTNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html">AttrRegistryMapContainerMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Error.html">Error</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div> [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1RangeNode.html">RangeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TensorTypeNode.html">TensorTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1Attrs.html">Attrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1ErrorBuilder.html">ErrorBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Rebase.html">Rebase</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrsNode.html">AttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ErrorReporter.html">ErrorReporter</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Map.html">Map</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html">AttrsSEqualVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Evaluate.html">Evaluate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MapNode.html">MapNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&# [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html">AttrsSHashVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html">EvaluateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> (<a class="el" href="namespacetvm_1_1re [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmt.html">AttrStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html">Executable</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MatchNode.html">MatchNode</a> (<a class="el" href="namespacetvm_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html">AttrStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html">ExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Max.html">Max</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm: [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1ExprDeepEqual.html">ExprDeepEqual</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MaxNode.html">MaxNode</a> (<a class="el"  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html">MaxPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool1DAttrs.html">AvgPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html">MaxPool2DAttrs</a> (<a class="el" href="nam [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool2DAttrs.html">AvgPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href=" [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool3DAttrs.html">AvgPool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html">DeviceAPI</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html">IterVarRelation</a> (<a class="el" href="namespacetvm_1_1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1And.html">And</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html">DeviceCopyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelationNode.html">IterVarRelationNode</a> (<a class="el" href="namespacetvm_1_1t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AndNode.html">AndNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160; [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1PrimExprNode.html">PrimExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Target.html">Target</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Any.html">Any</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">DFPatternCallback</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1PrimFunc.html">PrimFunc</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">DFPatternCallbackNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html">L2NormalizeAttrs</a> (<a class="el" href=" [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArangeAttrs.html">ArangeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html">DFPatternFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html">LayerNormAttrs</a> (<a class="el" href= [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgsortAttrs.html">ArgsortAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a c [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternNode.html">DFPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutAxis.html">LayoutAxis</a> (<a class="el" href="namespacetvm_1_1tir.htm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1ArrayHandler.html">SimpleObjAllocator::ArrayHandler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternVisitor.html">DFPatternVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutNode.htm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ArrayNode.html">ArrayNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrs.html">DictAttrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html">LayoutTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.htm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmt.html">AssertStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LE.html">LE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html">AssertStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html">DilateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html">LeakyReluAttrs</a> (<a class="el" href="namespace [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html">Dilation2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1LENode.html">LENode</a> (<a class="el" href="namespacetvm_1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocVisitor.html">AttrDocVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Div.html">Div</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Let.html">Let</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#1 [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1AttrError.html">AttrError</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DivNode.html">DivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Let.html">Let</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowsp [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1TensorIntrin.html">TensorIntrin</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrExistVisitor.html">AttrExistVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPattern.html">DominatorPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetNode.html">LetNode</a> (<a class="el" href="name [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPatternNode.html">DominatorPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetNode.html">LetNode</a> (<a class="el" href="namespacetvm_1_1relay.html"> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html">DropoutAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmt.html">LetStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1TensorIntrinNode.html">TensorIntrinNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html">LetStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1TensorNode.html">TensorNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Load.html">Load</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Ramp.html">Ramp</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html">AttrNonDefaultVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFunc.html">EnvFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoadNode.html">LoadNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir< [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFuncNode.html">EnvFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html">LRNAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNormalVisitor.html">AttrNormalVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQ.html">EQ</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LT.html">LT</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;& [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPattern.html">AttrPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQNode.html">EQNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LTNode.html">LTNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160; [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html">AttrPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Error.html">Error</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1RebaseNode.html">RebaseNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1TransposeAttrs.html">TransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMap.html">AttrRegistryMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1ErrorBuilder.html">ErrorBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RecClosure.html">RecClosure</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html">AttrRegistryMapContainerMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ErrorReporter.html">ErrorReporter</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Map.html">Map</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td va [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1Attrs.html">Attrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Evaluate.html">Evaluate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MapNode.html">MapNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" hr [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrsNode.html">AttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html">EvaluateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html">AttrsSEqualVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html">Executable</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MatchNode.html">MatchNode</a> (<a c [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html">AttrsSHashVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html">ExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Max.html">Max</a> (<a class="el" href="namespacetv [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmt.html">AttrStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1ExprDeepEqual.html">ExprDeepEqual</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MaxNode.html">MaxNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)& [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html">AttrStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html">MaxPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1rela [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html">MaxPool2DAttrs</ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool3DA [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool1DAttrs.html">AvgPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool2DAttrs.html">AvgPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfoNode.html">MemoryInfoNode</a> (<a class="el" href="namespacetvm.html"> [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool3DAttrs.html">AvgPool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html">MeshgridAttrs</a> (<a class="el" href="names [...]
 <tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfoNode.html">MemoryInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RefRead.html">RefRead</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160; [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html">MeshgridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RefReadNode.html">RefReadNode</a> (<a class="el" href="namespacetvm [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPattern.html">ExprPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Min.html">Min</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1BaseComputeOpNode.html">BaseComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPatternNode.html">ExprPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MinNode.html">MinNode</a> (<a class="el" href="namespacetvm_1_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExpr.html">BaseExpr</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html">ExprRewriter</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html">MirrorPadAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay< [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExprNode.html">BaseExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html">MixedModeMutator</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::rel [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor.html">MixedModeVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFuncNode.html">BaseFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOp.html">ExternOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mod.html">Mod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign= [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorType.html">BaseTensorType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOpNode.html">ExternOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ModNode.html">ModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&# [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorTypeNode.html">BaseTensorTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RelayExprNode.html">RelayExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html">TVMPODValue_</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm: [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueEqual.html">BaseValueEqual</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RelayNode.html">RelayNode</a> (<a class="el" href="namespacetvm_1_1relay.html [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueHash.html">BaseValueHash</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FeatureSet.html">FeatureSet</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::a [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchNormAttrs.html">BatchNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html">FIFOBufferAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Module.html">Module</a> (<a class="el" href="namespace [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BiasAddAttrs.html">BiasAddAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SeqStmt_1_1Flattener.html">SeqStmt::Flattener</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html">ModuleNode</a> (<a class="el" href="name [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayout.html">BijectiveLayout</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mul.html">Mul</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayoutNode.html">BijectiveLayoutNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MulNode.html">MulNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)& [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryConv2DAttrs.html">BinaryConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDiv.html">FloorDiv</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html">MultiBoxPriorAttrs</a> (<a class="el" href="n [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryDenseAttrs.html">BinaryDenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html">FloorDivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html">MultiBoxTransformLocAttrs</a> (< [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html">BinaryOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorMod.html">FloorMod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;N&#16 [...]
-</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ResizeAttrs.html">ResizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypeDataNode.html">TypeDataNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BitPackAttrs.html">BitPackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorModNode.html">FloorModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html">ReverseAttrs</a> (<a class="el" href="namespacetvm_1_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1Bool.html">Bool</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1For.html">For</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray.html">NDArray</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="to [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Broadcast.html">Broadcast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ForNode.html">ForNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html">NdarraySizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tv [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html">BroadcastNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html">StringObj::FromStd</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NE.html">NE</a> (<a class="el" href="namespacetvm_1_1t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Function.html">Function</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NENode.html">NENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160; [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferLoad.html">BufferLoad</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FunctionNode.html">FunctionNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NodeFunctor.html">NodeFunctor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html">BufferLoadNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FuncType.html">FuncType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08_4.html">NodeFunctor&lt; R(const ObjectRef &amp;n, [...]
-</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1TypeIndex.html">TypeIndex</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FuncTypeNode.html">FuncTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html">NonMaximumSuppressionAttrs</a> (<a class="el" href="namespacetvm_1_1r [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealize.html">BufferRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Fuse.html">Fuse</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Not.html">Not</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html">BufferRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1FuseNode.html">FuseNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NotNode.html">NotNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStore.html">BufferStore</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;G&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1NullOptType.html">NullOptType</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html">ScatterAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01DataType_01_4.html">TypeName&lt; DataType &gt; [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html">BufferStoreNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;O&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Schedule.html">Schedule</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01double_01_4.html">TypeName&lt; double &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPattern.html">ExprPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Min.html">Min</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RefWrite.html">RefWrite</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)& [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPatternNode.html">ExprPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MinNode.html">MinNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RefWriteNode.html">RefWriteNode</a> (<a class="el" href="namespacetvm_1_1relay [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html">ExprRewriter</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html">MirrorPadAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1BaseComputeOpNode.html">BaseComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html">MixedModeMutator</a> (<a class="el" href="namespacet [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExpr.html">BaseExpr</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor.html">MixedModeVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExprNode.html">BaseExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOp.html">ExternOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mod.html">Mod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOpNode.html">ExternOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ModNode.html">ModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFuncNode.html">BaseFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RelayRefType.html">RelayRefType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structTVMOpParam.html">TVMOpParam</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorType.html">BaseTensorType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RelayRefTypeNode.html">RelayRefTypeNode</a> (<a class="el" href="namespacetvm.html">tv [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorTypeNode.html">BaseTensorTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FeatureSet.html">FeatureSet</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a> (<a class="el" href="namespacetvm_1_1arith.ht [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueEqual.html">BaseValueEqual</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html">FIFOBufferAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Module.html">Module</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm:: [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueHash.html">BaseValueHash</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SeqStmt_1_1Flattener.html">SeqStmt::Flattener</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html">ModuleNode</a> (<a class="el" href="namespacetvm_1_1runtime.html [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchNormAttrs.html">BatchNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mul.html">Mul</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</ [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BiasAddAttrs.html">BiasAddAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MulNode.html">MulNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&# [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayout.html">BijectiveLayout</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDiv.html">FloorDiv</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html">MultiBoxPriorAttrs</a> (<a class="el" href="namespacetvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayoutNode.html">BijectiveLayoutNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html">FloorDivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html">MultiBoxTransformLocAttrs</a> (<a [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryConv2DAttrs.html">BinaryConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorMod.html">FloorMod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ReverseIterAdapter.html">ReverseIterAdapter</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypeConstraint.html">TypeConstraint</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryDenseAttrs.html">BinaryDenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorModNode.html">FloorModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html">ReverseSequenceAttrs</a> (<a class="e [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html">BinaryOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1For.html">For</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray.html">NDArray</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&# [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BitPackAttrs.html">BitPackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ForNode.html">ForNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html">NdarraySizeAttrs</a> (<a class="el" href="namespacetvm_1_1r [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1Bool.html">Bool</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html">StringObj::FromStd</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NE.html">NE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Broadcast.html">Broadcast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Function.html">Function</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NENode.html">NENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160; [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html">TypedEnvFunc&lt; R(Args...)&gt;</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html">BroadcastNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FunctionNode.html">FunctionNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NodeFunctor.html">NodeFunctor</a> (<a class="el" href="namespacetvm.html">tvm</a> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FuncType.html">FuncType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08_4.html">NodeFunctor&lt; R(const ObjectRef &amp;n, Args...)&gt;</a [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferLoad.html">BufferLoad</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FuncTypeNode.html">FuncTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html">NonMaximumSuppressionAttrs</a> (<a class="el" href="namespacetvm_1_1r [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html">BufferLoadNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Fuse.html">Fuse</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Not.html">Not</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1FuseNode.html">FuseNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NotNode.html">NotNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealize.html">BufferRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;G&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1NullOptType.html">NullOptType</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ScheduleNode.html">ScheduleNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypeMutator.html">TypeMutator</a> (<a class="el" href="namespacetvm.html">tvm</a [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html">BufferRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;O&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Select.html">Select</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1TypeName.html">TypeName</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStore.html">BufferStore</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html">GatherAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SelectNode.html">SelectNode</a> (<a class="el" href="namespacetvm_1_1tir.html"> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html">BufferStoreNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GE.html">GE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjAllocatorBase.html">ObjAllocatorBase</a> (<a class="el" href="namespacetvm_1_1runtime.htm [...]
 <tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html">GatherAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ScheduleNode.html">ScheduleNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01int_01_4.html">TypeName&lt; int &gt;</a> (<a class="el" href=" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GE.html">GE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjAllocatorBase.html">ObjAllocatorBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Select.html">Select</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Call.html">Call</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GenericFunc.html">GenericFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Call.html">Call</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GenericFuncNode.html">GenericFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectEqual.html">ObjectEqual</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CallNode.html">CallNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GENode.html">GENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectHash.html">ObjectHash</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallNode.html">CallNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html">GetValidCountsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html">ObjectPtr</a> (<a class="el" href="namespac [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallPattern.html">CallPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html">GlobalPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrEqual.html">ObjectPtrEqual</a> (<a class="el" h [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallPatternNode.html">CallPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalTypeVar.html">GlobalTypeVar</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrHash.html">ObjectPtrHash</a> (<a class="el" href="namespacetvm_1_1runtime [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalTypeVarNode.html">GlobalTypeVarNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> (<a class="el" href="namespacetvm_1_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Cast.html">Cast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVar.html">GlobalVar</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker.html">ObjectTypeChecker</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#16 [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CastAttrs.html">CastAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVarNode.html">GlobalVarNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Array_3_01T_01_4_01_4.html">ObjectTypeChecker&lt; Array&lt; T &gt; &gt; [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CastHintAttrs.html">CastHintAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html">GridSampleAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Map_3_01K_00_01V_01_4_01_4.html"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CastNode.html">CastNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html">GroupNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html">OnDeviceAttrs</a> (<a class="el" href="namespacetvm_1_1r [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Clause.html">Clause</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GT.html">GT</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html">OneHotAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;& [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ClauseNode.html">ClauseNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GTNode.html">GTNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Op.html">Op</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign=" [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1GenericFunc.html">GenericFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1SelectSEqualReduce_3_01T_00_01TraitName_00_01false_01_4.html">SelectSEqualReduce&lt; T, TraitName, [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1GenericFuncNode.html">GenericFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectEqual.html">ObjectEqual</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1SelectSHashReduce.html">SelectSHashReduce</a> (<a class="el" href="namespacetvm_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Call.html">Call</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GENode.html">GENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectHash.html">ObjectHash</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Call.html">Call</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html">GetValidCountsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html">ObjectPtr</a> (<a class="el" href="namespacetvm_1_1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CallNode.html">CallNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html">GlobalPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrEqual.html">ObjectPtrEqual</a> (<a class="el" href="namespa [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallNode.html">CallNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalTypeVar.html">GlobalTypeVar</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrHash.html">ObjectPtrHash</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::ru [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallPattern.html">CallPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalTypeVarNode.html">GlobalTypeVarNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> (<a class="el" href="namespacetvm_1_1runtime.html">tv [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallPatternNode.html">CallPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVar.html">GlobalVar</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker.html">ObjectTypeChecker</a> (<a class="el" href="namespacetvm_1_1runtime [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVarNode.html">GlobalVarNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Array_3_01T_01_4_01_4.html">ObjectTypeChecker&lt; Ar [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Cast.html">Cast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html">GridSampleAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Map_3_01K_00_01V_01_4_01_4.html">ObjectTypeChecker&lt; Map [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CastAttrs.html">CastAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html">GroupNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html">OnDeviceAttrs</a> (<a class="el" href="namespac [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CastHintAttrs.html">CastHintAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GT.html">GT</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html">OneHotAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::re [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CastNode.html">CastNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GTNode.html">GTNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Op.html">Op</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a cl [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Clause.html">Clause</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;H&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1OpAttrMap.html">OpAttrMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ShapePatternNode.html">ShapePatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypeVarNode.html">TypeVarNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ClauseNode.html">ClauseNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Operation.html">Operation</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SHashReducer.html">SHashReducer</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160; [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ClipAttrs.html">ClipAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">SEqualReducer::Handler</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1OperationNode.html">OperationNode</a> (<a class="el" href="namespacetvm_1_1te.h [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ClipAttrs.html">ClipAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;H&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1OpAttrMap.html">OpAttrMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ShapeOfAttrs.html">ShapeOfAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Closure.html">Closure</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Operation.html">Operation</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ShapePattern.html">ShapePattern</a> (<a class="el" href="namespacetvm_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1ClosureObj.html">ClosureObj</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">SEqualReducer::Handler</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1OperationNode.html">OperationNode</a> (<a class="el" hre [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CmpOpNode.html">CmpOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html">SHashReducer::Handler</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpImplementation.html">OpImplementation</a> (<a class="el" href="namespacetvm_1_1rela [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Closure.html">Closure</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html">SHashReducer::Handler</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpImplementation.html">OpImplementation</a> (<a class="el" hr [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1ClosureObj.html">ClosureObj</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1Handler.html">SimpleObjAllocator::Handler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpImplementa [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CmpOpNode.html">CmpOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structdmlc_1_1serializer_1_1Handler_3_01DLContext_01_4.html">Handler&lt; DLContext &gt;</a> (<a class="el" href="namespacedmlc_1_1serializer.html">dmlc::serializer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpNode.html">OpNode</a> (<a class="el" hre [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CommReducer.html">CommReducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structdmlc_1_1serializer_1_1Handler_3_01DLDataType_01_4.html">Handler&lt; DLDataType &gt;</a> (<a class="el" href="namespacedmlc_1_1serializer.html">dmlc::serializer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpRegEntry.html">OpRegEntry</a> (<a  [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CommReducer.html">CommReducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1Handler.html">SimpleObjAllocator::Handler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpImplementationNode.html">OpImplement [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html">CommReducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structdmlc_1_1serializer_1_1Handler_3_01DLContext_01_4.html">Handler&lt; DLContext &gt;</a> (<a class="el" href="namespacedmlc_1_1serializer.html">dmlc::serializer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpNode.html">OpNode</a> (<a cl [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CompilerAttrs.html">CompilerAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structdmlc_1_1serializer_1_1Handler_3_01DLDataType_01_4.html">Handler&lt; DLDataType &gt;</a> (<a class="el" href="namespacedmlc_1_1serializer.html">dmlc::serializer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpRegEntry.html">OpRegEnt [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOp.html">ComputeOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1HybridOp.html">HybridOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpSpecialization.html">OpSpecialization</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::re [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html">ComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1HybridOpNode.html">HybridOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpSpecializationNode.html">OpSpecializationNode</a> (<a class="el" href="namespacetv [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConcatenateAttrs.html">ConcatenateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpStrategy.html">OpStrategy</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SizeVar.html">SizeVar</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Var.html">Var</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Constant.html">Constant</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpStrategyNode.html">OpStrategyNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SizeVarNode.html">SizeVarNode</a> (<a class="el" href="namespacetvm_1_1tir [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantNode.html">ConstantNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Id.html">Id</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::ru [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantPattern.html">ConstantPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IdNode.html">IdNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Or.html">Or</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>) [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantPatternNode.html">ConstantPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1If.html">If</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1OrNode.html">OrNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm:: [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IfNode.html">IfNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;& [...]
-</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1SoftmaxAttrs.html">SoftmaxAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1VirtualMachine.html">VirtualMachine</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IfThenElse.html">IfThenElse</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SourceName.html">SourceName</a> (<a class="el" href="namespacetvm.htm [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html">ConstIntBoundNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html">IfThenElseNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1PackedFunc.html">PackedFunc</a> (<a class="el" href="names [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce.html">ImplSEqualReduce</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter.html">PackedFuncVa [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1Constructor.html">Constructor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce_3_01T_00_01true_01_4.html">ImplSEqualReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01Optional_3_01 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1ConstructorNode.html">ConstructorNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce.html">ImplSHashReduce</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01PrimExpr_01_4.html">PackedFuncValueConverter& [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html">CommReducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1HybridOp.html">HybridOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpSpecialization.html">OpSpecialization</a> (<a class="el" href="namespacetvm_1_1rela [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CompilerAttrs.html">CompilerAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1HybridOpNode.html">HybridOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpSpecializationNode.html">OpSpecializationNode</a> (<a class="el" href="n [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOp.html">ComputeOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpStrategy.html">OpStrategy</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Tensor_1_1Slice.html">Tensor::Slice</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ValueTypeInfoMaker.html">ValueTypeInfoMaker</a> (<a class="el" href="names [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html">ComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpStrategyNode.html">OpStrategyNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1SliceLikeAttrs.html">SliceLikeAttrs</a> (<a class="el" href="namespace [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConcatenateAttrs.html">ConcatenateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Id.html">Id</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a> (<a class="el" href="namespacetvm_1_1runtime.html [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Constant.html">Constant</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IdNode.html">IdNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Or.html">Or</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&# [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantNode.html">ConstantNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1If.html">If</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1OrNode.html">OrNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160; [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantPattern.html">ConstantPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IfNode.html">IfNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#1 [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1SourceNameNode.html">SourceNameNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1VarPattern.html">VarPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantPatternNode.html">ConstantPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IfThenElse.html">IfThenElse</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Span.html">Span</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html">IfThenElseNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1PackedFunc.html">PackedFunc</a> (<a class="el" href="namespacetvm_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce.html">ImplSEqualReduce</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter.html">Pack [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html">ConstIntBoundNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce_3_01T_00_01true_01_4.html">ImplSEqualReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1Packe [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce.html">ImplSHashReduce</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01PrimExpr_01_4.ht [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1Constructor.html">Constructor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce_3_01T_00_01true_01_4.html">ImplSHashReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Bool_01_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1ConstructorNode.html">ConstructorNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs.html">ImplVisitAttrs</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Integer_01_4.html">PackedFuncValueConver [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstructorValue.html">ConstructorValue</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce_3_01T_00_01true_01_4.html">ImplSHashReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFun [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConstructorValueObj.html">ConstructorValueObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs.html">ImplVisitAttrs</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Intege [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1Container.html">NDArray::Container</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs_3_01T_00_01true_01_4.html">ImplVisitAttrs&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1ContainerBase.html">NDArray::ContainerBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteType.html">IncompleteType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html">PadAttrs</a> (<a class="el" href="namespacetv [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DAttrs.html">Conv1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteTypeNode.html">IncompleteTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1Pass.html">Pass</a> (<a class="el" href="namespacetvm_1_1transform.html">tvm:: [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstructorValue.html">ConstructorValue</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs_3_01T_00_01true_01_4.html">ImplVisitAttrs&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncV [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConstructorValueObj.html">ConstructorValueObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteType.html">IncompleteType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html">PadAttrs</a> (<a class="el" href="namespacetvm_1_1relay.ht [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1Container.html">NDArray::Container</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteTypeNode.html">IncompleteTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1Pass.html">Pass</a> (<a class="el" href="namespacetvm_1_1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1ContainerBase.html">NDArray::ContainerBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html">InitOpAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassContext.html">PassContext</a> (<a [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DAttrs.html">Conv1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1InplaceArrayBase.html">InplaceArrayBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassContextNode.html">PassContextNode</a> (<a class [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html">Conv1DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html">InitOpAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassContext.html">PassContext</a> (<a class="el" [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DAttrs.html">Conv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1InplaceArrayBase.html">InplaceArrayBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassContextNode.html">PassContextNode</a> (<a class [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DTransposeAttrs.html">Conv2DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html">InstanceNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfo.html">PassInfo</a> (<a clas [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html">Conv1DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html">InstanceNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfo.html">PassInfo</a> (<a clas [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DAttrs.html">Conv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html">Instruction</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html">PassInfoNode</a> (<a clas [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DTransposeAttrs.html">Conv2DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraints.html">IntConstraints</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassNode.html">PassNode</a> (<a class="el"  [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradAttrs.html">Conv2DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html">Instruction</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html">PassInfoN [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html">Conv2DWinogradNNPACKWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraints.html">IntConstraints</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1Pas [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DAttrs.html">Conv3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsNode.html">IntConstraintsNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Pattern.html">Pattern</a> (<a class="el" href="namespacet [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradAttrs.html">Conv2DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsNode.html">IntConstraintsNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Pattern.html">Pattern</a> (<a class="el"  [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html">Conv2DWinogradNNPACKWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransform.html">IntConstraintsTransform</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1 [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DAttrs.html">Conv3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html">IntConstraintsTransformNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternConstructorNode.html">PatternCon [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html">Conv3DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Integer.html">Integer</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html">PatternFunctor</a> (<a class="el" href="namespacetvm_1_1relay.htm [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html">Conv3DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterClosure.html">InterpreterClosure</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01 [...]
 <tr><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
 <div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|& [...]
diff --git a/docs/api/doxygen/classtvm_1_1SpanNode-members.html b/docs/api/doxygen/classtvm_1_1SpanNode-members.html
index 106304f..ac30e31 100644
--- a/docs/api/doxygen/classtvm_1_1SpanNode-members.html
+++ b/docs/api/doxygen/classtvm_1_1SpanNode-members.html
@@ -95,8 +95,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <p>This is the complete list of members for <a class="el" href="classtvm_1_1SpanNode.html">tvm::SpanNode</a>, including all inherited members.</p>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html#a3ce9fb38ce356931682dd0ff6e7e511f">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html">tvm::SpanNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html#a78d2dc28f35d2625b95697de63a16264">col_offset</a></td><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html">tvm::SpanNode</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html#ad605e038c640219d8372d83ae68f2173">lineno</a></td><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html">tvm::SpanNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html#a51f1f2feef5505e4686c1906b84a4bb1">column</a></td><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html">tvm::SpanNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html#a6890bb225890f64611e6f77a401ee617">line</a></td><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html">tvm::SpanNode</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html#a303175c2e781ef104cd03e26010200b8">SEqualReduce</a>(const SpanNode *other, SEqualReducer equal) const </td><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html">tvm::SpanNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html#afde422b06b0b110c002b543770360f84">source</a></td><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html">tvm::SpanNode</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html#a18bcfd7f4d291e5973c510fddd53cb88">TVM_DECLARE_FINAL_OBJECT_INFO</a>(SpanNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1SpanNode.html">tvm::SpanNode</a></td><td class="entry"></td></tr>
diff --git a/docs/api/doxygen/classtvm_1_1SpanNode.html b/docs/api/doxygen/classtvm_1_1SpanNode.html
index 7905ab6..e2deab8 100644
--- a/docs/api/doxygen/classtvm_1_1SpanNode.html
+++ b/docs/api/doxygen/classtvm_1_1SpanNode.html
@@ -128,12 +128,12 @@ Public Attributes</h2></td></tr>
 <tr class="memitem:afde422b06b0b110c002b543770360f84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1SourceName.html">SourceName</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SpanNode.html#afde422b06b0b110c002b543770360f84">source</a></td></tr>
 <tr class="memdesc:afde422b06b0b110c002b543770360f84"><td class="mdescLeft">&#160;</td><td class="mdescRight">The source name.  <a href="#afde422b06b0b110c002b543770360f84">More...</a><br /></td></tr>
 <tr class="separator:afde422b06b0b110c002b543770360f84"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad605e038c640219d8372d83ae68f2173"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SpanNode.html#ad605e038c640219d8372d83ae68f2173">lineno</a></td></tr>
-<tr class="memdesc:ad605e038c640219d8372d83ae68f2173"><td class="mdescLeft">&#160;</td><td class="mdescRight">Line number.  <a href="#ad605e038c640219d8372d83ae68f2173">More...</a><br /></td></tr>
-<tr class="separator:ad605e038c640219d8372d83ae68f2173"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a78d2dc28f35d2625b95697de63a16264"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SpanNode.html#a78d2dc28f35d2625b95697de63a16264">col_offset</a></td></tr>
-<tr class="memdesc:a78d2dc28f35d2625b95697de63a16264"><td class="mdescLeft">&#160;</td><td class="mdescRight">column offset  <a href="#a78d2dc28f35d2625b95697de63a16264">More...</a><br /></td></tr>
-<tr class="separator:a78d2dc28f35d2625b95697de63a16264"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6890bb225890f64611e6f77a401ee617"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SpanNode.html#a6890bb225890f64611e6f77a401ee617">line</a></td></tr>
+<tr class="memdesc:a6890bb225890f64611e6f77a401ee617"><td class="mdescLeft">&#160;</td><td class="mdescRight">The line number.  <a href="#a6890bb225890f64611e6f77a401ee617">More...</a><br /></td></tr>
+<tr class="separator:a6890bb225890f64611e6f77a401ee617"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51f1f2feef5505e4686c1906b84a4bb1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SpanNode.html#a51f1f2feef5505e4686c1906b84a4bb1">column</a></td></tr>
+<tr class="memdesc:a51f1f2feef5505e4686c1906b84a4bb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The column offset.  <a href="#a51f1f2feef5505e4686c1906b84a4bb1">More...</a><br /></td></tr>
+<tr class="separator:a51f1f2feef5505e4686c1906b84a4bb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
@@ -248,31 +248,31 @@ Static Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a78d2dc28f35d2625b95697de63a16264"></a>
+<a class="anchor" id="a51f1f2feef5505e4686c1906b84a4bb1"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int tvm::SpanNode::col_offset</td>
+          <td class="memname">int tvm::SpanNode::column</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>column offset </p>
+<p>The column offset. </p>
 
 </div>
 </div>
-<a class="anchor" id="ad605e038c640219d8372d83ae68f2173"></a>
+<a class="anchor" id="a6890bb225890f64611e6f77a401ee617"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int tvm::SpanNode::lineno</td>
+          <td class="memname">int tvm::SpanNode::line</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Line number. </p>
+<p>The line number. </p>
 
 </div>
 </div>
diff --git a/docs/api/doxygen/classtvm_1_1SpanNode__coll__graph.svg b/docs/api/doxygen/classtvm_1_1SpanNode__coll__graph.svg
index 1764e2a..8635394 100644
--- a/docs/api/doxygen/classtvm_1_1SpanNode__coll__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1SpanNode__coll__graph.svg
@@ -14,8 +14,8 @@
 <polygon fill="#bfbfbf" stroke="black" points="-1.42109e-14,-0.5 -1.42109e-14,-101.5 205,-101.5 205,-0.5 -1.42109e-14,-0.5"/>
 <text text-anchor="middle" x="102.5" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SpanNode</text>
 <polyline fill="none" stroke="black" points="-1.42109e-14,-82.5 205,-82.5 "/>
-<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lineno</text>
-<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ col_offset</text>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ line</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ column</text>
 <text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
 <polyline fill="none" stroke="black" points="-1.42109e-14,-41.5 205,-41.5 "/>
 <text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
diff --git a/docs/api/doxygen/classtvm_1_1SpanNode__inherit__graph.svg b/docs/api/doxygen/classtvm_1_1SpanNode__inherit__graph.svg
index bd8fa32..7ebbe48 100644
--- a/docs/api/doxygen/classtvm_1_1SpanNode__inherit__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1SpanNode__inherit__graph.svg
@@ -15,8 +15,8 @@
 <text text-anchor="middle" x="102.5" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SpanNode</text>
 <polyline fill="none" stroke="black" points="-1.42109e-14,-93.5 205,-93.5 "/>
 <text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ source</text>
-<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lineno</text>
-<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ col_offset</text>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ line</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ column</text>
 <text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
 <polyline fill="none" stroke="black" points="-1.42109e-14,-41.5 205,-41.5 "/>
 <text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
diff --git a/docs/api/doxygen/classtvm_1_1TargetIdNode-members.html b/docs/api/doxygen/classtvm_1_1TargetIdNode-members.html
index 6aa7008..de78b52 100644
--- a/docs/api/doxygen/classtvm_1_1TargetIdNode-members.html
+++ b/docs/api/doxygen/classtvm_1_1TargetIdNode-members.html
@@ -101,13 +101,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a9ce830f20c377093d7812ffc2eb5c628">detail::ValueTypeInfoMaker</a></td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a15a2875b9d8a8abecbc61b0346a138d2">device_type</a></td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#ac198dd4e56b0c1e3fb5f39f7d0efcdc4">name</a></td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#abb65fc11f1f6ae963db5375842721131">ParseAttrsFromRawString</a>(const std::vector&lt; std::string &gt; &amp;options)</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#aaec4eb5c2964764409c3ecc82bb90f57">Target</a> class</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a55df0ea036a739549b850ef868a7e1e7">TargetId</a> class</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a8c87f8c16dd388d8774d189ada51e86f">TargetIdRegEntry</a> class</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a342d381f69da21b03762bfc84b566a7a">TargetValidateSchema</a>(const Map&lt; String, ObjectRef &gt; &amp;)</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a8003d72c2e4d074bdb306f043d39b26e">TVM_DECLARE_FINAL_OBJECT_INFO</a>(TargetIdNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a4ffbdcb3892132d766cf76382773a782">VisitAttrs</a>(AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a7fb0db6777bf53846510a9a676414a68">ParseAttrsFromRaw</a>(const std::vector&lt; std::string &gt; &amp;options) const </td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a6f02435243d36d37210ab1b2d6cf9b99">StringifyAttrsToRaw</a>(const Map&lt; String, ObjectRef &gt; &amp;attrs) const </td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#aaec4eb5c2964764409c3ecc82bb90f57">Target</a> class</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a55df0ea036a739549b850ef868a7e1e7">TargetId</a> class</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a8c87f8c16dd388d8774d189ada51e86f">TargetIdRegEntry</a> class</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a342d381f69da21b03762bfc84b566a7a">TargetValidateSchema</a>(const Map&lt; String, ObjectRef &gt; &amp;)</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a8003d72c2e4d074bdb306f043d39b26e">TVM_DECLARE_FINAL_OBJECT_INFO</a>(TargetIdNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html#a4ffbdcb3892132d766cf76382773a782">VisitAttrs</a>(AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1TargetIdNode.html">tvm::TargetIdNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/classtvm_1_1TargetIdNode.html b/docs/api/doxygen/classtvm_1_1TargetIdNode.html
index cf66657..bc04a7f 100644
--- a/docs/api/doxygen/classtvm_1_1TargetIdNode.html
+++ b/docs/api/doxygen/classtvm_1_1TargetIdNode.html
@@ -106,28 +106,24 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="dynheader">
 Inheritance diagram for tvm::TargetIdNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1TargetIdNode__inherit__graph.svg" width="284" height="287"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1TargetIdNode__inherit__graph.svg" width="284" height="302"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::TargetIdNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1TargetIdNode__coll__graph.svg" width="496" height="1170"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1TargetIdNode__coll__graph.svg" width="496" height="1184"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtvm_1_1TargetIdNode_1_1ValueTypeInfo.html">ValueTypeInfo</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the required type_key and type_index of a specific attr of a target.  <a href="structtvm_1_1TargetIdNode_1_1ValueTypeInfo.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
 <tr class="memitem:a4ffbdcb3892132d766cf76382773a782"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1TargetIdNode.html#a4ffbdcb3892132d766cf76382773a782">VisitAttrs</a> (<a class="el" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a> *v)</td></tr>
 <tr class="separator:a4ffbdcb3892132d766cf76382773a782"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb65fc11f1f6ae963db5375842721131"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1Map.html">Map</a>&lt; <a class="el" href="classtvm_1_1runtime_1_1String.html">String</a>, ObjectRef &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1TargetIdNode.html#abb65fc11f1f6ae963db5375842721131">ParseAttrsFromRawString</a> (const std::vector&lt; std::string &gt; &amp;options)</td></tr>
-<tr class="separator:abb65fc11f1f6ae963db5375842721131"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7fb0db6777bf53846510a9a676414a68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1Map.html">Map</a>&lt; <a class="el" href="classtvm_1_1runtime_1_1String.html">String</a>, ObjectRef &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1TargetIdNode.html#a7fb0db6777bf53846510a9a676414a68">ParseAttrsFromRaw</a> (const std::vector&lt; std::string &gt; &amp;options) const </td></tr>
+<tr class="separator:a7fb0db6777bf53846510a9a676414a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f02435243d36d37210ab1b2d6cf9b99"><td class="memItemLeft" align="right" valign="top">Optional&lt; <a class="el" href="classtvm_1_1runtime_1_1String.html">String</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1TargetIdNode.html#a6f02435243d36d37210ab1b2d6cf9b99">StringifyAttrsToRaw</a> (const <a class="el" href="classtvm_1_1Map.html">Map</a>&lt; <a class="el" href="classtvm_1_1runtime_1_1String.html">String</a>, ObjectRef &gt [...]
+<tr class="separator:a6f02435243d36d37210ab1b2d6cf9b99"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8003d72c2e4d074bdb306f043d39b26e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1TargetIdNode.html#a8003d72c2e4d074bdb306f043d39b26e">TVM_DECLARE_FINAL_OBJECT_INFO</a> (<a class="el" href="classtvm_1_1TargetIdNode.html">TargetIdNode</a>, Object)</td></tr>
 <tr class="separator:a8003d72c2e4d074bdb306f043d39b26e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
@@ -172,16 +168,32 @@ Friends</h2></td></tr>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p><a class="el" href="classtvm_1_1Target.html" title="Managed reference class to TargetNode. ">Target</a> Id, specifies the kind of the target. </p>
 </div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="abb65fc11f1f6ae963db5375842721131"></a>
+<a class="anchor" id="a7fb0db6777bf53846510a9a676414a68"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classtvm_1_1Map.html">Map</a>&lt;<a class="el" href="classtvm_1_1runtime_1_1String.html">String</a>, ObjectRef&gt; tvm::TargetIdNode::ParseAttrsFromRawString </td>
+          <td class="memname"><a class="el" href="classtvm_1_1Map.html">Map</a>&lt;<a class="el" href="classtvm_1_1runtime_1_1String.html">String</a>, ObjectRef&gt; tvm::TargetIdNode::ParseAttrsFromRaw </td>
           <td>(</td>
           <td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
           <td class="paramname"><em>options</em></td><td>)</td>
-          <td></td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6f02435243d36d37210ab1b2d6cf9b99"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Optional&lt;<a class="el" href="classtvm_1_1runtime_1_1String.html">String</a>&gt; tvm::TargetIdNode::StringifyAttrsToRaw </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1Map.html">Map</a>&lt; <a class="el" href="classtvm_1_1runtime_1_1String.html">String</a>, ObjectRef &gt; &amp;&#160;</td>
+          <td class="paramname"><em>attrs</em></td><td>)</td>
+          <td> const</td>
         </tr>
       </table>
 </div><div class="memdoc">
diff --git a/docs/api/doxygen/classtvm_1_1TargetIdNode__coll__graph.svg b/docs/api/doxygen/classtvm_1_1TargetIdNode__coll__graph.svg
index 0f1b469..8e13cb3 100644
--- a/docs/api/doxygen/classtvm_1_1TargetIdNode__coll__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1TargetIdNode__coll__graph.svg
@@ -4,148 +4,149 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: tvm::TargetIdNode Pages: 1 -->
-<svg width="372pt" height="877pt"
- viewBox="0.00 0.00 371.50 877.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 873)">
+<svg width="372pt" height="888pt"
+ viewBox="0.00 0.00 371.50 888.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 884)">
 <title>tvm::TargetIdNode</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-873 367.5,-873 367.5,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-884 367.5,-884 367.5,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="21,-0.5 21,-90.5 226,-90.5 226,-0.5 21,-0.5"/>
-<text text-anchor="middle" x="123.5" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetIdNode</text>
-<polyline fill="none" stroke="black" points="21,-71.5 226,-71.5 "/>
-<text text-anchor="start" x="29" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ device_type</text>
-<text text-anchor="start" x="29" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="21,-41.5 226,-41.5 "/>
-<text text-anchor="start" x="29" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
-<text text-anchor="start" x="29" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ParseAttrsFromRawString()</text>
+<polygon fill="#bfbfbf" stroke="black" points="21,-0.5 21,-101.5 226,-101.5 226,-0.5 21,-0.5"/>
+<text text-anchor="middle" x="123.5" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetIdNode</text>
+<polyline fill="none" stroke="black" points="21,-82.5 226,-82.5 "/>
+<text text-anchor="start" x="29" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ device_type</text>
+<text text-anchor="start" x="29" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polyline fill="none" stroke="black" points="21,-52.5 226,-52.5 "/>
+<text text-anchor="start" x="29" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
+<text text-anchor="start" x="29" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ParseAttrsFromRaw()</text>
+<text text-anchor="start" x="29" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ StringifyAttrsToRaw()</text>
 <text text-anchor="start" x="29" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
-<polygon fill="white" stroke="#bfbfbf" points="0,-232 0,-289 47,-289 47,-232 0,-232"/>
-<text text-anchor="middle" x="23.5" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="0,-270 47,-270 "/>
-<text text-anchor="middle" x="23.5" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="0,-251 47,-251 "/>
-<text text-anchor="middle" x="23.5" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="0,-243 0,-300 47,-300 47,-243 0,-243"/>
+<text text-anchor="middle" x="23.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="0,-281 47,-281 "/>
+<text text-anchor="middle" x="23.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="0,-262 47,-262 "/>
+<text text-anchor="middle" x="23.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge"><title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M29.9988,-221.89C35.1461,-197.222 43.6423,-164.711 56.5,-138 64.3564,-121.679 75.219,-105.271 85.9126,-90.9471"/>
-<polygon fill="none" stroke="midnightblue" points="26.5176,-221.45 27.9949,-231.942 33.3825,-222.819 26.5176,-221.45"/>
+<path fill="none" stroke="midnightblue" d="M30.3458,-232.528C35.6035,-207.967 44.0922,-175.713 56.5,-149 64.0443,-132.758 74.2586,-116.287 84.4364,-101.641"/>
+<polygon fill="none" stroke="midnightblue" points="26.8721,-232.045 28.2883,-242.545 33.7289,-233.453 26.8721,-232.045"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
-<polygon fill="white" stroke="#bfbfbf" points="65.5,-226.5 65.5,-294.5 181.5,-294.5 181.5,-226.5 65.5,-226.5"/>
-<text text-anchor="start" x="73.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">Array&lt; tvm::runtime</text>
-<text text-anchor="middle" x="123.5" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">::String &gt;</text>
-<polyline fill="none" stroke="#bfbfbf" points="65.5,-264.5 181.5,-264.5 "/>
-<text text-anchor="middle" x="123.5" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="65.5,-245.5 181.5,-245.5 "/>
-<text text-anchor="middle" x="123.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="65.5,-237.5 65.5,-305.5 181.5,-305.5 181.5,-237.5 65.5,-237.5"/>
+<text text-anchor="start" x="73.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">Array&lt; tvm::runtime</text>
+<text text-anchor="middle" x="123.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">::String &gt;</text>
+<polyline fill="none" stroke="#bfbfbf" points="65.5,-275.5 181.5,-275.5 "/>
+<text text-anchor="middle" x="123.5" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="65.5,-256.5 181.5,-256.5 "/>
+<text text-anchor="middle" x="123.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </g>
 <!-- Node3&#45;&gt;Node1 -->
 <g id="edge2" class="edge"><title>Node3&#45;&gt;Node1</title>
-<path fill="none" stroke="#404040" d="M123.5,-226.219C123.5,-193.207 123.5,-142.004 123.5,-102.683"/>
-<polygon fill="none" stroke="#404040" points="123.5,-102.634 119.5,-96.6338 123.5,-90.6337 127.5,-96.6337 123.5,-102.634"/>
-<text text-anchor="middle" x="159.5" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00"> +default_keys</text>
+<path fill="none" stroke="#404040" d="M123.5,-237.315C123.5,-204.641 123.5,-153.946 123.5,-113.834"/>
+<polygon fill="none" stroke="#404040" points="123.5,-113.756 119.5,-107.756 123.5,-101.756 127.5,-107.756 123.5,-113.756"/>
+<text text-anchor="middle" x="159.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +default_keys</text>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1String.html" target="_top" xlink:title="Reference to string objects. ">
-<polygon fill="white" stroke="black" points="199.5,-138.5 199.5,-382.5 363.5,-382.5 363.5,-138.5 199.5,-138.5"/>
-<text text-anchor="middle" x="281.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::String</text>
-<polyline fill="none" stroke="black" points="199.5,-363.5 363.5,-363.5 "/>
-<text text-anchor="middle" x="281.5" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="199.5,-344.5 363.5,-344.5 "/>
+<polygon fill="white" stroke="black" points="199.5,-149.5 199.5,-393.5 363.5,-393.5 363.5,-149.5 199.5,-149.5"/>
+<text text-anchor="middle" x="281.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::String</text>
+<polyline fill="none" stroke="black" points="199.5,-374.5 363.5,-374.5 "/>
+<text text-anchor="middle" x="281.5" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="199.5,-355.5 363.5,-355.5 "/>
+<text text-anchor="start" x="207.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ String()</text>
 <text text-anchor="start" x="207.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ String()</text>
 <text text-anchor="start" x="207.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ String()</text>
-<text text-anchor="start" x="207.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ String()</text>
+<text text-anchor="start" x="207.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
 <text text-anchor="start" x="207.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="207.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
+<text text-anchor="start" x="207.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ compare()</text>
 <text text-anchor="start" x="207.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ compare()</text>
 <text text-anchor="start" x="207.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ compare()</text>
-<text text-anchor="start" x="207.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ compare()</text>
-<text text-anchor="start" x="207.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ c_str()</text>
-<text text-anchor="start" x="207.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ size()</text>
-<text text-anchor="start" x="207.5" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ length()</text>
-<text text-anchor="start" x="207.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ empty()</text>
-<text text-anchor="start" x="207.5" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data()</text>
-<text text-anchor="start" x="207.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator llvm::StringRef()</text>
-<text text-anchor="start" x="207.5" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="207.5" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="207.5" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CanConvertFrom()</text>
-<text text-anchor="start" x="207.5" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HashBytes()</text>
+<text text-anchor="start" x="207.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ c_str()</text>
+<text text-anchor="start" x="207.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ size()</text>
+<text text-anchor="start" x="207.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ length()</text>
+<text text-anchor="start" x="207.5" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ empty()</text>
+<text text-anchor="start" x="207.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data()</text>
+<text text-anchor="start" x="207.5" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator llvm::StringRef()</text>
+<text text-anchor="start" x="207.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="207.5" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">_OBJECT_REF_METHODS()</text>
+<text text-anchor="start" x="207.5" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CanConvertFrom()</text>
+<text text-anchor="start" x="207.5" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HashBytes()</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node1 -->
 <g id="edge3" class="edge"><title>Node4&#45;&gt;Node1</title>
-<path fill="none" stroke="#404040" d="M221.075,-138.468C214.298,-128.155 207.083,-118.174 199.5,-109 196.806,-105.741 193.923,-102.528 190.912,-99.3827"/>
-<polygon fill="none" stroke="#404040" points="190.676,-99.1493 183.597,-97.7774 182.14,-90.7149 189.22,-92.0868 190.676,-99.1493"/>
-<text text-anchor="middle" x="227.5" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00"> +name</text>
+<path fill="none" stroke="#404040" d="M220.412,-149.412C213.795,-139.166 206.798,-129.213 199.5,-120 197.027,-116.877 194.401,-113.778 191.669,-110.723"/>
+<polygon fill="none" stroke="#404040" points="191.415,-110.453 184.392,-108.819 183.199,-101.707 190.222,-103.341 191.415,-110.453"/>
+<text text-anchor="middle" x="224.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +name</text>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="white" stroke="black" points="216.5,-420.5 216.5,-642.5 346.5,-642.5 346.5,-420.5 216.5,-420.5"/>
-<text text-anchor="middle" x="281.5" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="216.5,-623.5 346.5,-623.5 "/>
-<text text-anchor="start" x="224.5" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="216.5,-604.5 346.5,-604.5 "/>
+<polygon fill="white" stroke="black" points="216.5,-431.5 216.5,-653.5 346.5,-653.5 346.5,-431.5 216.5,-431.5"/>
+<text text-anchor="middle" x="281.5" y="-641.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="216.5,-634.5 346.5,-634.5 "/>
+<text text-anchor="start" x="224.5" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="216.5,-615.5 346.5,-615.5 "/>
+<text text-anchor="start" x="224.5" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
 <text text-anchor="start" x="224.5" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="224.5" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="224.5" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="224.5" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="224.5" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="224.5" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator&lt;()</text>
-<text text-anchor="start" x="224.5" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="224.5" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="224.5" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="224.5" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="224.5" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
-<text text-anchor="start" x="224.5" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="224.5" y="-460.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="224.5" y="-449.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="224.5" y="-438.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="224.5" y="-427.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="224.5" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="224.5" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="224.5" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="224.5" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator&lt;()</text>
+<text text-anchor="start" x="224.5" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="224.5" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="224.5" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="224.5" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="224.5" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="224.5" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
+<text text-anchor="start" x="224.5" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="224.5" y="-460.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="224.5" y="-449.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="224.5" y="-438.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge4" class="edge"><title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M281.5,-410.14C281.5,-401.091 281.5,-391.955 281.5,-382.9"/>
-<polygon fill="none" stroke="midnightblue" points="278,-410.311 281.5,-420.311 285,-410.311 278,-410.311"/>
+<path fill="none" stroke="midnightblue" d="M281.5,-421.14C281.5,-412.091 281.5,-402.955 281.5,-393.9"/>
+<polygon fill="none" stroke="midnightblue" points="278,-421.311 281.5,-431.311 285,-421.311 278,-421.311"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node"><title>Node6</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 10 more...\l}">
-<polygon fill="white" stroke="black" points="212.5,-690.5 212.5,-868.5 350.5,-868.5 350.5,-690.5 212.5,-690.5"/>
-<text text-anchor="start" x="220.5" y="-856.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="281.5" y="-845.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="black" points="212.5,-838.5 350.5,-838.5 "/>
-<text text-anchor="middle" x="281.5" y="-826.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="212.5,-819.5 350.5,-819.5 "/>
+<polygon fill="white" stroke="black" points="212.5,-701.5 212.5,-879.5 350.5,-879.5 350.5,-701.5 212.5,-701.5"/>
+<text text-anchor="start" x="220.5" y="-867.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="281.5" y="-856.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="black" points="212.5,-849.5 350.5,-849.5 "/>
+<text text-anchor="middle" x="281.5" y="-837.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="212.5,-830.5 350.5,-830.5 "/>
+<text text-anchor="start" x="220.5" y="-818.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
 <text text-anchor="start" x="220.5" y="-807.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
 <text text-anchor="start" x="220.5" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
 <text text-anchor="start" x="220.5" y="-785.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
 <text text-anchor="start" x="220.5" y="-774.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
 <text text-anchor="start" x="220.5" y="-763.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="220.5" y="-752.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="220.5" y="-741.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="220.5" y="-730.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="220.5" y="-719.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="220.5" y="-708.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="220.5" y="-697.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 10 more...</text>
+<text text-anchor="start" x="220.5" y="-752.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="220.5" y="-741.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="220.5" y="-730.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="220.5" y="-719.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="220.5" y="-708.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 10 more...</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge5" class="edge"><title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#404040" d="M281.5,-690.383C281.5,-678.802 281.5,-666.772 281.5,-654.751"/>
-<polygon fill="none" stroke="#404040" points="281.5,-654.75 277.5,-648.75 281.5,-642.75 285.5,-648.75 281.5,-654.75"/>
-<text text-anchor="middle" x="301" y="-664" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M281.5,-701.383C281.5,-689.802 281.5,-677.772 281.5,-665.751"/>
+<polygon fill="none" stroke="#404040" points="281.5,-665.75 277.5,-659.75 281.5,-653.75 285.5,-659.75 281.5,-665.75"/>
+<text text-anchor="middle" x="301" y="-675" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
 </g>
 </g>
 </svg>
diff --git a/docs/api/doxygen/classtvm_1_1TargetIdNode__inherit__graph.svg b/docs/api/doxygen/classtvm_1_1TargetIdNode__inherit__graph.svg
index f5e8a84..eb31c7e 100644
--- a/docs/api/doxygen/classtvm_1_1TargetIdNode__inherit__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1TargetIdNode__inherit__graph.svg
@@ -4,38 +4,39 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: tvm::TargetIdNode Pages: 1 -->
-<svg width="213pt" height="215pt"
- viewBox="0.00 0.00 213.00 215.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 211)">
+<svg width="213pt" height="226pt"
+ viewBox="0.00 0.00 213.00 226.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 222)">
 <title>tvm::TargetIdNode</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-211 209,-211 209,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-222 209,-222 209,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="-1.42109e-14,-0.5 -1.42109e-14,-112.5 205,-112.5 205,-0.5 -1.42109e-14,-0.5"/>
-<text text-anchor="middle" x="102.5" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetIdNode</text>
-<polyline fill="none" stroke="black" points="-1.42109e-14,-93.5 205,-93.5 "/>
-<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ name</text>
-<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ device_type</text>
-<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ default_keys</text>
-<text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="-1.42109e-14,-41.5 205,-41.5 "/>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ParseAttrsFromRawString()</text>
+<polygon fill="#bfbfbf" stroke="black" points="-1.42109e-14,-0.5 -1.42109e-14,-123.5 205,-123.5 205,-0.5 -1.42109e-14,-0.5"/>
+<text text-anchor="middle" x="102.5" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetIdNode</text>
+<polyline fill="none" stroke="black" points="-1.42109e-14,-104.5 205,-104.5 "/>
+<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ name</text>
+<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ device_type</text>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ default_keys</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polyline fill="none" stroke="black" points="-1.42109e-14,-52.5 205,-52.5 "/>
+<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ParseAttrsFromRaw()</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ StringifyAttrsToRaw()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
-<polygon fill="white" stroke="#bfbfbf" points="79,-149.5 79,-206.5 126,-206.5 126,-149.5 79,-149.5"/>
-<text text-anchor="middle" x="102.5" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="79,-187.5 126,-187.5 "/>
-<text text-anchor="middle" x="102.5" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="79,-168.5 126,-168.5 "/>
-<text text-anchor="middle" x="102.5" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="79,-160.5 79,-217.5 126,-217.5 126,-160.5 79,-160.5"/>
+<text text-anchor="middle" x="102.5" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="79,-198.5 126,-198.5 "/>
+<text text-anchor="middle" x="102.5" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="79,-179.5 126,-179.5 "/>
+<text text-anchor="middle" x="102.5" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge"><title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M102.5,-139.108C102.5,-130.748 102.5,-121.725 102.5,-112.834"/>
-<polygon fill="none" stroke="midnightblue" points="99.0001,-139.284 102.5,-149.284 106,-139.284 99.0001,-139.284"/>
+<path fill="none" stroke="midnightblue" d="M102.5,-150.099C102.5,-141.739 102.5,-132.68 102.5,-123.672"/>
+<polygon fill="none" stroke="midnightblue" points="99.0001,-150.258 102.5,-160.258 106,-150.258 99.0001,-150.258"/>
 </g>
 </g>
 </svg>
diff --git a/docs/api/doxygen/classtvm_1_1arith_1_1Analyzer-members.html b/docs/api/doxygen/classtvm_1_1arith_1_1Analyzer-members.html
index e8abb09..ca5ad5f 100644
--- a/docs/api/doxygen/classtvm_1_1arith_1_1Analyzer-members.html
+++ b/docs/api/doxygen/classtvm_1_1arith_1_1Analyzer-members.html
@@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html#acac92a9522deabe289fea99efbd9eaec">modular_set</a></td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html#a9dccc7d98b8b9465390e10436d3a9178">operator=</a>(const Analyzer &amp;)=delete</td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html#acc86c6e8c04cb0de4ff9d78e769924b2">rewrite_simplify</a></td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html#a2d2bda00f4b06ae8b9fc7bc1cd5b0020">Simplify</a>(const PrimExpr &amp;expr)</td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html#a9b440f852f12ad0a4d8ed5ed97054425">Simplify</a>(const PrimExpr &amp;expr, int steps=2)</td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/classtvm_1_1arith_1_1Analyzer.html b/docs/api/doxygen/classtvm_1_1arith_1_1Analyzer.html
index aa2a82c..4b15219 100644
--- a/docs/api/doxygen/classtvm_1_1arith_1_1Analyzer.html
+++ b/docs/api/doxygen/classtvm_1_1arith_1_1Analyzer.html
@@ -134,9 +134,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:af84b3978b1df3b2680fb47818e5dc30d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html#af84b3978b1df3b2680fb47818e5dc30d">CanProve</a> (const <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &amp;cond)</td></tr>
 <tr class="memdesc:af84b3978b1df3b2680fb47818e5dc30d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether can we prove condition.  <a href="#af84b3978b1df3b2680fb47818e5dc30d">More...</a><br /></td></tr>
 <tr class="separator:af84b3978b1df3b2680fb47818e5dc30d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2d2bda00f4b06ae8b9fc7bc1cd5b0020"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html#a2d2bda00f4b06ae8b9fc7bc1cd5b0020">Simplify</a> (const <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &amp;expr)</td></tr>
-<tr class="memdesc:a2d2bda00f4b06ae8b9fc7bc1cd5b0020"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplify expr.  <a href="#a2d2bda00f4b06ae8b9fc7bc1cd5b0020">More...</a><br /></td></tr>
-<tr class="separator:a2d2bda00f4b06ae8b9fc7bc1cd5b0020"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b440f852f12ad0a4d8ed5ed97054425"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html#a9b440f852f12ad0a4d8ed5ed97054425">Simplify</a> (const <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &amp;expr, int steps=2)</td></tr>
+<tr class="memdesc:a9b440f852f12ad0a4d8ed5ed97054425"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplify expr.  <a href="#a9b440f852f12ad0a4d8ed5ed97054425">More...</a><br /></td></tr>
+<tr class="separator:a9b440f852f12ad0a4d8ed5ed97054425"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
@@ -450,7 +450,7 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a2d2bda00f4b06ae8b9fc7bc1cd5b0020"></a>
+<a class="anchor" id="a9b440f852f12ad0a4d8ed5ed97054425"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -458,8 +458,18 @@ Public Attributes</h2></td></tr>
           <td class="memname"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> tvm::arith::Analyzer::Simplify </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &amp;&#160;</td>
-          <td class="paramname"><em>expr</em></td><td>)</td>
+          <td class="paramname"><em>expr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>steps</em> = <code>2</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -468,6 +478,7 @@ Public Attributes</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">expr</td><td>The expression to be simplified. </td></tr>
+    <tr><td class="paramname">steps</td><td>The simplification runs in the order of rewrite_simplify (step 1) -&gt; canonical_simplify (step 2) -&gt; rewrite_simplify (step 3) -&gt; canonical_simplify (step 4) -&gt; ... param steps controls how many steps to run. Default is 2, i.e., rewrite_simplify + canonical_simplify. </td></tr>
   </table>
   </dd>
 </dl>
diff --git a/docs/api/doxygen/classtvm_1_1runtime_1_1TVMArgs-members.html b/docs/api/doxygen/classtvm_1_1arith_1_1IntGroupBounds-members.html
similarity index 64%
copy from docs/api/doxygen/classtvm_1_1runtime_1_1TVMArgs-members.html
copy to docs/api/doxygen/classtvm_1_1arith_1_1IntGroupBounds-members.html
index 7dbdc4f..266e2ea 100644
--- a/docs/api/doxygen/classtvm_1_1runtime_1_1TVMArgs-members.html
+++ b/docs/api/doxygen/classtvm_1_1arith_1_1IntGroupBounds-members.html
@@ -83,23 +83,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1runtime.html">runtime</a></li><li class="navelem"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html">TVMArgs</a></li>  </ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1arith.html">arith</a></li><li class="navelem"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">tvm::runtime::TVMArgs Member List</div>  </div>
+<div class="title">tvm::arith::IntGroupBounds Member List</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p>This is the complete list of members for <a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html">tvm::runtime::TVMArgs</a>, including all inherited members.</p>
+<p>This is the complete list of members for <a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">tvm::arith::IntGroupBounds</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html#afec79c909bdf103a01cdb4732c0afdf3">num_args</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html">tvm::runtime::TVMArgs</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html#a92845a3902afa7207adcaca1e03f8aaa">operator[]</a>(int i) const </td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html">tvm::runtime::TVMArgs</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html#aab545038cd3023195731bae5d6026b9f">size</a>() const </td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html">tvm::runtime::TVMArgs</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html#a5d2aeac7387e436e6e19d7a6dfe91307">TVMArgs</a>(const TVMValue *values, const int *type_codes, int num_args)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html">tvm::runtime::TVMArgs</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html#abdb0f929087b14eb28d75c7a047cef9e">type_codes</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html">tvm::runtime::TVMArgs</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html#a3b99059e2f1ad08c99b42b5bee82752f">values</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html">tvm::runtime::TVMArgs</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#a6497afa70a1d266d3e62cca1ae1da0d1">FindBestRange</a>(const Map&lt; Var, Range &gt; &amp;vranges_addl={}) const </td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">tvm::arith::IntGroupBounds</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#a1ada3993bd9b6500ccd95d97a5c9f17b">FromRange</a>(const Range &amp;r)</td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">tvm::arith::IntGroupBounds</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#a7f2fbfd39f1fc030b13056cf28d7c17c">IntGroupBounds</a>(PrimExpr coef, Array&lt; PrimExpr &gt; lower, Array&lt; PrimExpr &gt; equal, Array&lt; PrimExpr &gt; upper)</td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">tvm::arith::IntGroupBounds</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#a5de071b5c736097d25fa1a508b06f565">operator+</a>(const Range &amp;r)</td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">tvm::arith::IntGroupBounds</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#ab722c6d564384b7d6e9160e9b83297c2">Substitute</a>(const Map&lt; Var, PrimExpr &gt; &amp;subst) const </td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">tvm::arith::IntGroupBounds</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#ae489402cb3ec9fbcfd57bd8404803dd2">TVM_DEFINE_OBJECT_REF_METHODS</a>(IntGroupBounds, ObjectRef, IntGroupBoundsNode)</td><td class="entry"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">tvm::arith::IntGroupBounds</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/classtvm_1_1arith_1_1IntGroupBounds.html b/docs/api/doxygen/classtvm_1_1arith_1_1IntGroupBounds.html
new file mode 100644
index 0000000..f58ab1d
--- /dev/null
+++ b/docs/api/doxygen/classtvm_1_1arith_1_1IntGroupBounds.html
@@ -0,0 +1,337 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>tvm: tvm::arith::IntGroupBounds Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1arith.html">arith</a></li><li class="navelem"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="classtvm_1_1arith_1_1IntGroupBounds-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">tvm::arith::IntGroupBounds Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" title="Represent integer grouped bounds which are classified into lower bounds (inclusive), upper bounds (inclusive) and equalities. It also contains coefficient as a multiplier for the bounds, i.e., coef * var &gt;= lower coef * var == equal coef * var &lt;= upper. ">IntGroupBoundsNode</a>.  
+ <a href="classtvm_1_1arith_1_1IntGroupBounds.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="int__solver_8h_source.html">int_solver.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for tvm::arith::IntGroupBounds:</div>
+<div class="dyncontent">
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1arith_1_1IntGroupBounds__inherit__graph.svg" width="211" height="302"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+</div>
+</div>
+<div class="dynheader">
+Collaboration diagram for tvm::arith::IntGroupBounds:</div>
+<div class="dyncontent">
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1arith_1_1IntGroupBounds__coll__graph.svg" width="211" height="302"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+</div>
+</div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a7f2fbfd39f1fc030b13056cf28d7c17c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#a7f2fbfd39f1fc030b13056cf28d7c17c">IntGroupBounds</a> (<a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> coef, Array&lt; <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &gt; <a class="el" href="namespacetvm.html#a3ab284fe08e7bcfb9b9fe33f18f5f205">lower [...]
+<tr class="memdesc:a7f2fbfd39f1fc030b13056cf28d7c17c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classtvm_1_1Constructor.html" title="Managed reference to ConstructorNode. ">Constructor</a> by fields.  <a href="#a7f2fbfd39f1fc030b13056cf28d7c17c">More...</a><br /></td></tr>
+<tr class="separator:a7f2fbfd39f1fc030b13056cf28d7c17c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab722c6d564384b7d6e9160e9b83297c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#ab722c6d564384b7d6e9160e9b83297c2">Substitute</a> (const <a class="el" href="classtvm_1_1Map.html">Map</a>&lt; Var, <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &gt; &amp;subst) c [...]
+<tr class="memdesc:ab722c6d564384b7d6e9160e9b83297c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform substitution on all components of the struct.  <a href="#ab722c6d564384b7d6e9160e9b83297c2">More...</a><br /></td></tr>
+<tr class="separator:ab722c6d564384b7d6e9160e9b83297c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6497afa70a1d266d3e62cca1ae1da0d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1Range.html">Range</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#a6497afa70a1d266d3e62cca1ae1da0d1">FindBestRange</a> (const <a class="el" href="classtvm_1_1Map.html">Map</a>&lt; Var, <a class="el" href="classtvm_1_1Range.html">Range</a> &gt; &amp;vranges_addl={}) const </td></tr>
+<tr class="memdesc:a6497afa70a1d266d3e62cca1ae1da0d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the best range from the grouped bounds.  <a href="#a6497afa70a1d266d3e62cca1ae1da0d1">More...</a><br /></td></tr>
+<tr class="separator:a6497afa70a1d266d3e62cca1ae1da0d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5de071b5c736097d25fa1a508b06f565"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#a5de071b5c736097d25fa1a508b06f565">operator+</a> (const <a class="el" href="classtvm_1_1Range.html">Range</a> &amp;r)</td></tr>
+<tr class="memdesc:a5de071b5c736097d25fa1a508b06f565"><td class="mdescLeft">&#160;</td><td class="mdescRight">Combine the bounds with another range.  <a href="#a5de071b5c736097d25fa1a508b06f565">More...</a><br /></td></tr>
+<tr class="separator:a5de071b5c736097d25fa1a508b06f565"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae489402cb3ec9fbcfd57bd8404803dd2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#ae489402cb3ec9fbcfd57bd8404803dd2">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a>, ObjectRef, <a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html">IntGroupBoundsNode</a>)</td></tr>
+<tr class="separator:ae489402cb3ec9fbcfd57bd8404803dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a1ada3993bd9b6500ccd95d97a5c9f17b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html#a1ada3993bd9b6500ccd95d97a5c9f17b">FromRange</a> (const <a class="el" href="classtvm_1_1Range.html">Range</a> &amp;r)</td></tr>
+<tr class="memdesc:a1ada3993bd9b6500ccd95d97a5c9f17b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct bounds from a range.  <a href="#a1ada3993bd9b6500ccd95d97a5c9f17b">More...</a><br /></td></tr>
+<tr class="separator:a1ada3993bd9b6500ccd95d97a5c9f17b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" title="Represent integer grouped bounds which are classified into lower bounds (inclusive), upper bounds (inclusive) and equalities. It also contains coefficient as a multiplier for the bounds, i.e., coef * var &gt;= lower coef * var == equal coef * var &lt;= upper. ">IntGroupBoundsNode</a>. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" title="Represent integer grouped bounds which are classified into lower bounds (inclusive), upper bounds (inclusive) and equalities. It also contains coefficient as a multiplier for the bounds, i.e., coef * var &gt;= lower coef * var == equal coef * var &lt;= upper. ">IntGroupBoundsNode</a> </dd></dl>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a7f2fbfd39f1fc030b13056cf28d7c17c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tvm::arith::IntGroupBounds::IntGroupBounds </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&#160;</td>
+          <td class="paramname"><em>coef</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">Array&lt; <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &gt;&#160;</td>
+          <td class="paramname"><em>lower</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">Array&lt; <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &gt;&#160;</td>
+          <td class="paramname"><em>equal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">Array&lt; <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &gt;&#160;</td>
+          <td class="paramname"><em>upper</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p><a class="el" href="classtvm_1_1Constructor.html" title="Managed reference to ConstructorNode. ">Constructor</a> by fields. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">coef</td><td>The coefficient. Must be integer. coef * var &gt;= lower coef * var == equal coef * var &gt;= upper </td></tr>
+    <tr><td class="paramname">lower</td><td>the lower bounds (include) </td></tr>
+    <tr><td class="paramname">equal</td><td>equalities </td></tr>
+    <tr><td class="paramname">upper</td><td>the upper bounds (include) </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a6497afa70a1d266d3e62cca1ae1da0d1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtvm_1_1Range.html">Range</a> tvm::arith::IntGroupBounds::FindBestRange </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1Map.html">Map</a>&lt; Var, <a class="el" href="classtvm_1_1Range.html">Range</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>vranges_addl</em> = <code>{}</code></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Find the best range from the grouped bounds. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">vranges_addl</td><td>additional variable ranges that help infer the best range. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The best range (has the least difference between the lower bound and upper bound). undefined if (-inf, +inf). </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1ada3993bd9b6500ccd95d97a5c9f17b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a> tvm::arith::IntGroupBounds::FromRange </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1Range.html">Range</a> &amp;&#160;</td>
+          <td class="paramname"><em>r</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Construct bounds from a range. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">r</td><td>The range </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>constructed bounds. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5de071b5c736097d25fa1a508b06f565"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a> tvm::arith::IntGroupBounds::operator+ </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1Range.html">Range</a> &amp;&#160;</td>
+          <td class="paramname"><em>r</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Combine the bounds with another range. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">r</td><td>range to be combined. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>combined bounds. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab722c6d564384b7d6e9160e9b83297c2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a> tvm::arith::IntGroupBounds::Substitute </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1Map.html">Map</a>&lt; Var, <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>subst</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Perform substitution on all components of the struct. </p>
+
+</div>
+</div>
+<a class="anchor" id="ae489402cb3ec9fbcfd57bd8404803dd2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tvm::arith::IntGroupBounds::TVM_DEFINE_OBJECT_REF_METHODS </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a>&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ObjectRef&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html">IntGroupBoundsNode</a>&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/tvm/arith/<a class="el" href="int__solver_8h_source.html">int_solver.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/docs/api/doxygen/classtvm_1_1SpanNode-members.html b/docs/api/doxygen/classtvm_1_1arith_1_1IntGroupBoundsNode-members.html
similarity index 54%
copy from docs/api/doxygen/classtvm_1_1SpanNode-members.html
copy to docs/api/doxygen/classtvm_1_1arith_1_1IntGroupBoundsNode-members.html
index 106304f..cc56fd2 100644
--- a/docs/api/doxygen/classtvm_1_1SpanNode-members.html
... 88297 lines suppressed ...