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/24 16:22:09 UTC

[incubator-tvm-site] branch asf-site updated: Docs build at Fri Jul 24 09:19:29 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 0323c5a  Docs build at Fri Jul 24 09:19:29 PDT 2020
0323c5a is described below

commit 0323c5acfe11befa5a011a23e01b578bf2535681
Author: tqchen <tq...@octoml.ai>
AuthorDate: Fri Jul 24 09:19:29 2020 -0700

    Docs build at Fri Jul 24 09:19:29 PDT 2020
---
 .../tune_relay_x86.py                              |   10 +-
 .../tune_relay_x86.ipynb                           |    4 +-
 docs/_sources/contribute/release_process.rst.txt   |   15 +-
 docs/_sources/deploy/arm_compute_lib.rst.txt       |  139 +
 docs/_sources/deploy/index.rst.txt                 |    1 +
 docs/_sources/dev/index.rst.txt                    |  378 +-
 docs/_sources/dev/security.rst.txt                 |    4 +-
 docs/_sources/install/from_source.rst.txt          |   16 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |   16 +-
 .../tutorials/autotvm/tune_conv2d_cuda.rst.txt     |   42 +-
 .../tutorials/autotvm/tune_relay_x86.rst.txt       |   10 +-
 .../tutorials/autotvm/tune_simple_template.rst.txt |   20 +-
 .../tutorials/cross_compilation_and_rpc.rst.txt    |    2 +-
 .../tutorials/dev/low_level_custom_pass.rst.txt    |    4 +-
 .../tutorials/dev/sg_execution_times.rst.txt       |    6 +-
 .../frontend/deploy_model_on_android.rst.txt       |    2 +-
 .../tutorials/frontend/deploy_prequantized.rst.txt |    4 +-
 .../frontend/deploy_prequantized_tflite.rst.txt    |    4 +-
 docs/_sources/tutorials/frontend/from_onnx.rst.txt |    2 +-
 .../tutorials/frontend/from_tensorflow.rst.txt     |    2 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |   38 +-
 docs/_sources/tutorials/language/reduction.rst.txt |    4 +-
 .../tutorials/language/schedule_primitives.rst.txt |   22 +-
 .../tutorials/language/sg_execution_times.rst.txt  |   18 +-
 docs/_sources/tutorials/language/tensorize.rst.txt |    4 +-
 .../tutorials/language/tuple_inputs.rst.txt        |   16 +-
 .../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  |   24 +-
 .../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 +-
 .../tutorials/tensor_expr_get_started.rst.txt      |    2 +-
 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 |    8 +-
 .../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/annotated.html                    |  250 +-
 docs/api/doxygen/builtin_8h.html                   |    3 +
 docs/api/doxygen/builtin_8h_source.html            |   31 +-
 docs/api/doxygen/classes.html                      |  281 +-
 docs/api/doxygen/classtvm_1_1BaseAttrsNode.html    |   10 +-
 ...stvm_1_1relay_1_1DFPatternCallback-members.html |    2 +-
 .../classtvm_1_1relay_1_1DFPatternCallback.html    |   14 +-
 ..._1_1relay_1_1DFPatternCallbackNode-members.html |    9 +-
 ...classtvm_1_1relay_1_1DFPatternCallbackNode.html |   41 +-
 ...relay_1_1DFPatternCallbackNode__coll__graph.svg |   85 +-
 ...ay_1_1DFPatternCallbackNode__inherit__graph.svg |   35 +-
 .../classtvm_1_1runtime_1_1TVMRetValue.html        |    4 +-
 ...untime_1_1vm_1_1VirtualMachine__coll__graph.svg |    4 +-
 ...rimExpr_01_6n_00_01Args_8_8_8_08_4-members.html |    5 +-
 ...onst_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html |   38 +
 ...xpr_01_6n_00_01Args_8_8_8_08_4__coll__graph.svg |    2 +-
 .../classtvm_1_1tir_1_1ExprMutator-members.html    |    1 +
 .../doxygen/classtvm_1_1tir_1_1ExprMutator.html    |   26 +
 ...classtvm_1_1tir_1_1ExprMutator__coll__graph.svg |    2 +-
 ...sstvm_1_1tir_1_1ExprMutator__inherit__graph.svg |    2 +-
 .../classtvm_1_1tir_1_1ExprVisitor-members.html    |    1 +
 .../doxygen/classtvm_1_1tir_1_1ExprVisitor.html    |   26 +
 ...classtvm_1_1tir_1_1ExprVisitor__coll__graph.svg |    2 +-
 ...sstvm_1_1tir_1_1ExprVisitor__inherit__graph.svg |    2 +-
 ...classtvm_1_1tir_1_1StmtExprMutator-members.html |   33 +-
 .../classtvm_1_1tir_1_1StmtExprMutator.html        |    2 +
 ...stvm_1_1tir_1_1StmtExprMutator__coll__graph.svg |    2 +-
 ...m_1_1tir_1_1StmtExprMutator__inherit__graph.svg |    2 +-
 ...classtvm_1_1tir_1_1StmtExprVisitor-members.html |   29 +-
 .../classtvm_1_1tir_1_1StmtExprVisitor.html        |    2 +
 ...stvm_1_1tir_1_1StmtExprVisitor__coll__graph.svg |    2 +-
 ...m_1_1tir_1_1StmtExprVisitor__inherit__graph.svg |    2 +-
 docs/api/doxygen/dataflow__matcher_8h.html         |    6 +-
 docs/api/doxygen/dataflow__matcher_8h_source.html  |   16 +-
 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             |    2 +-
 docs/api/doxygen/elemwise_8h_source.html           |    2 +-
 docs/api/doxygen/functions_a.html                  |    2 +
 docs/api/doxygen/functions_d.html                  |    2 +-
 docs/api/doxygen/functions_f.html                  |    6 +-
 docs/api/doxygen/functions_func_d.html             |    2 +-
 docs/api/doxygen/functions_func_r.html             |    5 +-
 docs/api/doxygen/functions_func_s.html             |    4 +-
 docs/api/doxygen/functions_func_t.html             |    6 +-
 docs/api/doxygen/functions_func_v.html             |   18 +-
 docs/api/doxygen/functions_i.html                  |    4 +-
 docs/api/doxygen/functions_m.html                  |    5 +-
 docs/api/doxygen/functions_n.html                  |    2 +
 docs/api/doxygen/functions_p.html                  |    6 +-
 docs/api/doxygen/functions_r.html                  |   11 +-
 docs/api/doxygen/functions_s.html                  |    9 +-
 docs/api/doxygen/functions_t.html                  |   10 +-
 docs/api/doxygen/functions_v.html                  |   26 +-
 docs/api/doxygen/functions_vars_a.html             |    2 +
 docs/api/doxygen/functions_vars_f.html             |    4 +-
 docs/api/doxygen/functions_vars_m.html             |    3 +
 docs/api/doxygen/functions_vars_n.html             |    2 +
 docs/api/doxygen/functions_vars_p.html             |    4 +-
 docs/api/doxygen/functions_vars_r.html             |    6 +
 docs/api/doxygen/functions_vars_s.html             |    3 +
 docs/api/doxygen/hierarchy.html                    |  268 +-
 .../include_2tvm_2relay_2attrs_2transform_8h.html  |    5 +
 ...de_2tvm_2relay_2attrs_2transform_8h_source.html |  165 +-
 .../doxygen/include_2tvm_2relay_2transform_8h.html |    3 +
 .../include_2tvm_2relay_2transform_8h_source.html  |    3 +-
 docs/api/doxygen/inherit_graph_82.svg              | 3999 ++++++++++----------
 docs/api/doxygen/inherits.html                     |    2 +-
 docs/api/doxygen/namespacemembers.html             |    1 +
 docs/api/doxygen/namespacemembers_b.html           |    1 +
 docs/api/doxygen/namespacemembers_c.html           |    1 +
 docs/api/doxygen/namespacemembers_d.html           |    1 +
 docs/api/doxygen/namespacemembers_e.html           |    1 +
 docs/api/doxygen/namespacemembers_f.html           |    1 +
 docs/api/doxygen/namespacemembers_func.html        |    1 +
 docs/api/doxygen/namespacemembers_func_b.html      |    1 +
 docs/api/doxygen/namespacemembers_func_c.html      |    1 +
 docs/api/doxygen/namespacemembers_func_d.html      |    1 +
 docs/api/doxygen/namespacemembers_func_e.html      |    1 +
 docs/api/doxygen/namespacemembers_func_f.html      |    1 +
 docs/api/doxygen/namespacemembers_func_g.html      |    1 +
 docs/api/doxygen/namespacemembers_func_h.html      |    1 +
 docs/api/doxygen/namespacemembers_func_i.html      |    1 +
 docs/api/doxygen/namespacemembers_func_j.html      |    1 +
 docs/api/doxygen/namespacemembers_func_k.html      |    1 +
 docs/api/doxygen/namespacemembers_func_l.html      |    1 +
 docs/api/doxygen/namespacemembers_func_m.html      |    1 +
 docs/api/doxygen/namespacemembers_func_n.html      |    1 +
 docs/api/doxygen/namespacemembers_func_o.html      |    1 +
 docs/api/doxygen/namespacemembers_func_p.html      |    1 +
 ...rs_func_y.html => namespacemembers_func_q.html} |   10 +-
 docs/api/doxygen/namespacemembers_func_r.html      |    3 +-
 docs/api/doxygen/namespacemembers_func_s.html      |    6 +-
 docs/api/doxygen/namespacemembers_func_t.html      |    1 +
 docs/api/doxygen/namespacemembers_func_u.html      |    1 +
 docs/api/doxygen/namespacemembers_func_v.html      |    1 +
 docs/api/doxygen/namespacemembers_func_w.html      |    1 +
 docs/api/doxygen/namespacemembers_func_y.html      |    1 +
 docs/api/doxygen/namespacemembers_g.html           |    1 +
 docs/api/doxygen/namespacemembers_h.html           |    1 +
 docs/api/doxygen/namespacemembers_i.html           |    1 +
 docs/api/doxygen/namespacemembers_j.html           |    1 +
 docs/api/doxygen/namespacemembers_k.html           |    1 +
 docs/api/doxygen/namespacemembers_l.html           |    1 +
 docs/api/doxygen/namespacemembers_m.html           |    1 +
 docs/api/doxygen/namespacemembers_n.html           |    1 +
 docs/api/doxygen/namespacemembers_o.html           |    1 +
 docs/api/doxygen/namespacemembers_p.html           |    1 +
 ...spacemembers_j.html => namespacemembers_q.html} |   10 +-
 docs/api/doxygen/namespacemembers_r.html           |    3 +-
 docs/api/doxygen/namespacemembers_s.html           |    6 +-
 docs/api/doxygen/namespacemembers_t.html           |    1 +
 docs/api/doxygen/namespacemembers_u.html           |    1 +
 docs/api/doxygen/namespacemembers_v.html           |    1 +
 docs/api/doxygen/namespacemembers_w.html           |    1 +
 docs/api/doxygen/namespacemembers_y.html           |    1 +
 docs/api/doxygen/namespacetvm.html                 |  220 +-
 docs/api/doxygen/namespacetvm_1_1relay.html        |   27 +-
 docs/api/doxygen/namespacetvm_1_1relay_1_1qnn.html |    3 +
 .../namespacetvm_1_1relay_1_1transform.html        |   21 +
 .../api/doxygen/namespacetvm_1_1runtime_1_1vm.html |    5 +-
 .../doxygen/namespacetvm_1_1tir_1_1builtin.html    |   20 +
 docs/api/doxygen/nn_2bnn_8h_source.html            |    2 +-
 docs/api/doxygen/nn_2pooling_8h_source.html        |    4 +-
 docs/api/doxygen/nn_2softmax_8h_source.html        |    2 +-
 docs/api/doxygen/packed__func_8h_source.html       |    2 +-
 docs/api/doxygen/reduction_8h_source.html          |    4 +-
 docs/api/doxygen/relay_2attrs_2vm_8h.html          |    3 +
 docs/api/doxygen/relay_2attrs_2vm_8h_source.html   |    5 +-
 docs/api/doxygen/relay_2qnn_2attrs_8h.html         |    3 +
 docs/api/doxygen/relay_2qnn_2attrs_8h_source.html  |    5 +-
 docs/api/doxygen/runtime_2vm_8h.html               |    3 +-
 docs/api/doxygen/runtime_2vm_8h_source.html        |  158 +-
 docs/api/doxygen/search/all_1.js                   |   16 +-
 docs/api/doxygen/search/all_10.js                  |   15 +-
 docs/api/doxygen/search/all_11.js                  |    1 +
 docs/api/doxygen/search/all_12.js                  |   14 +-
 docs/api/doxygen/search/all_13.js                  |   23 +-
 docs/api/doxygen/search/all_14.js                  |    4 +-
 docs/api/doxygen/search/all_15.js                  |    2 +-
 docs/api/doxygen/search/all_16.js                  |    6 +-
 docs/api/doxygen/search/all_4.js                   |    9 +-
 docs/api/doxygen/search/all_6.js                   |   14 +-
 docs/api/doxygen/search/all_9.js                   |    2 +-
 docs/api/doxygen/search/all_d.js                   |   13 +-
 docs/api/doxygen/search/all_e.js                   |    2 +-
 docs/api/doxygen/search/all_f.js                   |    4 +-
 docs/api/doxygen/search/classes_0.js               |    4 +
 docs/api/doxygen/search/classes_10.js              |    1 +
 docs/api/doxygen/search/classes_13.js              |    2 +-
 docs/api/doxygen/search/classes_3.js               |    1 +
 docs/api/doxygen/search/classes_5.js               |    1 +
 docs/api/doxygen/search/classes_f.js               |    1 +
 docs/api/doxygen/search/enumvalues_9.js            |    1 +
 docs/api/doxygen/search/functions_11.js            |   65 +-
 docs/api/doxygen/search/functions_12.js            |  194 +-
 docs/api/doxygen/search/functions_13.js            |  298 +-
 docs/api/doxygen/search/functions_14.js            |  188 +-
 docs/api/doxygen/search/functions_15.js            |   69 +-
 docs/api/doxygen/search/functions_16.js            |   57 +-
 docs/api/doxygen/search/functions_17.js            |    9 +-
 docs/api/doxygen/search/functions_18.js            |   27 +-
 docs/api/doxygen/search/functions_19.html          |   26 +
 .../search/{functions_18.js => functions_19.js}    |    0
 docs/api/doxygen/search/functions_4.js             |    2 +-
 docs/api/doxygen/search/functions_d.js             |    2 +-
 docs/api/doxygen/search/functions_f.js             |    2 +-
 docs/api/doxygen/search/searchdata.js              |    2 +-
 docs/api/doxygen/search/variables_1.js             |    2 +-
 docs/api/doxygen/search/variables_10.js            |    2 +
 docs/api/doxygen/search/variables_11.js            |    1 +
 docs/api/doxygen/search/variables_6.js             |    2 +-
 docs/api/doxygen/search/variables_c.js             |    3 +-
 docs/api/doxygen/search/variables_d.js             |    2 +-
 docs/api/doxygen/search/variables_f.js             |    3 +-
 docs/api/doxygen/stmt__functor_8h_source.html      |    4 +-
 ..._1relay_1_1FixedPointMultiplyAttrs-members.html |  123 +
 ...ucttvm_1_1relay_1_1FixedPointMultiplyAttrs.html |  245 ++
 ...lay_1_1FixedPointMultiplyAttrs__coll__graph.svg |   89 +
 ..._1_1FixedPointMultiplyAttrs__inherit__graph.svg |   89 +
 ...tvm_1_1relay_1_1ReshapeTensorAttrs-members.html |  122 +
 .../structtvm_1_1relay_1_1ReshapeTensorAttrs.html  |  231 ++
 ...1_1relay_1_1ReshapeTensorAttrs__coll__graph.svg |  103 +
 ...relay_1_1ReshapeTensorAttrs__inherit__graph.svg |   88 +
 ...ucttvm_1_1relay_1_1ScatterAddAttrs-members.html |  122 +
 .../structtvm_1_1relay_1_1ScatterAddAttrs.html     |  226 ++
 ...vm_1_1relay_1_1ScatterAddAttrs__coll__graph.svg |  187 +
 ...1_1relay_1_1ScatterAddAttrs__inherit__graph.svg |   87 +
 ...1_1relay_1_1qnn_1_1DequantizeAttrs-members.html |  122 +
 ...ructtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html |  231 ++
 ...elay_1_1qnn_1_1DequantizeAttrs__coll__graph.svg |   88 +
 ...y_1_1qnn_1_1DequantizeAttrs__inherit__graph.svg |   88 +
 ...vm_1_1runtime_1_1vm_1_1Instruction-members.html |   55 +-
 .../structtvm_1_1runtime_1_1vm_1_1Instruction.html |   85 +
 ..._1runtime_1_1vm_1_1Instruction__coll__graph.svg |    4 +-
 ...vm_1_1runtime_1_1vm_1_1VMFrame__coll__graph.svg |    4 +-
 docs/api/doxygen/tir_2expr__functor_8h_source.html |    7 +-
 docs/api/doxygen/tir_2op_8h.html                   |    7 +-
 docs/api/doxygen/tir_2op_8h_source.html            |  107 +-
 .../doxygen/topi_2include_2topi_2nn_8h_source.html |    6 +-
 .../topi_2include_2topi_2transform_8h_source.html  |    2 +-
 .../javadoc/org/apache/tvm/class-use/Function.html |   12 +-
 .../javadoc/org/apache/tvm/class-use/Module.html   |    8 +-
 docs/api/links.html                                |    6 +-
 docs/api/python/autotvm.html                       |   16 +-
 docs/api/python/contrib.html                       |    2 +-
 docs/api/python/driver.html                        |    2 +-
 docs/api/python/error.html                         |    2 +-
 docs/api/python/graph_runtime.html                 |    2 +-
 docs/api/python/index.html                         |    2 +-
 docs/api/python/ir.html                            |    2 +-
 docs/api/python/micro.html                         |    2 +-
 docs/api/python/ndarray.html                       |    2 +-
 docs/api/python/relay/analysis.html                |    2 +-
 docs/api/python/relay/backend.html                 |    2 +-
 docs/api/python/relay/dataflow_pattern.html        |   16 +-
 docs/api/python/relay/frontend.html                |    2 +-
 docs/api/python/relay/image.html                   |    2 +-
 docs/api/python/relay/index.html                   |  167 +-
 docs/api/python/relay/nn.html                      |    2 +-
 docs/api/python/relay/testing.html                 |    9 +-
 docs/api/python/relay/transform.html               |   39 +-
 docs/api/python/relay/vision.html                  |    2 +-
 docs/api/python/rpc.html                           |    2 +-
 docs/api/python/runtime.html                       |    5 +-
 docs/api/python/target.html                        |    2 +-
 docs/api/python/te.html                            |    6 +-
 docs/api/python/tir.html                           |   64 +-
 docs/api/python/topi.html                          |    2 +-
 docs/api/python/vta/index.html                     |    2 +-
 docs/api/typedoc/assets/js/main.js                 |    2 +-
 docs/api/typedoc/classes/bytestreamreader.html     |   13 +-
 docs/api/typedoc/classes/cachedcallstack.html      |   35 +-
 docs/api/typedoc/classes/dlcontext.html            |   11 +-
 docs/api/typedoc/classes/dldatatype.html           |   13 +-
 docs/api/typedoc/classes/environment.html          |   13 +-
 docs/api/typedoc/classes/ffilibrary.html           |   21 +-
 docs/api/typedoc/classes/graphruntime.html         |   17 +-
 docs/api/typedoc/classes/instance.html             |   41 +-
 docs/api/typedoc/classes/memory.html               |   35 +-
 docs/api/typedoc/classes/module.html               |   11 +-
 docs/api/typedoc/classes/ndarray.html              |   23 +-
 docs/api/typedoc/classes/packedfunccell.html       |    7 +-
 docs/api/typedoc/classes/rpcserver.html            |   15 +-
 docs/api/typedoc/classes/scalar.html               |    7 +-
 docs/api/typedoc/classes/webgpucontext.html        |   13 +-
 docs/api/typedoc/enums/argtypecode.html            |   31 +-
 docs/api/typedoc/enums/aynccallbackcode.html       |    5 +-
 docs/api/typedoc/enums/dldatatypecode.html         |    9 +-
 docs/api/typedoc/enums/rpcserverstate.html         |   13 +-
 docs/api/typedoc/enums/sizeof.html                 |   19 +-
 docs/api/typedoc/index.html                        |  115 +-
 docs/api/typedoc/interfaces/disposable.html        |    3 +-
 docs/api/typedoc/interfaces/functioninfo.html      |    7 +-
 docs/api/typedoc/interfaces/libraryprovider.html   |    5 +-
 docs/contribute/code_guide.html                    |    2 +-
 docs/contribute/code_review.html                   |    2 +-
 docs/contribute/committer_guide.html               |    2 +-
 docs/contribute/community.html                     |    2 +-
 docs/contribute/document.html                      |    2 +-
 docs/contribute/error_handling.html                |    2 +-
 docs/contribute/git_howto.html                     |    2 +-
 docs/contribute/index.html                         |    7 +-
 docs/contribute/pull_request.html                  |    2 +-
 docs/contribute/release_process.html               |   16 +-
 docs/deploy/android.html                           |    3 +-
 docs/deploy/arm_compute_lib.html                   |  363 ++
 docs/deploy/cpp_deploy.html                        |    3 +-
 docs/deploy/hls.html                               |    7 +-
 docs/deploy/index.html                             |   11 +-
 docs/deploy/integrate.html                         |    3 +-
 docs/dev/benchmark.html                            |   50 +-
 docs/dev/codebase_walkthrough.html                 |   53 +-
 docs/dev/convert_layout.html                       |   57 +-
 docs/dev/debugger.html                             |   51 +-
 docs/dev/hybrid_script.html                        |   49 +-
 docs/dev/index.html                                |  463 ++-
 docs/dev/inferbound.html                           |   67 +-
 docs/dev/introduction_to_module_serialization.html |   57 +-
 docs/dev/relay_add_op.html                         |   59 +-
 docs/dev/relay_add_pass.html                       |   54 +-
 docs/dev/relay_bring_your_own_codegen.html         |   56 +-
 docs/dev/relay_intro.html                          |   55 +-
 docs/dev/relay_op_strategy.html                    |   55 +-
 docs/dev/relay_pass_infra.html                     |   49 +-
 docs/dev/runtime.html                              |   55 +-
 docs/dev/security.html                             |   54 +-
 docs/dev/virtual_machine.html                      |   57 +-
 docs/faq.html                                      |    4 +-
 docs/frontend/tensorflow.html                      |    6 +-
 docs/genindex.html                                 |   12 +-
 docs/index.html                                    |   35 +-
 docs/install/docker.html                           |    2 +-
 docs/install/from_source.html                      |   13 +-
 docs/install/index.html                            |    2 +-
 docs/install/nnpack.html                           |    2 +-
 docs/langref/hybrid_script.html                    |    2 +-
 docs/langref/index.html                            |    2 +-
 docs/langref/relay_adt.html                        |    2 +-
 docs/langref/relay_expr.html                       |    2 +-
 docs/langref/relay_op.html                         |    2 +-
 docs/langref/relay_pattern.html                    |    2 +-
 docs/langref/relay_type.html                       |    2 +-
 docs/objects.inv                                   |  Bin 14971 -> 15043 bytes
 docs/py-modindex.html                              |    2 +-
 docs/search.html                                   |    2 +-
 docs/searchindex.js                                |    2 +-
 docs/tutorials/autotvm/sg_execution_times.html     |   16 +-
 docs/tutorials/autotvm/tune_conv2d_cuda.html       |   44 +-
 docs/tutorials/autotvm/tune_relay_arm.html         |    2 +-
 docs/tutorials/autotvm/tune_relay_cuda.html        |    2 +-
 docs/tutorials/autotvm/tune_relay_mobile_gpu.html  |    2 +-
 docs/tutorials/autotvm/tune_relay_x86.html         |   11 +-
 docs/tutorials/autotvm/tune_simple_template.html   |   22 +-
 docs/tutorials/cross_compilation_and_rpc.html      |    4 +-
 docs/tutorials/dev/low_level_custom_pass.html      |    6 +-
 docs/tutorials/dev/relay_pass_infra.html           |    2 +-
 docs/tutorials/dev/sg_execution_times.html         |    8 +-
 docs/tutorials/frontend/build_gcn.html             |    2 +-
 .../frontend/deploy_model_on_android.html          |    4 +-
 docs/tutorials/frontend/deploy_model_on_rasp.html  |    2 +-
 docs/tutorials/frontend/deploy_prequantized.html   |    6 +-
 .../frontend/deploy_prequantized_tflite.html       |    6 +-
 docs/tutorials/frontend/deploy_quantized.html      |    2 +-
 docs/tutorials/frontend/deploy_sparse.html         |    2 +-
 docs/tutorials/frontend/deploy_ssd_gluoncv.html    |    2 +-
 docs/tutorials/frontend/from_caffe2.html           |    2 +-
 docs/tutorials/frontend/from_coreml.html           |    2 +-
 docs/tutorials/frontend/from_darknet.html          |    2 +-
 docs/tutorials/frontend/from_keras.html            |    2 +-
 docs/tutorials/frontend/from_mxnet.html            |    2 +-
 docs/tutorials/frontend/from_onnx.html             |    8 +-
 docs/tutorials/frontend/from_pytorch.html          |    2 +-
 docs/tutorials/frontend/from_tensorflow.html       |    4 +-
 docs/tutorials/frontend/from_tflite.html           |    2 +-
 docs/tutorials/frontend/sg_execution_times.html    |   40 +-
 docs/tutorials/frontend/using_external_lib.html    |    2 +-
 docs/tutorials/index.html                          |    2 +-
 docs/tutorials/language/extern_op.html             |    2 +-
 docs/tutorials/language/intrin_math.html           |    2 +-
 docs/tutorials/language/reduction.html             |    6 +-
 docs/tutorials/language/scan.html                  |    2 +-
 docs/tutorials/language/schedule_primitives.html   |   24 +-
 docs/tutorials/language/sg_execution_times.html    |   20 +-
 docs/tutorials/language/tedd.html                  |    2 +-
 docs/tutorials/language/tensorize.html             |    6 +-
 docs/tutorials/language/tuple_inputs.html          |   18 +-
 docs/tutorials/micro/micro_tflite.html             |    2 +-
 docs/tutorials/micro/sg_execution_times.html       |    6 +-
 docs/tutorials/optimize/opt_conv_cuda.html         |    4 +-
 docs/tutorials/optimize/opt_conv_tensorcore.html   |    4 +-
 docs/tutorials/optimize/opt_gemm.html              |   26 +-
 .../optimize/opt_matmul_auto_tensorcore.html       |    2 +-
 docs/tutorials/optimize/sg_execution_times.html    |   12 +-
 docs/tutorials/relay_quick_start.html              |  106 +-
 docs/tutorials/sg_execution_times.html             |   10 +-
 docs/tutorials/tensor_expr_get_started.html        |    4 +-
 docs/tutorials/topi/intro_topi.html                |    4 +-
 docs/tutorials/topi/sg_execution_times.html        |    6 +-
 docs/vta/dev/config.html                           |    2 +-
 docs/vta/dev/hardware.html                         |    2 +-
 docs/vta/dev/index.html                            |    2 +-
 docs/vta/index.html                                |    2 +-
 docs/vta/install.html                              |    2 +-
 docs/vta/tutorials/autotvm/sg_execution_times.html |    6 +-
 docs/vta/tutorials/autotvm/tune_relay_vta.html     |  186 +-
 .../tutorials/frontend/deploy_classification.html  |   20 +-
 docs/vta/tutorials/frontend/deploy_detection.html  |    4 +-
 .../vta/tutorials/frontend/sg_execution_times.html |    8 +-
 docs/vta/tutorials/index.html                      |    2 +-
 docs/vta/tutorials/matrix_multiply.html            |    6 +-
 docs/vta/tutorials/optimize/convolution_opt.html   |   10 +-
 .../tutorials/optimize/matrix_multiply_opt.html    |   10 +-
 .../vta/tutorials/optimize/sg_execution_times.html |    8 +-
 docs/vta/tutorials/sg_execution_times.html         |    8 +-
 docs/vta/tutorials/vta_get_started.html            |    2 +-
 422 files changed, 9147 insertions(+), 4993 deletions(-)

diff --git a/docs/_downloads/85ba00b8ada85b8c5367f37b526a8caa/tune_relay_x86.py b/docs/_downloads/85ba00b8ada85b8c5367f37b526a8caa/tune_relay_x86.py
index dcc5b25..92fdafb 100644
--- a/docs/_downloads/85ba00b8ada85b8c5367f37b526a8caa/tune_relay_x86.py
+++ b/docs/_downloads/85ba00b8ada85b8c5367f37b526a8caa/tune_relay_x86.py
@@ -114,6 +114,11 @@ os.environ["TVM_NUM_THREADS"] = str(num_threads)
 # We will use local mode for tuning configuration. RPC tracker
 # mode can be setup similarly to the approach in
 # :ref:`tune_relay_arm` tutorial.
+#
+# To perform a precise measurement, we should repeat the measurement several
+# times and use the average of results. In addition, we need to flush the cache
+# for the weight tensors between repeated measurements. This can make the measured
+# latency of one operator closer to its actual latency during end-to-end inference.
 
 tuning_option = {
     'log_filename': log_file,
@@ -122,8 +127,9 @@ tuning_option = {
 
     'measure_option': autotvm.measure_option(
         builder=autotvm.LocalBuilder(),
-        runner=autotvm.LocalRunner(number=10, repeat=1,
-                                   min_repeat_ms=1000),
+        runner=autotvm.LocalRunner(number=1, repeat=10,
+                                   min_repeat_ms=0,
+                                   enable_cpu_cache_flush=True),
     ),
 }
 
diff --git a/docs/_downloads/b9891d1a23f84eec3271025d99d005f7/tune_relay_x86.ipynb b/docs/_downloads/b9891d1a23f84eec3271025d99d005f7/tune_relay_x86.ipynb
index e705461..99ab3fd 100644
--- a/docs/_downloads/b9891d1a23f84eec3271025d99d005f7/tune_relay_x86.ipynb
+++ b/docs/_downloads/b9891d1a23f84eec3271025d99d005f7/tune_relay_x86.ipynb
@@ -51,7 +51,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Configure tensor tuning settings and create tasks\n-------------------------------------------------\nTo get better kernel execution performance on x86 CPU,\nwe need to change data layout of convolution kernel from\n\"NCHW\" to \"NCHWc\". To deal with this situation, we define\nconv2d_NCHWc operator in topi. We will tune this operator\ninstead of plain conv2d.\n\nWe will use local mode for tuning configuration. RPC tracker\nmode can be setup similarly to the approach in\n`tune_r [...]
+        "Configure tensor tuning settings and create tasks\n-------------------------------------------------\nTo get better kernel execution performance on x86 CPU,\nwe need to change data layout of convolution kernel from\n\"NCHW\" to \"NCHWc\". To deal with this situation, we define\nconv2d_NCHWc operator in topi. We will tune this operator\ninstead of plain conv2d.\n\nWe will use local mode for tuning configuration. RPC tracker\nmode can be setup similarly to the approach in\n`tune_r [...]
       ]
     },
     {
@@ -62,7 +62,7 @@
       },
       "outputs": [],
       "source": [
-        "tuning_option = {\n    'log_filename': log_file,\n    'tuner': 'random',\n    'early_stopping': None,\n\n    'measure_option': autotvm.measure_option(\n        builder=autotvm.LocalBuilder(),\n        runner=autotvm.LocalRunner(number=10, repeat=1,\n                                   min_repeat_ms=1000),\n    ),\n}\n\n\n# You can skip the implementation of this function for this tutorial.\ndef tune_kernels(tasks,\n                 measure_option,\n                 tuner='gridsea [...]
+        "tuning_option = {\n    'log_filename': log_file,\n    'tuner': 'random',\n    'early_stopping': None,\n\n    'measure_option': autotvm.measure_option(\n        builder=autotvm.LocalBuilder(),\n        runner=autotvm.LocalRunner(number=1, repeat=10,\n                                   min_repeat_ms=0,\n                                   enable_cpu_cache_flush=True),\n    ),\n}\n\n\n# You can skip the implementation of this function for this tutorial.\ndef tune_kernels(tasks,\n    [...]
       ]
     },
     {
diff --git a/docs/_sources/contribute/release_process.rst.txt b/docs/_sources/contribute/release_process.rst.txt
index 9fca35a..3e2239f 100644
--- a/docs/_sources/contribute/release_process.rst.txt
+++ b/docs/_sources/contribute/release_process.rst.txt
@@ -74,6 +74,8 @@ To cut a release candidate, one needs to first cut a branch using selected versi
 	git branch v0.6.0
 	git push --set-upstream origin v0.6.0
 
+(*Make sure the version numbers in the source code are correct.* Run :code:`python3 version.py` to update the version.)
+
 Go to the GitHub repositories "releases" tab and click "Draft a new release",
 
 - Provide the release tag in the form of “v1.0.0.rc0” where 0 means it’s the first release candidate
@@ -88,7 +90,7 @@ Remove previous release candidate (if applied),
 
 .. code-block:: bash
 
-	git push --delete origin 0.6.0.rc1
+	git push --delete origin v0.6.0.rc1
 
 Create source code artifacts,
 
@@ -177,9 +179,20 @@ After the vote passes, to upload the binaries to Apache mirrors, you move the bi
 	curl "https://dist.apache.org/repos/dist/dev/incubator/tvm/KEYS" > svn-tvm/KEYS
 	(cd svn-tvm && svn ci --username $ASF_USERNAME --password "$ASF_PASSWORD" -m"Update KEYS")
 
+Remember to create a new release TAG (v0.6.0 in this case) on Github and remove the pre-release candidate TAG.
+
+ .. code-block:: bash
+
+     git push --delete origin v0.6.0.rc2
+
 
 Update the TVM Website
 ----------------------
 
 The website repository is located at `https://github.com/apache/incubator-tvm-site <https://github.com/apache/incubator-tvm-site>`_. Modify the download page to include the release artifacts as well as the GPG signature and SHA hash.
 
+
+Post the Announcement
+---------------------
+
+Send out an announcement email to general@incubator.apache.org, announce@apache.org, and dev@tvm.apache.org. The announcement should include the link to release note and download page.
diff --git a/docs/_sources/deploy/arm_compute_lib.rst.txt b/docs/_sources/deploy/arm_compute_lib.rst.txt
new file mode 100644
index 0000000..28abc9c
--- /dev/null
+++ b/docs/_sources/deploy/arm_compute_lib.rst.txt
@@ -0,0 +1,139 @@
+..  Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+..    http://www.apache.org/licenses/LICENSE-2.0
+
+..  Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+Relay Arm|reg| Compute Library Integration
+==========================================
+
+Introduction
+------------
+
+Arm Compute Library (ACL) is an open source project that provides accelerated kernels for Arm CPU's
+and GPU's. Currently the integration offloads operators to ACL to use hand-crafted assembler
+routines in the library. By offloading select operators from a relay graph to ACL we can achieve
+a performance boost on such devices.
+
+Building with ACL support
+-------------------------
+
+The current implementation has two separate build options in cmake. The reason for this split is
+because ACL cannot be used on an x86 machine. However, we still want to be able compile an ACL
+runtime module on an x86 machine.
+
+* USE_ARM_COMPUTE_LIB=ON/OFF - Enabling this flag will add support for compiling an ACL runtime module.
+* USE_ARM_COMPUTE_LIB_GRAPH_RUNTIME=ON/OFF/path-to-acl - Enabling this flag will allow the graph runtime to
+  compute the ACL offloaded functions.
+
+These flags can be used in different scenarios depending on your setup. For example, if you want
+to compile an ACL module on an x86 machine and then run the module on a remote Arm device via RPC, you will
+need to use USE_ARM_COMPUTE_LIB=ON on the x86 machine and USE_ARM_COMPUTE_LIB_GRAPH_RUNTIME=ON on the remote
+AArch64 device.
+
+Usage
+-----
+
+.. note::
+
+    This section may not stay up-to-date with changes to the API.
+
+Create a relay graph. This may be a single operator or a whole graph. The intention is that any
+relay graph can be input. The ACL integration will only pick supported operators to be offloaded
+whilst the rest will be computed via TVM. (For this example we will use a single
+max_pool2d operator).
+
+.. code:: python
+
+    import tvm
+    from tvm import relay
+
+    data_type = "float32"
+    data_shape = (1, 14, 14, 512)
+    strides = (2, 2)
+    padding = (0, 0, 0, 0)
+    pool_size = (2, 2)
+    layout = "NHWC"
+    output_shape = (1, 7, 7, 512)
+
+    data = relay.var('data', shape=data_shape, dtype=data_type)
+    out = relay.nn.max_pool2d(data, pool_size=pool_size, strides=strides, layout=layout, padding=padding)
+    module = tvm.IRModule.from_expr(out)
+
+
+Annotate and partition the graph for ACL.
+
+..code:: python
+
+    from tvm.relay.op.contrib.arm_compute_lib import partition_for_arm_compute_lib
+    module = partition_for_arm_compute_lib(module)
+
+
+Build the Relay graph.
+
+.. code:: python
+
+    target = "llvm -mtriple=aarch64-linux-gnu -mattr=+neon"
+    with tvm.transform.PassContext(opt_level=3, disabled_pass=["AlterOpLayout"]):
+        lib = relay.build(module, target=target)
+
+
+Export the module.
+
+.. code:: python
+
+    lib_path = '~/lib_acl.so'
+    cross_compile = 'aarch64-linux-gnu-c++'
+    lib.export_library(lib_path, cc=cross_compile)
+
+
+Run Inference. This must be on an Arm device. If compiling on x86 device and running on AArch64,
+consider using the RPC mechanism. Tutorials for using the RPC mechanism:
+https://tvm.apache.org/docs/tutorials/cross_compilation_and_rpc.html#sphx-glr-tutorials-cross-compilation-and-rpc-py
+
+.. code:: python
+
+    ctx = tvm.cpu(0)
+    loaded_lib = tvm.runtime.load_module('lib_acl.so')
+    gen_module = tvm.contrib.graph_runtime.GraphModule(loaded_lib['default'](ctx))
+    d_data = np.random.uniform(0, 1, data_shape).astype(data_type)
+    map_inputs = {'data': d_data}
+    gen_module.set_input(**map_inputs)
+    gen_module.run()
+
+
+More examples
+-------------
+The example above only shows a basic example of how ACL can be used for offloading a single
+Maxpool2D. If you would like to see more examples for each implemented operator and for
+networks refer to the tests: `tests/python/contrib/test_arm_compute_lib`. Here you can modify
+`infrastructure.py` to use the remote device you have setup.
+
+
+Adding a new operator
+---------------------
+Adding a new operator requires changes to a series of places. This section will give a hint on
+what needs to be changed and where, it will not however dive into the complexities for an
+individual operator. This is left to the developer.
+
+There are a series of files we need to make changes to:
+* `python/relay/op/contrib/arm_compute_lib.py` In this file we define the operators we wish to offload using the
+`op.register` decorator. This will mean the annotation pass recognizes this operator as ACL
+offloadable.
+* `src/relay/backend/contrib/arm_compute_lib/codegen.cc` Implement `Create[OpName]JSONNode` method. This is where we
+declare how the operator should be represented by JSON. This will be used to create the ACL module.
+* `src/runtime/contrib/arm_compute_lib/acl_kernel.h` Implement `Create[OpName]Layer` method. This is where we
+define how the JSON representation can be used to create an ACL function. We simply define how to
+translate from the JSON representation to ACL API.
+* `tests/python/contrib/test_arm_compute_lib` Add unit tests for the given operator.
diff --git a/docs/_sources/deploy/index.rst.txt b/docs/_sources/deploy/index.rst.txt
index 53455ed..b38a7f5 100644
--- a/docs/_sources/deploy/index.rst.txt
+++ b/docs/_sources/deploy/index.rst.txt
@@ -68,3 +68,4 @@ target device without relying on RPC. see the following resources on how to do s
    android
    integrate
    hls
+   arm_compute_lib
diff --git a/docs/_sources/dev/index.rst.txt b/docs/_sources/dev/index.rst.txt
index be29a1f..8852341 100644
--- a/docs/_sources/dev/index.rst.txt
+++ b/docs/_sources/dev/index.rst.txt
@@ -15,28 +15,384 @@
     specific language governing permissions and limitations
     under the License.
 
-Design and Developer Guide
-==========================
+Design and Architecture
+=======================
+
+This document is intended for developers who want to understand the
+architecture of TVM and/or actively develop on the project.
+This page is organized as follows:
+
+- The `Example Compilation Flow`_ gives an overview of the steps that TVM takes to turn a high level description of a model into a deployable module.
+  To get started, please read this section first.
+- The `Logical Architecture Components`_ section describes the logical components.
+  The sections after are specific guides focused on each logical component, organized
+  by the component's name.
+- The `How Tos`_ section contains useful tutorials to solve specific development problems.
+
+This guide provides a few complementary views of the architecture.
+First, we review a single end-to-end compilation flow and discuss the key data structures and the transformations.
+This runtime-based view focuses on the interactions of each components when running the compiler.
+Then we will review the logical modules of the codebase and their relationship. This part provides a static overarching view of the design.
+
+
+Example Compilation Flow
+------------------------
+
+In this guide, we will study an example compilation flow in the compiler. The figure below shows the flow. At a high-level, it contains several steps:
+
+- Import: The frontend component ingests a model into an IRModule, which contains a collection of functions that internally represent the model.
+- Transformation: The compiler transforms an IRModule to another functionally equivalent or approximately
+  equivalent(e.g. in the case of quantization) IRModule. Many of the transformatons are target (backend) independent.
+  We also allow target to affect the configuration of the transformation pipeline.
+- Target Translation: The compiler translates(codegen) the IRModule to an executable format specified by the target.
+  The target translation result is encapsulated as a `runtime.Module` that can be exported, loaded, and executed on the target runtime environment.
+- Runtime Execution: the user loads back a `runtime.Module` and runs the compiled functions in the supported runtime environment.
+
+
+.. figure:: https://raw.githubusercontent.com/tvmai/web-data/master/images/design/tvm_dyn_workflow.svg
+   :align: center
+   :width: 85%
+
+
+Key data structures
+~~~~~~~~~~~~~~~~~~~
+
+One of the best ways to design and understand a complex system is to identify the key data structures and APIs that
+manipulate (transform) these data structures. Once we identified the key data structures, we can then breakdown a system into logical
+components that either define a collection of key data structures or transformations among the data structures.
+
+**IRModule** is the primary data structure used across the entire stack. An IRModule (intermediate representation module)
+contains a collection of functions. Currently, we support two primary variants of functions.
+
+- **relay::Function** is a high-level functional program representation. A relay.Function usually corresponds to an end-to-end model.
+  You can view a relay.Function as a computational graph with additional support for control-flow, recursion, and complex data structures.
+- **tir::PrimFunc** is a low-level program representation that contains elements including loop-nest choices, multi-dimensional load/store,
+  threading, and vector/tensor instructions. It is usually used to represent an operator program that executes a (possibly-fused) layer in a model.
+
+During the compilation, a relay function may be lowered to multiple tir::PrimFunc functions and a top-level function that calls into
+those tir::PrimFunc functions.
+
+Transformations
+~~~~~~~~~~~~~~~
+
+Now that we have covered the key data structures, let us talk about the transformations. Each transformation could serve one of the following purposes:
+
+- optimization: transform a program to an equivalent, possibly more optimized version.
+- lowering: transform a program to a lower-level representation that is closer to the target.
+
+**relay/transform** contains a collection of passes that optimize the model. The optimizations include common program
+optimizations such as constant folding and dead-code elimination, and tensor-computation specific passes such as layout
+transformation and scaling factor folding.
+
+Near the end of the relay optimization pipeline, we will run a pass(FuseOps) to break the end-to-end function(e.g. MobileNet)
+into sub-function(e.g. conv2d-relu) segments. We call these segments of functions.
+This process helps us to divide the original problem into two sub-problems:
+
+- Compilation and optimization for each sub-function.
+- Overall execution structure: we need to do a sequence of calls into the generated sub-functions to execute the whole model.
+
+We use the low-level tir phase to compile and optimize each sub-functions. For specific targets, we may also directly go to the target translation
+phase and use external code generators.
+
+There are a few different ways(in relay/backend) to handle the calls into the overall execution problem. For simple models with known shapes and no control flow, we can lower to a graph runtime that stores the execution structure in a graph. We also support a virtual machine backend for dynamic executions. Finally, we plan to support ahead of time compilation that compiles the high-level execution structure into the executable and generated primitive functions. All of these execution mod [...]
+
+**tir/transform** contains transformation passes for TIR level functions. Many tir passes serve the purpose of lowering. For example, there are passes to flatten multi-dimensional access to one-dimensional pointer access, to expand the intrinsics into target-specific ones, and to decorate the function entry to meet the runtime calling convention. Of course, there are also optimizations passes, such as access index simplification and dead code elimination.
+
+Many low-level optimizations can be handled in the target phase by the LLVM, CUDA C, and other target compilers. As a result, we leave low-level optimizations such as register allocation to the downstream compilers and only focus on optimizations that are not covered by them.
+
+Search-space and Learning-based Transformations
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The transformation passes we described so far are deterministic and rule-based. One design goal of the TVM stack is to support high-performance code optimizations for different hardware platforms. To do so, we will need to investigate as many optimizations choices as possible, including but not limited to, multi-dimensional tensor access, loop tiling behavior, special accelerator memory hierarchy, and threading.
+
+It is hard to define a heuristic to make all of the choices. Instead, we will take a search and learning-based approach.
+We first define a collection of actions we can take to transform a program. Example actions include loop transformations, inlining,
+vectorization. We call these actions **scheduling primitives**. The collection of scheduling primitives defines a search space of possible
+optimizations we can make to a program. The system then searches over different possible scheduling
+sequence to pick the best scheduling combination.
+The search procedure is usually guided by a machine learning algorithm.
+
+We can record the best schedule sequence for an (possibly-fused) operator once the search is completed. The compiler can then just lookup the best
+schedule sequence and apply it to the program. Notably, this schedule application phase is **exactly like** the rule-based transformations,
+enabling us to share the same interface convention with tradition passes.
+
+We use search based optimizations to handle the initial tir function generation problem. This part of the module is called AutoTVM(auto_scheduler).
+We expect to expand the learning-based transformations to more areas as we continue to develop the TVM stack.
+
+Target Translation
+~~~~~~~~~~~~~~~~~~
+
+The target translation phase transforms an IRModule to the corresponding target executable format.
+For backends such as x86 and ARM, we use the LLVM IRBuilder to build in-memory LLVM IR.
+We can also generate source-level languages such as CUDA C and OpenCL.
+Finally, we support direct translations of a Relay function (sub-graph) to specific targets via external code generators.
+It is important that the final code generation phase is as lightweight as possible. Vast majority of transformations
+and lowering should be performed before the target translation phase.
+
+We also provide a Target structure to specify the compilation target.
+The transformations before the target translation phase can also be affected by the target — for example,
+a target's vector length would change the vectorization behavior.
+
+
+Runtime Execution
+~~~~~~~~~~~~~~~~~
+
+The main goal of TVM's runtime is to provide a minimal API for loading and executing the compiled artifact in a language of their choice, including Python, C++, Rust, Go, Java, and JavaScript. The code snippet below shows such an example in Python:
+
+.. code-block:: python
+
+    import tvm
+    # Example runtime execution program in python, with type annotated
+    mod: tvm.runtime.Module = tvm.runtime.load_module("compiled_artifact.so")
+    arr: tvm.runtime.NDArray = tvm.nd.array([1, 2, 3], ctx=tvm.gpu(0))
+    fun: tvm.runtime.PackedFunc = mod["addone"]
+    fun(a)
+    print(a.asnumpy())
+
+
+:py:class:`tvm.runtime.Module` encapsulates the result of compilation. A runtime.Module contains a GetFunction method to obtain PackedFuncs by name.
+
+:py:class:`tvm.runtime.PackedFunc` is a type-erased function interface for both the generated functions. A runtime.PackedFunc can take arguments and return values with the
+following types: POD types(int, float), string, runtime.PackedFunc, runtime.Module, runtime.NDArray, and other sub-classes of runtime.Object.
+
+:py:class:`tvm.runtime.Module` and :py:class:`tvm.runtime.PackedFunc` are powerful mechanisms to modularize the runtime. For example, to get the above `addone` function on CUDA, we can use LLVM to generate the host-side code to compute the launching parameters(e.g. size of the thread groups) and then call into another PackedFunc from a CUDAModule that is backed by the CUDA driver API. The same mechanism can be used for OpenCL kernels.
+
+The above example only deals with a simple `addone` function. The code snippet below gives an example of an end-to-end model execution using the same interface:
+
+.. code-block:: python
+
+   import tvm
+   # Example runtime execution program in python, with types annotated
+   factory: tvm.runtime.Module = tvm.runtime.load_module("resnet18.so")
+   # Create a stateful graph execution module for resnet18 on gpu(0)
+   gmod: tvm.runtime.Module = factory["resnet18"](tvm.gpu(0))
+   data: tvm.runtime.NDArray = get_input_data()
+   # set input
+   gmod["set_input"](0, data)
+   # execute the model
+   gmod["run"]()
+   # get the output
+   result = gmod["get_output"](0).asnumpy()
+
+The main take away is that runtime.Module and runtime.PackedFunc are sufficient to encapsulate both operator level programs (such as addone), as well as the end-to-end models.
+
+Summary and Discussions
+~~~~~~~~~~~~~~~~~~~~~~~
+
+In summary, the key data structures in the compilation flows are:
+
+- IRModule: contains relay.Function and tir.PrimFunc
+- runtime.Module: contains runtime.PackedFunc
+
+Most parts of the compilation are transformations among the key data structures.
+
+- relay/transform and tir/transform are determinstic rule-based transformations
+- auto_scheduler and autotvm contains the search-based transformations
+
+Finally, the compilation flow example is only a typical use-case of the TVM stack.
+We expose these key data structures and transformations to python and C++ APIs. As a result, you can use TVM just like the way you use numpy,
+except that the data structure of interest changes from the numpy.ndarray to tvm.IRModule. Here are some example use-cases:
+
+- Directly construct IRModule using the python API.
+- Compose a custom set of transformations(e.g. customize quantization).
+- Manipulate the IR directly using TVM's python API.
+
+
+Logical Architecture Components
+-------------------------------
+
+.. figure:: https://raw.githubusercontent.com/tvmai/web-data/master/images/design/tvm_static_overview.svg
+   :align: center
+   :width: 85%
+
+   TVM Architecture Diagram
+
+The above figure shows the major logical components in the project. Please read the following sections
+for information about the components and their relations.
+
+
+tvm/support
+-----------
+The support module contains the most common utilities for the infrastructure, such as generic arena allocator, socket, and logging.
+
+
+tvm/runtime
+-----------
+
+The runtime serves as the foundation of the TVM stack. It provides the mechanism to load and execute compiled artifacts.
+The runtime defines a stable standard set of C APIs to interface with frontend languages such as Python and Rust.
+
+`runtime::Object` is one of the primary data structures in TVM runtime besides the `runtime::PackedFunc`.
+It is a reference-counted base class with a type index to support runtime type checking and downcasting.
+The object system allows the developer to introduce new data structures to the runtime, such as Array, Map, and new IR data structures.
+
+Besides deployment use-cases, the compiler itself also makes heavy use of TVM's runtime mechanism.
+All of the IR data structures are subclasses of `runtime::Object`, as a result, they can be directly accessed and manipulated from the Python frontend.
+We use the PackedFunc mechanism to expose various APIs to the frontend.
+
+Runtime support for different hardware backends are defined in subdirectories of runtime(e.g. runtime/opencl).
+These hardware-specific runtime modules define APIs for device memory allocation and device function serialization.
+
+`runtime/rpc` implements an RPC support for PackedFunc. We can use the RPC mechanism to send a cross-compiled library to a remote
+device and benchmark the execution performance. The rpc infrastructure enables data collection from a wide range of hardware backends
+for learning-based optimizations.
 
-Building a compiler stack for deep learning systems involves many many systems-level design decisions.
-In this part of documentation, we share the rationale for the specific choices made when designing TVM.
 
 .. toctree::
-   :maxdepth: 2
+   :maxdepth: 1
 
    runtime
    debugger
+   virtual_machine
+   introduction_to_module_serialization
+
+tvm/node
+--------
+The node module adds additional features on top of the `runtime::Object` for IR data structures.
+The main features include reflection, serialization, structural equivalence, and hashing.
+
+Thanks to the node module, we can directly access any field of the TVM's IRNode by their name in Python.
+
+.. code-block:: python
+
+    x = tvm.tir.Var("x", "int32")
+    y = tvm.tir.Add(x, x)
+    # a and b are fields of a tir.Add node
+    # we can directly use the field name to access the IR structures
+    assert y.a == x
+
+
+We can also serialize arbitrary IR node into a JSON format, and load them back.
+The ability to save/store, and inspect an IR node provides a foundation for making the compiler more accessible.
+
+
+tvm/ir
+------
+The `tvm/ir` folder contains the unified data structure and interfaces across for all IR function variants.
+The components in `tvm/ir` are shared by `tvm/relay` and `tvm/tir`, notable ones include
+
+- IRModule
+- Type
+- PassContext and Pass
+- Op
+
+Different variants of functions(e.g. relay.Function and tir.PrimFunc) can co-exist in an IRModule.
+While these variants may not have the same content representation, they use the same data structure to represent types.
+As a consequence, we use the same data structure to represent function (type) signatures of these variants.
+The unified type system allows one function variant to call another function
+once we clearly define the calling convention. This opens doors for future cross-function-variant optimizations.
+
+We also provide a unified PassContext for configuring the pass behavior, and common composite passes to execute a pass pipeline.
+The following code snippet gives an example of PassContext configuration.
+
+.. code-block:: python
+
+    # configure the behavior of the tir.UnrollLoop pass
+    with tvm.transform.PassContext(config={"tir.UnrollLoop": { "auto_max_step": 10 }}):
+        # code affected by the pass context
+
+
+Op is the common class to represent all system-defined primitive operator/intrinsics.
+Developers can register new Ops as well as their additional attributes(e.g. whether the Op is elementwise) to the system.
+
+
+tvm/target
+----------
+The target module contains all the code generators that translate an IRModule to a target runtime.Module.
+It also provides a common `Target` class that describes the target.
+
+.. TODO(tvm-team) add a target json description example once the new target API stablizes.
+
+
+The compilation pipeline can be customized according to the target by querying the attribute information
+in the target and builtin information registered to each target id(cuda, opencl).
+
+tvm/tir
+-------
+
+TIR contains the definition of the low-level program representations. We use `tir::PrimFunc` to represent functions that can be transformed by TIR passes.
+Besides the IR data structures, the tir module also defines a set of builtin intrinsics and their attributes via the common Op registry, as well as transformation passes in `tir/transform`.
+
+tvm/arith
+---------
+
+This module is closely tied to the TIR. One of the key problems in the low-level code generation is the analysis of the indices'
+arithmetic properties — the positiveness, variable bound, and the integer set that describes the iterator space. arith module provides
+a collection of tools that do (primarily integer) analysis. A TIR pass can use these analyses to simplify and optimize the code.
+
+tvm/te
+------
+
+The name te stands for "tensor expression". This is a domain-specific language module that allows us to construct `tir::PrimFunc` variants quickly by writing tensor expressions.
+Importantly, a tensor expression itself is not a self-contained function that can be stored into IRModule. Instead, it is a fragment of IR that we can stitch together to build an IRModule.
+
+`te/schedule` provides a collection of scheduling primitives to control the function being generated. In the future, we might bring some of
+these scheduling components to the a `tir::PrimFunc` itself.
+
+.. toctree::
+   :maxdepth: 1
+
+   inferbound
    hybrid_script
+
+topi
+----
+While possible to construct operators directly via TIR or tensor expressions (TE) for each use case it is tedious to do so.
+`topi` (Tensor operator inventory) provides a set of pre-defined operators (in TE or TIR) defined by
+numpy and found in common deep learning workloads. We also provide a collection of common schedule templates to obtain performant implementations across different target platforms.
+
+
+tvm/relay
+---------
+Relay is the high-level functional IR used to represent full models. Various optimizations are defined in `relay.transform`. The Relay compiler defines multiple dialects,
+and each dialect is designed to support specific styles of optimization. Notable ones include QNN(for importing pre-quantized models), VM(for lowering to dynamic virtual machine),
+memory(for memory optimization).
+
+.. toctree::
+   :maxdepth: 1
+
    relay_intro
-   relay_add_op
    relay_op_strategy
    relay_pass_infra
+   convert_layout
+
+
+tvm/autotvm
+-----------
+
+AutoTVM and AutoScheduler are both components which automate search based program optimization. This is rapidly evolving and primarily consists of:
+
+- Cost models and feature extraction.
+- A record format for storing program benchmark results for cost model construction.
+- A set of search policies over program transformations.
+
+Automated program optimization is still an active research field. As a result, we have attempted to modularize the design so that researchers may quickly modify a
+component or apply their own algorithms via the Python bindings, and
+customize the search and plugin their algorithms from the Python binding.
+
+.. toctree::
+   :maxdepth: 1
+
+   benchmark
+
+
+How Tos
+-------
+This section contains a collection of tips about how to work on
+various areas of the TVM stack.
+
+.. toctree::
+   :maxdepth: 1
+
+   relay_add_op
    relay_add_pass
    relay_bring_your_own_codegen
-   virtual_machine
    codebase_walkthrough
-   convert_layout
-   inferbound
-   benchmark
-   introduction_to_module_serialization
+
+
+Security
+---------
+.. toctree::
+   :maxdepth: 1
+
    security
diff --git a/docs/_sources/dev/security.rst.txt b/docs/_sources/dev/security.rst.txt
index 6d20e5d..22dbfc3 100644
--- a/docs/_sources/dev/security.rst.txt
+++ b/docs/_sources/dev/security.rst.txt
@@ -17,8 +17,8 @@
 
 .. _dev-security:
 
-Security
-========
+Security Guide
+==============
 
 Reporting Security Issues
 -------------------------
diff --git a/docs/_sources/install/from_source.rst.txt b/docs/_sources/install/from_source.rst.txt
index 12403a0..51ab887 100644
--- a/docs/_sources/install/from_source.rst.txt
+++ b/docs/_sources/install/from_source.rst.txt
@@ -67,6 +67,7 @@ The minimal building requirements are
 - CMake 3.5 or higher
 - We highly recommend to build with LLVM to enable all the features.
 - If you want to use CUDA, CUDA toolkit version >= 8.0 is required. If you are upgrading from an older version, make sure you purge the older version and reboot after installation.
+- On macOS, you may want to install `Homebrew <https://brew.sh>` to easily install and manage dependencies.
 
 
 We use cmake to build the library.
@@ -85,8 +86,9 @@ The configuration of TVM can be modified by `config.cmake`.
 - Edit ``build/config.cmake`` to customize the compilation options
 
   - On macOS, for some versions of Xcode, you need to add ``-lc++abi`` in the LDFLAGS or you'll get link errors.
-  - Change ``set(USE_CUDA OFF)`` to ``set(USE_CUDA ON)`` to enable CUDA backend. So do other backends and libraries
-    (OpenCL, RCOM, METAL, VULKAN, ...).
+  - Change ``set(USE_CUDA OFF)`` to ``set(USE_CUDA ON)`` to enable CUDA backend. Do the same for other backends and libraries
+    you want to build for (OpenCL, RCOM, METAL, VULKAN, ...).
+  - To help with debugging, ensure the embedded graph runtime and debugging functions are enabled with ``set(USE_GRAPH_RUNTIME ON)`` and ``set(USE_GRAPH_RUNTIME_DEBUG ON)``
 
 - TVM optionally depends on LLVM. LLVM is required for CPU codegen that needs LLVM.
 
@@ -94,7 +96,6 @@ The configuration of TVM can be modified by `config.cmake`.
   - Since LLVM takes long time to build from source, you can download pre-built version of LLVM from
     `LLVM Download Page <http://releases.llvm.org/download.html>`_.
 
-
     - Unzip to a certain location, modify ``build/config.cmake`` to add ``set(USE_LLVM /path/to/your/llvm/bin/llvm-config)``
     - You can also directly set ``set(USE_LLVM ON)`` and let cmake search for a usable version of LLVM.
 
@@ -154,6 +155,11 @@ Python Package Installation
 TVM package
 ~~~~~~~~~~~
 
+Depending on your development environment, you may want to use a virtual environment and package manager, such
+as ``virtualenv`` or ``conda``, to manage your python packages and dependencies.
+
+to install and maintain your python development environment.
+
 The python package is located at `tvm/python`
 There are two ways to install the package:
 
@@ -187,6 +193,10 @@ Method 2
 
 Python dependencies
 ~~~~~~~~~~~~~~~~~~~
+
+Note that the ``--user`` flag is not necessary if you're installing to a managed local environment,
+like ``virtualenv``.
+
    * Necessary dependencies:
 
    .. code:: bash
diff --git a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
index f0ceb69..ad28995 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: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``)
+**00:56.123** total execution time for **tutorials_autotvm** files:
+
+- **00:30.260**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
+- **00:25.165**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:00.186**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
+- **00:00.180**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+- **00:00.166**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.166**: :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 b8ef167..565fa0c 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) [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
+    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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\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) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 12  GFLOPS: 53.34/53.34     result: MeasureResult(costs=(0.00434000212,), error_no=0, all_cost=1.8472955226898193, timestamp=1595589864.5762575)    [('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/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 14  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 15  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 16  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 17  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 18  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 19  GFLOPS: 383.71/383.71   result: MeasureResult(costs=(0.0006033176964285714,), error_no=0, all_cost=2.3823819160461426, timestamp=1595589869.384095)     [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
+    No: 20  GFLOPS: 4.97/383.71     result: MeasureResult(costs=(0.04653973725,), error_no=0, all_cost=2.067434787750244, timestamp=1595589870.543709)      [('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.000356
+    Time cost of this operator: 0.000689
 
 
 
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt
index 5764df8..4f00326 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt
@@ -124,6 +124,11 @@ We will use local mode for tuning configuration. RPC tracker
 mode can be setup similarly to the approach in
 :ref:`tune_relay_arm` tutorial.
 
+To perform a precise measurement, we should repeat the measurement several
+times and use the average of results. In addition, we need to flush the cache
+for the weight tensors between repeated measurements. This can make the measured
+latency of one operator closer to its actual latency during end-to-end inference.
+
 
 .. code-block:: default
 
@@ -135,8 +140,9 @@ mode can be setup similarly to the approach in
 
         'measure_option': autotvm.measure_option(
             builder=autotvm.LocalBuilder(),
-            runner=autotvm.LocalRunner(number=10, repeat=1,
-                                       min_repeat_ms=1000),
+            runner=autotvm.LocalRunner(number=1, repeat=10,
+                                       min_repeat_ms=0,
+                                       enable_cpu_cache_flush=True),
         ),
     }
 
diff --git a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
index 2b981b0..c067c81 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.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 [...]
+    No: 1   GFLOPS: 3.63/3.63       result: MeasureResult(costs=(0.0738644216,), error_no=0, all_cost=1.5411388874053955, timestamp=1595589829.7469058)     [('tile_y', [-1, 8]), ('tile_x', [-1, 8])],None,33
+    No: 2   GFLOPS: 2.00/3.63       result: MeasureResult(costs=(0.13443100079999998,), error_no=0, all_cost=2.5407021045684814, timestamp=1595589832.3761141)      [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
+    No: 3   GFLOPS: 10.33/10.33     result: MeasureResult(costs=(0.025978123600000003,), error_no=0, all_cost=1.236288070678711, timestamp=1595589833.273457)       [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
+    No: 4   GFLOPS: 9.36/10.33      result: MeasureResult(costs=(0.0286771322,), error_no=0, all_cost=0.9563946723937988, timestamp=1595589834.2116983)     [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
+    No: 5   GFLOPS: 3.20/10.33      result: MeasureResult(costs=(0.0837980178,), error_no=0, all_cost=1.7327964305877686, timestamp=1595589836.0246713)     [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
+    No: 6   GFLOPS: 3.36/10.33      result: MeasureResult(costs=(0.079870629,), error_no=0, all_cost=1.7182672023773193, timestamp=1595589837.7763348)      [('tile_y', [-1, 64]), ('tile_x', [-1, 8])],None,36
+    No: 7   GFLOPS: 9.71/10.33      result: MeasureResult(costs=(0.027645139000000003,), error_no=0, all_cost=0.9216654300689697, timestamp=1595589838.702522)      [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
+    No: 8   GFLOPS: 14.33/14.33     result: MeasureResult(costs=(0.0187322464,), error_no=0, all_cost=0.7096536159515381, timestamp=1595589839.4786544)     [('tile_y', [-1, 4]), ('tile_x', [-1, 512])],None,92
+    No: 9   GFLOPS: 0.86/14.33      result: MeasureResult(costs=(0.3125007998,), error_no=0, all_cost=5.3441712856292725, timestamp=1595589845.5408623)     [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
+    No: 10  GFLOPS: 0.45/14.33      result: MeasureResult(costs=(0.6012485108,), error_no=0, all_cost=9.975238561630249, timestamp=1595589855.656276)       [('tile_y', [-1, 512]), ('tile_x', [-1, 1])],None,9
 
 
 
diff --git a/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
index 96f3a01..c4b9ef6 100644
--- a/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
@@ -235,7 +235,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.754e-07 secs/op
+    1.184e-07 secs/op
 
 
 
diff --git a/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt b/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt
index 8ffdf2b..c353b43 100644
--- a/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt
+++ b/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt
@@ -74,8 +74,8 @@ our customized lowering pass to manipulate the IR directly instead of using sche
 
     primfn(a_1: handle, b_1: handle, c_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {c: Buffer(c_2: handle, float32, [128], []),
-                 b: Buffer(b_2: handle, float32, [128], []),
+      buffers = {b: Buffer(b_2: handle, float32, [128], []),
+                 c: Buffer(c_2: handle, float32, [128], []),
                  a: Buffer(a_2: handle, float32, [128], [])}
       buffer_map = {a_1: a, b_1: b, c_1: c} {
       for (i: int32, 0, 128) {
diff --git a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
index 63b9694..8d1ea04 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.479** total execution time for **tutorials_dev** files:
+**00:00.537** total execution time for **tutorials_dev** files:
 
-- **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``)
+- **00:00.385**: :ref:`sphx_glr_tutorials_dev_relay_pass_infra.py` (``relay_pass_infra.py``)
+- **00:00.152**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
diff --git a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
index 87abfa3..8915117 100644
--- a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
@@ -413,7 +413,7 @@ Execute on TVM
 
     TVM prediction top-1: tiger cat
     Evaluate inference time cost...
-    Mean inference time (std dev): 5.22 ms (0.02 ms)
+    Mean inference time (std dev): 3.72 ms (0.15 ms)
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
index 96c575a..d9cca7c 100644
--- a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
@@ -323,7 +323,7 @@ output values are identical out of 1000 outputs from mobilenet v2.
 
  .. code-block:: none
 
-    188 in 1000 raw floating outputs identical.
+    196 in 1000 raw floating outputs identical.
 
 
 
@@ -351,7 +351,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
  .. code-block:: none
 
-    Elapsed average ms: 19.127417110000003
+    Elapsed average ms: 19.153483929999997
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt b/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
index 732df94..071eb01 100644
--- a/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
@@ -359,7 +359,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
  .. code-block:: none
 
-    Elapsed average ms: 35.17905105
+    Elapsed average ms: 37.04663029
 
 
 
@@ -392,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  6.650 seconds)
+   **Total running time of the script:** ( 2 minutes  36.192 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_prequantized_tflite.py:
diff --git a/docs/_sources/tutorials/frontend/from_onnx.rst.txt b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
index da49da2..8af4649 100644
--- a/docs/_sources/tutorials/frontend/from_onnx.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
@@ -151,7 +151,7 @@ Execute on TVM
 
  .. code-block:: none
 
-
    ...47%, 0.01 MB, 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
+
    ...47%, 0.01 MB, 18 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 36 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 54 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_tensorflow.rst.txt b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
index 5ffa6a4..41d065c 100644
--- a/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
@@ -197,7 +197,7 @@ Results:
 
     ANTLR runtime and generated code versions disagree: 4.8!=4.7.2
     ANTLR runtime and generated code versions disagree: 4.8!=4.7.2
-    /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:2842: UserWarning: Ignore the passed shape. Shape in graphdef will be used for operator DecodeJpeg/contents.
+    /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:2657: UserWarning: Ignore the passed shape. Shape in graphdef will be used for operator DecodeJpeg/contents.
       "will be used for operator %s." % node.name)
     /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:683: UserWarning: DecodeJpeg: It's a pass through, please handle preprocessing before input
       warnings.warn("DecodeJpeg: It's a pass through, please handle preprocessing before input")
diff --git a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
index c79d117..1480cb4 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:40.551** total execution time for **tutorials_frontend** files:
+**07:09.748** total execution time for **tutorials_frontend** files:
 
-- **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``)
+- **02:36.192**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
+- **00:38.193**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **00:37.764**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized.py` (``deploy_prequantized.py``)
+- **00:37.467**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
+- **00:25.952**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
+- **00:25.369**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
+- **00:21.631**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
+- **00:14.015**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
+- **00:13.645**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
+- **00:12.193**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:11.887**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:09.196**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
+- **00:09.104**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
+- **00:06.559**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
+- **00:05.489**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
+- **00:02.741**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
+- **00:02.172**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
+- **00:00.181**: :ref:`sphx_glr_tutorials_frontend_deploy_sparse.py` (``deploy_sparse.py``)
diff --git a/docs/_sources/tutorials/language/reduction.rst.txt b/docs/_sources/tutorials/language/reduction.rst.txt
index 5938d1e..33fc22c 100644
--- a/docs/_sources/tutorials/language/reduction.rst.txt
+++ b/docs/_sources/tutorials/language/reduction.rst.txt
@@ -412,8 +412,8 @@ Here is an example for 2D convolution with filter size = [3, 3] and strides = [1
 
     primfn(Input_1: handle, Filter_1: handle, Output_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {Output: Buffer(Output_2: handle, float32, [(n: int32 - 2), (n - 2)], []),
-                 Filter: Buffer(Filter_2: handle, float32, [3, 3], []),
+      buffers = {Filter: Buffer(Filter_2: handle, float32, [3, 3], []),
+                 Output: Buffer(Output_2: handle, float32, [(n: int32 - 2), (n - 2)], []),
                  Input: Buffer(Input_2: handle, float32, [n, n], [stride: int32, stride_1: int32], type="auto")}
       buffer_map = {Input_1: Input, Filter_1: Filter, Output_1: Output} {
       for (i: int32, 0, (n - 2)) {
diff --git a/docs/_sources/tutorials/language/schedule_primitives.rst.txt b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
index d677ac1..3a63f3f 100644
--- a/docs/_sources/tutorials/language/schedule_primitives.rst.txt
+++ b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
@@ -85,13 +85,13 @@ schedule computes tensor in a serial manner in a row-major order.
 
     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, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 B: Buffer(B_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {B: Buffer(B_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"),
                  A: Buffer(A_2: handle, float32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i: int32, 0, m) {
         for (j: int32, 0, n) {
-          C_2[((i*stride) + (j*stride_1))] = ((float32*)A_2[((i*stride_4) + (j*stride_5))]*(float32*)B_2[((i*stride_2) + (j*stride_3))])
+          C_2[((i*stride_2) + (j*stride_3))] = ((float32*)A_2[((i*stride_4) + (j*stride_5))]*(float32*)B_2[((i*stride) + (j*stride_1))])
         }
       }
     }
@@ -407,15 +407,15 @@ tensors at the root separately by default.
 
     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)
+        B_2[(i*stride)] = ((float32*)A_2[(i*stride_2)] + 1f32)
       }
       for (i_1: int32, 0, m) {
-        C_2[(i_1*stride)] = ((float32*)B_2[(i_1*stride_1)]*2f32)
+        C_2[(i_1*stride_1)] = ((float32*)B_2[(i_1*stride)]*2f32)
       }
     }
 
@@ -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 = {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) {
-        B_2[(i*stride)] = ((float32*)A_2[(i*stride_2)] + 1f32)
-        C_2[(i*stride_1)] = ((float32*)B_2[(i*stride)]*2f32)
+        B_2[(i*stride_1)] = ((float32*)A_2[(i*stride_2)] + 1f32)
+        C_2[(i*stride)] = ((float32*)B_2[(i*stride_1)]*2f32)
       }
     }
 
diff --git a/docs/_sources/tutorials/language/sg_execution_times.rst.txt b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
index 0457fd1..5ab5927 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.541** total execution time for **tutorials_language** files:
+**00:04.380** total execution time for **tutorials_language** files:
 
-- **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``)
+- **00:01.597**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
+- **00:00.776**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
+- **00:00.576**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
+- **00:00.551**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
+- **00:00.285**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
+- **00:00.226**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.199**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
+- **00:00.169**: :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 d7bdf99..ef21c94 100644
--- a/docs/_sources/tutorials/language/tensorize.rst.txt
+++ b/docs/_sources/tutorials/language/tensorize.rst.txt
@@ -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/tmpu5z0lc8e/input0.cc'
-    source_filename = "/tmp/tmpu5z0lc8e/input0.cc"
+      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmppkc5n6yq/input0.cc'
+    source_filename = "/tmp/tmppkc5n6yq/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 b74c9b6..2207efc 100644
--- a/docs/_sources/tutorials/language/tuple_inputs.rst.txt
+++ b/docs/_sources/tutorials/language/tuple_inputs.rst.txt
@@ -134,16 +134,16 @@ 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.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"),
+                 T.v1: Buffer(T.v1_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"),
                  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
-        T.v1_2[(i*stride_3)] = -2147483648
+        T.v1_2[(i*stride_1)] = -2147483648
         for (k: int32, 0, n) {
-          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)
+          T.v0_2[(i*stride)] = @tir.if_then_else(((int32*)val_2[((i*stride_2) + (k*stride_3))] <= (int32*)T.v1_2[(i*stride_1)]), (int32*)T.v0_2[(i*stride)], (int32*)idx_2[((i*stride_4) + (k*stride_5))], dtype=int32)
+          T.v1_2[(i*stride_1)] = @tir.if_then_else(((int32*)val_2[((i*stride_2) + (k*stride_3))] <= (int32*)T.v1_2[(i*stride_1)]), (int32*)T.v1_2[(i*stride_1)], (int32*)val_2[((i*stride_2) + (k*stride_3))], 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 = {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"),
+      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"),
                  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_2) + (j_1*stride_3))] = ((float32*)A1_2[((i*stride) + (j_1*stride_1))] + (float32*)B.v0[j_1])
+          C_2[((i*stride) + (j_1*stride_1))] = ((float32*)A1_2[((i*stride_2) + (j_1*stride_3))] + (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 0252f31..c87cd81 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.158** total execution time for **tutorials_micro** files:
+**00:00.205** total execution time for **tutorials_micro** files:
 
-- **00:00.158**: :ref:`sphx_glr_tutorials_micro_micro_tflite.py` (``micro_tflite.py``)
+- **00:00.205**: :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 b886529..db8ee8f 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.571479 ms
+    Convolution: 53.268910 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
index d4dee5d..9f1bac2 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.307450 ms
+    conv2d with tensor core: 13.194863 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
index 030310a..c6bd55f 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.006930
-    Baseline: 5.950333
+    Numpy running time: 0.009676
+    Baseline: 3.525708
 
 
 
@@ -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.127129
+    Opt1: 0.296598
 
 
 
@@ -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.141108
+    Opt2: 0.333919
 
 
 
@@ -389,7 +389,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.070495
+    Opt3: 0.116871
 
 
 
@@ -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 = {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} {
       for (x.outer: int32, 0, 32) {
@@ -497,7 +497,7 @@ the corresponding value from the packed array.
 
  .. code-block:: none
 
-    Opt4: 0.068150
+    Opt4: 0.106136
 
 
 
@@ -607,7 +607,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.061840
+    Opt5: 0.098469
 
 
 
@@ -723,7 +723,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
 
  .. code-block:: none
 
-    Opt6: 0.017352
+    Opt6: 0.032362
 
 
 
@@ -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 = {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";
diff --git a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
index ad44083..57dd9e7 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.636** total execution time for **tutorials_optimize** files:
+**00:28.099** total execution time for **tutorials_optimize** files:
 
-- **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``)
+- **00:25.746**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
+- **00:01.180**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:00.975**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:00.197**: :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 c3d79b7..5107a05 100644
--- a/docs/_sources/tutorials/relay_quick_start.rst.txt
+++ b/docs/_sources/tutorials/relay_quick_start.rst.txt
@@ -223,7 +223,7 @@ in this example. Then the machine code will be generated as the module library.
 
  .. code-block:: none
 
-
    ...1%, 0.01 MB, 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
+
    ...1%, 0.01 MB, 11 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 23 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 35 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 46 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 57 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 69 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 81 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 92 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 103 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 115 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 126 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 137 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 148 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 160 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 171 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 182 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 194 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 205 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 216 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 228 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 238 KB/s, 0 seconds passed
 
    ...43%, 0.17 MB, 249 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 261 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 272 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 283 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 294 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 305 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 317 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 328 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 339 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 350 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 361 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 373 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 384 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 395 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 406 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 417 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 429 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 440 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 451 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 462 KB/s, 0 seconds passed
    ...83%, 0.33 MB, 471 KB/s, 0 secon
 ds passed
    ...85%, 0.34 MB, 482 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 493 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 505 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 515 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 526 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 537 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 549 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 560 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 571 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.
 
 
@@ -298,7 +298,7 @@ back in deploy environment.
 
  .. code-block:: none
 
-    ['deploy_lib.tar', 'deploy_param.params', 'deploy_graph.json']
+    ['deploy_lib.tar', 'deploy_graph.json', 'deploy_param.params']
 
 
 
diff --git a/docs/_sources/tutorials/sg_execution_times.rst.txt b/docs/_sources/tutorials/sg_execution_times.rst.txt
index b7ceee9..2ed5563 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:10.247** total execution time for **tutorials** files:
+**00:12.404** total execution time for **tutorials** files:
 
-- **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``)
+- **00:11.916**: :ref:`sphx_glr_tutorials_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:00.355**: :ref:`sphx_glr_tutorials_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:00.133**: :ref:`sphx_glr_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
diff --git a/docs/_sources/tutorials/tensor_expr_get_started.rst.txt b/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
index b94b66d..fab762a 100644
--- a/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
@@ -324,7 +324,7 @@ The following code first performs the following steps:
 
  .. code-block:: none
 
-    ['myadd.tvm_meta.json', 'myadd.so', 'myadd.ptx', 'myadd.o']
+    ['myadd.tvm_meta.json', 'myadd.ptx', 'myadd.so', 'myadd.o']
 
 
 
diff --git a/docs/_sources/tutorials/topi/intro_topi.rst.txt b/docs/_sources/tutorials/topi/intro_topi.rst.txt
index 4023bd1..48507d3 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, 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)]
+    [stage(a, 0x16e2ba9b0), stage(b, 0x158cc2f00), stage(T_add, 0xf42565e0), stage(T_multiply, 0x17c2271d0), stage(T_elemwise_sum, 0x158cc20c0), stage(T_divide, 0x180e2cd30), stage(T_divide_red.rf, 0x158c7fcb0), stage(T_divide_red, 0x17dc333e0)]
 
 
 
diff --git a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
index e8da589..2f035db 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.507** total execution time for **tutorials_topi** files:
+**00:00.602** total execution time for **tutorials_topi** files:
 
-- **00:00.507**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
+- **00:00.602**: :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 836b040..a0f4a3a 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.715** total execution time for **vta_tutorials_autotvm** files:
+**00:04.726** total execution time for **vta_tutorials_autotvm** files:
 
-- **00:03.715**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:04.726**: :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 2e9c5d8..f41d38c 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, 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
+
    ...1%, 0.01 MB, 215 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 362 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 541 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 705 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 775 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 921 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 1061 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 1192 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 1320 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 1454 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 1493 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 1614 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 1741 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 1872 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 1988 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 2117 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 2219 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 2345 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 2434 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 2558 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 2682 KB/s,
  0 seconds passed
    ...23%, 0.17 MB, 2783 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 2775 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 2891 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 2990 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 3105 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 3220 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 3315 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 3428 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 3524 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 3636 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 3726 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 3835 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 3946 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 4056 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 4166 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 4256 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 4347 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 4455 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 4563 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 4671 KB/s, 0 seconds passed
 
    ...45%, 0.33 MB, 4778 KB/s, 0 seconds passed
    ...46%, 0.34 MB, 4885 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 4977 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 5082 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 4992 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 5093 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 5168 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 5267 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 5368 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 5468 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 5541 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 5639 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 5672 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 5769 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 5867 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 5947 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 6043 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 6140 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 6236 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 6286 KB/s, 0 seconds passed
    ...67%, 0.48
  MB, 6360 KB/s, 0 seconds passed
    ...68%, 0.49 MB, 6454 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 6548 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 6586 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 6678 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 6771 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 6864 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 6808 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 6896 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 6950 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 7037 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 7127 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 7215 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 7277 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 7365 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 7371 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 7457 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 7544 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 7630 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 7709 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 7795 KB/s, 0
  seconds passed
    ...90%, 0.65 MB, 7856 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 7940 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 7988 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 8064 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 8119 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 8202 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 8261 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 8344 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 8394 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 8463 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 c4e5551..606f2da 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, 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!
+
    ...12%, 0.01 MB, 198 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 331 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 495 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 651 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 800 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 840 KB/s, 0 seconds passed
    ...89%, 0.05 MB, 974 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 1091 KB/s, 0 seconds passed
+    resnet18_v1 inference graph built in 5.16s!
 
 
 
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
index def0002..cb3c11a 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.07s!
+    yolov3-tiny inference graph built in 6.05s!
 
 
 
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 a378d70..0742ef5 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:52.876** total execution time for **vta_tutorials_frontend** files:
+**01:01.239** total execution time for **vta_tutorials_frontend** files:
 
-- **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``)
+- **00:36.704**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
+- **00:24.535**: :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 cd0584a..565e62e 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 = {C: Buffer(C_2: handle, int8, [1, 16, 1, 16], []),
-                 B: Buffer(B_2: handle, int8, [16, 16, 16, 16], []),
+      buffers = {B: Buffer(B_2: handle, int8, [16, 16, 16, 16], []),
+                 C: Buffer(C_2: handle, int8, [1, 16, 1, 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 ce0e246..011c550 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 = {kernel: Buffer(kernel_2: handle, int8, [16, 16, 3, 3, 16, 16], []),
-                 res: Buffer(res_2: handle, int8, [1, 16, 14, 14, 1, 16], []),
+      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], []),
                  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";
@@ -453,8 +453,8 @@ below.
 
     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 5d93faa..f114ffc 100644
--- a/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
@@ -202,8 +202,8 @@ Those include:
 
     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 [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 = {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 [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 f7e3241..742aea9 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.967** total execution time for **vta_tutorials_optimize** files:
+**00:03.704** total execution time for **vta_tutorials_optimize** files:
 
-- **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``)
+- **00:03.219**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.485**: :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 6efd822..c60b471 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.651** total execution time for **vta_tutorials** files:
+**00:00.855** total execution time for **vta_tutorials** files:
 
-- **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``)
+- **00:00.449**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.406**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
diff --git a/docs/api/doxygen/annotated.html b/docs/api/doxygen/annotated.html
index c69c566..046d591 100644
--- a/docs/api/doxygen/annotated.html
+++ b/docs/api/doxygen/annotated.html
@@ -153,8 +153,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_2_1_34_" 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_1detail_1_1ValueTypeInfoMaker.html" target="_self">ValueTypeInfoMaker</a></td><td class="desc"></td></tr>
 <tr id="row_2_2_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_2_" class="arrow" onclick="toggleFolder('2_2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1relay.html" target="_self">relay</a></td><td class="desc">Relay: a high level functional IR for TVM </td></tr>
 <tr id="row_2_2_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_2_0_" class="arrow" onclick="toggleFolder('2_2_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1relay_1_1qnn.html" target="_self">qnn</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
-<tr id="row_2_2_0_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
+<tr id="row_2_2_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html" target="_self">DequantizeAttrs</a></td><td class="desc">Attribute for dequantize operator </td></tr>
+<tr id="row_2_2_0_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
+<tr id="row_2_2_0_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
 <tr id="row_2_2_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="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html" target="_self">AdaptivePool2DAttrs</a></td><td class="desc">Attributes for adaptive pool operator </td></tr>
 <tr id="row_2_2_2_" 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_1relay_1_1AdaptivePool3DAttrs.html" target="_self">AdaptivePool3DAttrs</a></td><td class="desc"></td></tr>
 <tr id="row_2_2_3_" 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_1relay_1_1AffineGridAttrs.html" target="_self">AffineGridAttrs</a></td><td class="desc">Attributes used in image affine_grid operator </td></tr>
@@ -232,127 +233,130 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_2_2_75_" 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_1relay_1_1ExprVisitor.html" target="_self">ExprVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">Ex [...]
 <tr id="row_2_2_76_" 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_1relay_1_1FeatureSet.html" target="_self">FeatureSet</a></td><td class="desc">A finite set of Feature </td></tr>
 <tr id="row_2_2_77_" 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_1relay_1_1FIFOBufferAttrs.html" target="_self">FIFOBufferAttrs</a></td><td class="desc">Attributes for FIFO buffer operator </td></tr>
-<tr id="row_2_2_78_" 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_1relay_1_1Function.html" target="_self">Function</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" title="Relay Function container. ">FunctionNode</a> </td></tr>
-<tr id="row_2_2_79_" 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_1relay_1_1FunctionNode.html" target="_self">FunctionNode</a></td><td class="desc">Relay <a class="el" href="classtvm_1_1relay_1_1Function.html" title="Managed reference to FunctionNode. ">Function</a> container </td></tr>
-<tr id="row_2_2_80_" 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_1relay_1_1GatherAttrs.html" target="_self">GatherAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_81_" 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_1relay_1_1GetValidCountsAttrs.html" target="_self">GetValidCountsAttrs</a></td><td class="desc">Attributes used in get_valid_counts operator </td></tr>
-<tr id="row_2_2_82_" 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_1relay_1_1GlobalPool2DAttrs.html" target="_self">GlobalPool2DAttrs</a></td><td class="desc">Attributes for global pool operator </td></tr>
-<tr id="row_2_2_83_" 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_1relay_1_1GridSampleAttrs.html" target="_self">GridSampleAttrs</a></td><td class="desc">Attributes used in image grid_sample operator </td></tr>
-<tr id="row_2_2_84_" 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_1relay_1_1GroupNormAttrs.html" target="_self">GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
-<tr id="row_2_2_85_" 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_1relay_1_1Id.html" target="_self">Id</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_86_" 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_1relay_1_1IdNode.html" target="_self">IdNode</a></td><td class="desc">The unique identifier of variables </td></tr>
-<tr id="row_2_2_87_" 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_1relay_1_1If.html" target="_self">If</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_88_" 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_1relay_1_1IfNode.html" target="_self">IfNode</a></td><td class="desc">Container of <a class="el" href="classtvm_1_1relay_1_1If.html">If</a> </td></tr>
-<tr id="row_2_2_89_" 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_1relay_1_1InitOpAttrs.html" target="_self">InitOpAttrs</a></td><td class="desc">Attributes that specify a tensor </td></tr>
-<tr id="row_2_2_90_" 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_1relay_1_1InstanceNormAttrs.html" target="_self">InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
-<tr id="row_2_2_91_" 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_1relay_1_1InterpreterClosure.html" target="_self">InterpreterClosure</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_92_" 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_1relay_1_1InterpreterClosureObj.html" target="_self">InterpreterClosureObj</a></td><td class="desc">The container type of Closures used by the interpreter </td></tr>
-<tr id="row_2_2_93_" 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_1relay_1_1L2NormalizeAttrs.html" target="_self">L2NormalizeAttrs</a></td><td class="desc">Attributes for L2Normalize operator </td></tr>
-<tr id="row_2_2_94_" 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_1relay_1_1LayerNormAttrs.html" target="_self">LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
-<tr id="row_2_2_95_" 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_1relay_1_1LayoutTransformAttrs.html" target="_self">LayoutTransformAttrs</a></td><td class="desc">Attributes for LayoutTransform operator </td></tr>
-<tr id="row_2_2_96_" 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_1relay_1_1LeakyReluAttrs.html" target="_self">LeakyReluAttrs</a></td><td class="desc">Attributes for leaky relu operator </td></tr>
-<tr id="row_2_2_97_" 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_1relay_1_1Let.html" target="_self">Let</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_98_" 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_1relay_1_1LetNode.html" target="_self">LetNode</a></td><td class="desc">A binding of a sub-network </td></tr>
-<tr id="row_2_2_99_" 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_1relay_1_1LRNAttrs.html" target="_self">LRNAttrs</a></td><td class="desc">Attributes for LRN operator </td></tr>
-<tr id="row_2_2_100_" 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_1relay_1_1Match.html" target="_self">Match</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_101_" 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_1relay_1_1MatchNode.html" target="_self">MatchNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> container node </td></tr>
-<tr id="row_2_2_102_" 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_1relay_1_1MaxPool1DAttrs.html" target="_self">MaxPool1DAttrs</a></td><td class="desc">Attributes for 1D max pool operator </td></tr>
-<tr id="row_2_2_103_" 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_1relay_1_1MaxPool2DAttrs.html" target="_self">MaxPool2DAttrs</a></td><td class="desc">Attributes for max pool operator </td></tr>
-<tr id="row_2_2_104_" 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_1relay_1_1MaxPool3DAttrs.html" target="_self">MaxPool3DAttrs</a></td><td class="desc">Attributes for 3D max pool operator </td></tr>
-<tr id="row_2_2_105_" 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_1relay_1_1MeshgridAttrs.html" target="_self">MeshgridAttrs</a></td><td class="desc">Attributes used in meshgrid operators </td></tr>
-<tr id="row_2_2_106_" 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_1relay_1_1MirrorPadAttrs.html" target="_self">MirrorPadAttrs</a></td><td class="desc">Attributes used for the MirrorPadding operator </td></tr>
-<tr id="row_2_2_107_" 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_1relay_1_1MixedModeMutator.html" target="_self">MixedModeMutator</a></td><td class="desc">Non-recursive DFS Graph Traversal for Custom Rewriting Passes </td></tr>
-<tr id="row_2_2_108_" 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_1relay_1_1MixedModeVisitor.html" target="_self">MixedModeVisitor</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html" title="A simple visitor wrapper around ExprFunctor. Recursively visit the content. ">ExprVisitor</a> which traverses th [...]
-<tr id="row_2_2_109_" 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_1relay_1_1MultiBoxPriorAttrs.html" target="_self">MultiBoxPriorAttrs</a></td><td class="desc">Attributes used in multibox_prior operators </td></tr>
-<tr id="row_2_2_110_" 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_1relay_1_1MultiBoxTransformLocAttrs.html" target="_self">MultiBoxTransformLocAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_111_" 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_1relay_1_1NdarraySizeAttrs.html" target="_self">NdarraySizeAttrs</a></td><td class="desc">Attributes for ndarray_size operator </td></tr>
-<tr id="row_2_2_112_" 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_1relay_1_1NonMaximumSuppressionAttrs.html" target="_self">NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in non_maximum_suppression operator </td></tr>
-<tr id="row_2_2_113_" 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_1relay_1_1OnDeviceAttrs.html" target="_self">OnDeviceAttrs</a></td><td class="desc">Options for the device annotation operators </td></tr>
-<tr id="row_2_2_114_" 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_1relay_1_1OneHotAttrs.html" target="_self">OneHotAttrs</a></td><td class="desc">Attributes used in one-hot operator </td></tr>
-<tr id="row_2_2_115_" 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_1relay_1_1OpImplementation.html" target="_self">OpImplementation</a></td><td class="desc">Operator implementation class </td></tr>
-<tr id="row_2_2_116_" 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_1relay_1_1OpImplementationNode.html" target="_self">OpImplementationNode</a></td><td class="desc">Operator implementation that includes compute and schedule function </td></tr>
-<tr id="row_2_2_117_" 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_1relay_1_1OpSpecialization.html" target="_self">OpSpecialization</a></td><td class="desc">Operator specialization class </td></tr>
-<tr id="row_2_2_118_" 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_1relay_1_1OpSpecializationNode.html" target="_self">OpSpecializationNode</a></td><td class="desc">Specialized implementations for operators under certain conditions </td></tr>
-<tr id="row_2_2_119_" 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_1relay_1_1OpStrategy.html" target="_self">OpStrategy</a></td><td class="desc">Operator strategy class </td></tr>
-<tr id="row_2_2_120_" 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_1relay_1_1OpStrategyNode.html" target="_self">OpStrategyNode</a></td><td class="desc">Operator strategy to choose implementation </td></tr>
-<tr id="row_2_2_121_" 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_1relay_1_1PadAttrs.html" target="_self">PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
-<tr id="row_2_2_122_" 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_1relay_1_1Pattern.html" target="_self">Pattern</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> is the base type for an ADT match pattern in Relay </td></tr>
-<tr id="row_2_2_123_" 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_1relay_1_1PatternConstructor.html" target="_self">PatternConstructor</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_124_" 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_1relay_1_1PatternConstructorNode.html" target="_self">PatternConstructorNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
-<tr id="row_2_2_125_" 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_1relay_1_1PatternFunctor.html" target="_self">PatternFunctor</a></td><td class="desc">A dynamical functor on ADT patterns that dispatches on its first argument. You can use this as a more powerful visitor, since it allows you to define the types of further arguments to VisitPattern </ [...]
-<tr id="row_2_2_126_" 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_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html" target="_self">PatternFunctor&lt; R(const Pattern &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_127_" 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_1relay_1_1PatternMutator.html" target="_self">PatternMutator</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">ExprFuncto [...]
-<tr id="row_2_2_128_" 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_1relay_1_1PatternNode.html" target="_self">PatternNode</a></td><td class="desc">Base type for declaring relay pattern </td></tr>
-<tr id="row_2_2_129_" 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_1relay_1_1PatternTuple.html" target="_self">PatternTuple</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_130_" 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_1relay_1_1PatternTupleNode.html" target="_self">PatternTupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
-<tr id="row_2_2_131_" 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_1relay_1_1PatternVar.html" target="_self">PatternVar</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_132_" 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_1relay_1_1PatternVarNode.html" target="_self">PatternVarNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
-<tr id="row_2_2_133_" 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_1relay_1_1PatternVisitor.html" target="_self">PatternVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html" title="A dynamical functor on ADT patterns that dispatches on its first argument. You can use this as a m [...]
-<tr id="row_2_2_134_" 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_1relay_1_1PatternWildcard.html" target="_self">PatternWildcard</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_135_" 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_1relay_1_1PatternWildcardNode.html" target="_self">PatternWildcardNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternWildcard.html">PatternWildcard</a> container node </td></tr>
-<tr id="row_2_2_136_" 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_1relay_1_1PReluAttrs.html" target="_self">PReluAttrs</a></td><td class="desc">Attributes for prelu operator </td></tr>
-<tr id="row_2_2_137_" 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_1relay_1_1ProposalAttrs.html" target="_self">ProposalAttrs</a></td><td class="desc">Attributes used in proposal operators </td></tr>
-<tr id="row_2_2_138_" 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_1relay_1_1RecClosure.html" target="_self">RecClosure</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_139_" 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_1relay_1_1RecClosureObj.html" target="_self">RecClosureObj</a></td><td class="desc">The container type of <a class="el" href="classtvm_1_1relay_1_1RecClosure.html">RecClosure</a> </td></tr>
-<tr id="row_2_2_140_" 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_1relay_1_1ReduceAttrs.html" target="_self">ReduceAttrs</a></td><td class="desc">Attributes for Reduce operators </td></tr>
-<tr id="row_2_2_141_" 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_1relay_1_1RefCreate.html" target="_self">RefCreate</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_142_" 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_1relay_1_1RefCreateNode.html" target="_self">RefCreateNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_143_" 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_1relay_1_1RefRead.html" target="_self">RefRead</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_144_" 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_1relay_1_1RefReadNode.html" target="_self">RefReadNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_145_" 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_1relay_1_1RefValue.html" target="_self">RefValue</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_146_" 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_1relay_1_1RefValueObj.html" target="_self">RefValueObj</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_147_" 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_1relay_1_1RefWrite.html" target="_self">RefWrite</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_148_" 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_1relay_1_1RefWriteNode.html" target="_self">RefWriteNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_149_" 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_1relay_1_1RelayNode.html" target="_self">RelayNode</a></td><td class="desc">This is the base node container of all relay structures </td></tr>
-<tr id="row_2_2_150_" 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_1relay_1_1RepeatAttrs.html" target="_self">RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
-<tr id="row_2_2_151_" 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_1relay_1_1ReshapeAttrs.html" target="_self">ReshapeAttrs</a></td><td class="desc">Attributes used in reshape operators </td></tr>
-<tr id="row_2_2_152_" 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_1relay_1_1Resize3dAttrs.html" target="_self">Resize3dAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
-<tr id="row_2_2_153_" 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_1relay_1_1ResizeAttrs.html" target="_self">ResizeAttrs</a></td><td class="desc">Attributes used in image resize operator </td></tr>
-<tr id="row_2_2_154_" 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_1relay_1_1ReverseAttrs.html" target="_self">ReverseAttrs</a></td><td class="desc">Attributes used in reverse operators </td></tr>
-<tr id="row_2_2_155_" 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_1relay_1_1ReverseSequenceAttrs.html" target="_self">ReverseSequenceAttrs</a></td><td class="desc">Attributes used in reverse_sequence operators </td></tr>
-<tr id="row_2_2_156_" 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_1relay_1_1ROIAlignAttrs.html" target="_self">ROIAlignAttrs</a></td><td class="desc">Attributes used in roi_align operators </td></tr>
-<tr id="row_2_2_157_" 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_1relay_1_1ROIPoolAttrs.html" target="_self">ROIPoolAttrs</a></td><td class="desc">Attributes used in roi_pool operators </td></tr>
-<tr id="row_2_2_158_" 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_1relay_1_1ScatterAttrs.html" target="_self">ScatterAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_159_" 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_1relay_1_1SequenceMaskAttrs.html" target="_self">SequenceMaskAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_160_" 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_1relay_1_1ShapeFuncAttrs.html" target="_self">ShapeFuncAttrs</a></td><td class="desc">Options for the shape function operator </td></tr>
-<tr id="row_2_2_161_" 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_1relay_1_1ShapeOfAttrs.html" target="_self">ShapeOfAttrs</a></td><td class="desc">Attributes for ShapeOf operator </td></tr>
-<tr id="row_2_2_162_" 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_1relay_1_1ShapePattern.html" target="_self">ShapePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
-<tr id="row_2_2_163_" 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_1relay_1_1ShapePatternNode.html" target="_self">ShapePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Shapes </td></tr>
-<tr id="row_2_2_164_" 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_1relay_1_1SliceLikeAttrs.html" target="_self">SliceLikeAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_165_" 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_1relay_1_1SoftmaxAttrs.html" target="_self">SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
-<tr id="row_2_2_166_" 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_1relay_1_1SparseDenseAttrs.html" target="_self">SparseDenseAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
-<tr id="row_2_2_167_" 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_1relay_1_1SparseToDenseAttrs.html" target="_self">SparseToDenseAttrs</a></td><td class="desc">Attributes used in sparse_to_dense operator </td></tr>
-<tr id="row_2_2_168_" 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_1relay_1_1SparseTransposeAttrs.html" target="_self">SparseTransposeAttrs</a></td><td class="desc">Attributes for sparse_transpose operator </td></tr>
-<tr id="row_2_2_169_" 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_1relay_1_1SplitAttrs.html" target="_self">SplitAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_170_" 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_1relay_1_1SqueezeAttrs.html" target="_self">SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
-<tr id="row_2_2_171_" 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_1relay_1_1StackAttrs.html" target="_self">StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
-<tr id="row_2_2_172_" 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_1relay_1_1StridedSliceAttrs.html" target="_self">StridedSliceAttrs</a></td><td class="desc">Attributes for StridedSlice operator </td></tr>
-<tr id="row_2_2_173_" 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_1relay_1_1SubPixelAttrs.html" target="_self">SubPixelAttrs</a></td><td class="desc">Attributes used in subpixel operators </td></tr>
-<tr id="row_2_2_174_" 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_1relay_1_1TakeAttrs.html" target="_self">TakeAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_175_" 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_1relay_1_1TempExpr.html" target="_self">TempExpr</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_176_" 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_1relay_1_1TempExprNode.html" target="_self">TempExprNode</a></td><td class="desc">Base class of the temporary expression </td></tr>
-<tr id="row_2_2_177_" 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_1relay_1_1TileAttrs.html" target="_self">TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
-<tr id="row_2_2_178_" 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_1relay_1_1TopKAttrs.html" target="_self">TopKAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_179_" 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_1relay_1_1TransposeAttrs.html" target="_self">TransposeAttrs</a></td><td class="desc">Attributes used in transpose operators </td></tr>
-<tr id="row_2_2_180_" 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_1relay_1_1Tuple.html" target="_self">Tuple</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_181_" 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_1relay_1_1TupleGetItem.html" target="_self">TupleGetItem</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_182_" 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_1relay_1_1TupleGetItemNode.html" target="_self">TupleGetItemNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_183_" 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_1relay_1_1TupleGetItemPattern.html" target="_self">TupleGetItemPattern</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_184_" 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_1relay_1_1TupleGetItemPatternNode.html" target="_self">TupleGetItemPatternNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_185_" 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_1relay_1_1TupleNode.html" target="_self">TupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Tuple.html">Tuple</a> container </td></tr>
-<tr id="row_2_2_186_" 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_1relay_1_1TuplePattern.html" target="_self">TuplePattern</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_187_" 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_1relay_1_1TuplePatternNode.html" target="_self">TuplePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Tuple.html">Tuple</a> container </td></tr>
-<tr id="row_2_2_188_" 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_1relay_1_1TypePattern.html" target="_self">TypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
-<tr id="row_2_2_189_" 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_1relay_1_1TypePatternNode.html" target="_self">TypePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Types </td></tr>
-<tr id="row_2_2_190_" 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_1relay_1_1UpSampling3DAttrs.html" target="_self">UpSampling3DAttrs</a></td><td class="desc">Attributes for upsampling3d operator </td></tr>
-<tr id="row_2_2_191_" 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_1relay_1_1UpSamplingAttrs.html" target="_self">UpSamplingAttrs</a></td><td class="desc">Attributes for upsampling operator </td></tr>
-<tr id="row_2_2_192_" 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_1relay_1_1Var.html" target="_self">Var</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_193_" 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_1relay_1_1VarNode.html" target="_self">VarNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Var.html">Var</a> </td></tr>
-<tr id="row_2_2_194_" 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_1relay_1_1VarPattern.html" target="_self">VarPattern</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_195_" 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_1relay_1_1VarPatternNode.html" target="_self">VarPatternNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Var.html">Var</a> </td></tr>
-<tr id="row_2_2_196_" 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_1relay_1_1WildcardPattern.html" target="_self">WildcardPattern</a></td><td class="desc">A pattern which matches anything </td></tr>
-<tr id="row_2_2_197_" 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_1relay_1_1WildcardPatternNode.html" target="_self">WildcardPatternNode</a></td><td class="desc">Wildcard <a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> </td></tr>
-<tr id="row_2_2_198_" 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_1relay_1_1YoloReorgAttrs.html" target="_self">YoloReorgAttrs</a></td><td class="desc">Attributes used in yolo reorg operators </td></tr>
+<tr id="row_2_2_78_" 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_1relay_1_1FixedPointMultiplyAttrs.html" target="_self">FixedPointMultiplyAttrs</a></td><td class="desc">Attributes for FixedPointMultiply operator </td></tr>
+<tr id="row_2_2_79_" 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_1relay_1_1Function.html" target="_self">Function</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" title="Relay Function container. ">FunctionNode</a> </td></tr>
+<tr id="row_2_2_80_" 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_1relay_1_1FunctionNode.html" target="_self">FunctionNode</a></td><td class="desc">Relay <a class="el" href="classtvm_1_1relay_1_1Function.html" title="Managed reference to FunctionNode. ">Function</a> container </td></tr>
+<tr id="row_2_2_81_" 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_1relay_1_1GatherAttrs.html" target="_self">GatherAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_82_" 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_1relay_1_1GetValidCountsAttrs.html" target="_self">GetValidCountsAttrs</a></td><td class="desc">Attributes used in get_valid_counts operator </td></tr>
+<tr id="row_2_2_83_" 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_1relay_1_1GlobalPool2DAttrs.html" target="_self">GlobalPool2DAttrs</a></td><td class="desc">Attributes for global pool operator </td></tr>
+<tr id="row_2_2_84_" 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_1relay_1_1GridSampleAttrs.html" target="_self">GridSampleAttrs</a></td><td class="desc">Attributes used in image grid_sample operator </td></tr>
+<tr id="row_2_2_85_" 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_1relay_1_1GroupNormAttrs.html" target="_self">GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
+<tr id="row_2_2_86_" 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_1relay_1_1Id.html" target="_self">Id</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_87_" 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_1relay_1_1IdNode.html" target="_self">IdNode</a></td><td class="desc">The unique identifier of variables </td></tr>
+<tr id="row_2_2_88_" 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_1relay_1_1If.html" target="_self">If</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_89_" 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_1relay_1_1IfNode.html" target="_self">IfNode</a></td><td class="desc">Container of <a class="el" href="classtvm_1_1relay_1_1If.html">If</a> </td></tr>
+<tr id="row_2_2_90_" 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_1relay_1_1InitOpAttrs.html" target="_self">InitOpAttrs</a></td><td class="desc">Attributes that specify a tensor </td></tr>
+<tr id="row_2_2_91_" 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_1relay_1_1InstanceNormAttrs.html" target="_self">InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
+<tr id="row_2_2_92_" 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_1relay_1_1InterpreterClosure.html" target="_self">InterpreterClosure</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_93_" 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_1relay_1_1InterpreterClosureObj.html" target="_self">InterpreterClosureObj</a></td><td class="desc">The container type of Closures used by the interpreter </td></tr>
+<tr id="row_2_2_94_" 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_1relay_1_1L2NormalizeAttrs.html" target="_self">L2NormalizeAttrs</a></td><td class="desc">Attributes for L2Normalize operator </td></tr>
+<tr id="row_2_2_95_" 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_1relay_1_1LayerNormAttrs.html" target="_self">LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
+<tr id="row_2_2_96_" 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_1relay_1_1LayoutTransformAttrs.html" target="_self">LayoutTransformAttrs</a></td><td class="desc">Attributes for LayoutTransform operator </td></tr>
+<tr id="row_2_2_97_" 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_1relay_1_1LeakyReluAttrs.html" target="_self">LeakyReluAttrs</a></td><td class="desc">Attributes for leaky relu operator </td></tr>
+<tr id="row_2_2_98_" 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_1relay_1_1Let.html" target="_self">Let</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_99_" 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_1relay_1_1LetNode.html" target="_self">LetNode</a></td><td class="desc">A binding of a sub-network </td></tr>
+<tr id="row_2_2_100_" 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_1relay_1_1LRNAttrs.html" target="_self">LRNAttrs</a></td><td class="desc">Attributes for LRN operator </td></tr>
+<tr id="row_2_2_101_" 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_1relay_1_1Match.html" target="_self">Match</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_102_" 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_1relay_1_1MatchNode.html" target="_self">MatchNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> container node </td></tr>
+<tr id="row_2_2_103_" 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_1relay_1_1MaxPool1DAttrs.html" target="_self">MaxPool1DAttrs</a></td><td class="desc">Attributes for 1D max pool operator </td></tr>
+<tr id="row_2_2_104_" 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_1relay_1_1MaxPool2DAttrs.html" target="_self">MaxPool2DAttrs</a></td><td class="desc">Attributes for max pool operator </td></tr>
+<tr id="row_2_2_105_" 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_1relay_1_1MaxPool3DAttrs.html" target="_self">MaxPool3DAttrs</a></td><td class="desc">Attributes for 3D max pool operator </td></tr>
+<tr id="row_2_2_106_" 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_1relay_1_1MeshgridAttrs.html" target="_self">MeshgridAttrs</a></td><td class="desc">Attributes used in meshgrid operators </td></tr>
+<tr id="row_2_2_107_" 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_1relay_1_1MirrorPadAttrs.html" target="_self">MirrorPadAttrs</a></td><td class="desc">Attributes used for the MirrorPadding operator </td></tr>
+<tr id="row_2_2_108_" 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_1relay_1_1MixedModeMutator.html" target="_self">MixedModeMutator</a></td><td class="desc">Non-recursive DFS Graph Traversal for Custom Rewriting Passes </td></tr>
+<tr id="row_2_2_109_" 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_1relay_1_1MixedModeVisitor.html" target="_self">MixedModeVisitor</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html" title="A simple visitor wrapper around ExprFunctor. Recursively visit the content. ">ExprVisitor</a> which traverses th [...]
+<tr id="row_2_2_110_" 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_1relay_1_1MultiBoxPriorAttrs.html" target="_self">MultiBoxPriorAttrs</a></td><td class="desc">Attributes used in multibox_prior operators </td></tr>
+<tr id="row_2_2_111_" 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_1relay_1_1MultiBoxTransformLocAttrs.html" target="_self">MultiBoxTransformLocAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_112_" 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_1relay_1_1NdarraySizeAttrs.html" target="_self">NdarraySizeAttrs</a></td><td class="desc">Attributes for ndarray_size operator </td></tr>
+<tr id="row_2_2_113_" 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_1relay_1_1NonMaximumSuppressionAttrs.html" target="_self">NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in non_maximum_suppression operator </td></tr>
+<tr id="row_2_2_114_" 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_1relay_1_1OnDeviceAttrs.html" target="_self">OnDeviceAttrs</a></td><td class="desc">Options for the device annotation operators </td></tr>
+<tr id="row_2_2_115_" 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_1relay_1_1OneHotAttrs.html" target="_self">OneHotAttrs</a></td><td class="desc">Attributes used in one-hot operator </td></tr>
+<tr id="row_2_2_116_" 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_1relay_1_1OpImplementation.html" target="_self">OpImplementation</a></td><td class="desc">Operator implementation class </td></tr>
+<tr id="row_2_2_117_" 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_1relay_1_1OpImplementationNode.html" target="_self">OpImplementationNode</a></td><td class="desc">Operator implementation that includes compute and schedule function </td></tr>
+<tr id="row_2_2_118_" 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_1relay_1_1OpSpecialization.html" target="_self">OpSpecialization</a></td><td class="desc">Operator specialization class </td></tr>
+<tr id="row_2_2_119_" 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_1relay_1_1OpSpecializationNode.html" target="_self">OpSpecializationNode</a></td><td class="desc">Specialized implementations for operators under certain conditions </td></tr>
+<tr id="row_2_2_120_" 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_1relay_1_1OpStrategy.html" target="_self">OpStrategy</a></td><td class="desc">Operator strategy class </td></tr>
+<tr id="row_2_2_121_" 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_1relay_1_1OpStrategyNode.html" target="_self">OpStrategyNode</a></td><td class="desc">Operator strategy to choose implementation </td></tr>
+<tr id="row_2_2_122_" 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_1relay_1_1PadAttrs.html" target="_self">PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
+<tr id="row_2_2_123_" 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_1relay_1_1Pattern.html" target="_self">Pattern</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> is the base type for an ADT match pattern in Relay </td></tr>
+<tr id="row_2_2_124_" 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_1relay_1_1PatternConstructor.html" target="_self">PatternConstructor</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_125_" 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_1relay_1_1PatternConstructorNode.html" target="_self">PatternConstructorNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
+<tr id="row_2_2_126_" 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_1relay_1_1PatternFunctor.html" target="_self">PatternFunctor</a></td><td class="desc">A dynamical functor on ADT patterns that dispatches on its first argument. You can use this as a more powerful visitor, since it allows you to define the types of further arguments to VisitPattern </ [...]
+<tr id="row_2_2_127_" 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_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html" target="_self">PatternFunctor&lt; R(const Pattern &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_128_" 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_1relay_1_1PatternMutator.html" target="_self">PatternMutator</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">ExprFuncto [...]
+<tr id="row_2_2_129_" 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_1relay_1_1PatternNode.html" target="_self">PatternNode</a></td><td class="desc">Base type for declaring relay pattern </td></tr>
+<tr id="row_2_2_130_" 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_1relay_1_1PatternTuple.html" target="_self">PatternTuple</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_131_" 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_1relay_1_1PatternTupleNode.html" target="_self">PatternTupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
+<tr id="row_2_2_132_" 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_1relay_1_1PatternVar.html" target="_self">PatternVar</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_133_" 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_1relay_1_1PatternVarNode.html" target="_self">PatternVarNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
+<tr id="row_2_2_134_" 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_1relay_1_1PatternVisitor.html" target="_self">PatternVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html" title="A dynamical functor on ADT patterns that dispatches on its first argument. You can use this as a m [...]
+<tr id="row_2_2_135_" 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_1relay_1_1PatternWildcard.html" target="_self">PatternWildcard</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_136_" 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_1relay_1_1PatternWildcardNode.html" target="_self">PatternWildcardNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternWildcard.html">PatternWildcard</a> container node </td></tr>
+<tr id="row_2_2_137_" 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_1relay_1_1PReluAttrs.html" target="_self">PReluAttrs</a></td><td class="desc">Attributes for prelu operator </td></tr>
+<tr id="row_2_2_138_" 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_1relay_1_1ProposalAttrs.html" target="_self">ProposalAttrs</a></td><td class="desc">Attributes used in proposal operators </td></tr>
+<tr id="row_2_2_139_" 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_1relay_1_1RecClosure.html" target="_self">RecClosure</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_140_" 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_1relay_1_1RecClosureObj.html" target="_self">RecClosureObj</a></td><td class="desc">The container type of <a class="el" href="classtvm_1_1relay_1_1RecClosure.html">RecClosure</a> </td></tr>
+<tr id="row_2_2_141_" 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_1relay_1_1ReduceAttrs.html" target="_self">ReduceAttrs</a></td><td class="desc">Attributes for Reduce operators </td></tr>
+<tr id="row_2_2_142_" 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_1relay_1_1RefCreate.html" target="_self">RefCreate</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_143_" 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_1relay_1_1RefCreateNode.html" target="_self">RefCreateNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_144_" 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_1relay_1_1RefRead.html" target="_self">RefRead</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_145_" 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_1relay_1_1RefReadNode.html" target="_self">RefReadNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_146_" 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_1relay_1_1RefValue.html" target="_self">RefValue</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_147_" 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_1relay_1_1RefValueObj.html" target="_self">RefValueObj</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_148_" 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_1relay_1_1RefWrite.html" target="_self">RefWrite</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_149_" 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_1relay_1_1RefWriteNode.html" target="_self">RefWriteNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_150_" 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_1relay_1_1RelayNode.html" target="_self">RelayNode</a></td><td class="desc">This is the base node container of all relay structures </td></tr>
+<tr id="row_2_2_151_" 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_1relay_1_1RepeatAttrs.html" target="_self">RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
+<tr id="row_2_2_152_" 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_1relay_1_1ReshapeAttrs.html" target="_self">ReshapeAttrs</a></td><td class="desc">Attributes used in reshape operators </td></tr>
+<tr id="row_2_2_153_" 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_1relay_1_1ReshapeTensorAttrs.html" target="_self">ReshapeTensorAttrs</a></td><td class="desc">Attributes for VM reshape_tensor operator </td></tr>
+<tr id="row_2_2_154_" 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_1relay_1_1Resize3dAttrs.html" target="_self">Resize3dAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
+<tr id="row_2_2_155_" 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_1relay_1_1ResizeAttrs.html" target="_self">ResizeAttrs</a></td><td class="desc">Attributes used in image resize operator </td></tr>
+<tr id="row_2_2_156_" 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_1relay_1_1ReverseAttrs.html" target="_self">ReverseAttrs</a></td><td class="desc">Attributes used in reverse operators </td></tr>
+<tr id="row_2_2_157_" 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_1relay_1_1ReverseSequenceAttrs.html" target="_self">ReverseSequenceAttrs</a></td><td class="desc">Attributes used in reverse_sequence operators </td></tr>
+<tr id="row_2_2_158_" 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_1relay_1_1ROIAlignAttrs.html" target="_self">ROIAlignAttrs</a></td><td class="desc">Attributes used in roi_align operators </td></tr>
+<tr id="row_2_2_159_" 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_1relay_1_1ROIPoolAttrs.html" target="_self">ROIPoolAttrs</a></td><td class="desc">Attributes used in roi_pool operators </td></tr>
+<tr id="row_2_2_160_" 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_1relay_1_1ScatterAddAttrs.html" target="_self">ScatterAddAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_161_" 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_1relay_1_1ScatterAttrs.html" target="_self">ScatterAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_162_" 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_1relay_1_1SequenceMaskAttrs.html" target="_self">SequenceMaskAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_163_" 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_1relay_1_1ShapeFuncAttrs.html" target="_self">ShapeFuncAttrs</a></td><td class="desc">Options for the shape function operator </td></tr>
+<tr id="row_2_2_164_" 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_1relay_1_1ShapeOfAttrs.html" target="_self">ShapeOfAttrs</a></td><td class="desc">Attributes for ShapeOf operator </td></tr>
+<tr id="row_2_2_165_" 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_1relay_1_1ShapePattern.html" target="_self">ShapePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
+<tr id="row_2_2_166_" 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_1relay_1_1ShapePatternNode.html" target="_self">ShapePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Shapes </td></tr>
+<tr id="row_2_2_167_" 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_1relay_1_1SliceLikeAttrs.html" target="_self">SliceLikeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_168_" 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_1relay_1_1SoftmaxAttrs.html" target="_self">SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
+<tr id="row_2_2_169_" 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_1relay_1_1SparseDenseAttrs.html" target="_self">SparseDenseAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
+<tr id="row_2_2_170_" 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_1relay_1_1SparseToDenseAttrs.html" target="_self">SparseToDenseAttrs</a></td><td class="desc">Attributes used in sparse_to_dense operator </td></tr>
+<tr id="row_2_2_171_" 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_1relay_1_1SparseTransposeAttrs.html" target="_self">SparseTransposeAttrs</a></td><td class="desc">Attributes for sparse_transpose operator </td></tr>
+<tr id="row_2_2_172_" 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_1relay_1_1SplitAttrs.html" target="_self">SplitAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_173_" 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_1relay_1_1SqueezeAttrs.html" target="_self">SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
+<tr id="row_2_2_174_" 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_1relay_1_1StackAttrs.html" target="_self">StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
+<tr id="row_2_2_175_" 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_1relay_1_1StridedSliceAttrs.html" target="_self">StridedSliceAttrs</a></td><td class="desc">Attributes for StridedSlice operator </td></tr>
+<tr id="row_2_2_176_" 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_1relay_1_1SubPixelAttrs.html" target="_self">SubPixelAttrs</a></td><td class="desc">Attributes used in subpixel operators </td></tr>
+<tr id="row_2_2_177_" 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_1relay_1_1TakeAttrs.html" target="_self">TakeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_178_" 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_1relay_1_1TempExpr.html" target="_self">TempExpr</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_179_" 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_1relay_1_1TempExprNode.html" target="_self">TempExprNode</a></td><td class="desc">Base class of the temporary expression </td></tr>
+<tr id="row_2_2_180_" 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_1relay_1_1TileAttrs.html" target="_self">TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
+<tr id="row_2_2_181_" 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_1relay_1_1TopKAttrs.html" target="_self">TopKAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_182_" 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_1relay_1_1TransposeAttrs.html" target="_self">TransposeAttrs</a></td><td class="desc">Attributes used in transpose operators </td></tr>
+<tr id="row_2_2_183_" 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_1relay_1_1Tuple.html" target="_self">Tuple</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_184_" 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_1relay_1_1TupleGetItem.html" target="_self">TupleGetItem</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_185_" 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_1relay_1_1TupleGetItemNode.html" target="_self">TupleGetItemNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_186_" 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_1relay_1_1TupleGetItemPattern.html" target="_self">TupleGetItemPattern</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_187_" 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_1relay_1_1TupleGetItemPatternNode.html" target="_self">TupleGetItemPatternNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_188_" 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_1relay_1_1TupleNode.html" target="_self">TupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Tuple.html">Tuple</a> container </td></tr>
+<tr id="row_2_2_189_" 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_1relay_1_1TuplePattern.html" target="_self">TuplePattern</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_190_" 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_1relay_1_1TuplePatternNode.html" target="_self">TuplePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Tuple.html">Tuple</a> container </td></tr>
+<tr id="row_2_2_191_" 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_1relay_1_1TypePattern.html" target="_self">TypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
+<tr id="row_2_2_192_" 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_1relay_1_1TypePatternNode.html" target="_self">TypePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Types </td></tr>
+<tr id="row_2_2_193_" 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_1relay_1_1UpSampling3DAttrs.html" target="_self">UpSampling3DAttrs</a></td><td class="desc">Attributes for upsampling3d operator </td></tr>
+<tr id="row_2_2_194_" 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_1relay_1_1UpSamplingAttrs.html" target="_self">UpSamplingAttrs</a></td><td class="desc">Attributes for upsampling operator </td></tr>
+<tr id="row_2_2_195_" 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_1relay_1_1Var.html" target="_self">Var</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_196_" 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_1relay_1_1VarNode.html" target="_self">VarNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Var.html">Var</a> </td></tr>
+<tr id="row_2_2_197_" 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_1relay_1_1VarPattern.html" target="_self">VarPattern</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_198_" 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_1relay_1_1VarPatternNode.html" target="_self">VarPatternNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Var.html">Var</a> </td></tr>
+<tr id="row_2_2_199_" 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_1relay_1_1WildcardPattern.html" target="_self">WildcardPattern</a></td><td class="desc">A pattern which matches anything </td></tr>
+<tr id="row_2_2_200_" 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_1relay_1_1WildcardPatternNode.html" target="_self">WildcardPatternNode</a></td><td class="desc">Wildcard <a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> </td></tr>
+<tr id="row_2_2_201_" 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_1relay_1_1YoloReorgAttrs.html" target="_self">YoloReorgAttrs</a></td><td class="desc">Attributes used in yolo reorg operators </td></tr>
 <tr id="row_2_3_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_3_" class="arrow" onclick="toggleFolder('2_3_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime.html" target="_self">runtime</a></td><td class="desc"></td></tr>
 <tr id="row_2_3_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_3_0_" class="arrow" onclick="toggleFolder('2_3_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime_1_1threading.html" target="_self">threading</a></td><td class="desc"></td></tr>
 <tr id="row_2_3_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1threading_1_1ThreadGroup.html" target="_self">ThreadGroup</a></td><td class="desc">A platform-agnostic abstraction for managing a collection of thread pool threads </td></tr>
diff --git a/docs/api/doxygen/builtin_8h.html b/docs/api/doxygen/builtin_8h.html
index 6205e41..024316f 100644
--- a/docs/api/doxygen/builtin_8h.html
+++ b/docs/api/doxygen/builtin_8h.html
@@ -177,6 +177,9 @@ Functions</h2></td></tr>
 <tr class="memitem:a322ae63444ed4e5fcf7247aa93f8bb7c"><td class="memItemLeft" align="right" valign="top">const Op &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1tir_1_1builtin.html#a322ae63444ed4e5fcf7247aa93f8bb7c">tvm::tir::builtin::large_uint_imm</a> ()</td></tr>
 <tr class="memdesc:a322ae63444ed4e5fcf7247aa93f8bb7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">See pesudo code.  <a href="namespacetvm_1_1tir_1_1builtin.html#a322ae63444ed4e5fcf7247aa93f8bb7c">More...</a><br /></td></tr>
 <tr class="separator:a322ae63444ed4e5fcf7247aa93f8bb7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c2ebdcec34d7c79dc8480e5dab8547a"><td class="memItemLeft" align="right" valign="top">const Op &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1tir_1_1builtin.html#a0c2ebdcec34d7c79dc8480e5dab8547a">tvm::tir::builtin::q_multiply_shift</a> ()</td></tr>
+<tr class="memdesc:a0c2ebdcec34d7c79dc8480e5dab8547a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute a multiplication between two Q-numbers x and y followed by a right shift s The default rounding rule is to the nearest value, rounding half up (i.e., round(x.1) = x and round (x.5) = x+1)  <a href="namespacetvm_1_1tir_1_1builtin.html#a0c2ebdcec34d7c79dc8480e5dab8547a">More...</a><br /></td></tr>
+<tr class="separator:a0c2ebdcec34d7c79dc8480e5dab8547a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a700b7018f2c1f1fba8b4e28f264d8bbb"><td class="memItemLeft" align="right" valign="top">const Op &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1tir_1_1builtin.html#a700b7018f2c1f1fba8b4e28f264d8bbb">tvm::tir::builtin::address_of</a> ()</td></tr>
 <tr class="memdesc:a700b7018f2c1f1fba8b4e28f264d8bbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">See pesudo code.  <a href="namespacetvm_1_1tir_1_1builtin.html#a700b7018f2c1f1fba8b4e28f264d8bbb">More...</a><br /></td></tr>
 <tr class="separator:a700b7018f2c1f1fba8b4e28f264d8bbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/docs/api/doxygen/builtin_8h_source.html b/docs/api/doxygen/builtin_8h_source.html
index eb6f5bf..45ca5d0 100644
--- a/docs/api/doxygen/builtin_8h_source.html
+++ b/docs/api/doxygen/builtin_8h_source.html
@@ -89,16 +89,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">builtin.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="builtin_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more con [...]
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1cad28cfc7b69fd8745e12a4f0024d6942a"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1cad28cfc7b69fd8745e12a4f0024d6942a">tvm::tir::builtin::kArrNDim</a></div><div class="ttdef"><b>Definition:</b> builtin.h:551</div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca0b8af30aa268164148d5bfe1d8c2ba54"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca0b8af30aa268164148d5bfe1d8c2ba54">tvm::tir::builtin::kArrAddr</a></div><div class="ttdef"><b>Definition:</b> builtin.h:547</div></div>
+<a href="builtin_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more con [...]
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1cad28cfc7b69fd8745e12a4f0024d6942a"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1cad28cfc7b69fd8745e12a4f0024d6942a">tvm::tir::builtin::kArrNDim</a></div><div class="ttdef"><b>Definition:</b> builtin.h:559</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca0b8af30aa268164148d5bfe1d8c2ba54"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca0b8af30aa268164148d5bfe1d8c2ba54">tvm::tir::builtin::kArrAddr</a></div><div class="ttdef"><b>Definition:</b> builtin.h:555</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a925a45e5bb05e0cbf2daf2ffdbdcf53a"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a925a45e5bb05e0cbf2daf2ffdbdcf53a">tvm::tir::builtin::tvm_storage_sync</a></div><div class="ttdeci">const Op &amp; tvm_storage_sync()</div><div class="ttdoc">See pseudo code. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a15c5e0e0478e0ebff91690f60992cf3f"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a15c5e0e0478e0ebff91690f60992cf3f">tvm::tir::builtin::tvm_stack_alloca</a></div><div class="ttdeci">const Op &amp; tvm_stack_alloca()</div><div class="ttdoc">See pesudo code. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_aa1d19e758595200998a4e1ea39767b6b"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#aa1d19e758595200998a4e1ea39767b6b">tvm::tir::builtin::tvm_thread_allreduce</a></div><div class="ttdeci">const Op &amp; tvm_thread_allreduce()</div><div class="ttdoc">See pesudo code. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_aca44a85c87273dfab1731421f4edd2bf"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#aca44a85c87273dfab1731421f4edd2bf">tvm::tir::builtin::tvm_warp_shuffle</a></div><div class="ttdeci">const Op &amp; tvm_warp_shuffle()</div><div class="ttdoc">See pseudo code. </div></div>
 <div class="ttc" id="namespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdef"><b>Definition:</b> analyzer.h:36</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a83892dca19e44a96752625c65c38d645"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a83892dca19e44a96752625c65c38d645">tvm::tir::builtin::call_llvm_intrin</a></div><div class="ttdeci">const Op &amp; call_llvm_intrin()</div><div class="ttdoc">Call an LLVM intrinsic with a given intrinsic id and signature from the types of args in the runtime ...</div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1cabf798b873c868b7d77ced30c9907037d"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1cabf798b873c868b7d77ced30c9907037d">tvm::tir::builtin::kArrDeviceType</a></div><div class="ttdef"><b>Definition:</b> builtin.h:557</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1cabf798b873c868b7d77ced30c9907037d"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1cabf798b873c868b7d77ced30c9907037d">tvm::tir::builtin::kArrDeviceType</a></div><div class="ttdef"><b>Definition:</b> builtin.h:565</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a1e15b04fe89f7899e09e528946aa5bb4"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a1e15b04fe89f7899e09e528946aa5bb4">tvm::tir::builtin::fma</a></div><div class="ttdeci">const Op &amp; fma()</div><div class="ttdoc">Fused multiply add. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a8e3504415c78f3f8fd719a21e5280b38"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a8e3504415c78f3f8fd719a21e5280b38">tvm::tir::builtin::call_llvm_pure_intrin</a></div><div class="ttdeci">const Op &amp; call_llvm_pure_intrin()</div><div class="ttdoc">Call an LLVM pure intrinsic with a given intrinsic id and signature from the types of args in the run...</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ac8e7bc86b8fa81453291ae5299062001"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ac8e7bc86b8fa81453291ae5299062001">tvm::tir::builtin::tvm_global_barrier_kinit</a></div><div class="ttdeci">const Op &amp; tvm_global_barrier_kinit()</div><div class="ttdoc">Initialize the global barrier. Call this at beginning of kernel that need global barrier. </div></div>
@@ -106,26 +106,27 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ae0470bd69bb03047aae4cb52e1e6e337"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ae0470bd69bb03047aae4cb52e1e6e337">tvm::tir::builtin::tvm_warp_shuffle_up</a></div><div class="ttdeci">const Op &amp; tvm_warp_shuffle_up()</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ac54288cc9f1fee8c26db9bd87ac320ee"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ac54288cc9f1fee8c26db9bd87ac320ee">tvm::tir::builtin::tvm_call_trace_packed</a></div><div class="ttdeci">const Op &amp; tvm_call_trace_packed()</div><div class="ttdoc">See pesudo code. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_afc81da8cbcd7f34ec5e1e80d837ca265"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#afc81da8cbcd7f34ec5e1e80d837ca265">tvm::tir::builtin::tvm_store_matrix_sync</a></div><div class="ttdeci">const Op &amp; tvm_store_matrix_sync()</div><div class="ttdoc">tvm intrinsic for tensor core store operators. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca96e7b6492b5b174219cf60e19af0857c"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca96e7b6492b5b174219cf60e19af0857c">tvm::tir::builtin::kArrStrides</a></div><div class="ttdef"><b>Definition:</b> builtin.h:550</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca96e7b6492b5b174219cf60e19af0857c"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca96e7b6492b5b174219cf60e19af0857c">tvm::tir::builtin::kArrStrides</a></div><div class="ttdef"><b>Definition:</b> builtin.h:558</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ac4887bd93ad67619ad290a33e2bdd340"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ac4887bd93ad67619ad290a33e2bdd340">tvm::tir::builtin::call_spirv_pure_glsl450</a></div><div class="ttdeci">const Op &amp; call_spirv_pure_glsl450()</div><div class="ttdoc">Call an SPIRV pure GLSL450 intrinsic. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a6be181be34fba13d129aadc6c9a23f73"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a6be181be34fba13d129aadc6c9a23f73">tvm::tir::builtin::tvm_thread_context</a></div><div class="ttdeci">const Op &amp; tvm_thread_context()</div><div class="ttdoc">See pesudo code Mark the content as thread local context, can get optimized by only call the call onc...</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a700b7018f2c1f1fba8b4e28f264d8bbb"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a700b7018f2c1f1fba8b4e28f264d8bbb">tvm::tir::builtin::address_of</a></div><div class="ttdeci">const Op &amp; address_of()</div><div class="ttdoc">See pesudo code. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a091ef99dc63f6945588dbb81c968ca15"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a091ef99dc63f6945588dbb81c968ca15">tvm::tir::builtin::bitwise_not</a></div><div class="ttdeci">const Op &amp; bitwise_not()</div><div class="ttdoc">Bitwise not operator. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1cafdb925cdf50f17a2b96c7ac4faefa1fb"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1cafdb925cdf50f17a2b96c7ac4faefa1fb">tvm::tir::builtin::kArrByteOffset</a></div><div class="ttdef"><b>Definition:</b> builtin.h:555</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1cafdb925cdf50f17a2b96c7ac4faefa1fb"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1cafdb925cdf50f17a2b96c7ac4faefa1fb">tvm::tir::builtin::kArrByteOffset</a></div><div class="ttdef"><b>Definition:</b> builtin.h:563</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a0c2ebdcec34d7c79dc8480e5dab8547a"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a0c2ebdcec34d7c79dc8480e5dab8547a">tvm::tir::builtin::q_multiply_shift</a></div><div class="ttdeci">const Op &amp; q_multiply_shift()</div><div class="ttdoc">Execute a multiplication between two Q-numbers x and y followed by a right shift s The default roundi...</div></div>
 <div class="ttc" id="ir_2op_8h_html"><div class="ttname"><a href="ir_2op_8h.html">op.h</a></div><div class="ttdoc">Primitive operators(builtin intrinsics) and registry for them. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a7ed64a9fb0a7f575fc63e1e0395e96a6"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a7ed64a9fb0a7f575fc63e1e0395e96a6">tvm::tir::builtin::vectorlow</a></div><div class="ttdeci">const Op &amp; vectorlow()</div><div class="ttdoc">Get the low-level half of the vector. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a0cbd267877168afd5bbea35f0e5d70fe"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a0cbd267877168afd5bbea35f0e5d70fe">tvm::tir::builtin::tvm_mma_sync</a></div><div class="ttdeci">const Op &amp; tvm_mma_sync()</div><div class="ttdoc">tvm intrinsic for tensor core mma_sync operators. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca344dc1f419339b81024d4d3628083a1e"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca344dc1f419339b81024d4d3628083a1e">tvm::tir::builtin::kArrTypeBits</a></div><div class="ttdef"><b>Definition:</b> builtin.h:553</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca344dc1f419339b81024d4d3628083a1e"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca344dc1f419339b81024d4d3628083a1e">tvm::tir::builtin::kArrTypeBits</a></div><div class="ttdef"><b>Definition:</b> builtin.h:561</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a7b555bc5cca2f5e7b26c1037bc0001ce"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a7b555bc5cca2f5e7b26c1037bc0001ce">tvm::tir::builtin::reinterpret</a></div><div class="ttdeci">const Op &amp; reinterpret()</div><div class="ttdoc">Reinterpret the value using the target type. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ae2add6e324d391782d367360a68ccf51"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ae2add6e324d391782d367360a68ccf51">tvm::tir::builtin::call_pure_extern</a></div><div class="ttdeci">const Op &amp; call_pure_extern()</div><div class="ttdoc">Call an pure extern C function with given name and signature from the types of args in the runtime en...</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a2172690dd21d7fd50a4fd4d696ea7bb2"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a2172690dd21d7fd50a4fd4d696ea7bb2">tvm::tir::builtin::popcount</a></div><div class="ttdeci">const Op &amp; popcount()</div><div class="ttdoc">Popcount. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca0c960782c20a4f16cfe203c516760b00"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca0c960782c20a4f16cfe203c516760b00">tvm::tir::builtin::kArrTypeLanes</a></div><div class="ttdef"><b>Definition:</b> builtin.h:554</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca0c960782c20a4f16cfe203c516760b00"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca0c960782c20a4f16cfe203c516760b00">tvm::tir::builtin::kArrTypeLanes</a></div><div class="ttdef"><b>Definition:</b> builtin.h:562</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a2c13c6e4b2f92e17f357665f9f11736c"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a2c13c6e4b2f92e17f357665f9f11736c">tvm::tir::builtin::tvm_call_packed</a></div><div class="ttdeci">const Op &amp; tvm_call_packed()</div><div class="ttdoc">See pesudo code. </div></div>
 <div class="ttc" id="tir_2expr_8h_html"><div class="ttname"><a href="tir_2expr_8h.html">expr.h</a></div><div class="ttdoc">TIR expressions. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca4d4a5d54434514fd8b0ce57160059c92"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca4d4a5d54434514fd8b0ce57160059c92">tvm::tir::builtin::kArrKindBound_</a></div><div class="ttdef"><b>Definition:</b> builtin.h:558</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca4d4a5d54434514fd8b0ce57160059c92"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca4d4a5d54434514fd8b0ce57160059c92">tvm::tir::builtin::kArrKindBound_</a></div><div class="ttdef"><b>Definition:</b> builtin.h:566</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a21d1f0395dca5af4a90cdb42c1d1d154"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a21d1f0395dca5af4a90cdb42c1d1d154">tvm::tir::builtin::likely</a></div><div class="ttdeci">const Op &amp; likely()</div><div class="ttdoc">Marks a condition is likely going to happen. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a23003bd9331efaa58d8420529ea96c0b"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a23003bd9331efaa58d8420529ea96c0b">tvm::tir::builtin::tvm_struct_get</a></div><div class="ttdeci">const Op &amp; tvm_struct_get()</div><div class="ttdoc">See pesudo code. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca779c07403e11f671e936ec2813ce2304"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca779c07403e11f671e936ec2813ce2304">tvm::tir::builtin::kTVMValueContent</a></div><div class="ttdef"><b>Definition:</b> builtin.h:560</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca779c07403e11f671e936ec2813ce2304"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca779c07403e11f671e936ec2813ce2304">tvm::tir::builtin::kTVMValueContent</a></div><div class="ttdef"><b>Definition:</b> builtin.h:568</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a28f99e6dd767482765b854ee9fc71f2c"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a28f99e6dd767482765b854ee9fc71f2c">tvm::tir::builtin::tvm_stack_make_array</a></div><div class="ttdeci">const Op &amp; tvm_stack_make_array()</div><div class="ttdoc">Allocate a NDArray(DLTensor) on stack, return the handle. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a543f1fc334d2bc830add972895a03f17"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a543f1fc334d2bc830add972895a03f17">tvm::tir::builtin::prefetch</a></div><div class="ttdeci">const Op &amp; prefetch()</div><div class="ttdoc">Prefetch a cacheline. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a92624d2aa5c435cd7a0ea8efb698a115"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a92624d2aa5c435cd7a0ea8efb698a115">tvm::tir::builtin::tvm_throw_last_error</a></div><div class="ttdeci">const Op &amp; tvm_throw_last_error()</div><div class="ttdoc">See pesudo code. </div></div>
@@ -133,9 +134,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a3e84c73dbbcf7f97008ac84c169feae9"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a3e84c73dbbcf7f97008ac84c169feae9">tvm::tir::builtin::tvm_access_ptr</a></div><div class="ttdeci">const Op &amp; tvm_access_ptr()</div><div class="ttdoc">Get head access address with memory access pattern info. </div></div>
 <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="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:569</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_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:557</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>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_af103ae0715d4ebcbaccd49d2b6a12afe"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#af103ae0715d4ebcbaccd49d2b6a12afe">tvm::tir::builtin::shift_right</a></div><div class="ttdeci">const Op &amp; shift_right()</div><div class="ttdoc">Right shift. </div></div>
@@ -144,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a8d5e173f1a16740172a9ad6f2aa85a08"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a8d5e173f1a16740172a9ad6f2aa85a08">tvm::tir::builtin::tvm_bmma_sync</a></div><div class="ttdeci">const Op &amp; tvm_bmma_sync()</div><div class="ttdoc">tvm intrinsic for tensor core bmma_sync operators. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a0cd2ac37b80c498ded412572146ecc67"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a0cd2ac37b80c498ded412572146ecc67">tvm::tir::builtin::bitwise_xor</a></div><div class="ttdeci">const Op &amp; bitwise_xor()</div><div class="ttdoc">Bitwise xor operator. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a6aeb24a28d19cdc60e4e1fa7b420d7fd"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a6aeb24a28d19cdc60e4e1fa7b420d7fd">tvm::tir::builtin::tvm_static_handle</a></div><div class="ttdeci">const Op &amp; tvm_static_handle()</div><div class="ttdoc">Create a function local static handle that iniitalizes to nullptr. can be used to cache function loca...</div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1c"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1c">tvm::tir::builtin::TVMStructFieldKind</a></div><div class="ttdeci">TVMStructFieldKind</div><div class="ttdoc">The kind of structure field info used in intrinsic. </div><div class="ttdef"><b>Definition:</b> builtin.h:545</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1c"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1c">tvm::tir::builtin::TVMStructFieldKind</a></div><div class="ttdeci">TVMStructFieldKind</div><div class="ttdoc">The kind of structure field info used in intrinsic. </div><div class="ttdef"><b>Definition:</b> builtin.h:553</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a0e633f53c50e14d7e2fc07636a223309"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a0e633f53c50e14d7e2fc07636a223309">tvm::tir::builtin::bitwise_and</a></div><div class="ttdeci">const Op &amp; bitwise_and()</div><div class="ttdoc">Bitwise and operator. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a6f53be295396c301082696ca0c113501"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a6f53be295396c301082696ca0c113501">tvm::tir::builtin::isnan</a></div><div class="ttdeci">const Op &amp; isnan()</div><div class="ttdoc">Check if value is nan. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_af6d1c48570e10287683d58f22e4de98f"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#af6d1c48570e10287683d58f22e4de98f">tvm::tir::builtin::tvm_warp_shuffle_down</a></div><div class="ttdeci">const Op &amp; tvm_warp_shuffle_down()</div></div>
@@ -154,9 +155,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a0117a4a76af962576a6a3bbf32f97b36"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a0117a4a76af962576a6a3bbf32f97b36">tvm::tir::builtin::tvm_call_packed_lowered</a></div><div class="ttdeci">const Op &amp; tvm_call_packed_lowered()</div><div class="ttdoc">Lowered version of call packed, the space of value and type codes are explicitly allocated. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a322ae63444ed4e5fcf7247aa93f8bb7c"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a322ae63444ed4e5fcf7247aa93f8bb7c">tvm::tir::builtin::large_uint_imm</a></div><div class="ttdeci">const Op &amp; large_uint_imm()</div><div class="ttdoc">See pesudo code. </div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a21c2ad8b095dcbefa786394981ea0b71"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a21c2ad8b095dcbefa786394981ea0b71">tvm::tir::builtin::tvm_context_id</a></div><div class="ttdeci">const Op &amp; tvm_context_id()</div><div class="ttdoc">Return a unique context id, used for hint of workspace separation. Different context id ganrantees no...</div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca9076fb1a58386bac2e0f1fdae9cab844"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca9076fb1a58386bac2e0f1fdae9cab844">tvm::tir::builtin::kArrData</a></div><div class="ttdef"><b>Definition:</b> builtin.h:548</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca9076fb1a58386bac2e0f1fdae9cab844"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca9076fb1a58386bac2e0f1fdae9cab844">tvm::tir::builtin::kArrData</a></div><div class="ttdef"><b>Definition:</b> builtin.h:556</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a26472adf05d821f1929cfbc02bc3c231"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a26472adf05d821f1929cfbc02bc3c231">tvm::tir::builtin::shift_left</a></div><div class="ttdeci">const Op &amp; shift_left()</div><div class="ttdoc">Left shift. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca5ce842cabb26975681dd561c5132af1b"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca5ce842cabb26975681dd561c5132af1b">tvm::tir::builtin::kArrTypeCode</a></div><div class="ttdef"><b>Definition:</b> builtin.h:552</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_ad3b90c881b67ebe8e8fe68f14143bb1ca5ce842cabb26975681dd561c5132af1b"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#ad3b90c881b67ebe8e8fe68f14143bb1ca5ce842cabb26975681dd561c5132af1b">tvm::tir::builtin::kArrTypeCode</a></div><div class="ttdef"><b>Definition:</b> builtin.h:560</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_aa6e23eac98abb8378b9837011a5c04b5"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#aa6e23eac98abb8378b9837011a5c04b5">tvm::tir::builtin::tvm_call_trace_packed_lowered</a></div><div class="ttdeci">const Op &amp; tvm_call_trace_packed_lowered()</div><div class="ttdoc">Lowered version of trace intrinsic, the space of value and type codes are explicitly allocated...</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_aa5b0e90771b35d78b6c07c0054abe023"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#aa5b0e90771b35d78b6c07c0054abe023">tvm::tir::builtin::isnullptr</a></div><div class="ttdeci">const Op &amp; isnullptr()</div><div class="ttdoc">See pesudo code. </div></div>
 </div><!-- fragment --></div><!-- contents -->
diff --git a/docs/api/doxygen/classes.html b/docs/api/doxygen/classes.html
index 79400d8..f41947d 100644
--- a/docs/api/doxygen/classes.html
+++ b/docs/api/doxygen/classes.html
@@ -90,160 +90,161 @@ 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_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><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_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_1PatternN [...]
+<tr><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_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_1PatternTuple.html">PatternTuple</a> (<a class="el" href [...]
+<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_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_1arith_1_1IntGroupBoundsNode.html">IntGroupBoundsN [...]
+<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 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_1IntImm.html">IntImm</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="classtvm_1_1tir_1_1StoreNode.html">StoreNode</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_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="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_1PatternVarNode.html">PatternVarNode</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_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_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_1IntSet.html">IntSet</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&# [...]
+<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_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_1IntSetAnalyzer.html">IntSetAnalyzer</a> (<a class="el" href="namespacetvm_1_1a [...]
+<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_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_1arith_1_1IntSetNode.html">IntSetNode</a> (<a class="el" href="namespacetvm_1_1arith.h [...]
+<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_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_1IRModule.html">IRModule</a> (<a class="el" href="namespacetvm.ht [...]
+<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_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_1IRModuleNode.html">IRModuleNode</a> (<a class="el" href="namespacetvm.html">t [...]
+<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="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_1runtime_1_1IterAdapter.html">IterAdapter</a> (<a class="el" href="namespacetvm_1_1runt [...]
+<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_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_1tir_1_1IterVar.html">IterVar</a> (<a class="el" [...]
+<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_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_1IterVarAttr.html">IterVarAttr</a> (<a class="el" href="namespacet [...]
+<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="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_1te_1_1IterVarAttrNode.html">IterVarAttrNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>) [...]
+<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_1qnn_1_1DequantizeAttrs.html">DequantizeAttrs</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_1tir_1_1IterVarNode.html">IterVarNode</a> (<a cl [...]
 </td></tr>
-<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_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>
+</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</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_1PrimFuncNode.html">PrimFuncNode</a> (<a class="el" href="namespacetvm_1_1tir.html">t [...]
+<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 [...]
+</td><td valign="top"><a class="el" href="structtvm_1_1te_1_1TensorDom.html">TensorDom</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_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 valig [...]
+<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"> [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1TensorIntrinCallNode.html">TensorIntrinCallNode</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_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 [...]
 <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; [...]
+</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_1tir_1_1Ramp.html">Ramp</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;&#16 [...]
+<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_1RampNode.html">RampNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir [...]
+<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 [...]
+</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;&#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_1RecClosureObj.html">RecClosureObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#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_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 [...]
+</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_1RefWriteNode.html">RefWriteNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::rel [...]
+<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_1ReflectionVTable_1_1Registry.html">ReflectionVTable::Registry</a> (<a class="el" href=" [...]
+<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_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_1RelayRefTypeNode.html">RelayRefTypeNode</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="structtvm_1_1relay_1_1RepeatAttrs.html">RepeatAttrs</a> (<a class="el" href="namespacetvm_1_1relay [...]
+<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="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html">FixedPointMultiplyAttrs</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_1ModuleNode.html">ModuleNode</a> (<a class="el" href="namespacetvm_ [...]
+<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_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_1tir_1_1Mul.html">Mul</a> (<a class="el" href="namespacetvm_1_1ti [...]
+<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_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_1MulNode.html">MulNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#16 [...]
+<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_1FloatImmNode.html">FloatImmNode</a> (<a class="el" href="namespacetvm.html">tvm</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_1_1relay.h [...]
+<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_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_1MultiBoxTransformLocAttrs.html">MultiBoxTransformLocAttrs</a> (<a class=" [...]
+<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_1FloorDivNode.html">FloorDivNode</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 cla [...]
 </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; [...]
+<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_1FloorMod.html">FloorMod</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="el" href= [...]
+<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_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="classtvm_1_1runtime_1_1NDArray.html">NDArray</a> (<a class="el" href="namespacetvm_1_1runtime.html">t [...]
+<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_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="structtvm_1_1relay_1_1NdarraySizeAttrs.html">NdarraySizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.htm [...]
+<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_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="classtvm_1_1tir_1_1NE.html">NE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="e [...]
+<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_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_1NENode.html">NENode</a> (<a class="el" href="namespacetvm_1_1t [...]
 </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 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_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_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_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_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_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08_4.html">NodeFunctor&lt; R(const  [...]
+<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_1FuncType.html">FuncType</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_1relay.htm [...]
+<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_1FuncTypeNode.html">FuncTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</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_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_1NotNode.html">NotNode</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_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_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="structtvm_1_1runtime_1_1NullOptType.html">NullOptType</a> (<a class="el" href="namespacetvm_1_1runtime.html">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 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 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_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.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="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_3_01bool_01_4.html">TypeName&lt; bool &gt;</a> (<a class="el" href="namespacetvm_1_ [...]
+<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="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_1runtime_1_1ObjAllocatorBase.html">ObjAllocatorBase</a> (<a class="el" href="na [...]
 <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="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><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_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.html">SelectSEqualReduce</a> (<a class="el" href="namespacetvm_1_1detail.html" [...]
+<tr><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="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_1SelectSEqualReduce_3_01T_00_01TraitName_00_01false_01_4.html">SelectSEqualReduce&lt; T,  [...]
+<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_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_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="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="classtvm_1_1runtime_1_1ObjectPtr.html">ObjectPtr</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="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="structtvm_1_1runtime_1_1ObjectPtrEqual.html">ObjectPtrEqual</a> (<a class="el" href="nam [...]
+<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_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_1ObjectPtrHash.html">ObjectPtrHash</a> (<a class="el" href="nam [...]
+<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_1GlobalTypeVar.html">GlobalTypeVar</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">tvm::runti [...]
+<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_1GlobalTypeVarNode.html">GlobalTypeVarNode</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="namespa [...]
+<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_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_3_01Array_3_01T_01_4_01_4.html">ObjectTypeChecker&lt; Array&lt;  [...]
+<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_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_01Map_3_01K_00_01V_01_4_01_4.html">ObjectTypeChecker&lt; Map&lt; K, V &gt; &gt;</a> (<a cl [...]
+<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_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_1relay_1_1OnDeviceAttrs.html">OnDeviceAttrs</a> (<a class="el" href="namesp [...]
+<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_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_1OneHotAttrs.html">OneHotAttrs</a> (<a class="el" href="name [...]
+<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_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="classtvm_1_1Op.html">Op</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" [...]
+<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_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_1OpAttrMap.html">OpAttrMap</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_1relay_1_1ClauseNode.html">ClauseNode</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_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_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_1TypeVisitor.html">TypeVisitor</a> (<a class="el" href="namespacetvm.html">tvm</a>)& [...]
+<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_1te_1_1OperationNode.html">OperationNode</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 [...]
 </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_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  [...]
+<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_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_1relay_1_1OpImplementation.html">OpImplementation</a> (<a class="el"  [...]
+<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_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_1OpImplementationNode.html">OpImplementationNode</a> (<a [...]
+<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_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_1OpNode.html">OpNode</a> (<a class="el" href="namesp [...]
+<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_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_1OpRegEntry.html">OpRegEntry</a> (<a cl [...]
 </td></tr>
-<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 [...]
+<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_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_1relay_1_1OpSpecialization.ht [...]
+<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_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_1OpSpecializationNode.html">OpSpecializationNode</a> (<a class="el" href="namespace [...]
+<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_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_1OpStrategy.html">OpStrategy</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay< [...]
+<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 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_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_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="classtvm_1_1tir_1_1Var.html">Var</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm:: [...]
+<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_1runtime_1_1Optional.html">Optional</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_1SliceLikeAttrs.html">SliceLikeAttrs</a> (<a class="el" href= [...]
+<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_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_1tir_1_1Or.html">Or</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_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_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_1OrNode.html">OrNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a [...]
+<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_1If.html">If</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;&#160 [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1SourceName.html">SourceName</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_1relay_1_1IfNode.html">IfNode</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_1SourceNameNode.html">SourceNameNode</a> (<a class="el" href="namespacetvm.h [...]
+<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_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_1runtime_1_1PackedFunc.html">PackedFunc</a> (<a class="el" href="namespacetvm_1_1runti [...]
+<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_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="structtvm_1_1runtime_1_1PackedFuncValueConverter.html">PackedFuncValueCon [...]
+<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.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_3_01Optional_3_01T [...]
+<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_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_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.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_01tvm_1_1Bool_01_4.html">PackedFuncValueConverter&lt; t [...]
+<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_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_1 [...]
 </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_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 [...]
+<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.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_1_1tvm_1_1runtime_1_1S [...]
+<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_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_1relay_1_1PadAtt [...]
+<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_1IncompleteType.html">IncompleteType</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_1transfor [...]
+<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_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_1PassContext.html">PassContext</a> (<a class="el"  [...]
+<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="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_1PassContextNode.html">PassContextNode</a> (<a class="el" href="nam [...]
 </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_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"  [...]
+<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="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_1PassInfo.html">PassInfo</a> (<a c [...]
+<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_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_1PassInfoNode.html">PassInfoNode</a> (<a class="el" hre [...]
+<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_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_1PassNode.html">PassNode</a [...]
 </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="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 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_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_1relay_1_1Pattern.html">Pattern</a> (<a class="el" href="na [...]
+<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_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_ [...]
+<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_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_1PatternConstructorNode.html">PatternConstructor [...]
+<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_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_1PatternFunctor.html"> [...]
+<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_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_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html">PatternFunctor&l [...]
+<tr><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_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_1PatternMutator.html">Pa [...]
 <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_1BaseAttrsNode.html b/docs/api/doxygen/classtvm_1_1BaseAttrsNode.html
index 711a203..14e9d82 100644
--- a/docs/api/doxygen/classtvm_1_1BaseAttrsNode.html
+++ b/docs/api/doxygen/classtvm_1_1BaseAttrsNode.html
@@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 <p>Inherits Object.</p>
 
-<p>Inherited by <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool2DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool3DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AffineGridAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AllocStorageAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AllocTensorAttrs &gt;</a>,  [...]
+<p>Inherited by <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool2DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool3DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AffineGridAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AllocStorageAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AllocTensorAttrs &gt;</a>,  [...]
 <div class="dynheader">
 Collaboration diagram for tvm::BaseAttrsNode:</div>
 <div class="dyncontent">
@@ -252,7 +252,7 @@ Static Public Attributes</h2></td></tr>
 </dl>
 <dl class="section note"><dt>Note</dt><dd>This function throws when the required field is not present. </dd></dl>
 
-<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532 [...]
+<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532 [...]
 
 </div>
 </div>
@@ -314,7 +314,7 @@ template&lt;typename... Args&gt; </div>
 <p>Get the field information. </p>
 <dl class="section return"><dt>Returns</dt><dd>The fields in the <a class="el" href="classtvm_1_1Attrs.html" title="Managed reference to BaseAttrsNode. ">Attrs</a>. </dd></dl>
 
-<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6 [...]
+<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6 [...]
 
 </div>
 </div>
@@ -398,7 +398,7 @@ template&lt;typename... Args&gt; </div>
 </table>
 </div><div class="memdoc">
 
-<p>Reimplemented in <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a3 [...]
+<p>Reimplemented in <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a3 [...]
 
 </div>
 </div>
@@ -433,7 +433,7 @@ template&lt;typename... Args&gt; </div>
   </dd>
 </dl>
 
-<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da88 [...]
+<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da88 [...]
 
 </div>
 </div>
diff --git a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallback-members.html b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallback-members.html
index fe954ed..36a879d 100644
--- a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallback-members.html
+++ b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallback-members.html
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 <p>This is the complete list of members for <a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">tvm::relay::DFPatternCallback</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a943d6ff184978aa640101f00377d8b66">DFPatternCallback</a>(DFPattern pattern, PackedFunc callback)</td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">tvm::relay::DFPatternCallback</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a820597c8dc9ec76160d3283e71cf57ba">DFPatternCallback</a>(DFPattern pattern, PackedFunc callback, bool require_type)</td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">tvm::relay::DFPatternCallback</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a419b8862468df976ed3154084992a17a">TVM_DEFINE_OBJECT_REF_METHODS</a>(DFPatternCallback, ObjectRef, DFPatternCallbackNode)</td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">tvm::relay::DFPatternCallback</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
diff --git a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallback.html b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallback.html
index a9a496f..88971ba 100644
--- a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallback.html
+++ b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallback.html
@@ -114,8 +114,8 @@ Collaboration diagram for tvm::relay::DFPatternCallback:</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:a943d6ff184978aa640101f00377d8b66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a943d6ff184978aa640101f00377d8b66">DFPatternCallback</a> (<a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> pattern, PackedFunc callback)</td></tr>
-<tr class="separator:a943d6ff184978aa640101f00377d8b66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a820597c8dc9ec76160d3283e71cf57ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a820597c8dc9ec76160d3283e71cf57ba">DFPatternCallback</a> (<a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> pattern, PackedFunc callback, bool require_type)</td></tr>
+<tr class="separator:a820597c8dc9ec76160d3283e71cf57ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a419b8862468df976ed3154084992a17a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a419b8862468df976ed3154084992a17a">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">DFPatternCallback</a>, ObjectRef, <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">DFPatternCallbackNode</a>)</td></tr>
 <tr class="separator:a419b8862468df976ed3154084992a17a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -123,7 +123,7 @@ Public Member Functions</h2></td></tr>
 <div class="textblock"><p>Managed reference to dataflow pattern callbacks. </p>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html" title="Base type of all dataflow pattern callbacks. ">DFPatternCallbackNode</a> </dd></dl>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a943d6ff184978aa640101f00377d8b66"></a>
+<a class="anchor" id="a820597c8dc9ec76160d3283e71cf57ba"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -137,7 +137,13 @@ Public Member Functions</h2></td></tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">PackedFunc&#160;</td>
-          <td class="paramname"><em>callback</em>&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>require_type</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
diff --git a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode-members.html b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode-members.html
index 22eb6ef..7e2de3a 100644
--- a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode-members.html
+++ b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode-members.html
@@ -95,10 +95,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <p>This is the complete list of members for <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a>, including all inherited members.</p>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a9e5a819e8e816bbacc0e9be93a169ebf">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#ad0196f5291f35ce7077118795681f442">function_</a></td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#aedf26eb9299c184982f11bebdaca816f">pattern_</a></td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a0b09756dcd17877284e01d1a90a31d00">TVM_DECLARE_BASE_OBJECT_INFO</a>(DFPatternCallbackNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a35df47f5731f147a289cdb59392600c5">VisitAttrs</a>(tvm::AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a878e6e49af2466c49ffd9fcfe7f609fa">function</a></td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#acfe3e9170d4c05ff59f3056b79ae58bb">pattern</a></td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#acf0cbf5a96eb4c9000b770b7adbd9d32">require_type</a></td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a0b09756dcd17877284e01d1a90a31d00">TVM_DECLARE_BASE_OBJECT_INFO</a>(DFPatternCallbackNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a35df47f5731f147a289cdb59392600c5">VisitAttrs</a>(tvm::AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</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_1relay_1_1DFPatternCallbackNode.html b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode.html
index 79a18d8..0357a24 100644
--- a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode.html
+++ b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode.html
@@ -104,13 +104,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="dynheader">
 Inheritance diagram for tvm::relay::DFPatternCallbackNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1relay_1_1DFPatternCallbackNode__inherit__graph.svg" width="283" height="258"><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_1relay_1_1DFPatternCallbackNode__inherit__graph.svg" width="283" height="272"><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::relay::DFPatternCallbackNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1relay_1_1DFPatternCallbackNode__coll__graph.svg" width="418" height="384"><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_1relay_1_1DFPatternCallbackNode__coll__graph.svg" width="418" height="399"><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">
@@ -123,12 +123,15 @@ Public Member Functions</h2></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>
-<tr class="memitem:aedf26eb9299c184982f11bebdaca816f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#aedf26eb9299c184982f11bebdaca816f">pattern_</a></td></tr>
-<tr class="memdesc:aedf26eb9299c184982f11bebdaca816f"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> this callback matches.  <a href="#aedf26eb9299c184982f11bebdaca816f">More...</a><br /></td></tr>
-<tr class="separator:aedf26eb9299c184982f11bebdaca816f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad0196f5291f35ce7077118795681f442"><td class="memItemLeft" align="right" valign="top">PackedFunc&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#ad0196f5291f35ce7077118795681f442">function_</a></td></tr>
-<tr class="memdesc:ad0196f5291f35ce7077118795681f442"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classtvm_1_1relay_1_1Function.html" title="Managed reference to FunctionNode. ">Function</a> to call when finding a matched expression.  <a href="#ad0196f5291f35ce7077118795681f442">More...</a><br /></td></tr>
-<tr class="separator:ad0196f5291f35ce7077118795681f442"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acfe3e9170d4c05ff59f3056b79ae58bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#acfe3e9170d4c05ff59f3056b79ae58bb">pattern</a></td></tr>
+<tr class="memdesc:acfe3e9170d4c05ff59f3056b79ae58bb"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> this callback matches.  <a href="#acfe3e9170d4c05ff59f3056b79ae58bb">More...</a><br /></td></tr>
+<tr class="separator:acfe3e9170d4c05ff59f3056b79ae58bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a878e6e49af2466c49ffd9fcfe7f609fa"><td class="memItemLeft" align="right" valign="top">PackedFunc&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a878e6e49af2466c49ffd9fcfe7f609fa">function</a></td></tr>
+<tr class="memdesc:a878e6e49af2466c49ffd9fcfe7f609fa"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classtvm_1_1relay_1_1Function.html" title="Managed reference to FunctionNode. ">Function</a> to call when finding a matched expression.  <a href="#a878e6e49af2466c49ffd9fcfe7f609fa">More...</a><br /></td></tr>
+<tr class="separator:a878e6e49af2466c49ffd9fcfe7f609fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf0cbf5a96eb4c9000b770b7adbd9d32"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#acf0cbf5a96eb4c9000b770b7adbd9d32">require_type</a></td></tr>
+<tr class="memdesc:acf0cbf5a96eb4c9000b770b7adbd9d32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Require InferType to be run before the callback.  <a href="#acf0cbf5a96eb4c9000b770b7adbd9d32">More...</a><br /></td></tr>
+<tr class="separator:acf0cbf5a96eb4c9000b770b7adbd9d32"><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>
@@ -210,12 +213,12 @@ Static Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ad0196f5291f35ce7077118795681f442"></a>
+<a class="anchor" id="a878e6e49af2466c49ffd9fcfe7f609fa"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">PackedFunc tvm::relay::DFPatternCallbackNode::function_</td>
+          <td class="memname">PackedFunc tvm::relay::DFPatternCallbackNode::function</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -224,12 +227,12 @@ Static Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="aedf26eb9299c184982f11bebdaca816f"></a>
+<a class="anchor" id="acfe3e9170d4c05ff59f3056b79ae58bb"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> tvm::relay::DFPatternCallbackNode::pattern_</td>
+          <td class="memname"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> tvm::relay::DFPatternCallbackNode::pattern</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -238,6 +241,20 @@ Static Public Attributes</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="acf0cbf5a96eb4c9000b770b7adbd9d32"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool tvm::relay::DFPatternCallbackNode::require_type</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Require InferType to be run before the callback. </p>
+
+</div>
+</div>
 <hr/>The documentation for this class was generated from the following file:<ul>
 <li>include/tvm/relay/<a class="el" href="dataflow__matcher_8h_source.html">dataflow_matcher.h</a></li>
 </ul>
diff --git a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode__coll__graph.svg b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode__coll__graph.svg
index 275dc55..25c88bd 100644
--- a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode__coll__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode__coll__graph.svg
@@ -4,16 +4,17 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: tvm::relay::DFPatternCallbackNode Pages: 1 -->
-<svg width="313pt" height="288pt"
- viewBox="0.00 0.00 312.50 288.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 284)">
+<svg width="313pt" height="299pt"
+ viewBox="0.00 0.00 312.50 299.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 295)">
 <title>tvm::relay::DFPatternCallbackNode</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-284 308.5,-284 308.5,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-295 308.5,-295 308.5,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="37.5,-0.5 37.5,-68.5 241.5,-68.5 241.5,-0.5 37.5,-0.5"/>
-<text text-anchor="middle" x="139.5" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DFPatternCallbackNode</text>
-<polyline fill="none" stroke="black" points="37.5,-49.5 241.5,-49.5 "/>
+<polygon fill="#bfbfbf" stroke="black" points="37.5,-0.5 37.5,-79.5 241.5,-79.5 241.5,-0.5 37.5,-0.5"/>
+<text text-anchor="middle" x="139.5" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DFPatternCallbackNode</text>
+<polyline fill="none" stroke="black" points="37.5,-60.5 241.5,-60.5 "/>
+<text text-anchor="start" x="45.5" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ require_type</text>
 <text text-anchor="start" x="45.5" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
 <polyline fill="none" stroke="black" points="37.5,-30.5 241.5,-30.5 "/>
 <text text-anchor="start" x="45.5" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
@@ -21,65 +22,65 @@
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
-<polygon fill="white" stroke="#bfbfbf" points="0,-122 0,-179 47,-179 47,-122 0,-122"/>
-<text text-anchor="middle" x="23.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="0,-160 47,-160 "/>
-<text text-anchor="middle" x="23.5" y="-148" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="0,-141 47,-141 "/>
-<text text-anchor="middle" x="23.5" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="0,-133 0,-190 47,-190 47,-133 0,-133"/>
+<text text-anchor="middle" x="23.5" y="-178" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="0,-171 47,-171 "/>
+<text text-anchor="middle" x="23.5" y="-159" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="0,-152 47,-152 "/>
+<text text-anchor="middle" x="23.5" y="-140" 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="M54.2144,-117.291C54.6451,-116.858 55.0738,-116.427 55.5,-116 71.1983,-100.276 88.9149,-83.2023 104.017,-68.8415"/>
-<polygon fill="none" stroke="midnightblue" points="51.6463,-114.911 47.1448,-124.502 56.6448,-119.812 51.6463,-114.911"/>
+<path fill="none" stroke="midnightblue" d="M54.2345,-128.311C54.6589,-127.871 55.0809,-127.434 55.5,-127 70.435,-111.538 86.95,-94.5965 101.356,-79.8689"/>
+<polygon fill="none" stroke="midnightblue" points="51.643,-125.957 47.2349,-135.591 56.6889,-130.808 51.643,-125.957"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1relay_1_1DFPattern.html" target="_top" xlink:title="Managed reference to dataflow patterns. ">
-<polygon fill="white" stroke="black" points="64.5,-116.5 64.5,-184.5 214.5,-184.5 214.5,-116.5 64.5,-116.5"/>
-<text text-anchor="middle" x="139.5" y="-172.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DFPattern</text>
-<polyline fill="none" stroke="black" points="64.5,-165.5 214.5,-165.5 "/>
-<text text-anchor="middle" x="139.5" y="-153.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="64.5,-146.5 214.5,-146.5 "/>
-<text text-anchor="start" x="72.5" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="72.5" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="64.5,-127.5 64.5,-195.5 214.5,-195.5 214.5,-127.5 64.5,-127.5"/>
+<text text-anchor="middle" x="139.5" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DFPattern</text>
+<polyline fill="none" stroke="black" points="64.5,-176.5 214.5,-176.5 "/>
+<text text-anchor="middle" x="139.5" y="-164.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="64.5,-157.5 214.5,-157.5 "/>
+<text text-anchor="start" x="72.5" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="72.5" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node1 -->
 <g id="edge2" class="edge"><title>Node3&#45;&gt;Node1</title>
-<path fill="none" stroke="#404040" d="M139.5,-116.22C139.5,-105.099 139.5,-92.5117 139.5,-80.6422"/>
-<polygon fill="none" stroke="#404040" points="139.5,-80.6243 135.5,-74.6243 139.5,-68.6243 143.5,-74.6242 139.5,-80.6243"/>
-<text text-anchor="middle" x="165.5" y="-90" font-family="Helvetica,sans-Serif" font-size="10.00"> +pattern_</text>
+<path fill="none" stroke="#404040" d="M139.5,-127.213C139.5,-116.244 139.5,-103.784 139.5,-91.8137"/>
+<polygon fill="none" stroke="#404040" points="139.5,-91.5997 135.5,-85.5997 139.5,-79.5997 143.5,-85.5997 139.5,-91.5997"/>
+<text text-anchor="middle" x="163" y="-101" font-family="Helvetica,sans-Serif" font-size="10.00"> +pattern</text>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
-<polygon fill="white" stroke="#bfbfbf" points="108.5,-222.5 108.5,-279.5 170.5,-279.5 170.5,-222.5 108.5,-222.5"/>
-<text text-anchor="middle" x="139.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
-<polyline fill="none" stroke="#bfbfbf" points="108.5,-260.5 170.5,-260.5 "/>
-<text text-anchor="middle" x="139.5" y="-248.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="108.5,-241.5 170.5,-241.5 "/>
-<text text-anchor="middle" x="139.5" y="-229.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="108.5,-233.5 108.5,-290.5 170.5,-290.5 170.5,-233.5 108.5,-233.5"/>
+<text text-anchor="middle" x="139.5" y="-278.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
+<polyline fill="none" stroke="#bfbfbf" points="108.5,-271.5 170.5,-271.5 "/>
+<text text-anchor="middle" x="139.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="108.5,-252.5 170.5,-252.5 "/>
+<text text-anchor="middle" x="139.5" y="-240.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </g>
 <!-- Node4&#45;&gt;Node3 -->
 <g id="edge3" class="edge"><title>Node4&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M139.5,-212.007C139.5,-202.962 139.5,-193.383 139.5,-184.578"/>
-<polygon fill="none" stroke="midnightblue" points="136,-212.3 139.5,-222.3 143,-212.3 136,-212.3"/>
+<path fill="none" stroke="midnightblue" d="M139.5,-223.007C139.5,-213.962 139.5,-204.383 139.5,-195.578"/>
+<polygon fill="none" stroke="midnightblue" points="136,-223.3 139.5,-233.3 143,-223.3 136,-223.3"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
-<polygon fill="white" stroke="#bfbfbf" points="232.5,-122 232.5,-179 304.5,-179 304.5,-122 232.5,-122"/>
-<text text-anchor="middle" x="268.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00">PackedFunc</text>
-<polyline fill="none" stroke="#bfbfbf" points="232.5,-160 304.5,-160 "/>
-<text text-anchor="middle" x="268.5" y="-148" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="232.5,-141 304.5,-141 "/>
-<text text-anchor="middle" x="268.5" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="232.5,-133 232.5,-190 304.5,-190 304.5,-133 232.5,-133"/>
+<text text-anchor="middle" x="268.5" y="-178" font-family="Helvetica,sans-Serif" font-size="10.00">PackedFunc</text>
+<polyline fill="none" stroke="#bfbfbf" points="232.5,-171 304.5,-171 "/>
+<text text-anchor="middle" x="268.5" y="-159" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="232.5,-152 304.5,-152 "/>
+<text text-anchor="middle" x="268.5" y="-140" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </g>
 <!-- Node5&#45;&gt;Node1 -->
 <g id="edge4" class="edge"><title>Node5&#45;&gt;Node1</title>
-<path fill="none" stroke="#404040" d="M237.273,-121.904C221.921,-108.337 203.107,-91.7111 186.097,-76.679"/>
-<polygon fill="none" stroke="#404040" points="185.858,-76.4678 178.713,-75.4919 176.866,-68.5214 184.011,-69.4972 185.858,-76.4678"/>
-<text text-anchor="middle" x="236" y="-90" font-family="Helvetica,sans-Serif" font-size="10.00"> +function_</text>
+<path fill="none" stroke="#404040" d="M238.581,-132.784C224.262,-119.52 206.716,-103.266 190.389,-88.1411"/>
+<polygon fill="none" stroke="#404040" points="190.275,-88.0358 183.155,-86.8927 181.472,-79.8808 188.592,-81.0239 190.275,-88.0358"/>
+<text text-anchor="middle" x="237.5" y="-101" font-family="Helvetica,sans-Serif" font-size="10.00"> +function</text>
 </g>
 </g>
 </svg>
diff --git a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode__inherit__graph.svg b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode__inherit__graph.svg
index 2c16dac..6174bb8 100644
--- a/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode__inherit__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1relay_1_1DFPatternCallbackNode__inherit__graph.svg
@@ -4,18 +4,19 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: tvm::relay::DFPatternCallbackNode Pages: 1 -->
-<svg width="212pt" height="193pt"
- viewBox="0.00 0.00 212.00 193.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 189)">
+<svg width="212pt" height="204pt"
+ viewBox="0.00 0.00 212.00 204.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 200)">
 <title>tvm::relay::DFPatternCallbackNode</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-189 208,-189 208,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-200 208,-200 208,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,-90.5 204,-90.5 204,-0.5 -1.42109e-14,-0.5"/>
-<text text-anchor="middle" x="102" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DFPatternCallbackNode</text>
-<polyline fill="none" stroke="black" points="-1.42109e-14,-71.5 204,-71.5 "/>
-<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pattern_</text>
-<text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ function_</text>
+<polygon fill="#bfbfbf" stroke="black" points="-1.42109e-14,-0.5 -1.42109e-14,-101.5 204,-101.5 204,-0.5 -1.42109e-14,-0.5"/>
+<text text-anchor="middle" x="102" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DFPatternCallbackNode</text>
+<polyline fill="none" stroke="black" points="-1.42109e-14,-82.5 204,-82.5 "/>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pattern</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ function</text>
+<text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ require_type</text>
 <text text-anchor="start" x="8" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
 <polyline fill="none" stroke="black" points="-1.42109e-14,-30.5 204,-30.5 "/>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
@@ -23,17 +24,17 @@
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
-<polygon fill="white" stroke="#bfbfbf" points="78.5,-127.5 78.5,-184.5 125.5,-184.5 125.5,-127.5 78.5,-127.5"/>
-<text text-anchor="middle" x="102" y="-172.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="78.5,-165.5 125.5,-165.5 "/>
-<text text-anchor="middle" x="102" y="-153.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="78.5,-146.5 125.5,-146.5 "/>
-<text text-anchor="middle" x="102" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="78.5,-138.5 78.5,-195.5 125.5,-195.5 125.5,-138.5 78.5,-138.5"/>
+<text text-anchor="middle" x="102" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="78.5,-176.5 125.5,-176.5 "/>
+<text text-anchor="middle" x="102" y="-164.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="78.5,-157.5 125.5,-157.5 "/>
+<text text-anchor="middle" x="102" y="-145.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,-117.214C102,-108.609 102,-99.3943 102,-90.5541"/>
-<polygon fill="none" stroke="midnightblue" points="98.5001,-117.34 102,-127.34 105.5,-117.34 98.5001,-117.34"/>
+<path fill="none" stroke="midnightblue" d="M102,-128.354C102,-119.796 102,-110.578 102,-101.608"/>
+<polygon fill="none" stroke="midnightblue" points="98.5001,-128.404 102,-138.404 105.5,-128.404 98.5001,-128.404"/>
 </g>
 </g>
 </svg>
diff --git a/docs/api/doxygen/classtvm_1_1runtime_1_1TVMRetValue.html b/docs/api/doxygen/classtvm_1_1runtime_1_1TVMRetValue.html
index f288deb..0751dc3 100644
--- a/docs/api/doxygen/classtvm_1_1runtime_1_1TVMRetValue.html
+++ b/docs/api/doxygen/classtvm_1_1runtime_1_1TVMRetValue.html
@@ -175,7 +175,7 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:ae47baae854e2ff66d0ef87178727d8f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html">TVMRetValue</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#ae47baae854e2ff66d0ef87178727d8f4">operator=</a> (<a class="el" href="classtvm_1_1runtime_1_1TVMMovableArgValue__.html">TVMMovableArgValue_</a> &amp;&amp;other)</td></tr>
 <tr class="separator:ae47baae854e2ff66d0ef87178727d8f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a74ea2767d491c57cb9c71e26ee934344"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#a74ea2767d491c57cb9c71e26ee934344">MoveToCHost</a> (<a class="el" href="unionTVMValue.html">TVMValue</a> *ret_value, int *ret_type_code)</td></tr>
-<tr class="memdesc:a74ea2767d491c57cb9c71e26ee934344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move the value back to front-end via C API. This marks the current container as null. The managed resources is moved to front-end and the front end should take charge in managing them.  <a href="#a74ea2767d491c57cb9c71e26ee934344">More...</a><br /></td></tr>
+<tr class="memdesc:a74ea2767d491c57cb9c71e26ee934344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move the value back to front-end via C API. This marks the current container as null. The managed resources are moved to the front-end. The front end should take charge in managing them.  <a href="#a74ea2767d491c57cb9c71e26ee934344">More...</a><br /></td></tr>
 <tr class="separator:a74ea2767d491c57cb9c71e26ee934344"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a75696cb65d294217796fbc4f1c22d7f8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="unionTVMValue.html">TVMValue</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#a75696cb65d294217796fbc4f1c22d7f8">value</a> () const </td></tr>
 <tr class="separator:a75696cb65d294217796fbc4f1c22d7f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -427,7 +427,7 @@ Additional Inherited Members</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Move the value back to front-end via C API. This marks the current container as null. The managed resources is moved to front-end and the front end should take charge in managing them. </p>
+<p>Move the value back to front-end via C API. This marks the current container as null. The managed resources are moved to the front-end. The front end should take charge in managing them. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">ret_value</td><td>The return value. </td></tr>
diff --git a/docs/api/doxygen/classtvm_1_1runtime_1_1vm_1_1VirtualMachine__coll__graph.svg b/docs/api/doxygen/classtvm_1_1runtime_1_1vm_1_1VirtualMachine__coll__graph.svg
index 1ccc8d2..8873277 100644
--- a/docs/api/doxygen/classtvm_1_1runtime_1_1vm_1_1VirtualMachine__coll__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1runtime_1_1vm_1_1VirtualMachine__coll__graph.svg
@@ -262,7 +262,7 @@
 <text text-anchor="start" x="324" y="-549.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ alloc_tensor</text>
 <text text-anchor="start" x="324" y="-538.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ shape_register</text>
 <text text-anchor="start" x="324" y="-527.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ alloc_tensor_reg</text>
-<text text-anchor="start" x="324" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 37 more...</text>
+<text text-anchor="start" x="324" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 39 more...</text>
 <polyline fill="none" stroke="black" points="316,-509.5 472,-509.5 "/>
 <text text-anchor="start" x="324" y="-497.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Instruction()</text>
 <text text-anchor="start" x="324" y="-486.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Instruction()</text>
@@ -278,7 +278,7 @@
 <text text-anchor="start" x="324" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetField()</text>
 <text text-anchor="start" x="324" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTag()</text>
 <text text-anchor="start" x="324" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ If()</text>
-<text text-anchor="start" x="324" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 8 more...</text>
+<text text-anchor="start" x="324" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 9 more...</text>
 </a>
 </g>
 </g>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4-members.html b/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4-members.html
index c13a622..d74d8c8 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4-members.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4-members.html
@@ -131,8 +131,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#a5e6b1012aaef749646823af1ff4946c7">VisitExpr_</a>(const IntImmNode *op, Args...args)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span c [...]
   <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#ac04267908614379aab07b7ecfc47ee4f">VisitExpr_</a>(const FloatImmNode *op, Args...args)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabe [...]
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#a0a6a6f3bbbb7dcdc9afb4e9a38344df0">VisitExpr_</a>(const StringImmNode *op, Args...args)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span><spa [...]
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#abd446c1ab885af47986b4b8c73a1d881">VisitExprDefault_</a>(const Object *op, Args...)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel"> [...]
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#a463951999eb3aa125880d5b6aa1f9191">~ExprFunctor</a>()</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#afb53d75f2afcbf061c1c7baf9fbff77b">VisitExpr_</a>(const AnyNode *op, Args...args)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">vi [...]
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#abd446c1ab885af47986b4b8c73a1d881">VisitExprDefault_</a>(const Object *op, Args...)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span cl [...]
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#a463951999eb3aa125880d5b6aa1f9191">~ExprFunctor</a>()</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html b/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html
index 0bd2ab3..635b158 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html
@@ -189,6 +189,8 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:ac04267908614379aab07b7ecfc47ee4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a0a6a6f3bbbb7dcdc9afb4e9a38344df0"><td class="memItemLeft" align="right" valign="top">virtual R&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#a0a6a6f3bbbb7dcdc9afb4e9a38344df0">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1StringImmNode.html">StringImmNode</a> *op, Args...args)</td></tr>
 <tr class="separator:a0a6a6f3bbbb7dcdc9afb4e9a38344df0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afb53d75f2afcbf061c1c7baf9fbff77b"><td class="memItemLeft" align="right" valign="top">virtual R&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#afb53d75f2afcbf061c1c7baf9fbff77b">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> *op, Args...args)</td></tr>
+<tr class="separator:afb53d75f2afcbf061c1c7baf9fbff77b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abd446c1ab885af47986b4b8c73a1d881"><td class="memItemLeft" align="right" valign="top">virtual R&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#abd446c1ab885af47986b4b8c73a1d881">VisitExprDefault_</a> (const Object *op, Args...)</td></tr>
 <tr class="separator:abd446c1ab885af47986b4b8c73a1d881"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -1554,6 +1556,42 @@ template&lt;typename R , typename... Args&gt; </div>
 
 </div>
 </div>
+<a class="anchor" id="afb53d75f2afcbf061c1c7baf9fbff77b"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename R , typename... Args&gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual R <a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html">tvm::tir::ExprFunctor</a>&lt; R(const <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> &amp;n, Args...)&gt;::VisitExpr_ </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> *&#160;</td>
+          <td class="paramname"><em>op</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">Args...&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
 <a class="anchor" id="abd446c1ab885af47986b4b8c73a1d881"></a>
 <div class="memitem">
 <div class="memproto">
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4__coll__graph.svg b/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4__coll__graph.svg
index 1fb43a8..75b7d88 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4__coll__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4__coll__graph.svg
@@ -28,7 +28,7 @@
 <text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitExpr_()</text>
 <text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitExpr_()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitExpr_()</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 28 more...</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 29 more...</text>
 </g>
 </g>
 </svg>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator-members.html b/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator-members.html
index 3fe7828..9d83680 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator-members.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator-members.html
@@ -128,6 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#a46b43325d9ad8cfe09818ba1dda4b46f">VisitExpr_</a>(const IntImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">tvm::tir::ExprMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#aa0156d62a4bf1cf57ffab381125bfd6b">VisitExpr_</a>(const FloatImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">tvm::tir::ExprMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#abe827bb16d1930225186627791cea131">VisitExpr_</a>(const StringImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">tvm::tir::ExprMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#afa46554fba071aae744164711b6112ae">VisitExpr_</a>(const AnyNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">tvm::tir::ExprMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator.html b/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator.html
index 0163851..2f345b6 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator.html
@@ -182,6 +182,8 @@ Protected Member Functions</h2></td></tr>
 <tr class="separator:aa0156d62a4bf1cf57ffab381125bfd6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abe827bb16d1930225186627791cea131"><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_1tir_1_1ExprMutator.html#abe827bb16d1930225186627791cea131">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1StringImmNode.html">StringImmNode</a> *op) override</td></tr>
 <tr class="separator:abe827bb16d1930225186627791cea131"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa46554fba071aae744164711b6112ae"><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_1tir_1_1ExprMutator.html#afa46554fba071aae744164711b6112ae">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> *op) override</td></tr>
+<tr class="separator:afa46554fba071aae744164711b6112ae"><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><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html" title="ExprMutator that mutates expressions. ">ExprMutator</a> that mutates expressions. </p>
@@ -1002,6 +1004,30 @@ Protected Member Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="afa46554fba071aae744164711b6112ae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> tvm::tir::ExprMutator::VisitExpr_ </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> *&#160;</td>
+          <td class="paramname"><em>op</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span></span>  </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/tir/<a class="el" href="tir_2expr__functor_8h_source.html">expr_functor.h</a></li>
 </ul>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator__coll__graph.svg b/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator__coll__graph.svg
index 78edad1..fa7454f 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator__coll__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator__coll__graph.svg
@@ -26,7 +26,7 @@
 <text text-anchor="start" x="35" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="35" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="35" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
-<text text-anchor="start" x="35" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
+<text text-anchor="start" x="35" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator__inherit__graph.svg b/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator__inherit__graph.svg
index d735036..c274585 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator__inherit__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprMutator__inherit__graph.svg
@@ -26,7 +26,7 @@
 <text text-anchor="start" x="35" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="35" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="35" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
-<text text-anchor="start" x="35" y="-101.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
+<text text-anchor="start" x="35" y="-101.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor-members.html b/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor-members.html
index d76262f..21efcdc 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor-members.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor-members.html
@@ -128,6 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a375334641aa93fdc9354a0e0dc636284">VisitExpr_</a>(const IntImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">tvm::tir::ExprVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a8f990531a61731bc5465577f5c6571d5">VisitExpr_</a>(const FloatImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">tvm::tir::ExprVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a5ea877b24afb7654fe457c13bcee9620">VisitExpr_</a>(const StringImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">tvm::tir::ExprVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a7d7bd095902563e3e4c239bf322fe325">VisitExpr_</a>(const AnyNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">tvm::tir::ExprVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor.html b/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor.html
index 0cd087d..ee9f3ad 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor.html
@@ -182,6 +182,8 @@ Protected Member Functions</h2></td></tr>
 <tr class="separator:a8f990531a61731bc5465577f5c6571d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5ea877b24afb7654fe457c13bcee9620"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a5ea877b24afb7654fe457c13bcee9620">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1StringImmNode.html">StringImmNode</a> *op) override</td></tr>
 <tr class="separator:a5ea877b24afb7654fe457c13bcee9620"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d7bd095902563e3e4c239bf322fe325"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a7d7bd095902563e3e4c239bf322fe325">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> *op) override</td></tr>
+<tr class="separator:a7d7bd095902563e3e4c239bf322fe325"><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><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html" title="ExprVisitor. ">ExprVisitor</a>. </p>
@@ -1002,6 +1004,30 @@ Protected Member Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a7d7bd095902563e3e4c239bf322fe325"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void tvm::tir::ExprVisitor::VisitExpr_ </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> *&#160;</td>
+          <td class="paramname"><em>op</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span></span>  </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/tir/<a class="el" href="tir_2expr__functor_8h_source.html">expr_functor.h</a></li>
 </ul>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor__coll__graph.svg b/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor__coll__graph.svg
index 6084f0f..7d69a5b 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor__coll__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor__coll__graph.svg
@@ -26,7 +26,7 @@
 <text text-anchor="start" x="27" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="27" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="27" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
-<text text-anchor="start" x="27" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
+<text text-anchor="start" x="27" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor__inherit__graph.svg b/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor__inherit__graph.svg
index f2ac269..58a1e38 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor__inherit__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1ExprVisitor__inherit__graph.svg
@@ -26,7 +26,7 @@
 <text text-anchor="start" x="27" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="27" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="27" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
-<text text-anchor="start" x="27" y="-101.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
+<text text-anchor="start" x="27" y="-101.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator-members.html b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator-members.html
index bd39cbc..c509ebe 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator-members.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator-members.html
@@ -132,22 +132,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#a46b43325d9ad8cfe09818ba1dda4b46f">VisitExpr_</a>(const IntImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">tvm::tir::ExprMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#aa0156d62a4bf1cf57ffab381125bfd6b">VisitExpr_</a>(const FloatImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">tvm::tir::ExprMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#abe827bb16d1930225186627791cea131">VisitExpr_</a>(const StringImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">tvm::tir::ExprMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a1e24adea3e49d9381246b376349db51f">VisitSeqStmt_</a>(const SeqStmtNode *op, bool flatten_before_visit, std::function&lt; Stmt(const Stmt &amp;)&gt; fmutate=nullptr)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a4306d1beba05fa1ac582503498a6d7ce">VisitStmt</a>(const Stmt &amp;stmt) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#ac22f8d85fc78d756b8e11e53eb1bf2df">VisitStmt_</a>(const AttrStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a7bc8fad1381862ce012819bd4762a1b6">VisitStmt_</a>(const IfThenElseNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a51d66e88ec3779c117bab5ba9406091c">VisitStmt_</a>(const LetStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#afad3009a7d05a345ca868a980f58b9ca">VisitStmt_</a>(const ForNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#ab094e88d4bda5882756d136c15db6260">VisitStmt_</a>(const AllocateNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a3b116212aaf79bc898f3446a35f7fd3e">VisitStmt_</a>(const StoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#abea492fd2fee9442cc1995f46ef7fd60">VisitStmt_</a>(const BufferStoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#aaf5a2292da207073d637cc4d1a0704ce">VisitStmt_</a>(const BufferRealizeNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#aa3a94c8b418881f10d855592b847c2e7">VisitStmt_</a>(const AssertStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#ac08e5c1f548566668b547e7107b99adb">VisitStmt_</a>(const ProducerStoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#afda082108ac22091230cb937086e7a58">VisitStmt_</a>(const ProducerRealizeNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#aecd16bf1a6715ea36f6c30e5dc2ceae7">VisitStmt_</a>(const PrefetchNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a60b18d6d6bfcb692ab4a369465a175a3">VisitStmt_</a>(const SeqStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a2ec423a8f109916abf02ac463308f58a">VisitStmt_</a>(const EvaluateNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#afa46554fba071aae744164711b6112ae">VisitExpr_</a>(const AnyNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">tvm::tir::ExprMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a1e24adea3e49d9381246b376349db51f">VisitSeqStmt_</a>(const SeqStmtNode *op, bool flatten_before_visit, std::function&lt; Stmt(const Stmt &amp;)&gt; fmutate=nullptr)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a4306d1beba05fa1ac582503498a6d7ce">VisitStmt</a>(const Stmt &amp;stmt) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#ac22f8d85fc78d756b8e11e53eb1bf2df">VisitStmt_</a>(const AttrStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a7bc8fad1381862ce012819bd4762a1b6">VisitStmt_</a>(const IfThenElseNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a51d66e88ec3779c117bab5ba9406091c">VisitStmt_</a>(const LetStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#afad3009a7d05a345ca868a980f58b9ca">VisitStmt_</a>(const ForNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#ab094e88d4bda5882756d136c15db6260">VisitStmt_</a>(const AllocateNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a3b116212aaf79bc898f3446a35f7fd3e">VisitStmt_</a>(const StoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#abea492fd2fee9442cc1995f46ef7fd60">VisitStmt_</a>(const BufferStoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#aaf5a2292da207073d637cc4d1a0704ce">VisitStmt_</a>(const BufferRealizeNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#aa3a94c8b418881f10d855592b847c2e7">VisitStmt_</a>(const AssertStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#ac08e5c1f548566668b547e7107b99adb">VisitStmt_</a>(const ProducerStoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#afda082108ac22091230cb937086e7a58">VisitStmt_</a>(const ProducerRealizeNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#aecd16bf1a6715ea36f6c30e5dc2ceae7">VisitStmt_</a>(const PrefetchNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a60b18d6d6bfcb692ab4a369465a175a3">VisitStmt_</a>(const SeqStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a2ec423a8f109916abf02ac463308f58a">VisitStmt_</a>(const EvaluateNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html">tvm::tir::StmtMutator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator.html b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator.html
index 6e4c092..fe76d9d 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator.html
@@ -225,6 +225,8 @@ Protected Member Functions</h2></td></tr>
 <tr class="separator:aa0156d62a4bf1cf57ffab381125bfd6b inherit pro_methods_classtvm_1_1tir_1_1ExprMutator"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abe827bb16d1930225186627791cea131 inherit pro_methods_classtvm_1_1tir_1_1ExprMutator"><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_1tir_1_1ExprMutator.html#abe827bb16d1930225186627791cea131">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1StringImmNode.html">StringImmNode</a> *op) override</td></tr>
 <tr class="separator:abe827bb16d1930225186627791cea131 inherit pro_methods_classtvm_1_1tir_1_1ExprMutator"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa46554fba071aae744164711b6112ae inherit pro_methods_classtvm_1_1tir_1_1ExprMutator"><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_1tir_1_1ExprMutator.html#afa46554fba071aae744164711b6112ae">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> *op) override</td></tr>
+<tr class="separator:afa46554fba071aae744164711b6112ae inherit pro_methods_classtvm_1_1tir_1_1ExprMutator"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator__coll__graph.svg b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator__coll__graph.svg
index 2c4ed4f..065ed4f 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator__coll__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator__coll__graph.svg
@@ -82,7 +82,7 @@
 <text text-anchor="start" x="178" y="-140" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="178" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="178" y="-118" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
-<text text-anchor="start" x="178" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
+<text text-anchor="start" x="178" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
 </a>
 </g>
 </g>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator__inherit__graph.svg b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator__inherit__graph.svg
index 2c4ed4f..065ed4f 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator__inherit__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprMutator__inherit__graph.svg
@@ -82,7 +82,7 @@
 <text text-anchor="start" x="178" y="-140" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="178" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="178" y="-118" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
-<text text-anchor="start" x="178" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
+<text text-anchor="start" x="178" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
 </a>
 </g>
 </g>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor-members.html b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor-members.html
index aa3be08..6bbc856 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor-members.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor-members.html
@@ -129,20 +129,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a375334641aa93fdc9354a0e0dc636284">VisitExpr_</a>(const IntImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">tvm::tir::ExprVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a8f990531a61731bc5465577f5c6571d5">VisitExpr_</a>(const FloatImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">tvm::tir::ExprVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a5ea877b24afb7654fe457c13bcee9620">VisitExpr_</a>(const StringImmNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">tvm::tir::ExprVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a0e6ca99ff599eea59b322df49b1c3449">VisitStmt_</a>(const AttrStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a38488c0f8137e12bc195fa2e0a0524c9">VisitStmt_</a>(const IfThenElseNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#ad3334020eaa0a0fa20bb131020a1e09d">VisitStmt_</a>(const LetStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a973300325d22158d8d7096ddc862b13e">VisitStmt_</a>(const ForNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a8e8cdf15d6e250ae57ae1777048e99f8">VisitStmt_</a>(const AllocateNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#afcb1a0ec03b7a7da4304c5b790b27210">VisitStmt_</a>(const StoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#aff23e46f636a2e874f931ad3e10d4eb7">VisitStmt_</a>(const BufferStoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#ae842e15f24937f456d0e42aeb53965df">VisitStmt_</a>(const BufferRealizeNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a6cca1dd5ab6329207cecb8b94c63f8c2">VisitStmt_</a>(const AssertStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a4794fa6c9c4f893ad68d5930b1334c97">VisitStmt_</a>(const ProducerStoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a800d9d3f4b755236e122f0fbf30115df">VisitStmt_</a>(const ProducerRealizeNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a7ba134d441fad67448a9a073cb8b6e09">VisitStmt_</a>(const PrefetchNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a9f7515a82ddc4a41247a1622563feed6">VisitStmt_</a>(const SeqStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#ab5e45d72c09d603c8aa7960262278ab0">VisitStmt_</a>(const EvaluateNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a7d7bd095902563e3e4c239bf322fe325">VisitExpr_</a>(const AnyNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">tvm::tir::ExprVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a0e6ca99ff599eea59b322df49b1c3449">VisitStmt_</a>(const AttrStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a38488c0f8137e12bc195fa2e0a0524c9">VisitStmt_</a>(const IfThenElseNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#ad3334020eaa0a0fa20bb131020a1e09d">VisitStmt_</a>(const LetStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a973300325d22158d8d7096ddc862b13e">VisitStmt_</a>(const ForNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a8e8cdf15d6e250ae57ae1777048e99f8">VisitStmt_</a>(const AllocateNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#afcb1a0ec03b7a7da4304c5b790b27210">VisitStmt_</a>(const StoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#aff23e46f636a2e874f931ad3e10d4eb7">VisitStmt_</a>(const BufferStoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#ae842e15f24937f456d0e42aeb53965df">VisitStmt_</a>(const BufferRealizeNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a6cca1dd5ab6329207cecb8b94c63f8c2">VisitStmt_</a>(const AssertStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a4794fa6c9c4f893ad68d5930b1334c97">VisitStmt_</a>(const ProducerStoreNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a800d9d3f4b755236e122f0fbf30115df">VisitStmt_</a>(const ProducerRealizeNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a7ba134d441fad67448a9a073cb8b6e09">VisitStmt_</a>(const PrefetchNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a9f7515a82ddc4a41247a1622563feed6">VisitStmt_</a>(const SeqStmtNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#ab5e45d72c09d603c8aa7960262278ab0">VisitStmt_</a>(const EvaluateNode *op) override</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor.html b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor.html
index e437643..9e545ca 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor.html
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor.html
@@ -215,6 +215,8 @@ Protected Member Functions</h2></td></tr>
 <tr class="separator:a8f990531a61731bc5465577f5c6571d5 inherit pro_methods_classtvm_1_1tir_1_1ExprVisitor"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5ea877b24afb7654fe457c13bcee9620 inherit pro_methods_classtvm_1_1tir_1_1ExprVisitor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a5ea877b24afb7654fe457c13bcee9620">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1StringImmNode.html">StringImmNode</a> *op) override</td></tr>
 <tr class="separator:a5ea877b24afb7654fe457c13bcee9620 inherit pro_methods_classtvm_1_1tir_1_1ExprVisitor"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d7bd095902563e3e4c239bf322fe325 inherit pro_methods_classtvm_1_1tir_1_1ExprVisitor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a7d7bd095902563e3e4c239bf322fe325">VisitExpr_</a> (const <a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> *op) override</td></tr>
+<tr class="separator:a7d7bd095902563e3e4c239bf322fe325 inherit pro_methods_classtvm_1_1tir_1_1ExprVisitor"><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>Visitor that recursively visit stmts and exprs on them. </p>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor__coll__graph.svg b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor__coll__graph.svg
index 04d29df..2e3c1ee 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor__coll__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor__coll__graph.svg
@@ -85,7 +85,7 @@
 <text text-anchor="start" x="166" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="166" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="166" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
-<text text-anchor="start" x="166" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
+<text text-anchor="start" x="166" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
 </a>
 </g>
 </g>
diff --git a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor__inherit__graph.svg b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor__inherit__graph.svg
index 04d29df..2e3c1ee 100644
--- a/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor__inherit__graph.svg
+++ b/docs/api/doxygen/classtvm_1_1tir_1_1StmtExprVisitor__inherit__graph.svg
@@ -85,7 +85,7 @@
 <text text-anchor="start" x="166" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="166" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
 <text text-anchor="start" x="166" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00"># VisitExpr_()</text>
-<text text-anchor="start" x="166" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
+<text text-anchor="start" x="166" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
 </a>
 </g>
 </g>
diff --git a/docs/api/doxygen/dataflow__matcher_8h.html b/docs/api/doxygen/dataflow__matcher_8h.html
index 06ef26e..de5ec1d 100644
--- a/docs/api/doxygen/dataflow__matcher_8h.html
+++ b/docs/api/doxygen/dataflow__matcher_8h.html
@@ -132,9 +132,9 @@ Functions</h2></td></tr>
 <tr class="memitem:a8e5c12794d464d6e4543b9e5c68d8707"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1relay.html#a8e5c12794d464d6e4543b9e5c68d8707">tvm::relay::MatchPattern</a> (DFPattern pattern, Expr expr)</td></tr>
 <tr class="memdesc:a8e5c12794d464d6e4543b9e5c68d8707"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if a pattern matches an expression.  <a href="namespacetvm_1_1relay.html#a8e5c12794d464d6e4543b9e5c68d8707">More...</a><br /></td></tr>
 <tr class="separator:a8e5c12794d464d6e4543b9e5c68d8707"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0698ebc074ea1837227bcbc3ecec620a"><td class="memItemLeft" align="right" valign="top">Expr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1relay.html#a0698ebc074ea1837227bcbc3ecec620a">tvm::relay::RewritePatterns</a> (Array&lt; DFPatternCallback &gt; callbacks, Expr expr)</td></tr>
-<tr class="memdesc:a0698ebc074ea1837227bcbc3ecec620a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewrite an expression based on some number of DFPatternCallbacks.  <a href="namespacetvm_1_1relay.html#a0698ebc074ea1837227bcbc3ecec620a">More...</a><br /></td></tr>
-<tr class="separator:a0698ebc074ea1837227bcbc3ecec620a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9fd478e0f590938f8eb15e1bc45dbec"><td class="memItemLeft" align="right" valign="top">Expr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1relay.html#ad9fd478e0f590938f8eb15e1bc45dbec">tvm::relay::RewritePatterns</a> (Array&lt; DFPatternCallback &gt; callbacks, Expr expr, IRModule mod=IRModule())</td></tr>
+<tr class="memdesc:ad9fd478e0f590938f8eb15e1bc45dbec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewrite an expression based on some number of DFPatternCallbacks.  <a href="namespacetvm_1_1relay.html#ad9fd478e0f590938f8eb15e1bc45dbec">More...</a><br /></td></tr>
+<tr class="separator:ad9fd478e0f590938f8eb15e1bc45dbec"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a48108863604dc310eb3184b13b42a92a"><td class="memItemLeft" align="right" valign="top">Expr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1relay.html#a48108863604dc310eb3184b13b42a92a">tvm::relay::PartitionPattern</a> (DFPattern pattern, Expr expr, Map&lt; String, ObjectRef &gt; attrs, PackedFunc check)</td></tr>
 <tr class="memdesc:a48108863604dc310eb3184b13b42a92a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Partition all matches of a <a class="el" href="classtvm_1_1relay_1_1DFPattern.html" title="Managed reference to dataflow patterns. ">DFPattern</a> inside an Expr into separate <a class="el" href="classtvm_1_1relay_1_1Function.html" title="Managed reference to FunctionNode. ">Function</a> calls.  <a href="namespacetvm_1_1relay.html#a48108863604dc310eb3184b13b42a92a">More...</a><br [...]
 <tr class="separator:a48108863604dc310eb3184b13b42a92a"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/docs/api/doxygen/dataflow__matcher_8h_source.html b/docs/api/doxygen/dataflow__matcher_8h_source.html
index abe60ea..7348de6 100644
--- a/docs/api/doxygen/dataflow__matcher_8h_source.html
+++ b/docs/api/doxygen/dataflow__matcher_8h_source.html
@@ -89,24 +89,26 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">dataflow_matcher.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="dataflow__matcher_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"> * o [...]
+<a href="dataflow__matcher_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"> * o [...]
+<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallbackNode_html_a0b09756dcd17877284e01d1a90a31d00"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a0b09756dcd17877284e01d1a90a31d00">tvm::relay::DFPatternCallbackNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(DFPatternCallbackNode, Object)</div></div>
 <div class="ttc" id="namespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdef"><b>Definition:</b> analyzer.h:36</div></div>
-<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallbackNode_html_aedf26eb9299c184982f11bebdaca816f"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#aedf26eb9299c184982f11bebdaca816f">tvm::relay::DFPatternCallbackNode::pattern_</a></div><div class="ttdeci">DFPattern pattern_</div><div class="ttdoc">Pattern this callback matches. </div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:45</div></div>
-<div class="ttc" id="namespacetvm_1_1relay_html_a0698ebc074ea1837227bcbc3ecec620a"><div class="ttname"><a href="namespacetvm_1_1relay.html#a0698ebc074ea1837227bcbc3ecec620a">tvm::relay::RewritePatterns</a></div><div class="ttdeci">Expr RewritePatterns(Array&lt; DFPatternCallback &gt; callbacks, Expr expr)</div><div class="ttdoc">Rewrite an expression based on some number of DFPatternCallbacks. </div></div>
 <div class="ttc" id="classtvm_1_1AttrVisitor_html"><div class="ttname"><a href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a></div><div class="ttdoc">Visitor class for to get the attributesof a AST/IR node. The content is going to be called for each f...</div><div class="ttdef"><b>Definition:</b> reflection.h:52</div></div>
-<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallbackNode_html_ad0196f5291f35ce7077118795681f442"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#ad0196f5291f35ce7077118795681f442">tvm::relay::DFPatternCallbackNode::function_</a></div><div class="ttdeci">PackedFunc function_</div><div class="ttdoc">Function to call when finding a matched expression. </div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:47</div></div>
 <div class="ttc" id="namespacetvm_1_1relay_html_a48108863604dc310eb3184b13b42a92a"><div class="ttname"><a href="namespacetvm_1_1relay.html#a48108863604dc310eb3184b13b42a92a">tvm::relay::PartitionPattern</a></div><div class="ttdeci">Expr PartitionPattern(DFPattern pattern, Expr expr, Map&lt; String, ObjectRef &gt; attrs, PackedFunc check)</div><div class="ttdoc">Partition all matches of a DFPattern inside an Expr into separate Function calls. ...</div></div>
-<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallbackNode_html_a9e5a819e8e816bbacc0e9be93a169ebf"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a9e5a819e8e816bbacc0e9be93a169ebf">tvm::relay::DFPatternCallbackNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:51</div></div>
+<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallbackNode_html_a9e5a819e8e816bbacc0e9be93a169ebf"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a9e5a819e8e816bbacc0e9be93a169ebf">tvm::relay::DFPatternCallbackNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:56</div></div>
 <div class="ttc" id="classtvm_1_1RelayExpr_html"><div class="ttname"><a href="classtvm_1_1RelayExpr.html">tvm::RelayExpr</a></div><div class="ttdoc">Managed reference to RelayExprNode. </div><div class="ttdef"><b>Definition:</b> expr.h:176</div></div>
 <div class="ttc" id="object_8h_html_ac6e7295a4999e2c8e4a2c990beca887a"><div class="ttname"><a href="object_8h.html#ac6e7295a4999e2c8e4a2c990beca887a">TVM_DEFINE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:701</div></div>
 <div class="ttc" id="classtvm_1_1relay_1_1DFPattern_html"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPattern.html">tvm::relay::DFPattern</a></div><div class="ttdoc">Managed reference to dataflow patterns. </div><div class="ttdef"><b>Definition:</b> dataflow_pattern.h:47</div></div>
+<div class="ttc" id="namespacetopi_html_ab32a7a76e3a94a1edba52436a1337cb6"><div class="ttname"><a href="namespacetopi.html#ab32a7a76e3a94a1edba52436a1337cb6">topi::mod</a></div><div class="ttdeci">tvm::PrimExpr mod(const tvm::PrimExpr &amp;a, const tvm::PrimExpr &amp;b)</div><div class="ttdef"><b>Definition:</b> broadcast.h:265</div></div>
+<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallbackNode_html_acfe3e9170d4c05ff59f3056b79ae58bb"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#acfe3e9170d4c05ff59f3056b79ae58bb">tvm::relay::DFPatternCallbackNode::pattern</a></div><div class="ttdeci">DFPattern pattern</div><div class="ttdoc">Pattern this callback matches. </div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:45</div></div>
 <div class="ttc" id="dataflow__pattern_8h_html"><div class="ttname"><a href="dataflow__pattern_8h.html">dataflow_pattern.h</a></div><div class="ttdoc">A pattern language for matching dataflow properties. </div></div>
+<div class="ttc" id="classtvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode. </div><div class="ttdef"><b>Definition:</b> module.h:276</div></div>
 <div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallbackNode_html"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">tvm::relay::DFPatternCallbackNode</a></div><div class="ttdoc">Base type of all dataflow pattern callbacks. </div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:42</div></div>
 <div class="ttc" id="dataflow__pattern__functor_8h_html"><div class="ttname"><a href="dataflow__pattern__functor_8h.html">dataflow_pattern_functor.h</a></div><div class="ttdoc">A set of passes for operating on pattern graphs. </div></div>
 <div class="ttc" id="classtvm_1_1Map_html"><div class="ttname"><a href="classtvm_1_1Map.html">tvm::Map</a></div><div class="ttdoc">Map container of NodeRef-&gt;NodeRef in DSL graph. Map implements copy on write semantics, which means map is mutable but copy will happen when array is referenced in more than two places. </div><div class="ttdef"><b>Definition:</b> container.h:1253</div></div>
 <div class="ttc" id="namespacetvm_1_1relay_html_a8e5c12794d464d6e4543b9e5c68d8707"><div class="ttname"><a href="namespacetvm_1_1relay.html#a8e5c12794d464d6e4543b9e5c68d8707">tvm::relay::MatchPattern</a></div><div class="ttdeci">bool MatchPattern(DFPattern pattern, Expr expr)</div><div class="ttdoc">Determine if a pattern matches an expression. </div></div>
-<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallback_html"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallback.html">tvm::relay::DFPatternCallback</a></div><div class="ttdoc">Managed reference to dataflow pattern callbacks. </div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:59</div></div>
-<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallbackNode_html_a35df47f5731f147a289cdb59392600c5"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a35df47f5731f147a289cdb59392600c5">tvm::relay::DFPatternCallbackNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(tvm::AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:49</div></div>
+<div class="ttc" id="namespacetvm_1_1relay_html_ad9fd478e0f590938f8eb15e1bc45dbec"><div class="ttname"><a href="namespacetvm_1_1relay.html#ad9fd478e0f590938f8eb15e1bc45dbec">tvm::relay::RewritePatterns</a></div><div class="ttdeci">Expr RewritePatterns(Array&lt; DFPatternCallback &gt; callbacks, Expr expr, IRModule mod=IRModule())</div><div class="ttdoc">Rewrite an expression based on some number of DFPatternCallbacks. </div></div>
+<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallback_html"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallback.html">tvm::relay::DFPatternCallback</a></div><div class="ttdoc">Managed reference to dataflow pattern callbacks. </div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:64</div></div>
+<div class="ttc" id="classtvm_1_1relay_1_1DFPatternCallbackNode_html_a35df47f5731f147a289cdb59392600c5"><div class="ttname"><a href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a35df47f5731f147a289cdb59392600c5">tvm::relay::DFPatternCallbackNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(tvm::AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> dataflow_matcher.h:51</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/detail_2broadcast_8h_source.html b/docs/api/doxygen/detail_2broadcast_8h_source.html
index b64daa9..1b3b0f0 100644
--- a/docs/api/doxygen/detail_2broadcast_8h_source.html
+++ b/docs/api/doxygen/detail_2broadcast_8h_source.html
@@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="namespacetvm_html_ab49bad0808ba033343e72ba37b39af2e"><div class="ttname"><a href="namespacetvm.html#ab49bad0808ba033343e72ba37b39af2e">tvm::max</a></div><div class="ttdeci">PrimExpr max(PrimExpr a, PrimExpr b)</div><div class="ttdoc">take maximum of two values </div></div>
 <div class="ttc" id="classtvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result. </div><div class="ttdef"><b>Definition:</b> tensor.h:103</div></div>
 <div class="ttc" id="operation_8h_html"><div class="ttname"><a href="operation_8h.html">operation.h</a></div><div class="ttdoc">Operation node can generate one or multiple Tensors. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_html_adc4408508a413fb7f3b2567f8d847dbb"><div class="ttname"><a href="namespacetvm_1_1tir.html#adc4408508a413fb7f3b2567f8d847dbb">tvm::tir::make_zero</a></div><div class="ttdeci">PrimExpr make_zero(DataType t)</div><div class="ttdoc">Make a const zero expr. </div><div class="ttdef"><b>Definition:</b> op.h:807</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_html_adc4408508a413fb7f3b2567f8d847dbb"><div class="ttname"><a href="namespacetvm_1_1tir.html#adc4408508a413fb7f3b2567f8d847dbb">tvm::tir::make_zero</a></div><div class="ttdeci">PrimExpr make_zero(DataType t)</div><div class="ttdoc">Make a const zero expr. </div><div class="ttdef"><b>Definition:</b> op.h:828</div></div>
 <div class="ttc" id="namespacetvm_1_1te_html_afe4f57aeb3dd5ae9c0b58135e14d67ca"><div class="ttname"><a href="namespacetvm_1_1te.html#afe4f57aeb3dd5ae9c0b58135e14d67ca">tvm::te::compute</a></div><div class="ttdeci">Tensor compute(Array&lt; PrimExpr &gt; shape, FCompute fcompute, std::string name=&quot;tensor&quot;, std::string tag=&quot;&quot;, Map&lt; String, ObjectRef &gt; attrs={})</div><div class="ttdoc">Construct a new tensor by computing over shape, using the computation rule: resul [...]
 <div class="ttc" id="classtvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode. </div><div class="ttdef"><b>Definition:</b> expr.h:103</div></div>
 <div class="ttc" id="namespacetopi_html_a0683dcc462033f8daf87f939b05f250d"><div class="ttname"><a href="namespacetopi.html#a0683dcc462033f8daf87f939b05f250d">topi::max</a></div><div class="ttdeci">Tensor max(const Tensor &amp;data, const Array&lt; Integer &gt; &amp;axis, bool keepdims=false, bool atleast1d=false)</div><div class="ttdoc">Creates an operation that finds the maximum of elements over a given axis. </div><div class="ttdef"><b>Definition:</b> reduction.h:421</div></div>
diff --git a/docs/api/doxygen/detail_2extern_8h_source.html b/docs/api/doxygen/detail_2extern_8h_source.html
index 101d5e6..c580ab4 100644
--- a/docs/api/doxygen/detail_2extern_8h_source.html
+++ b/docs/api/doxygen/detail_2extern_8h_source.html
@@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a2c13c6e4b2f92e17f357665f9f11736c"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a2c13c6e4b2f92e17f357665f9f11736c">tvm::tir::builtin::tvm_call_packed</a></div><div class="ttdeci">const Op &amp; tvm_call_packed()</div><div class="ttdoc">See pesudo code. </div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1DataType_html_aebad9f7235dd20af649fb5c2113797b8"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#aebad9f7235dd20af649fb5c2113797b8">tvm::runtime::DataType::Handle</a></div><div class="ttdeci">static DataType Handle(int bits=64, int lanes=1)</div><div class="ttdoc">Construct a handle type. </div><div class="ttdef"><b>Definition:</b> data_type.h:181</div></div>
 <div class="ttc" id="namespacetvm_1_1tir_1_1builtin_html_a28f99e6dd767482765b854ee9fc71f2c"><div class="ttname"><a href="namespacetvm_1_1tir_1_1builtin.html#a28f99e6dd767482765b854ee9fc71f2c">tvm::tir::builtin::tvm_stack_make_array</a></div><div class="ttdeci">const Op &amp; tvm_stack_make_array()</div><div class="ttdoc">Allocate a NDArray(DLTensor) on stack, return the handle. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_html_a4ea566597880d04bd62fbec687e338b5"><div class="ttname"><a href="namespacetvm_1_1tir.html#a4ea566597880d04bd62fbec687e338b5">tvm::tir::make_const</a></div><div class="ttdeci">PrimExpr make_const(DataType t, ValueType value)</div><div class="ttdoc">Make a const value with certain data type. </div><div class="ttdef"><b>Definition:</b> op.h:799</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_html_a4ea566597880d04bd62fbec687e338b5"><div class="ttname"><a href="namespacetvm_1_1tir.html#a4ea566597880d04bd62fbec687e338b5">tvm::tir::make_const</a></div><div class="ttdeci">PrimExpr make_const(DataType t, ValueType value)</div><div class="ttdoc">Make a const value with certain data type. </div><div class="ttdef"><b>Definition:</b> op.h:820</div></div>
 <div class="ttc" id="classtvm_1_1te_1_1ExternOp_html"><div class="ttname"><a href="classtvm_1_1te_1_1ExternOp.html">tvm::te::ExternOp</a></div><div class="ttdoc">Managed reference to ExternOpNode. </div><div class="ttdef"><b>Definition:</b> operation.h:458</div></div>
 <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_1te_html_ae0c71f84710b436cbe0b32289d0838f4"><div class="ttname"><a href="namespacetvm_1_1te.html#ae0c71f84710b436cbe0b32289d0838f4">tvm::te::var</a></div><div class="ttdeci">Var var(std::string name_hint, DataType t=DataType::Int(32))</div><div class="ttdoc">Construct a new Var expression. </div></div>
diff --git a/docs/api/doxygen/dilate_8h_source.html b/docs/api/doxygen/dilate_8h_source.html
index 20ca42f..5ea4b8c 100644
--- a/docs/api/doxygen/dilate_8h_source.html
+++ b/docs/api/doxygen/dilate_8h_source.html
@@ -96,7 +96,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="classtvm_1_1arith_1_1Analyzer_html_a9b440f852f12ad0a4d8ed5ed97054425"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a9b440f852f12ad0a4d8ed5ed97054425">tvm::arith::Analyzer::Simplify</a></div><div class="ttdeci">PrimExpr Simplify(const PrimExpr &amp;expr, int steps=2)</div><div class="ttdoc">Simplify expr. </div></div>
 <div class="ttc" id="namespacetopi_html"><div class="ttname"><a href="namespacetopi.html">topi</a></div><div class="ttdef"><b>Definition:</b> broadcast.h:34</div></div>
 <div class="ttc" id="namespacetvm_html_a8203d70a5ebf3532370264b000d0d276"><div class="ttname"><a href="namespacetvm.html#a8203d70a5ebf3532370264b000d0d276">tvm::indexdiv</a></div><div class="ttdeci">PrimExpr indexdiv(PrimExpr a, PrimExpr b)</div><div class="ttdoc">compute floor(a / b) where a and b are non-negative. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_html_a4ea566597880d04bd62fbec687e338b5"><div class="ttname"><a href="namespacetvm_1_1tir.html#a4ea566597880d04bd62fbec687e338b5">tvm::tir::make_const</a></div><div class="ttdeci">PrimExpr make_const(DataType t, ValueType value)</div><div class="ttdoc">Make a const value with certain data type. </div><div class="ttdef"><b>Definition:</b> op.h:799</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_html_a4ea566597880d04bd62fbec687e338b5"><div class="ttname"><a href="namespacetvm_1_1tir.html#a4ea566597880d04bd62fbec687e338b5">tvm::tir::make_const</a></div><div class="ttdeci">PrimExpr make_const(DataType t, ValueType value)</div><div class="ttdoc">Make a const value with certain data type. </div><div class="ttdef"><b>Definition:</b> op.h:820</div></div>
 <div class="ttc" id="classtvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result. </div><div class="ttdef"><b>Definition:</b> tensor.h:103</div></div>
 <div class="ttc" id="operation_8h_html"><div class="ttname"><a href="operation_8h.html">operation.h</a></div><div class="ttdoc">Operation node can generate one or multiple Tensors. </div></div>
 <div class="ttc" id="namespacetopi_html_a60f05ec416e4618d25ad00dd9f536934"><div class="ttname"><a href="namespacetopi.html#a60f05ec416e4618d25ad00dd9f536934">topi::kInjective</a></div><div class="ttdeci">constexpr auto kInjective</div><div class="ttdef"><b>Definition:</b> tags.h:32</div></div>
diff --git a/docs/api/doxygen/elemwise_8h_source.html b/docs/api/doxygen/elemwise_8h_source.html
index 731a584..a5a7a9e 100644
--- a/docs/api/doxygen/elemwise_8h_source.html
+++ b/docs/api/doxygen/elemwise_8h_source.html
@@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="classtvm_1_1runtime_1_1Array_html_a4e5ab4d7847d3ed41814e049dc13bc18"><div class="ttname"><a href="classtvm_1_1runtime_1_1Array.html#a4e5ab4d7847d3ed41814e049dc13bc18">tvm::runtime::Array::size</a></div><div class="ttdeci">size_t size() const </div><div class="ttdef"><b>Definition:</b> container.h:685</div></div>
 <div class="ttc" id="namespacetopi_html_a43174e0e818615e13eca9fadea3ba851"><div class="ttname"><a href="namespacetopi.html#a43174e0e818615e13eca9fadea3ba851">topi::fast_erf_float32</a></div><div class="ttdeci">Tensor fast_erf_float32(const Tensor &amp;data, std::string name, std::string tag)</div><div class="ttdoc">Fast_tanh_float implementation from Eigen https://github.com/eigenteam/eigen-git-mirror/blob/master/u...</div><div class="ttdef"><b>Definition:</b> elemwise.h:461</div></div>
 <div class="ttc" id="namespacetopi_html_a4f5a29ac302ac31ce75e65f21ad60d41"><div class="ttname"><a href="namespacetopi.html#a4f5a29ac302ac31ce75e65f21ad60d41">topi::identity</a></div><div class="ttdeci">Tensor identity(const Tensor &amp;x, std::string name=&quot;T_identity&quot;, std::string tag=kElementWise)</div><div class="ttdoc">Creates an operation that returns identity of a given tensor. </div><div class="ttdef"><b>Definition:</b> elemwise.h:150</div></div>
-<div class="ttc" id="namespacetvm_1_1tir_html_a4ea566597880d04bd62fbec687e338b5"><div class="ttname"><a href="namespacetvm_1_1tir.html#a4ea566597880d04bd62fbec687e338b5">tvm::tir::make_const</a></div><div class="ttdeci">PrimExpr make_const(DataType t, ValueType value)</div><div class="ttdoc">Make a const value with certain data type. </div><div class="ttdef"><b>Definition:</b> op.h:799</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_html_a4ea566597880d04bd62fbec687e338b5"><div class="ttname"><a href="namespacetvm_1_1tir.html#a4ea566597880d04bd62fbec687e338b5">tvm::tir::make_const</a></div><div class="ttdeci">PrimExpr make_const(DataType t, ValueType value)</div><div class="ttdoc">Make a const value with certain data type. </div><div class="ttdef"><b>Definition:</b> op.h:820</div></div>
 <div class="ttc" id="namespacetopi_html_a4568b2a7240a100189b391e2f968ccc5"><div class="ttname"><a href="namespacetopi.html#a4568b2a7240a100189b391e2f968ccc5">topi::isfinite</a></div><div class="ttdeci">Tensor isfinite(const Tensor &amp;x, std::string name=&quot;T_&quot;&quot;isfinite&quot;, std::string tag=kElementWise)</div><div class="ttdef"><b>Definition:</b> elemwise.h:73</div></div>
 <div class="ttc" id="namespacetopi_html_ae6d188f262af775d79e3d409bb22045d"><div class="ttname"><a href="namespacetopi.html#ae6d188f262af775d79e3d409bb22045d">topi::fast_exp</a></div><div class="ttdeci">Tensor fast_exp(const Tensor &amp;x, std::string name=&quot;T_fast_exp&quot;, std::string tag=kElementWise)</div><div class="ttdoc">Fast exponential function implementation. </div><div class="ttdef"><b>Definition:</b> elemwise.h:446</div></div>
 <div class="ttc" id="namespacetopi_html_a28ca1863f504edc2e0f8865ca608569e"><div class="ttname"><a href="namespacetopi.html#a28ca1863f504edc2e0f8865ca608569e">topi::isinf</a></div><div class="ttdeci">Tensor isinf(const Tensor &amp;x, std::string name=&quot;T_&quot;&quot;isinf&quot;, std::string tag=kElementWise)</div><div class="ttdef"><b>Definition:</b> elemwise.h:74</div></div>
diff --git a/docs/api/doxygen/functions_a.html b/docs/api/doxygen/functions_a.html
index 35519b0..460ade6 100644
--- a/docs/api/doxygen/functions_a.html
+++ b/docs/api/doxygen/functions_a.html
@@ -401,11 +401,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html#ae6ae92cfb678102583726073854cde80">tvm::relay::LRNAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html#a8287fc14b2ad6671f6ab51ba77134aa1">tvm::relay::OneHotAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html#a754f4d5b74e0662ad598781f105bc3b7">tvm::relay::PReluAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html#a1af4a4d3db2c6b5addc98cca7372f571">tvm::relay::qnn::DequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html#a59eb1cf9ac723b0f03512c5ba16f1c8b">tvm::relay::qnn::QuantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html#a0dbe4aa881fcb9dfdfe43508df598a01">tvm::relay::qnn::RequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html#a175e6ed9d20ee26ae62f2f9e852bd858">tvm::relay::ReduceAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html#a91f67f0c8914efd2b7359eea9074b43f">tvm::relay::RepeatAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html#a0fe0a352985941489400e211799f1b8a">tvm::relay::ReverseAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html#a641f7409b6194a04a6a9889fe19dc3fb">tvm::relay::ScatterAddAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html#a5ada9836e19157a53637c14f9318fb64">tvm::relay::ScatterAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a7273f14f80b4dbaf455b47d7a2f6ad46">tvm::relay::SequenceMaskAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1SoftmaxAttrs.html#a0416be34a3c1df62133a06cdec50f6c5">tvm::relay::SoftmaxAttrs</a>
diff --git a/docs/api/doxygen/functions_d.html b/docs/api/doxygen/functions_d.html
index 5e345cd..8b5a98b 100644
--- a/docs/api/doxygen/functions_d.html
+++ b/docs/api/doxygen/functions_d.html
@@ -234,7 +234,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1TargetIdNode.html#a15a2875b9d8a8abecbc61b0346a138d2">tvm::TargetIdNode</a>
 </li>
 <li>DFPatternCallback()
-: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a943d6ff184978aa640101f00377d8b66">tvm::relay::DFPatternCallback</a>
+: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a820597c8dc9ec76160d3283e71cf57ba">tvm::relay::DFPatternCallback</a>
 </li>
 <li>dict
 : <a class="el" href="classtvm_1_1DictAttrsNode.html#ad80fb7d4b9f4e08bd0f15e409af2ac80">tvm::DictAttrsNode</a>
diff --git a/docs/api/doxygen/functions_f.html b/docs/api/doxygen/functions_f.html
index e09aafb..4865b63 100644
--- a/docs/api/doxygen/functions_f.html
+++ b/docs/api/doxygen/functions_f.html
@@ -334,12 +334,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>funcs
 : <a class="el" href="structTVMFuncRegistry.html#a25badb00e205aaa5c317bd61a4b88d96">TVMFuncRegistry</a>
 </li>
+<li>function
+: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a878e6e49af2466c49ffd9fcfe7f609fa">tvm::relay::DFPatternCallbackNode</a>
+</li>
 <li>Function()
 : <a class="el" href="classtvm_1_1relay_1_1Function.html#a4da29d04ce5fa5ab531d587cbebc358f">tvm::relay::Function</a>
 </li>
-<li>function_
-: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#ad0196f5291f35ce7077118795681f442">tvm::relay::DFPatternCallbackNode</a>
-</li>
 <li>functions
 : <a class="el" href="classtvm_1_1IRModuleNode.html#a88423026ad43fa60158bc9a647704d93">tvm::IRModuleNode</a>
 , <a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html#af7d75150b6a98a7766a552d7e7e34a11">tvm::runtime::vm::Executable</a>
diff --git a/docs/api/doxygen/functions_func_d.html b/docs/api/doxygen/functions_func_d.html
index 9ea502a..c44f29d 100644
--- a/docs/api/doxygen/functions_func_d.html
+++ b/docs/api/doxygen/functions_func_d.html
@@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1OpRegEntry.html#a31b037ff8212469a337b891c777418c7">tvm::OpRegEntry</a>
 </li>
 <li>DFPatternCallback()
-: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a943d6ff184978aa640101f00377d8b66">tvm::relay::DFPatternCallback</a>
+: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html#a820597c8dc9ec76160d3283e71cf57ba">tvm::relay::DFPatternCallback</a>
 </li>
 <li>DictAttrs()
 : <a class="el" href="classtvm_1_1DictAttrs.html#a3999d7e2b942c8f9993f6d51cb8f3ded">tvm::DictAttrs</a>
diff --git a/docs/api/doxygen/functions_func_r.html b/docs/api/doxygen/functions_func_r.html
index cacad33..d2613b3 100644
--- a/docs/api/doxygen/functions_func_r.html
+++ b/docs/api/doxygen/functions_func_r.html
@@ -240,6 +240,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>reset_attr()
 : <a class="el" href="classtvm_1_1OpRegEntry.html#a67628f8d3d6dea5b0a47e462c06b7790">tvm::OpRegEntry</a>
 </li>
+<li>ReshapeTensor()
+: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a78291b55a638084d12269102ec6a2e90">tvm::runtime::vm::Instruction</a>
+</li>
 <li>resize()
 : <a class="el" href="classtvm_1_1runtime_1_1Array.html#a8064044f8928cf3fed003507d65604c7">tvm::runtime::Array&lt; T, typename &gt;</a>
 </li>
@@ -254,7 +257,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html#a4c93a9094db80cace013ef02e6bcd724">tvm::relay::MixedModeMutator</a>
 </li>
 <li>Rewrite_()
-: <a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html#ad6eed16eb7ac760434705411bbbde461">tvm::relay::ExprRewriter</a>
+: <a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html#a0ce4f1f1a3abf18ee99addd3de09e99e">tvm::relay::ExprRewriter</a>
 , <a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html#aedab19fa2803a80d4148f83c1c4b0814">tvm::relay::MixedModeMutator</a>
 </li>
 <li>rfactor()
diff --git a/docs/api/doxygen/functions_func_s.html b/docs/api/doxygen/functions_func_s.html
index 0da4644..5466649 100644
--- a/docs/api/doxygen/functions_func_s.html
+++ b/docs/api/doxygen/functions_func_s.html
@@ -503,7 +503,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1te_1_1Stage.html#a51432f38d9ec4792a2525023179ae604">tvm::te::Stage</a>
 </li>
 <li>Stage()
-: <a class="el" href="classtvm_1_1te_1_1Stage.html#afec82602b9321c489b88632a005335f8">tvm::te::Stage</a>
+: <a class="el" href="classtvm_1_1te_1_1Stage.html#a1ecdc9a000be62c9cc26a96d4c33e36e">tvm::te::Stage</a>
 </li>
 <li>Stats()
 : <a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html#a43cc6b3ccb971d2ddf39e2d969d8a43e">tvm::runtime::vm::Executable</a>
@@ -521,7 +521,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html#a359964ae5ad0fbdba18da1a0db1a7ad6">tvm::runtime::DeviceAPI</a>
 </li>
 <li>String()
-: <a class="el" href="classtvm_1_1runtime_1_1String.html#ac5d930b522e9fef9c07e51819d96d2f3">tvm::runtime::String</a>
+: <a class="el" href="classtvm_1_1runtime_1_1String.html#a02fca36e3ff55cc1e83635b02a11fca3">tvm::runtime::String</a>
 </li>
 <li>StringifyAttrsToRaw()
 : <a class="el" href="classtvm_1_1TargetIdNode.html#a6f02435243d36d37210ab1b2d6cf9b99">tvm::TargetIdNode</a>
diff --git a/docs/api/doxygen/functions_func_t.html b/docs/api/doxygen/functions_func_t.html
index 148f3ab..ceb77c2 100644
--- a/docs/api/doxygen/functions_func_t.html
+++ b/docs/api/doxygen/functions_func_t.html
@@ -255,6 +255,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html#aa424a54017a8c42cc5b8226a8dfb65ac">tvm::relay::DropoutAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html#a81d264f861cabf1c5478e254b7f85f15">tvm::relay::ExpandDimsAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html#ae99c13a1a258f33c862d605e3d594467">tvm::relay::FIFOBufferAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#a0c430aab7815a0c2d2a26e2d1826c2eb">tvm::relay::FixedPointMultiplyAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html#af4f634e6ea9308be4ec06c126513b685">tvm::relay::GatherAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html#aa88b0715787f9214ceae0428dfc56a59">tvm::relay::GetValidCountsAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html#aaae394b14069baaf0fc368ff7dd478ad">tvm::relay::GlobalPool2DAttrs</a>
@@ -281,17 +282,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="structtvm_1_1relay_1_1PadAttrs.html#a6cb5f8e4c801e20027ede12d025cd9f9">tvm::relay::PadAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html#aed6806c9cf8a413e628e0162e7311b7d">tvm::relay::PReluAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html#a28a8c0b09e033d6440d91081f251ffb2">tvm::relay::ProposalAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html#a82bb58cc879ad1f0b67bc4b7cdfdcf34">tvm::relay::qnn::DequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html#a4a6266f19e38e4e770dfce4dc19873cd">tvm::relay::qnn::QuantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html#a8c68c859172c361c7bf5f517fc797833">tvm::relay::qnn::RequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html#a93fcfcbd10f580bbbb4bd08e32c3fb13">tvm::relay::ReduceAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html#a9beb4e18ba35d6323f7463dbb4f95c1b">tvm::relay::RepeatAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html#a62263922c82212f2ca5864b10e1958b7">tvm::relay::ReshapeAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html#aa916ba2569200da8ceda0cb7098eb669">tvm::relay::ReshapeTensorAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1Resize3dAttrs.html#ae8dd0ca17f3c81ccd62d380c62e9399f">tvm::relay::Resize3dAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ResizeAttrs.html#a3d556241294f73ed462283192b8c0713">tvm::relay::ResizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html#a590ab4ec8765ba7b26e2914abc8fdb4b">tvm::relay::ReverseAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html#a06773daa80357364ded0fbc9613a2b14">tvm::relay::ReverseSequenceAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ROIAlignAttrs.html#a211206914d1eaad059fc1fef19de0489">tvm::relay::ROIAlignAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ROIPoolAttrs.html#a06d3037a6dd772136cb2cbb9a954242f">tvm::relay::ROIPoolAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html#a3070751866037d6e9a3899ed8fc73b58">tvm::relay::ScatterAddAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html#a5cbbb8d7a8d05eeb6847f75637f260fd">tvm::relay::ScatterAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a15f8fc5585e9bba5c2587963213681d4">tvm::relay::SequenceMaskAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ShapeFuncAttrs.html#ad64ca884231f468064d3ec2b82f50d99">tvm::relay::ShapeFuncAttrs</a>
@@ -682,7 +686,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#a0d72a6fa7263821c14bcd37837998ed9">tvm::TypedEnvFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>TypedPackedFunc()
-: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#af45a2ceff92e6f6c394ea766a45027a0">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
+: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#a1347229c4794682ee76d5d167195fe55">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>TypeIndex2Key()
 : <a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">tvm::runtime::Object</a>
diff --git a/docs/api/doxygen/functions_func_v.html b/docs/api/doxygen/functions_func_v.html
index eb4577f..89032fa 100644
--- a/docs/api/doxygen/functions_func_v.html
+++ b/docs/api/doxygen/functions_func_v.html
@@ -325,7 +325,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html#a86656f533b4961437f53d1dbe30ae1fb">tvm::relay::MixedModeMutator</a>
 , <a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor.html#a109b942e0299536851a3dc53a02b1ddc">tvm::relay::MixedModeVisitor</a>
 , <a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#a97bcf0ff5e20fb4374b76184a8698684">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a>
-, <a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#a4c2ba005e353a9cbf171c7fa019ef727">tvm::tir::ExprMutator</a>
+, <a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#a03165c7d449104444daf8fb2329ed3f3">tvm::tir::ExprMutator</a>
 , <a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a786dcfcef511795b23359a3c60c74477">tvm::tir::ExprVisitor</a>
 </li>
 <li>VisitExprDefault_()
@@ -347,8 +347,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html#abcf80d4f5b0aca1c3a373000b747673c">tvm::relay::PatternFunctor&lt; R(const Pattern &amp;n, Args...)&gt;</a>
 </li>
 <li>VisitPattern_()
-: <a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html#aadcac1521b0deb3a6c35a6ca89c02794">tvm::relay::PatternFunctor&lt; R(const Pattern &amp;n, Args...)&gt;</a>
-, <a class="el" href="classtvm_1_1relay_1_1PatternMutator.html#aedeb370baf4bca6018153d01d2594a84">tvm::relay::PatternMutator</a>
+: <a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html#aa770e826edec27f4e8c28dd9f531d190">tvm::relay::PatternFunctor&lt; R(const Pattern &amp;n, Args...)&gt;</a>
+, <a class="el" href="classtvm_1_1relay_1_1PatternMutator.html#af8ea941a20a51cba2dc5e9e21f0ffc88">tvm::relay::PatternMutator</a>
 , <a class="el" href="classtvm_1_1relay_1_1PatternVisitor.html#a2d9a35bc9be4f5d0badb0c1bb5b86847">tvm::relay::PatternVisitor</a>
 </li>
 <li>VisitPatternDefault_()
@@ -362,9 +362,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a4306d1beba05fa1ac582503498a6d7ce">tvm::tir::StmtMutator</a>
 </li>
 <li>VisitStmt_()
-: <a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8args_08_4.html#adf37d742ed06eb5e109f1a15e1a826fa">tvm::tir::StmtFunctor&lt; R(const Stmt &amp;n, Args...args)&gt;</a>
-, <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#afad3009a7d05a345ca868a980f58b9ca">tvm::tir::StmtMutator</a>
-, <a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a6cca1dd5ab6329207cecb8b94c63f8c2">tvm::tir::StmtVisitor</a>
+: <a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8args_08_4.html#a77331d93b2c3f54b007918bcfb57a941">tvm::tir::StmtFunctor&lt; R(const Stmt &amp;n, Args...args)&gt;</a>
+, <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#aecd16bf1a6715ea36f6c30e5dc2ceae7">tvm::tir::StmtMutator</a>
+, <a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a38488c0f8137e12bc195fa2e0a0524c9">tvm::tir::StmtVisitor</a>
 </li>
 <li>VisitStmtDefault_()
 : <a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8args_08_4.html#aeb08feaffc3f8fb6f6c379ccce9bbd45">tvm::tir::StmtFunctor&lt; R(const Stmt &amp;n, Args...args)&gt;</a>
@@ -379,8 +379,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </li>
 <li>VisitType_()
 : <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a02a16c27881cb2ab3532cca9ae68c1f5">tvm::TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a>
-, <a class="el" href="classtvm_1_1TypeMutator.html#ad4ad7209f8789568e5e57870f0b758f0">tvm::TypeMutator</a>
-, <a class="el" href="classtvm_1_1TypeVisitor.html#a82c83b1524502579f56d194138badd3e">tvm::TypeVisitor</a>
+, <a class="el" href="classtvm_1_1TypeMutator.html#a2a78bda75555650a37a80e1e074d562a">tvm::TypeMutator</a>
+, <a class="el" href="classtvm_1_1TypeVisitor.html#adb2f5c5f8e3fbe5b62ce8527cd59a30b">tvm::TypeVisitor</a>
 </li>
 <li>VisitTypeDefault_()
 : <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a91553f9e04c39b3821a70ae4f7b0c597">tvm::TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a>
@@ -399,7 +399,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFrame.html#a8f8c990ee4fa7cb7472f5440f2ca3bde">tvm::runtime::vm::VMFrame</a>
 </li>
 <li>VMFunction()
-: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html#ac0a863bff962be11a964e569c9fb2df3">tvm::runtime::vm::VMFunction</a>
+: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html#a49ca45b1b44655ea5e4fbb74966e0b35">tvm::runtime::vm::VMFunction</a>
 </li>
 <li>Void()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#ab8dc0832aff8fd7421884c0fe20a3bfd">tvm::runtime::DataType</a>
diff --git a/docs/api/doxygen/functions_i.html b/docs/api/doxygen/functions_i.html
index c264b67..8cebb65 100644
--- a/docs/api/doxygen/functions_i.html
+++ b/docs/api/doxygen/functions_i.html
@@ -426,7 +426,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </li>
 <li>iterator()
 : <a class="el" href="classtvm_1_1Map_1_1iterator.html#a030cc3169e173281d8f75f37a127d2cd">tvm::Map&lt; K, V, typename, typename &gt;::iterator</a>
-, <a class="el" href="classtvm_1_1MapNode_1_1iterator.html#a88e86aa2905755683efaa0e8cfff0a2c">tvm::MapNode::iterator</a>
+, <a class="el" href="classtvm_1_1MapNode_1_1iterator.html#ab8b919a83a0dd9a4bd386ad3425763ae">tvm::MapNode::iterator</a>
 , <a class="el" href="classtvm_1_1runtime_1_1Array.html#a98e5ad633b8195d954c98067213ae29f">tvm::runtime::Array&lt; T, typename &gt;</a>
 </li>
 <li>iterator_category
@@ -442,7 +442,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1te_1_1IterVarAttr.html#aa20680587a1c880b659063cd37ba4763">tvm::te::IterVarAttr</a>
 </li>
 <li>IterVarRelation()
-: <a class="el" href="classtvm_1_1te_1_1IterVarRelation.html#a3e611ee0870d9a542b8deb79575dbf66">tvm::te::IterVarRelation</a>
+: <a class="el" href="classtvm_1_1te_1_1IterVarRelation.html#a4b50caede957f1cb50587ce15a87109f">tvm::te::IterVarRelation</a>
 </li>
 </ul>
 </div><!-- contents -->
diff --git a/docs/api/doxygen/functions_m.html b/docs/api/doxygen/functions_m.html
index 2e401d4..ba21248 100644
--- a/docs/api/doxygen/functions_m.html
+++ b/docs/api/doxygen/functions_m.html
@@ -248,7 +248,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1arith_1_1ModularSet.html#a9f54896d98169246c6a24cc338fde500">tvm::arith::ModularSet</a>
 </li>
 <li>Module()
-: <a class="el" href="classtvm_1_1runtime_1_1Module.html#abfbc619b3b3166d63ec52e399c24bed9">tvm::runtime::Module</a>
+: <a class="el" href="classtvm_1_1runtime_1_1Module.html#abd1380b3f813c2b6acefca3aaef425f4">tvm::runtime::Module</a>
 , <a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html#a21f639900c480510650969df9c74d17d">tvm::runtime::ModuleNode</a>
 </li>
 <li>ModuleInternal
@@ -272,6 +272,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>Mul()
 : <a class="el" href="classtvm_1_1tir_1_1Mul.html#accf6728d673e15ecddf4465efebc32e7">tvm::tir::Mul</a>
 </li>
+<li>multiplier
+: <a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#a317374d804a576b50d9a51e4a8ee3ff2">tvm::relay::FixedPointMultiplyAttrs</a>
+</li>
 <li>Mutate()
 : <a class="el" href="classtvm_1_1relay_1_1ExprMutator.html#ab8d4855c77e09d2274716ca2bbcf0a86">tvm::relay::ExprMutator</a>
 , <a class="el" href="classtvm_1_1relay_1_1PatternMutator.html#afd5ae4d9caeaae89c339e1377962b51f">tvm::relay::PatternMutator</a>
diff --git a/docs/api/doxygen/functions_n.html b/docs/api/doxygen/functions_n.html
index 91b74a4..2a243c0 100644
--- a/docs/api/doxygen/functions_n.html
+++ b/docs/api/doxygen/functions_n.html
@@ -186,6 +186,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </li>
 <li>newshape
 : <a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html#a9bca32c3acff2ed8fd6bc63a50f82051">tvm::relay::ReshapeAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html#aaacd1ab5124b54316a9e1f3ef5a5ec3c">tvm::relay::ReshapeTensorAttrs</a>
+, <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a5602ccf14b6bd90e33a38c6ab82b0b57">tvm::runtime::vm::Instruction</a>
 </li>
 <li>No()
 : <a class="el" href="classtvm_1_1relay_1_1FeatureSet.html#a68c408c752ef58b2c27802491165adbb">tvm::relay::FeatureSet</a>
diff --git a/docs/api/doxygen/functions_p.html b/docs/api/doxygen/functions_p.html
index 2d847cc..f7bcce8 100644
--- a/docs/api/doxygen/functions_p.html
+++ b/docs/api/doxygen/functions_p.html
@@ -214,6 +214,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>pattern
 : <a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html#a4ccb04267d93985da28518886b56ed2f">tvm::relay::AttrPatternNode</a>
 , <a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html#aa9bd180d1d23dde701d121d23db8c51a">tvm::relay::DataTypePatternNode</a>
+, <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#acfe3e9170d4c05ff59f3056b79ae58bb">tvm::relay::DFPatternCallbackNode</a>
 </li>
 <li>Pattern()
 : <a class="el" href="classtvm_1_1relay_1_1Pattern.html#aba2fe5ab04ab0b56ff855cfc572b16ff">tvm::relay::Pattern</a>
@@ -222,9 +223,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1relay_1_1ShapePatternNode.html#a77130ba4e4b1b051415a08a6c0148d30">tvm::relay::ShapePatternNode</a>
 , <a class="el" href="classtvm_1_1relay_1_1TypePatternNode.html#a7273a1fa7c10a1c4a5f3a4d46bcd463a">tvm::relay::TypePatternNode</a>
 </li>
-<li>pattern_
-: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#aedf26eb9299c184982f11bebdaca816f">tvm::relay::DFPatternCallbackNode</a>
-</li>
 <li>PatternConstructor()
 : <a class="el" href="classtvm_1_1relay_1_1PatternConstructor.html#a96adb22c131d7bac1e54a7b646116143">tvm::relay::PatternConstructor</a>
 </li>
@@ -315,7 +313,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1tir_1_1PrefetchNode.html#a12d0e137a00b37d439d7a10677023c62">tvm::tir::PrefetchNode</a>
 </li>
 <li>PrimExpr()
-: <a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">tvm::PrimExpr</a>
+: <a class="el" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">tvm::PrimExpr</a>
 </li>
 <li>PrimFunc()
 : <a class="el" href="classtvm_1_1tir_1_1PrimFunc.html#abd958804ede9382c68930efcf18a6841">tvm::tir::PrimFunc</a>
diff --git a/docs/api/doxygen/functions_r.html b/docs/api/doxygen/functions_r.html
index be18339..7cbab2c 100644
--- a/docs/api/doxygen/functions_r.html
+++ b/docs/api/doxygen/functions_r.html
@@ -293,6 +293,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>reps
 : <a class="el" href="structtvm_1_1relay_1_1TileAttrs.html#acac0351f86c23beb264227981424022e">tvm::relay::TileAttrs</a>
 </li>
+<li>require_type
+: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#acf0cbf5a96eb4c9000b770b7adbd9d32">tvm::relay::DFPatternCallbackNode</a>
+</li>
 <li>required
 : <a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html#abc4fdfbc0e6db41ae6296d7b2816b534">tvm::transform::PassInfoNode</a>
 </li>
@@ -309,6 +312,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>reset_attr()
 : <a class="el" href="classtvm_1_1OpRegEntry.html#a67628f8d3d6dea5b0a47e462c06b7790">tvm::OpRegEntry</a>
 </li>
+<li>reshape_tensor
+: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#abaeafca3419a4169d60cd2164a360607">tvm::runtime::vm::Instruction</a>
+</li>
+<li>ReshapeTensor()
+: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a78291b55a638084d12269102ec6a2e90">tvm::runtime::vm::Instruction</a>
+</li>
 <li>resize()
 : <a class="el" href="classtvm_1_1runtime_1_1Array.html#a8064044f8928cf3fed003507d65604c7">tvm::runtime::Array&lt; T, typename &gt;</a>
 </li>
@@ -362,7 +371,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html#a4c93a9094db80cace013ef02e6bcd724">tvm::relay::MixedModeMutator</a>
 </li>
 <li>Rewrite_()
-: <a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html#a0ce4f1f1a3abf18ee99addd3de09e99e">tvm::relay::ExprRewriter</a>
+: <a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html#a24bbfdfcb685fc52f59b7346ff025c26">tvm::relay::ExprRewriter</a>
 , <a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html#aedab19fa2803a80d4148f83c1c4b0814">tvm::relay::MixedModeMutator</a>
 </li>
 <li>rewrite_simplify
diff --git a/docs/api/doxygen/functions_s.html b/docs/api/doxygen/functions_s.html
index cca8c62..5f6a7a5 100644
--- a/docs/api/doxygen/functions_s.html
+++ b/docs/api/doxygen/functions_s.html
@@ -538,6 +538,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>SHashReducer()
 : <a class="el" href="classtvm_1_1SHashReducer.html#acb4d90cb74f617620d0027649adf8f17">tvm::SHashReducer</a>
 </li>
+<li>shift
+: <a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#ac5095656867b0bad8cd53d0f957a1d9d">tvm::relay::FixedPointMultiplyAttrs</a>
+</li>
 <li>Shuffle()
 : <a class="el" href="classtvm_1_1tir_1_1Shuffle.html#a7d4c6d0e0d0d31cb3500a924be7c6561">tvm::tir::Shuffle</a>
 </li>
@@ -579,7 +582,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html#ad6d089344fa741021584222ffa70a451">tvm::relay::MultiBoxPriorAttrs</a>
 </li>
 <li>SizeVar()
-: <a class="el" href="classtvm_1_1tir_1_1SizeVar.html#a65e97f74ebbec599b58c7e5dde7b8159">tvm::tir::SizeVar</a>
+: <a class="el" href="classtvm_1_1tir_1_1SizeVar.html#ac470249315d9e395ad581d35dd5dcb05">tvm::tir::SizeVar</a>
 </li>
 <li>Slice()
 : <a class="el" href="classtvm_1_1te_1_1Tensor_1_1Slice.html#ab314819e8bcca6421e9a4f33e48578c3">tvm::te::Tensor::Slice</a>
@@ -647,7 +650,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html#a05ddc831df1d376f256ec97af966e6be">tvm::arith::IntConstraintsTransformNode</a>
 </li>
 <li>Stage()
-: <a class="el" href="classtvm_1_1te_1_1Stage.html#a1ecdc9a000be62c9cc26a96d4c33e36e">tvm::te::Stage</a>
+: <a class="el" href="classtvm_1_1te_1_1Stage.html#aa6ace38b6312e42aaf9389c8749ae0a4">tvm::te::Stage</a>
 </li>
 <li>stage_map
 : <a class="el" href="classtvm_1_1te_1_1ScheduleNode.html#a612223aec2751cbd035a18c9e5453085">tvm::te::ScheduleNode</a>
@@ -737,7 +740,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1tir_1_1BufferNode.html#ac18ddd10b79a30ae57d3a8283686259d">tvm::tir::BufferNode</a>
 </li>
 <li>String()
-: <a class="el" href="classtvm_1_1runtime_1_1String.html#ac5d930b522e9fef9c07e51819d96d2f3">tvm::runtime::String</a>
+: <a class="el" href="classtvm_1_1runtime_1_1String.html#a02fca36e3ff55cc1e83635b02a11fca3">tvm::runtime::String</a>
 , <a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html#a7fb804f7dc96dd9f705c84095f37f1ca">tvm::runtime::StringObj::FromStd</a>
 , <a class="el" href="classtvm_1_1runtime_1_1StringObj.html#a7fb804f7dc96dd9f705c84095f37f1ca">tvm::runtime::StringObj</a>
 </li>
diff --git a/docs/api/doxygen/functions_t.html b/docs/api/doxygen/functions_t.html
index 64e5e68..00b6fde 100644
--- a/docs/api/doxygen/functions_t.html
+++ b/docs/api/doxygen/functions_t.html
@@ -351,6 +351,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html#aa424a54017a8c42cc5b8226a8dfb65ac">tvm::relay::DropoutAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html#a81d264f861cabf1c5478e254b7f85f15">tvm::relay::ExpandDimsAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html#ae99c13a1a258f33c862d605e3d594467">tvm::relay::FIFOBufferAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#a0c430aab7815a0c2d2a26e2d1826c2eb">tvm::relay::FixedPointMultiplyAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html#af4f634e6ea9308be4ec06c126513b685">tvm::relay::GatherAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html#aa88b0715787f9214ceae0428dfc56a59">tvm::relay::GetValidCountsAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html#aaae394b14069baaf0fc368ff7dd478ad">tvm::relay::GlobalPool2DAttrs</a>
@@ -377,17 +378,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="structtvm_1_1relay_1_1PadAttrs.html#a6cb5f8e4c801e20027ede12d025cd9f9">tvm::relay::PadAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html#aed6806c9cf8a413e628e0162e7311b7d">tvm::relay::PReluAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html#a28a8c0b09e033d6440d91081f251ffb2">tvm::relay::ProposalAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html#a82bb58cc879ad1f0b67bc4b7cdfdcf34">tvm::relay::qnn::DequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html#a4a6266f19e38e4e770dfce4dc19873cd">tvm::relay::qnn::QuantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html#a8c68c859172c361c7bf5f517fc797833">tvm::relay::qnn::RequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html#a93fcfcbd10f580bbbb4bd08e32c3fb13">tvm::relay::ReduceAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html#a9beb4e18ba35d6323f7463dbb4f95c1b">tvm::relay::RepeatAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html#a62263922c82212f2ca5864b10e1958b7">tvm::relay::ReshapeAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html#aa916ba2569200da8ceda0cb7098eb669">tvm::relay::ReshapeTensorAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1Resize3dAttrs.html#ae8dd0ca17f3c81ccd62d380c62e9399f">tvm::relay::Resize3dAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ResizeAttrs.html#a3d556241294f73ed462283192b8c0713">tvm::relay::ResizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html#a590ab4ec8765ba7b26e2914abc8fdb4b">tvm::relay::ReverseAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html#a06773daa80357364ded0fbc9613a2b14">tvm::relay::ReverseSequenceAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ROIAlignAttrs.html#a211206914d1eaad059fc1fef19de0489">tvm::relay::ROIAlignAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ROIPoolAttrs.html#a06d3037a6dd772136cb2cbb9a954242f">tvm::relay::ROIPoolAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html#a3070751866037d6e9a3899ed8fc73b58">tvm::relay::ScatterAddAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html#a5cbbb8d7a8d05eeb6847f75637f260fd">tvm::relay::ScatterAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a15f8fc5585e9bba5c2587963213681d4">tvm::relay::SequenceMaskAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ShapeFuncAttrs.html#ad64ca884231f468064d3ec2b82f50d99">tvm::relay::ShapeFuncAttrs</a>
@@ -767,7 +771,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::ObjectPtr&lt; T &gt;</a>
 , <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::ObjectRef</a>
 , <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::TVMPODValue_</a>
-, <a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#ac4a3850c0989e7c2d5cd8e0f096d0997">tvm::runtime::TVMRetValue</a>
+, <a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#a77455a8fe7d27b90a01a64f1cd28e9ec">tvm::runtime::TVMRetValue</a>
 , <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>type
@@ -839,7 +843,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#a41a6b9014d0feeb628ca7edfd0d26f0b">tvm::TypedEnvFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>TypedPackedFunc()
-: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#a6b346a6d0b601eff5a100c7a207e9c86">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
+: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#a0161d426f9ca366c860ad48c384f7192">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>TypeIndex2Key()
 : <a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">tvm::runtime::Object</a>
@@ -862,7 +866,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="classtvm_1_1TypeRelation.html#ac26b1897eab8197ed26606ab81b7403b">tvm::TypeRelation</a>
 </li>
 <li>TypeReporter()
-: <a class="el" href="classtvm_1_1TypeReporter.html#a8e7e05a07f9f7ad9bea91f27afac9051">tvm::TypeReporter</a>
+: <a class="el" href="classtvm_1_1TypeReporter.html#aa3dc38a3c84d324d0b3a9f358460a091">tvm::TypeReporter</a>
 </li>
 <li>TypeVar()
 : <a class="el" href="classtvm_1_1TypeVar.html#a8e8c8a4215eeefdcb17b565bd4250a0c">tvm::TypeVar</a>
diff --git a/docs/api/doxygen/functions_v.html b/docs/api/doxygen/functions_v.html
index 50bf5ef..f76cc4d 100644
--- a/docs/api/doxygen/functions_v.html
+++ b/docs/api/doxygen/functions_v.html
@@ -427,12 +427,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>VisitExpr_()
 : <a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html#abdf289c25698ddb88156932d6bed6a74">tvm::relay::ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a>
 , <a class="el" href="classtvm_1_1relay_1_1ExprMutator.html#ad84a1bcfeb97ec4816579d2363cd76a1">tvm::relay::ExprMutator</a>
-, <a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html#a2bcd0d66b18c47332d4b95b2122e55b3">tvm::relay::ExprVisitor</a>
+, <a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html#a8b1ef43d965026767385fb3ee5791928">tvm::relay::ExprVisitor</a>
 , <a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html#a86656f533b4961437f53d1dbe30ae1fb">tvm::relay::MixedModeMutator</a>
 , <a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor.html#a109b942e0299536851a3dc53a02b1ddc">tvm::relay::MixedModeVisitor</a>
-, <a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#ad3aaa39ac98e4c0dd0992db2fba817bb">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a>
-, <a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#afbd5d1454529710c5ab5ddb17eca75ab">tvm::tir::ExprMutator</a>
-, <a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a600ab7a202c9351d0ce5698a0f884453">tvm::tir::ExprVisitor</a>
+, <a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html#ac3216a343b01c700daff7f78385adc93">tvm::tir::ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a>
+, <a class="el" href="classtvm_1_1tir_1_1ExprMutator.html#a54677bf1b2cec622c781ba6ed4e03af9">tvm::tir::ExprMutator</a>
+, <a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html#a36a25512b8729660c5f3bd7a94085880">tvm::tir::ExprVisitor</a>
 </li>
 <li>VisitExprDefault_()
 : <a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html#ab35a37c57578e32a8c873cdfe9e31a0f">tvm::relay::ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a>
@@ -454,8 +454,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </li>
 <li>VisitPattern_()
 : <a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html#aadcac1521b0deb3a6c35a6ca89c02794">tvm::relay::PatternFunctor&lt; R(const Pattern &amp;n, Args...)&gt;</a>
-, <a class="el" href="classtvm_1_1relay_1_1PatternMutator.html#a5c4cdc5bd1b1929edf9afa3cf85b9857">tvm::relay::PatternMutator</a>
-, <a class="el" href="classtvm_1_1relay_1_1PatternVisitor.html#a2d9a35bc9be4f5d0badb0c1bb5b86847">tvm::relay::PatternVisitor</a>
+, <a class="el" href="classtvm_1_1relay_1_1PatternMutator.html#aedeb370baf4bca6018153d01d2594a84">tvm::relay::PatternMutator</a>
+, <a class="el" href="classtvm_1_1relay_1_1PatternVisitor.html#ad5ed2a5c3b88ec027df9e4269dff4b80">tvm::relay::PatternVisitor</a>
 </li>
 <li>VisitPatternDefault_()
 : <a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html#ad71efcd0b9a937b35f7fd4e2b6131773">tvm::relay::PatternFunctor&lt; R(const Pattern &amp;n, Args...)&gt;</a>
@@ -468,9 +468,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a4306d1beba05fa1ac582503498a6d7ce">tvm::tir::StmtMutator</a>
 </li>
 <li>VisitStmt_()
-: <a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8args_08_4.html#ae0cc8034e586408c25ffcb7c43684f0f">tvm::tir::StmtFunctor&lt; R(const Stmt &amp;n, Args...args)&gt;</a>
-, <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#ac22f8d85fc78d756b8e11e53eb1bf2df">tvm::tir::StmtMutator</a>
-, <a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a0e6ca99ff599eea59b322df49b1c3449">tvm::tir::StmtVisitor</a>
+: <a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8args_08_4.html#a5aac298853219524d70e89b6a8672cf7">tvm::tir::StmtFunctor&lt; R(const Stmt &amp;n, Args...args)&gt;</a>
+, <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a2ec423a8f109916abf02ac463308f58a">tvm::tir::StmtMutator</a>
+, <a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a800d9d3f4b755236e122f0fbf30115df">tvm::tir::StmtVisitor</a>
 </li>
 <li>VisitStmtDefault_()
 : <a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8args_08_4.html#aeb08feaffc3f8fb6f6c379ccce9bbd45">tvm::tir::StmtFunctor&lt; R(const Stmt &amp;n, Args...args)&gt;</a>
@@ -484,9 +484,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="classtvm_1_1TypeMutator.html#a84e824911927d98e20a338eab8b75a45">tvm::TypeMutator</a>
 </li>
 <li>VisitType_()
-: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a59f150c83a601663d0f56ca14afba603">tvm::TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a>
-, <a class="el" href="classtvm_1_1TypeMutator.html#ac694fbe28eb7026d30c5ca5fa2fb4a1a">tvm::TypeMutator</a>
-, <a class="el" href="classtvm_1_1TypeVisitor.html#a11378b4db6f704c04a97bec1c8ea8261">tvm::TypeVisitor</a>
+: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#aff7dbebbf8fd2fdd5ce9dd23a85fa36f">tvm::TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a>
+, <a class="el" href="classtvm_1_1TypeMutator.html#a9c2d7e1a52faac66f55896ecde3f2211">tvm::TypeMutator</a>
+, <a class="el" href="classtvm_1_1TypeVisitor.html#ac8845fbf58c1a1f0ebc23c7ee403aaab">tvm::TypeVisitor</a>
 </li>
 <li>VisitTypeDefault_()
 : <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a91553f9e04c39b3821a70ae4f7b0c597">tvm::TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a>
@@ -505,7 +505,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFrame.html#a8f8c990ee4fa7cb7472f5440f2ca3bde">tvm::runtime::vm::VMFrame</a>
 </li>
 <li>VMFunction()
-: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html#a49ca45b1b44655ea5e4fbb74966e0b35">tvm::runtime::vm::VMFunction</a>
+: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html#ac0a863bff962be11a964e569c9fb2df3">tvm::runtime::vm::VMFunction</a>
 </li>
 <li>Void()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#ab8dc0832aff8fd7421884c0fe20a3bfd">tvm::runtime::DataType</a>
diff --git a/docs/api/doxygen/functions_vars_a.html b/docs/api/doxygen/functions_vars_a.html
index 5a65e4e..7383dbe 100644
--- a/docs/api/doxygen/functions_vars_a.html
+++ b/docs/api/doxygen/functions_vars_a.html
@@ -235,11 +235,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 , <a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html#ae6ae92cfb678102583726073854cde80">tvm::relay::LRNAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html#a8287fc14b2ad6671f6ab51ba77134aa1">tvm::relay::OneHotAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html#a754f4d5b74e0662ad598781f105bc3b7">tvm::relay::PReluAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html#a1af4a4d3db2c6b5addc98cca7372f571">tvm::relay::qnn::DequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html#a59eb1cf9ac723b0f03512c5ba16f1c8b">tvm::relay::qnn::QuantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html#a0dbe4aa881fcb9dfdfe43508df598a01">tvm::relay::qnn::RequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html#a175e6ed9d20ee26ae62f2f9e852bd858">tvm::relay::ReduceAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html#a91f67f0c8914efd2b7359eea9074b43f">tvm::relay::RepeatAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html#a0fe0a352985941489400e211799f1b8a">tvm::relay::ReverseAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html#a641f7409b6194a04a6a9889fe19dc3fb">tvm::relay::ScatterAddAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html#a5ada9836e19157a53637c14f9318fb64">tvm::relay::ScatterAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a7273f14f80b4dbaf455b47d7a2f6ad46">tvm::relay::SequenceMaskAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1SoftmaxAttrs.html#a0416be34a3c1df62133a06cdec50f6c5">tvm::relay::SoftmaxAttrs</a>
diff --git a/docs/api/doxygen/functions_vars_f.html b/docs/api/doxygen/functions_vars_f.html
index bac29e8..eff5274 100644
--- a/docs/api/doxygen/functions_vars_f.html
+++ b/docs/api/doxygen/functions_vars_f.html
@@ -207,8 +207,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>funcs
 : <a class="el" href="structTVMFuncRegistry.html#a25badb00e205aaa5c317bd61a4b88d96">TVMFuncRegistry</a>
 </li>
-<li>function_
-: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#ad0196f5291f35ce7077118795681f442">tvm::relay::DFPatternCallbackNode</a>
+<li>function
+: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#a878e6e49af2466c49ffd9fcfe7f609fa">tvm::relay::DFPatternCallbackNode</a>
 </li>
 <li>functions
 : <a class="el" href="classtvm_1_1IRModuleNode.html#a88423026ad43fa60158bc9a647704d93">tvm::IRModuleNode</a>
diff --git a/docs/api/doxygen/functions_vars_m.html b/docs/api/doxygen/functions_vars_m.html
index 94bc90f..ba76b6a 100644
--- a/docs/api/doxygen/functions_vars_m.html
+++ b/docs/api/doxygen/functions_vars_m.html
@@ -179,6 +179,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>modular_set
 : <a class="el" href="classtvm_1_1arith_1_1Analyzer.html#acac92a9522deabe289fea99efbd9eaec">tvm::arith::Analyzer</a>
 </li>
+<li>multiplier
+: <a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#a317374d804a576b50d9a51e4a8ee3ff2">tvm::relay::FixedPointMultiplyAttrs</a>
+</li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
diff --git a/docs/api/doxygen/functions_vars_n.html b/docs/api/doxygen/functions_vars_n.html
index 913afdd..e81dd80 100644
--- a/docs/api/doxygen/functions_vars_n.html
+++ b/docs/api/doxygen/functions_vars_n.html
@@ -161,6 +161,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </li>
 <li>newshape
 : <a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html#a9bca32c3acff2ed8fd6bc63a50f82051">tvm::relay::ReshapeAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html#aaacd1ab5124b54316a9e1f3ef5a5ec3c">tvm::relay::ReshapeTensorAttrs</a>
+, <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a5602ccf14b6bd90e33a38c6ab82b0b57">tvm::runtime::vm::Instruction</a>
 </li>
 <li>node
 : <a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html#a7dbc9628c9f3f35deaccf0526be4f699">tvm::tir::AttrStmtNode</a>
diff --git a/docs/api/doxygen/functions_vars_p.html b/docs/api/doxygen/functions_vars_p.html
index 86edda3..f8219cf 100644
--- a/docs/api/doxygen/functions_vars_p.html
+++ b/docs/api/doxygen/functions_vars_p.html
@@ -188,12 +188,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>pattern
 : <a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html#a4ccb04267d93985da28518886b56ed2f">tvm::relay::AttrPatternNode</a>
 , <a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html#aa9bd180d1d23dde701d121d23db8c51a">tvm::relay::DataTypePatternNode</a>
+, <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#acfe3e9170d4c05ff59f3056b79ae58bb">tvm::relay::DFPatternCallbackNode</a>
 , <a class="el" href="classtvm_1_1relay_1_1ShapePatternNode.html#a77130ba4e4b1b051415a08a6c0148d30">tvm::relay::ShapePatternNode</a>
 , <a class="el" href="classtvm_1_1relay_1_1TypePatternNode.html#a7273a1fa7c10a1c4a5f3a4d46bcd463a">tvm::relay::TypePatternNode</a>
 </li>
-<li>pattern_
-: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#aedf26eb9299c184982f11bebdaca816f">tvm::relay::DFPatternCallbackNode</a>
-</li>
 <li>patterns
 : <a class="el" href="classtvm_1_1relay_1_1PatternConstructorNode.html#a0a09dff6a8e84eee02f6af3b2f523894">tvm::relay::PatternConstructorNode</a>
 , <a class="el" href="classtvm_1_1relay_1_1PatternTupleNode.html#aaf8d4cf8916e845d4528b8286c8d4095">tvm::relay::PatternTupleNode</a>
diff --git a/docs/api/doxygen/functions_vars_r.html b/docs/api/doxygen/functions_vars_r.html
index e531927..2a637cf 100644
--- a/docs/api/doxygen/functions_vars_r.html
+++ b/docs/api/doxygen/functions_vars_r.html
@@ -176,12 +176,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>reps
 : <a class="el" href="structtvm_1_1relay_1_1TileAttrs.html#acac0351f86c23beb264227981424022e">tvm::relay::TileAttrs</a>
 </li>
+<li>require_type
+: <a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html#acf0cbf5a96eb4c9000b770b7adbd9d32">tvm::relay::DFPatternCallbackNode</a>
+</li>
 <li>required
 : <a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html#abc4fdfbc0e6db41ae6296d7b2816b534">tvm::transform::PassInfoNode</a>
 </li>
 <li>required_pass
 : <a class="el" href="classtvm_1_1transform_1_1PassContextNode.html#a029074685b6cfcc0431098697f2bc927">tvm::transform::PassContextNode</a>
 </li>
+<li>reshape_tensor
+: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#abaeafca3419a4169d60cd2164a360607">tvm::runtime::vm::Instruction</a>
+</li>
 <li>result
 : <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#ae0d33229af059c727db2abd3616660e0">tvm::runtime::vm::Instruction</a>
 , <a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html#a7030917568a088215da423fc56882814">tvm::tir::CommReducerNode</a>
diff --git a/docs/api/doxygen/functions_vars_s.html b/docs/api/doxygen/functions_vars_s.html
index c80a946..57d6c6a 100644
--- a/docs/api/doxygen/functions_vars_s.html
+++ b/docs/api/doxygen/functions_vars_s.html
@@ -212,6 +212,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 : <a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce.html#a52b81cd95647e6f528636cfc25c48310">tvm::detail::ImplSHashReduce&lt; T, bool &gt;</a>
 , <a class="el" href="structtvm_1_1detail_1_1SelectSHashReduce.html#a15d1f727168445c18ee9d30fa37084cb">tvm::detail::SelectSHashReduce&lt; T, TraitName, bool &gt;</a>
 </li>
+<li>shift
+: <a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#ac5095656867b0bad8cd53d0f957a1d9d">tvm::relay::FixedPointMultiplyAttrs</a>
+</li>
 <li>size
 : <a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html#a3758ed1f8a8bcf73008ae1dd2bfa148e">tvm::relay::LRNAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1Resize3dAttrs.html#a2da618179ab37ba3c026b60b10af2af6">tvm::relay::Resize3dAttrs</a>
diff --git a/docs/api/doxygen/hierarchy.html b/docs/api/doxygen/hierarchy.html
index bdaa537..5861b5f 100644
--- a/docs/api/doxygen/hierarchy.html
+++ b/docs/api/doxygen/hierarchy.html
@@ -389,136 +389,144 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
 <tr id="row_160_7_34_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html" target="_self">tvm::relay::DeformableConv2DAttrs</a></td><td class="desc">Attributes for DeformableConv2D operator </td></tr>
 <tr id="row_160_7_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_35_" class="arrow" onclick="toggleFolder('160_7_35_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DenseAttrs &gt;</a></td><td class="desc"></td></tr>
 <tr id="row_160_7_35_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html" target="_self">tvm::relay::DenseAttrs</a></td><td class="desc">Attributes for dense operator </td></tr>
-<tr id="row_160_7_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_36_" class="arrow" onclick="toggleFolder('160_7_36_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DeviceCopyAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_36_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html" target="_self">tvm::relay::DeviceCopyAttrs</a></td><td class="desc">Options for the device copy operators </td></tr>
-<tr id="row_160_7_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_37_" class="arrow" onclick="toggleFolder('160_7_37_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DilateAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_37_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html" target="_self">tvm::relay::DilateAttrs</a></td><td class="desc">Attributes used in dilate operator </td></tr>
-<tr id="row_160_7_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_38_" class="arrow" onclick="toggleFolder('160_7_38_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Dilation2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_38_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html" target="_self">tvm::relay::Dilation2DAttrs</a></td><td class="desc">Attributes used in dilation operators </td></tr>
-<tr id="row_160_7_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_39_" class="arrow" onclick="toggleFolder('160_7_39_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DropoutAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_39_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html" target="_self">tvm::relay::DropoutAttrs</a></td><td class="desc">Attributes used in dropout operator </td></tr>
-<tr id="row_160_7_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_40_" class="arrow" onclick="toggleFolder('160_7_40_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ExpandDimsAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_40_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html" target="_self">tvm::relay::ExpandDimsAttrs</a></td><td class="desc">Attributes used in expand_dims operators </td></tr>
-<tr id="row_160_7_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_41_" class="arrow" onclick="toggleFolder('160_7_41_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; FIFOBufferAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_41_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html" target="_self">tvm::relay::FIFOBufferAttrs</a></td><td class="desc">Attributes for FIFO buffer operator </td></tr>
-<tr id="row_160_7_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_42_" class="arrow" onclick="toggleFolder('160_7_42_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GatherAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_42_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html" target="_self">tvm::relay::GatherAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_43_" class="arrow" onclick="toggleFolder('160_7_43_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GetValidCountsAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_43_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html" target="_self">tvm::relay::GetValidCountsAttrs</a></td><td class="desc">Attributes used in get_valid_counts operator </td></tr>
-<tr id="row_160_7_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_44_" class="arrow" onclick="toggleFolder('160_7_44_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GlobalPool2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_44_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html" target="_self">tvm::relay::GlobalPool2DAttrs</a></td><td class="desc">Attributes for global pool operator </td></tr>
-<tr id="row_160_7_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_45_" class="arrow" onclick="toggleFolder('160_7_45_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GridSampleAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_45_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html" target="_self">tvm::relay::GridSampleAttrs</a></td><td class="desc">Attributes used in image grid_sample operator </td></tr>
-<tr id="row_160_7_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_46_" class="arrow" onclick="toggleFolder('160_7_46_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GroupNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_46_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html" target="_self">tvm::relay::GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
-<tr id="row_160_7_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_47_" class="arrow" onclick="toggleFolder('160_7_47_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; InitOpAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_47_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html" target="_self">tvm::relay::InitOpAttrs</a></td><td class="desc">Attributes that specify a tensor </td></tr>
-<tr id="row_160_7_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_48_" class="arrow" onclick="toggleFolder('160_7_48_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; InstanceNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_48_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html" target="_self">tvm::relay::InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
-<tr id="row_160_7_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_49_" class="arrow" onclick="toggleFolder('160_7_49_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; L2NormalizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_49_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html" target="_self">tvm::relay::L2NormalizeAttrs</a></td><td class="desc">Attributes for L2Normalize operator </td></tr>
-<tr id="row_160_7_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_50_" class="arrow" onclick="toggleFolder('160_7_50_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LayerNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_50_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html" target="_self">tvm::relay::LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
-<tr id="row_160_7_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_51_" class="arrow" onclick="toggleFolder('160_7_51_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LayoutTransformAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_51_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html" target="_self">tvm::relay::LayoutTransformAttrs</a></td><td class="desc">Attributes for LayoutTransform operator </td></tr>
-<tr id="row_160_7_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_52_" class="arrow" onclick="toggleFolder('160_7_52_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LeakyReluAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_52_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html" target="_self">tvm::relay::LeakyReluAttrs</a></td><td class="desc">Attributes for leaky relu operator </td></tr>
-<tr id="row_160_7_53_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_53_" class="arrow" onclick="toggleFolder('160_7_53_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LRNAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_53_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html" target="_self">tvm::relay::LRNAttrs</a></td><td class="desc">Attributes for LRN operator </td></tr>
-<tr id="row_160_7_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_54_" class="arrow" onclick="toggleFolder('160_7_54_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool1DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_54_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html" target="_self">tvm::relay::MaxPool1DAttrs</a></td><td class="desc">Attributes for 1D max pool operator </td></tr>
-<tr id="row_160_7_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_55_" class="arrow" onclick="toggleFolder('160_7_55_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_55_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html" target="_self">tvm::relay::MaxPool2DAttrs</a></td><td class="desc">Attributes for max pool operator </td></tr>
-<tr id="row_160_7_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_56_" class="arrow" onclick="toggleFolder('160_7_56_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool3DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_56_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html" target="_self">tvm::relay::MaxPool3DAttrs</a></td><td class="desc">Attributes for 3D max pool operator </td></tr>
-<tr id="row_160_7_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_57_" class="arrow" onclick="toggleFolder('160_7_57_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MeshgridAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_57_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html" target="_self">tvm::relay::MeshgridAttrs</a></td><td class="desc">Attributes used in meshgrid operators </td></tr>
-<tr id="row_160_7_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_58_" class="arrow" onclick="toggleFolder('160_7_58_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MirrorPadAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_58_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html" target="_self">tvm::relay::MirrorPadAttrs</a></td><td class="desc">Attributes used for the MirrorPadding operator </td></tr>
-<tr id="row_160_7_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_59_" class="arrow" onclick="toggleFolder('160_7_59_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MultiBoxPriorAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_59_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html" target="_self">tvm::relay::MultiBoxPriorAttrs</a></td><td class="desc">Attributes used in multibox_prior operators </td></tr>
-<tr id="row_160_7_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_60_" class="arrow" onclick="toggleFolder('160_7_60_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MultiBoxTransformLocAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_60_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html" target="_self">tvm::relay::MultiBoxTransformLocAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_61_" class="arrow" onclick="toggleFolder('160_7_61_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NdarraySizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_61_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html" target="_self">tvm::relay::NdarraySizeAttrs</a></td><td class="desc">Attributes for ndarray_size operator </td></tr>
-<tr id="row_160_7_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_62_" class="arrow" onclick="toggleFolder('160_7_62_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NonMaximumSuppressionAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_62_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html" target="_self">tvm::relay::NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in non_maximum_suppression operator </td></tr>
-<tr id="row_160_7_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_63_" class="arrow" onclick="toggleFolder('160_7_63_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; OnDeviceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_63_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html" target="_self">tvm::relay::OnDeviceAttrs</a></td><td class="desc">Options for the device annotation operators </td></tr>
-<tr id="row_160_7_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_64_" class="arrow" onclick="toggleFolder('160_7_64_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; OneHotAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_64_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html" target="_self">tvm::relay::OneHotAttrs</a></td><td class="desc">Attributes used in one-hot operator </td></tr>
-<tr id="row_160_7_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_65_" class="arrow" onclick="toggleFolder('160_7_65_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; PadAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_65_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html" target="_self">tvm::relay::PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
-<tr id="row_160_7_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_66_" class="arrow" onclick="toggleFolder('160_7_66_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; PReluAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_66_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html" target="_self">tvm::relay::PReluAttrs</a></td><td class="desc">Attributes for prelu operator </td></tr>
-<tr id="row_160_7_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_67_" class="arrow" onclick="toggleFolder('160_7_67_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ProposalAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_67_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html" target="_self">tvm::relay::ProposalAttrs</a></td><td class="desc">Attributes used in proposal operators </td></tr>
-<tr id="row_160_7_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_68_" class="arrow" onclick="toggleFolder('160_7_68_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; QuantizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_68_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">tvm::relay::qnn::QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
-<tr id="row_160_7_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_69_" class="arrow" onclick="toggleFolder('160_7_69_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReduceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_69_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html" target="_self">tvm::relay::ReduceAttrs</a></td><td class="desc">Attributes for Reduce operators </td></tr>
-<tr id="row_160_7_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_70_" class="arrow" onclick="toggleFolder('160_7_70_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; RepeatAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_70_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html" target="_self">tvm::relay::RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
-<tr id="row_160_7_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_71_" class="arrow" onclick="toggleFolder('160_7_71_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; RequantizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_71_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">tvm::relay::qnn::RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
-<tr id="row_160_7_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_72_" class="arrow" onclick="toggleFolder('160_7_72_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReshapeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_72_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html" target="_self">tvm::relay::ReshapeAttrs</a></td><td class="desc">Attributes used in reshape operators </td></tr>
-<tr id="row_160_7_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_73_" class="arrow" onclick="toggleFolder('160_7_73_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Resize3dAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_73_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize3dAttrs.html" target="_self">tvm::relay::Resize3dAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
-<tr id="row_160_7_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_74_" class="arrow" onclick="toggleFolder('160_7_74_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ResizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_74_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ResizeAttrs.html" target="_self">tvm::relay::ResizeAttrs</a></td><td class="desc">Attributes used in image resize operator </td></tr>
-<tr id="row_160_7_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_75_" class="arrow" onclick="toggleFolder('160_7_75_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReverseAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_75_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html" target="_self">tvm::relay::ReverseAttrs</a></td><td class="desc">Attributes used in reverse operators </td></tr>
-<tr id="row_160_7_76_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_76_" class="arrow" onclick="toggleFolder('160_7_76_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReverseSequenceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_76_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html" target="_self">tvm::relay::ReverseSequenceAttrs</a></td><td class="desc">Attributes used in reverse_sequence operators </td></tr>
-<tr id="row_160_7_77_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_77_" class="arrow" onclick="toggleFolder('160_7_77_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ROIAlignAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_77_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIAlignAttrs.html" target="_self">tvm::relay::ROIAlignAttrs</a></td><td class="desc">Attributes used in roi_align operators </td></tr>
-<tr id="row_160_7_78_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_78_" class="arrow" onclick="toggleFolder('160_7_78_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ROIPoolAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_78_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIPoolAttrs.html" target="_self">tvm::relay::ROIPoolAttrs</a></td><td class="desc">Attributes used in roi_pool operators </td></tr>
-<tr id="row_160_7_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_79_" class="arrow" onclick="toggleFolder('160_7_79_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScatterAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_79_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html" target="_self">tvm::relay::ScatterAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_80_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_80_" class="arrow" onclick="toggleFolder('160_7_80_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SequenceMaskAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_80_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html" target="_self">tvm::relay::SequenceMaskAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_81_" class="arrow" onclick="toggleFolder('160_7_81_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ShapeFuncAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_81_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeFuncAttrs.html" target="_self">tvm::relay::ShapeFuncAttrs</a></td><td class="desc">Options for the shape function operator </td></tr>
-<tr id="row_160_7_82_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_82_" class="arrow" onclick="toggleFolder('160_7_82_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ShapeOfAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_82_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeOfAttrs.html" target="_self">tvm::relay::ShapeOfAttrs</a></td><td class="desc">Attributes for ShapeOf operator </td></tr>
-<tr id="row_160_7_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_83_" class="arrow" onclick="toggleFolder('160_7_83_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SliceLikeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_83_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SliceLikeAttrs.html" target="_self">tvm::relay::SliceLikeAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_84_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_84_" class="arrow" onclick="toggleFolder('160_7_84_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SoftmaxAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_84_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SoftmaxAttrs.html" target="_self">tvm::relay::SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
-<tr id="row_160_7_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_85_" class="arrow" onclick="toggleFolder('160_7_85_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseDenseAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_85_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseDenseAttrs.html" target="_self">tvm::relay::SparseDenseAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
-<tr id="row_160_7_86_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_86_" class="arrow" onclick="toggleFolder('160_7_86_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseToDenseAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_86_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseToDenseAttrs.html" target="_self">tvm::relay::SparseToDenseAttrs</a></td><td class="desc">Attributes used in sparse_to_dense operator </td></tr>
-<tr id="row_160_7_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_87_" class="arrow" onclick="toggleFolder('160_7_87_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_87_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseTransposeAttrs.html" target="_self">tvm::relay::SparseTransposeAttrs</a></td><td class="desc">Attributes for sparse_transpose operator </td></tr>
-<tr id="row_160_7_88_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_88_" class="arrow" onclick="toggleFolder('160_7_88_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SplitAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_88_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SplitAttrs.html" target="_self">tvm::relay::SplitAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_89_" class="arrow" onclick="toggleFolder('160_7_89_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SqueezeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_89_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SqueezeAttrs.html" target="_self">tvm::relay::SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
-<tr id="row_160_7_90_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_90_" class="arrow" onclick="toggleFolder('160_7_90_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; StackAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_90_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StackAttrs.html" target="_self">tvm::relay::StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
-<tr id="row_160_7_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_91_" class="arrow" onclick="toggleFolder('160_7_91_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; StridedSliceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_91_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StridedSliceAttrs.html" target="_self">tvm::relay::StridedSliceAttrs</a></td><td class="desc">Attributes for StridedSlice operator </td></tr>
-<tr id="row_160_7_92_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_92_" class="arrow" onclick="toggleFolder('160_7_92_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SubPixelAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_92_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SubPixelAttrs.html" target="_self">tvm::relay::SubPixelAttrs</a></td><td class="desc">Attributes used in subpixel operators </td></tr>
-<tr id="row_160_7_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_93_" class="arrow" onclick="toggleFolder('160_7_93_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TakeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_93_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TakeAttrs.html" target="_self">tvm::relay::TakeAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_94_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_94_" class="arrow" onclick="toggleFolder('160_7_94_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TileAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_94_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TileAttrs.html" target="_self">tvm::relay::TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
-<tr id="row_160_7_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_95_" class="arrow" onclick="toggleFolder('160_7_95_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TopKAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_95_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TopKAttrs.html" target="_self">tvm::relay::TopKAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_96_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_96_" class="arrow" onclick="toggleFolder('160_7_96_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TransposeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_96_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TransposeAttrs.html" target="_self">tvm::relay::TransposeAttrs</a></td><td class="desc">Attributes used in transpose operators </td></tr>
-<tr id="row_160_7_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_97_" class="arrow" onclick="toggleFolder('160_7_97_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UpSampling3DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_97_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSampling3DAttrs.html" target="_self">tvm::relay::UpSampling3DAttrs</a></td><td class="desc">Attributes for upsampling3d operator </td></tr>
-<tr id="row_160_7_98_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_98_" class="arrow" onclick="toggleFolder('160_7_98_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UpSamplingAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_98_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSamplingAttrs.html" target="_self">tvm::relay::UpSamplingAttrs</a></td><td class="desc">Attributes for upsampling operator </td></tr>
-<tr id="row_160_7_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_99_" class="arrow" onclick="toggleFolder('160_7_99_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; YoloReorgAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_160_7_99_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1YoloReorgAttrs.html" target="_self">tvm::relay::YoloReorgAttrs</a></td><td class="desc">Attributes used in yolo reorg operators </td></tr>
-<tr id="row_160_7_100_" 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_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DerivedType &gt;</a></td><td class="desc">The base class of the all the Use "curiously recurring template pattern" </td></tr>
-<tr id="row_160_7_101_" 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_1DictAttrsNode.html" target="_self">tvm::DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Att [...]
+<tr id="row_160_7_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_36_" class="arrow" onclick="toggleFolder('160_7_36_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DequantizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_36_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html" target="_self">tvm::relay::qnn::DequantizeAttrs</a></td><td class="desc">Attribute for dequantize operator </td></tr>
+<tr id="row_160_7_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_37_" class="arrow" onclick="toggleFolder('160_7_37_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DeviceCopyAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_37_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html" target="_self">tvm::relay::DeviceCopyAttrs</a></td><td class="desc">Options for the device copy operators </td></tr>
+<tr id="row_160_7_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_38_" class="arrow" onclick="toggleFolder('160_7_38_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DilateAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_38_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html" target="_self">tvm::relay::DilateAttrs</a></td><td class="desc">Attributes used in dilate operator </td></tr>
+<tr id="row_160_7_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_39_" class="arrow" onclick="toggleFolder('160_7_39_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Dilation2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_39_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html" target="_self">tvm::relay::Dilation2DAttrs</a></td><td class="desc">Attributes used in dilation operators </td></tr>
+<tr id="row_160_7_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_40_" class="arrow" onclick="toggleFolder('160_7_40_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DropoutAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_40_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html" target="_self">tvm::relay::DropoutAttrs</a></td><td class="desc">Attributes used in dropout operator </td></tr>
+<tr id="row_160_7_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_41_" class="arrow" onclick="toggleFolder('160_7_41_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ExpandDimsAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_41_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html" target="_self">tvm::relay::ExpandDimsAttrs</a></td><td class="desc">Attributes used in expand_dims operators </td></tr>
+<tr id="row_160_7_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_42_" class="arrow" onclick="toggleFolder('160_7_42_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; FIFOBufferAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_42_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html" target="_self">tvm::relay::FIFOBufferAttrs</a></td><td class="desc">Attributes for FIFO buffer operator </td></tr>
+<tr id="row_160_7_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_43_" class="arrow" onclick="toggleFolder('160_7_43_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; FixedPointMultiplyAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_43_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html" target="_self">tvm::relay::FixedPointMultiplyAttrs</a></td><td class="desc">Attributes for FixedPointMultiply operator </td></tr>
+<tr id="row_160_7_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_44_" class="arrow" onclick="toggleFolder('160_7_44_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GatherAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_44_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html" target="_self">tvm::relay::GatherAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_45_" class="arrow" onclick="toggleFolder('160_7_45_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GetValidCountsAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_45_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html" target="_self">tvm::relay::GetValidCountsAttrs</a></td><td class="desc">Attributes used in get_valid_counts operator </td></tr>
+<tr id="row_160_7_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_46_" class="arrow" onclick="toggleFolder('160_7_46_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GlobalPool2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_46_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html" target="_self">tvm::relay::GlobalPool2DAttrs</a></td><td class="desc">Attributes for global pool operator </td></tr>
+<tr id="row_160_7_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_47_" class="arrow" onclick="toggleFolder('160_7_47_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GridSampleAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_47_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html" target="_self">tvm::relay::GridSampleAttrs</a></td><td class="desc">Attributes used in image grid_sample operator </td></tr>
+<tr id="row_160_7_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_48_" class="arrow" onclick="toggleFolder('160_7_48_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GroupNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_48_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html" target="_self">tvm::relay::GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
+<tr id="row_160_7_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_49_" class="arrow" onclick="toggleFolder('160_7_49_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; InitOpAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_49_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html" target="_self">tvm::relay::InitOpAttrs</a></td><td class="desc">Attributes that specify a tensor </td></tr>
+<tr id="row_160_7_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_50_" class="arrow" onclick="toggleFolder('160_7_50_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; InstanceNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_50_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html" target="_self">tvm::relay::InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
+<tr id="row_160_7_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_51_" class="arrow" onclick="toggleFolder('160_7_51_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; L2NormalizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_51_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html" target="_self">tvm::relay::L2NormalizeAttrs</a></td><td class="desc">Attributes for L2Normalize operator </td></tr>
+<tr id="row_160_7_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_52_" class="arrow" onclick="toggleFolder('160_7_52_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LayerNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_52_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html" target="_self">tvm::relay::LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
+<tr id="row_160_7_53_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_53_" class="arrow" onclick="toggleFolder('160_7_53_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LayoutTransformAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_53_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html" target="_self">tvm::relay::LayoutTransformAttrs</a></td><td class="desc">Attributes for LayoutTransform operator </td></tr>
+<tr id="row_160_7_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_54_" class="arrow" onclick="toggleFolder('160_7_54_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LeakyReluAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_54_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html" target="_self">tvm::relay::LeakyReluAttrs</a></td><td class="desc">Attributes for leaky relu operator </td></tr>
+<tr id="row_160_7_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_55_" class="arrow" onclick="toggleFolder('160_7_55_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LRNAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_55_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html" target="_self">tvm::relay::LRNAttrs</a></td><td class="desc">Attributes for LRN operator </td></tr>
+<tr id="row_160_7_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_56_" class="arrow" onclick="toggleFolder('160_7_56_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool1DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_56_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html" target="_self">tvm::relay::MaxPool1DAttrs</a></td><td class="desc">Attributes for 1D max pool operator </td></tr>
+<tr id="row_160_7_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_57_" class="arrow" onclick="toggleFolder('160_7_57_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_57_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html" target="_self">tvm::relay::MaxPool2DAttrs</a></td><td class="desc">Attributes for max pool operator </td></tr>
+<tr id="row_160_7_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_58_" class="arrow" onclick="toggleFolder('160_7_58_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool3DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_58_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html" target="_self">tvm::relay::MaxPool3DAttrs</a></td><td class="desc">Attributes for 3D max pool operator </td></tr>
+<tr id="row_160_7_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_59_" class="arrow" onclick="toggleFolder('160_7_59_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MeshgridAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_59_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html" target="_self">tvm::relay::MeshgridAttrs</a></td><td class="desc">Attributes used in meshgrid operators </td></tr>
+<tr id="row_160_7_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_60_" class="arrow" onclick="toggleFolder('160_7_60_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MirrorPadAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_60_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html" target="_self">tvm::relay::MirrorPadAttrs</a></td><td class="desc">Attributes used for the MirrorPadding operator </td></tr>
+<tr id="row_160_7_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_61_" class="arrow" onclick="toggleFolder('160_7_61_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MultiBoxPriorAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_61_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html" target="_self">tvm::relay::MultiBoxPriorAttrs</a></td><td class="desc">Attributes used in multibox_prior operators </td></tr>
+<tr id="row_160_7_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_62_" class="arrow" onclick="toggleFolder('160_7_62_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MultiBoxTransformLocAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_62_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html" target="_self">tvm::relay::MultiBoxTransformLocAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_63_" class="arrow" onclick="toggleFolder('160_7_63_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NdarraySizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_63_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html" target="_self">tvm::relay::NdarraySizeAttrs</a></td><td class="desc">Attributes for ndarray_size operator </td></tr>
+<tr id="row_160_7_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_64_" class="arrow" onclick="toggleFolder('160_7_64_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NonMaximumSuppressionAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_64_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html" target="_self">tvm::relay::NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in non_maximum_suppression operator </td></tr>
+<tr id="row_160_7_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_65_" class="arrow" onclick="toggleFolder('160_7_65_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; OnDeviceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_65_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html" target="_self">tvm::relay::OnDeviceAttrs</a></td><td class="desc">Options for the device annotation operators </td></tr>
+<tr id="row_160_7_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_66_" class="arrow" onclick="toggleFolder('160_7_66_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; OneHotAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_66_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html" target="_self">tvm::relay::OneHotAttrs</a></td><td class="desc">Attributes used in one-hot operator </td></tr>
+<tr id="row_160_7_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_67_" class="arrow" onclick="toggleFolder('160_7_67_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; PadAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_67_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html" target="_self">tvm::relay::PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
+<tr id="row_160_7_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_68_" class="arrow" onclick="toggleFolder('160_7_68_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; PReluAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_68_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html" target="_self">tvm::relay::PReluAttrs</a></td><td class="desc">Attributes for prelu operator </td></tr>
+<tr id="row_160_7_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_69_" class="arrow" onclick="toggleFolder('160_7_69_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ProposalAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_69_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html" target="_self">tvm::relay::ProposalAttrs</a></td><td class="desc">Attributes used in proposal operators </td></tr>
+<tr id="row_160_7_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_70_" class="arrow" onclick="toggleFolder('160_7_70_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; QuantizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_70_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">tvm::relay::qnn::QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
+<tr id="row_160_7_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_71_" class="arrow" onclick="toggleFolder('160_7_71_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReduceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_71_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html" target="_self">tvm::relay::ReduceAttrs</a></td><td class="desc">Attributes for Reduce operators </td></tr>
+<tr id="row_160_7_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_72_" class="arrow" onclick="toggleFolder('160_7_72_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; RepeatAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_72_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html" target="_self">tvm::relay::RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
+<tr id="row_160_7_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_73_" class="arrow" onclick="toggleFolder('160_7_73_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; RequantizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_73_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">tvm::relay::qnn::RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
+<tr id="row_160_7_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_74_" class="arrow" onclick="toggleFolder('160_7_74_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReshapeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_74_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html" target="_self">tvm::relay::ReshapeAttrs</a></td><td class="desc">Attributes used in reshape operators </td></tr>
+<tr id="row_160_7_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_75_" class="arrow" onclick="toggleFolder('160_7_75_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReshapeTensorAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_75_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html" target="_self">tvm::relay::ReshapeTensorAttrs</a></td><td class="desc">Attributes for VM reshape_tensor operator </td></tr>
+<tr id="row_160_7_76_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_76_" class="arrow" onclick="toggleFolder('160_7_76_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Resize3dAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_76_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize3dAttrs.html" target="_self">tvm::relay::Resize3dAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
+<tr id="row_160_7_77_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_77_" class="arrow" onclick="toggleFolder('160_7_77_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ResizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_77_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ResizeAttrs.html" target="_self">tvm::relay::ResizeAttrs</a></td><td class="desc">Attributes used in image resize operator </td></tr>
+<tr id="row_160_7_78_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_78_" class="arrow" onclick="toggleFolder('160_7_78_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReverseAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_78_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html" target="_self">tvm::relay::ReverseAttrs</a></td><td class="desc">Attributes used in reverse operators </td></tr>
+<tr id="row_160_7_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_79_" class="arrow" onclick="toggleFolder('160_7_79_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReverseSequenceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_79_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html" target="_self">tvm::relay::ReverseSequenceAttrs</a></td><td class="desc">Attributes used in reverse_sequence operators </td></tr>
+<tr id="row_160_7_80_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_80_" class="arrow" onclick="toggleFolder('160_7_80_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ROIAlignAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_80_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIAlignAttrs.html" target="_self">tvm::relay::ROIAlignAttrs</a></td><td class="desc">Attributes used in roi_align operators </td></tr>
+<tr id="row_160_7_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_81_" class="arrow" onclick="toggleFolder('160_7_81_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ROIPoolAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_81_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIPoolAttrs.html" target="_self">tvm::relay::ROIPoolAttrs</a></td><td class="desc">Attributes used in roi_pool operators </td></tr>
+<tr id="row_160_7_82_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_82_" class="arrow" onclick="toggleFolder('160_7_82_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScatterAddAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_82_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html" target="_self">tvm::relay::ScatterAddAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_83_" class="arrow" onclick="toggleFolder('160_7_83_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScatterAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_83_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html" target="_self">tvm::relay::ScatterAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_84_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_84_" class="arrow" onclick="toggleFolder('160_7_84_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SequenceMaskAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_84_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html" target="_self">tvm::relay::SequenceMaskAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_85_" class="arrow" onclick="toggleFolder('160_7_85_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ShapeFuncAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_85_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeFuncAttrs.html" target="_self">tvm::relay::ShapeFuncAttrs</a></td><td class="desc">Options for the shape function operator </td></tr>
+<tr id="row_160_7_86_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_86_" class="arrow" onclick="toggleFolder('160_7_86_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ShapeOfAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_86_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeOfAttrs.html" target="_self">tvm::relay::ShapeOfAttrs</a></td><td class="desc">Attributes for ShapeOf operator </td></tr>
+<tr id="row_160_7_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_87_" class="arrow" onclick="toggleFolder('160_7_87_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SliceLikeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_87_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SliceLikeAttrs.html" target="_self">tvm::relay::SliceLikeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_88_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_88_" class="arrow" onclick="toggleFolder('160_7_88_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SoftmaxAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_88_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SoftmaxAttrs.html" target="_self">tvm::relay::SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
+<tr id="row_160_7_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_89_" class="arrow" onclick="toggleFolder('160_7_89_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseDenseAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_89_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseDenseAttrs.html" target="_self">tvm::relay::SparseDenseAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
+<tr id="row_160_7_90_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_90_" class="arrow" onclick="toggleFolder('160_7_90_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseToDenseAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_90_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseToDenseAttrs.html" target="_self">tvm::relay::SparseToDenseAttrs</a></td><td class="desc">Attributes used in sparse_to_dense operator </td></tr>
+<tr id="row_160_7_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_91_" class="arrow" onclick="toggleFolder('160_7_91_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_91_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseTransposeAttrs.html" target="_self">tvm::relay::SparseTransposeAttrs</a></td><td class="desc">Attributes for sparse_transpose operator </td></tr>
+<tr id="row_160_7_92_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_92_" class="arrow" onclick="toggleFolder('160_7_92_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SplitAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_92_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SplitAttrs.html" target="_self">tvm::relay::SplitAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_93_" class="arrow" onclick="toggleFolder('160_7_93_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SqueezeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_93_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SqueezeAttrs.html" target="_self">tvm::relay::SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
+<tr id="row_160_7_94_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_94_" class="arrow" onclick="toggleFolder('160_7_94_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; StackAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_94_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StackAttrs.html" target="_self">tvm::relay::StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
+<tr id="row_160_7_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_95_" class="arrow" onclick="toggleFolder('160_7_95_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; StridedSliceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_95_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StridedSliceAttrs.html" target="_self">tvm::relay::StridedSliceAttrs</a></td><td class="desc">Attributes for StridedSlice operator </td></tr>
+<tr id="row_160_7_96_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_96_" class="arrow" onclick="toggleFolder('160_7_96_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SubPixelAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_96_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SubPixelAttrs.html" target="_self">tvm::relay::SubPixelAttrs</a></td><td class="desc">Attributes used in subpixel operators </td></tr>
+<tr id="row_160_7_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_97_" class="arrow" onclick="toggleFolder('160_7_97_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TakeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_97_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TakeAttrs.html" target="_self">tvm::relay::TakeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_98_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_98_" class="arrow" onclick="toggleFolder('160_7_98_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TileAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_98_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TileAttrs.html" target="_self">tvm::relay::TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
+<tr id="row_160_7_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_99_" class="arrow" onclick="toggleFolder('160_7_99_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TopKAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_99_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TopKAttrs.html" target="_self">tvm::relay::TopKAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_100_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_100_" class="arrow" onclick="toggleFolder('160_7_100_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TransposeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_100_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TransposeAttrs.html" target="_self">tvm::relay::TransposeAttrs</a></td><td class="desc">Attributes used in transpose operators </td></tr>
+<tr id="row_160_7_101_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_101_" class="arrow" onclick="toggleFolder('160_7_101_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UpSampling3DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_101_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSampling3DAttrs.html" target="_self">tvm::relay::UpSampling3DAttrs</a></td><td class="desc">Attributes for upsampling3d operator </td></tr>
+<tr id="row_160_7_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_102_" class="arrow" onclick="toggleFolder('160_7_102_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UpSamplingAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_102_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSamplingAttrs.html" target="_self">tvm::relay::UpSamplingAttrs</a></td><td class="desc">Attributes for upsampling operator </td></tr>
+<tr id="row_160_7_103_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_7_103_" class="arrow" onclick="toggleFolder('160_7_103_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; YoloReorgAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_160_7_103_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1YoloReorgAttrs.html" target="_self">tvm::relay::YoloReorgAttrs</a></td><td class="desc">Attributes used in yolo reorg operators </td></tr>
+<tr id="row_160_7_104_" 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_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DerivedType &gt;</a></td><td class="desc">The base class of the all the Use "curiously recurring template pattern" </td></tr>
+<tr id="row_160_7_105_" 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_1DictAttrsNode.html" target="_self">tvm::DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Att [...]
 <tr id="row_160_8_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_160_8_" class="arrow" onclick="toggleFolder('160_8_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExprNode.html" target="_self">tvm::BaseExprNode</a></td><td class="desc">Base type of all the expressions </td></tr>
 <tr id="row_160_8_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_160_8_0_" class="arrow" onclick="toggleFolder('160_8_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprNode.html" target="_self">tvm::PrimExprNode</a></td><td class="desc">Base node of all primitive expressions </td></tr>
 <tr id="row_160_8_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_160_8_0_0_" class="arrow" onclick="toggleFolder('160_8_0_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_self">tvm::tir::BinaryOpNode&lt; AddNode &gt;</a></td><td class="desc"></td></tr>
diff --git a/docs/api/doxygen/include_2tvm_2relay_2attrs_2transform_8h.html b/docs/api/doxygen/include_2tvm_2relay_2attrs_2transform_8h.html
index d6e724a..9f20e3b 100644
--- a/docs/api/doxygen/include_2tvm_2relay_2attrs_2transform_8h.html
+++ b/docs/api/doxygen/include_2tvm_2relay_2attrs_2transform_8h.html
@@ -133,6 +133,8 @@ Classes</h2></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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_1relay_1_1ScatterAttrs.html">tvm::relay::ScatterAttrs</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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_1relay_1_1ScatterAddAttrs.html">tvm::relay::ScatterAddAttrs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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_1relay_1_1GatherAttrs.html">tvm::relay::GatherAttrs</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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_1relay_1_1TakeAttrs.html">tvm::relay::TakeAttrs</a></td></tr>
@@ -174,6 +176,9 @@ 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_1relay_1_1ClipAttrs.html">tvm::relay::ClipAttrs</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attributes for Clip operator.  <a href="structtvm_1_1relay_1_1ClipAttrs.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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_1relay_1_1FixedPointMultiplyAttrs.html">tvm::relay::FixedPointMultiplyAttrs</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attributes for FixedPointMultiply operator.  <a href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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_1relay_1_1LayoutTransformAttrs.html">tvm::relay::LayoutTransformAttrs</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attributes for LayoutTransform operator.  <a href="structtvm_1_1relay_1_1LayoutTransformAttrs.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/docs/api/doxygen/include_2tvm_2relay_2attrs_2transform_8h_source.html b/docs/api/doxygen/include_2tvm_2relay_2attrs_2transform_8h_source.html
index b6d0908..8fa85af 100644
--- a/docs/api/doxygen/include_2tvm_2relay_2attrs_2transform_8h_source.html
+++ b/docs/api/doxygen/include_2tvm_2relay_2attrs_2transform_8h_source.html
@@ -89,115 +89,122 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">transform.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="include_2tvm_2relay_2attrs_2transform_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  [...]
+<a href="include_2tvm_2relay_2attrs_2transform_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  [...]
 <div class="ttc" id="structtvm_1_1relay_1_1ReshapeAttrs_html_a02ca8a36e60dfcd523df035af8b6c006"><div class="ttname"><a href="structtvm_1_1relay_1_1ReshapeAttrs.html#a02ca8a36e60dfcd523df035af8b6c006">tvm::relay::ReshapeAttrs::reverse</a></div><div class="ttdeci">bool reverse</div><div class="ttdef"><b>Definition:</b> transform.h:86</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ClipAttrs_html_af469a6f2f29cca8b0780e3feb7ed0502"><div class="ttname"><a href="structtvm_1_1relay_1_1ClipAttrs.html#af469a6f2f29cca8b0780e3feb7ed0502">tvm::relay::ClipAttrs::a_max</a></div><div class="ttdeci">double a_max</div><div class="ttdef"><b>Definition:</b> transform.h:293</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1InitOpAttrs_html_a42b2fdeafe5dd5da210743121c7d376b"><div class="ttname"><a href="structtvm_1_1relay_1_1InitOpAttrs.html#a42b2fdeafe5dd5da210743121c7d376b">tvm::relay::InitOpAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(InitOpAttrs,&quot;relay.attrs.InitOpAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:135</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ReverseAttrs_html_a0fe0a352985941489400e211799f1b8a"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseAttrs.html#a0fe0a352985941489400e211799f1b8a">tvm::relay::ReverseAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:202</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ClipAttrs_html_af469a6f2f29cca8b0780e3feb7ed0502"><div class="ttname"><a href="structtvm_1_1relay_1_1ClipAttrs.html#af469a6f2f29cca8b0780e3feb7ed0502">tvm::relay::ClipAttrs::a_max</a></div><div class="ttdeci">double a_max</div><div class="ttdef"><b>Definition:</b> transform.h:301</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1InitOpAttrs_html_a42b2fdeafe5dd5da210743121c7d376b"><div class="ttname"><a href="structtvm_1_1relay_1_1InitOpAttrs.html#a42b2fdeafe5dd5da210743121c7d376b">tvm::relay::InitOpAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(InitOpAttrs,&quot;relay.attrs.InitOpAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:143</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ReverseAttrs_html_a0fe0a352985941489400e211799f1b8a"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseAttrs.html#a0fe0a352985941489400e211799f1b8a">tvm::relay::ReverseAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:210</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ConcatenateAttrs_html_ab12dc6de2e0bd0804ef0a12670cefa50"><div class="ttname"><a href="structtvm_1_1relay_1_1ConcatenateAttrs.html#ab12dc6de2e0bd0804ef0a12670cefa50">tvm::relay::ConcatenateAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ConcatenateAttrs,&quot;relay.attrs.ConcatenateAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:66</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SliceLikeAttrs_html_a51c18ba5f84813d9d48f3c09a61a58d1"><div class="ttname"><a href="structtvm_1_1relay_1_1SliceLikeAttrs.html#a51c18ba5f84813d9d48f3c09a61a58d1">tvm::relay::SliceLikeAttrs::axes</a></div><div class="ttdeci">Array&lt; Integer &gt; axes</div><div class="ttdef"><b>Definition:</b> transform.h:280</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SliceLikeAttrs_html_a51c18ba5f84813d9d48f3c09a61a58d1"><div class="ttname"><a href="structtvm_1_1relay_1_1SliceLikeAttrs.html#a51c18ba5f84813d9d48f3c09a61a58d1">tvm::relay::SliceLikeAttrs::axes</a></div><div class="ttdeci">Array&lt; Integer &gt; axes</div><div class="ttdef"><b>Definition:</b> transform.h:288</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1CastAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1CastAttrs.html">tvm::relay::CastAttrs</a></div><div class="ttdoc">data type cast </div><div class="ttdef"><b>Definition:</b> transform.h:37</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1FixedPointMultiplyAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html">tvm::relay::FixedPointMultiplyAttrs</a></div><div class="ttdoc">Attributes for FixedPointMultiply operator. </div><div class="ttdef"><b>Definition:</b> transform.h:310</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ExpandDimsAttrs_html_a289f19d5f47a1242a04a909c73ca34ac"><div class="ttname"><a href="structtvm_1_1relay_1_1ExpandDimsAttrs.html#a289f19d5f47a1242a04a909c73ca34ac">tvm::relay::ExpandDimsAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> transform.h:47</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SliceLikeAttrs_html_a52e285a2e6f505d2b198dfb49c2705cc"><div class="ttname"><a href="structtvm_1_1relay_1_1SliceLikeAttrs.html#a52e285a2e6f505d2b198dfb49c2705cc">tvm::relay::SliceLikeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SliceLikeAttrs,&quot;relay.attrs.SliceLikeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:282</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1TakeAttrs_html_ac7fd604371e248cce170a05be605bd43"><div class="ttname"><a href="structtvm_1_1relay_1_1TakeAttrs.html#ac7fd604371e248cce170a05be605bd43">tvm::relay::TakeAttrs::mode</a></div><div class="ttdeci">std::string mode</div><div class="ttdef"><b>Definition:</b> transform.h:116</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ShapeOfAttrs_html_a6e8f4295faa69f31eaf7e8c6f3961e89"><div class="ttname"><a href="structtvm_1_1relay_1_1ShapeOfAttrs.html#a6e8f4295faa69f31eaf7e8c6f3961e89">tvm::relay::ShapeOfAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ShapeOfAttrs,&quot;relay.attrs.ShapeOfAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:316</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1LayoutTransformAttrs_html_ad0f658bf9e6ac538840fc71b1d312f3b"><div class="ttname"><a href="structtvm_1_1relay_1_1LayoutTransformAttrs.html#ad0f658bf9e6ac538840fc71b1d312f3b">tvm::relay::LayoutTransformAttrs::src_layout</a></div><div class="ttdeci">std::string src_layout</div><div class="ttdef"><b>Definition:</b> transform.h:303</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ReverseSequenceAttrs_html_a06773daa80357364ded0fbc9613a2b14"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html#a06773daa80357364ded0fbc9613a2b14">tvm::relay::ReverseSequenceAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ReverseSequenceAttrs,&quot;relay.attrs.ReverseSequenceAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:215</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html_a8287fc14b2ad6671f6ab51ba77134aa1"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html#a8287fc14b2ad6671f6ab51ba77134aa1">tvm::relay::OneHotAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> transform.h:353</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SliceLikeAttrs_html_a52e285a2e6f505d2b198dfb49c2705cc"><div class="ttname"><a href="structtvm_1_1relay_1_1SliceLikeAttrs.html#a52e285a2e6f505d2b198dfb49c2705cc">tvm::relay::SliceLikeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SliceLikeAttrs,&quot;relay.attrs.SliceLikeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:290</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1TakeAttrs_html_ac7fd604371e248cce170a05be605bd43"><div class="ttname"><a href="structtvm_1_1relay_1_1TakeAttrs.html#ac7fd604371e248cce170a05be605bd43">tvm::relay::TakeAttrs::mode</a></div><div class="ttdeci">std::string mode</div><div class="ttdef"><b>Definition:</b> transform.h:124</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ShapeOfAttrs_html_a6e8f4295faa69f31eaf7e8c6f3961e89"><div class="ttname"><a href="structtvm_1_1relay_1_1ShapeOfAttrs.html#a6e8f4295faa69f31eaf7e8c6f3961e89">tvm::relay::ShapeOfAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ShapeOfAttrs,&quot;relay.attrs.ShapeOfAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:337</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1LayoutTransformAttrs_html_ad0f658bf9e6ac538840fc71b1d312f3b"><div class="ttname"><a href="structtvm_1_1relay_1_1LayoutTransformAttrs.html#ad0f658bf9e6ac538840fc71b1d312f3b">tvm::relay::LayoutTransformAttrs::src_layout</a></div><div class="ttdeci">std::string src_layout</div><div class="ttdef"><b>Definition:</b> transform.h:324</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ReverseSequenceAttrs_html_a06773daa80357364ded0fbc9613a2b14"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html#a06773daa80357364ded0fbc9613a2b14">tvm::relay::ReverseSequenceAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ReverseSequenceAttrs,&quot;relay.attrs.ReverseSequenceAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:223</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html_a8287fc14b2ad6671f6ab51ba77134aa1"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html#a8287fc14b2ad6671f6ab51ba77134aa1">tvm::relay::OneHotAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> transform.h:374</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ExpandDimsAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ExpandDimsAttrs.html">tvm::relay::ExpandDimsAttrs</a></div><div class="ttdoc">Attributes used in expand_dims operators. </div><div class="ttdef"><b>Definition:</b> transform.h:46</div></div>
 <div class="ttc" id="relay_2expr_8h_html"><div class="ttname"><a href="relay_2expr_8h.html">expr.h</a></div><div class="ttdoc">Relay expression language. </div></div>
 <div class="ttc" id="namespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdef"><b>Definition:</b> analyzer.h:36</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1TransposeAttrs_html_a69ccef64142afaab9a5fc6015714ab55"><div class="ttname"><a href="structtvm_1_1relay_1_1TransposeAttrs.html#a69ccef64142afaab9a5fc6015714ab55">tvm::relay::TransposeAttrs::axes</a></div><div class="ttdeci">Array&lt; Integer &gt; axes</div><div class="ttdef"><b>Definition:</b> transform.h:77</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html_ae77cd5a12123839e40c9ff43cfe26d12"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html#ae77cd5a12123839e40c9ff43cfe26d12">tvm::relay::OneHotAttrs::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdef"><b>Definition:</b> transform.h:354</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SplitAttrs_html_aa7f0e8e2bab7a0726918fa9ea5d3258f"><div class="ttname"><a href="structtvm_1_1relay_1_1SplitAttrs.html#aa7f0e8e2bab7a0726918fa9ea5d3258f">tvm::relay::SplitAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> transform.h:242</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1TileAttrs_html_a75c0e110298aad35ad7697b6f17740ae"><div class="ttname"><a href="structtvm_1_1relay_1_1TileAttrs.html#a75c0e110298aad35ad7697b6f17740ae">tvm::relay::TileAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(TileAttrs,&quot;relay.attrs.TileAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:193</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html_ae77cd5a12123839e40c9ff43cfe26d12"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html#ae77cd5a12123839e40c9ff43cfe26d12">tvm::relay::OneHotAttrs::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdef"><b>Definition:</b> transform.h:375</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SplitAttrs_html_aa7f0e8e2bab7a0726918fa9ea5d3258f"><div class="ttname"><a href="structtvm_1_1relay_1_1SplitAttrs.html#aa7f0e8e2bab7a0726918fa9ea5d3258f">tvm::relay::SplitAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> transform.h:250</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1TileAttrs_html_a75c0e110298aad35ad7697b6f17740ae"><div class="ttname"><a href="structtvm_1_1relay_1_1TileAttrs.html#a75c0e110298aad35ad7697b6f17740ae">tvm::relay::TileAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(TileAttrs,&quot;relay.attrs.TileAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:201</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1FixedPointMultiplyAttrs_html_a0c430aab7815a0c2d2a26e2d1826c2eb"><div class="ttname"><a href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#a0c430aab7815a0c2d2a26e2d1826c2eb">tvm::relay::FixedPointMultiplyAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(FixedPointMultiplyAttrs,&quot;relay.attrs.FixedPointMultiplyAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:314</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1CastAttrs_html_a0ba181c2c6c542448a841f3a87e360c7"><div class="ttname"><a href="structtvm_1_1relay_1_1CastAttrs.html#a0ba181c2c6c542448a841f3a87e360c7">tvm::relay::CastAttrs::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdef"><b>Definition:</b> transform.h:38</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1TakeAttrs_html_aa848b10dddc041c3620bc823046b04ca"><div class="ttname"><a href="structtvm_1_1relay_1_1TakeAttrs.html#aa848b10dddc041c3620bc823046b04ca">tvm::relay::TakeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(TakeAttrs,&quot;relay.attrs.TakeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:118</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1StackAttrs_html_a5200ebdce837b988b49b03d062c987d3"><div class="ttname"><a href="structtvm_1_1relay_1_1StackAttrs.html#a5200ebdce837b988b49b03d062c987d3">tvm::relay::StackAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(StackAttrs,&quot;relay.attrs.StackAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:172</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1InitOpAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1InitOpAttrs.html">tvm::relay::InitOpAttrs</a></div><div class="ttdoc">Attributes that specify a tensor. </div><div class="ttdef"><b>Definition:</b> transform.h:131</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SequenceMaskAttrs_html_a7273f14f80b4dbaf455b47d7a2f6ad46"><div class="ttname"><a href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a7273f14f80b4dbaf455b47d7a2f6ad46">tvm::relay::SequenceMaskAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> transform.h:323</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1RepeatAttrs_html_ade3005a90c1ff77a1f583c4a7ba898e0"><div class="ttname"><a href="structtvm_1_1relay_1_1RepeatAttrs.html#ade3005a90c1ff77a1f583c4a7ba898e0">tvm::relay::RepeatAttrs::repeats</a></div><div class="ttdeci">Integer repeats</div><div class="ttdef"><b>Definition:</b> transform.h:180</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1TakeAttrs_html_aa848b10dddc041c3620bc823046b04ca"><div class="ttname"><a href="structtvm_1_1relay_1_1TakeAttrs.html#aa848b10dddc041c3620bc823046b04ca">tvm::relay::TakeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(TakeAttrs,&quot;relay.attrs.TakeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:126</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1StackAttrs_html_a5200ebdce837b988b49b03d062c987d3"><div class="ttname"><a href="structtvm_1_1relay_1_1StackAttrs.html#a5200ebdce837b988b49b03d062c987d3">tvm::relay::StackAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(StackAttrs,&quot;relay.attrs.StackAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:180</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1InitOpAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1InitOpAttrs.html">tvm::relay::InitOpAttrs</a></div><div class="ttdoc">Attributes that specify a tensor. </div><div class="ttdef"><b>Definition:</b> transform.h:139</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SequenceMaskAttrs_html_a7273f14f80b4dbaf455b47d7a2f6ad46"><div class="ttname"><a href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a7273f14f80b4dbaf455b47d7a2f6ad46">tvm::relay::SequenceMaskAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> transform.h:344</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1RepeatAttrs_html_ade3005a90c1ff77a1f583c4a7ba898e0"><div class="ttname"><a href="structtvm_1_1relay_1_1RepeatAttrs.html#ade3005a90c1ff77a1f583c4a7ba898e0">tvm::relay::RepeatAttrs::repeats</a></div><div class="ttdeci">Integer repeats</div><div class="ttdef"><b>Definition:</b> transform.h:188</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ScatterAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ScatterAttrs.html">tvm::relay::ScatterAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:96</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ReshapeAttrs_html_a9bca32c3acff2ed8fd6bc63a50f82051"><div class="ttname"><a href="structtvm_1_1relay_1_1ReshapeAttrs.html#a9bca32c3acff2ed8fd6bc63a50f82051">tvm::relay::ReshapeAttrs::newshape</a></div><div class="ttdeci">Array&lt; Integer &gt; newshape</div><div class="ttdef"><b>Definition:</b> transform.h:85</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1TransposeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1TransposeAttrs.html">tvm::relay::TransposeAttrs</a></div><div class="ttdoc">Attributes used in transpose operators. </div><div class="ttdef"><b>Definition:</b> transform.h:76</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html">tvm::relay::OneHotAttrs</a></div><div class="ttdoc">Attributes used in one-hot operator. </div><div class="ttdef"><b>Definition:</b> transform.h:351</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1GatherAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1GatherAttrs.html">tvm::relay::GatherAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:104</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ClipAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ClipAttrs.html">tvm::relay::ClipAttrs</a></div><div class="ttdoc">Attributes for Clip operator. </div><div class="ttdef"><b>Definition:</b> transform.h:291</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1NdarraySizeAttrs_html_a827a1ea4525dba657390f53afe85e4c5"><div class="ttname"><a href="structtvm_1_1relay_1_1NdarraySizeAttrs.html#a827a1ea4525dba657390f53afe85e4c5">tvm::relay::NdarraySizeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(NdarraySizeAttrs,&quot;relay.attrs.NdarraySizeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:345</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html">tvm::relay::OneHotAttrs</a></div><div class="ttdoc">Attributes used in one-hot operator. </div><div class="ttdef"><b>Definition:</b> transform.h:372</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1FixedPointMultiplyAttrs_html_a317374d804a576b50d9a51e4a8ee3ff2"><div class="ttname"><a href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#a317374d804a576b50d9a51e4a8ee3ff2">tvm::relay::FixedPointMultiplyAttrs::multiplier</a></div><div class="ttdeci">int32_t multiplier</div><div class="ttdef"><b>Definition:</b> transform.h:311</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1GatherAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1GatherAttrs.html">tvm::relay::GatherAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:112</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ClipAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ClipAttrs.html">tvm::relay::ClipAttrs</a></div><div class="ttdoc">Attributes for Clip operator. </div><div class="ttdef"><b>Definition:</b> transform.h:299</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1NdarraySizeAttrs_html_a827a1ea4525dba657390f53afe85e4c5"><div class="ttname"><a href="structtvm_1_1relay_1_1NdarraySizeAttrs.html#a827a1ea4525dba657390f53afe85e4c5">tvm::relay::NdarraySizeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(NdarraySizeAttrs,&quot;relay.attrs.NdarraySizeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:366</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ScatterAddAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ScatterAddAttrs.html">tvm::relay::ScatterAddAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:104</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ExpandDimsAttrs_html_af2885538e2f74029ecad343a9844fc8a"><div class="ttname"><a href="structtvm_1_1relay_1_1ExpandDimsAttrs.html#af2885538e2f74029ecad343a9844fc8a">tvm::relay::ExpandDimsAttrs::num_newaxis</a></div><div class="ttdeci">int num_newaxis</div><div class="ttdef"><b>Definition:</b> transform.h:48</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html">tvm::relay::StridedSliceAttrs</a></div><div class="ttdoc">Attributes for StridedSlice operator. </div><div class="ttdef"><b>Definition:</b> transform.h:257</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_ade582278d58f236cccf69167cdd961f1"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#ade582278d58f236cccf69167cdd961f1">tvm::relay::StridedSliceAttrs::begin</a></div><div class="ttdeci">Optional&lt; Array&lt; Integer &gt; &gt; begin</div><div class="ttdef"><b>Definition:</b> transform.h:258</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html">tvm::relay::StridedSliceAttrs</a></div><div class="ttdoc">Attributes for StridedSlice operator. </div><div class="ttdef"><b>Definition:</b> transform.h:265</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_ade582278d58f236cccf69167cdd961f1"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#ade582278d58f236cccf69167cdd961f1">tvm::relay::StridedSliceAttrs::begin</a></div><div class="ttdeci">Optional&lt; Array&lt; Integer &gt; &gt; begin</div><div class="ttdef"><b>Definition:</b> transform.h:266</div></div>
 <div class="ttc" id="ir_2attrs_8h_html"><div class="ttname"><a href="ir_2attrs_8h.html">attrs.h</a></div><div class="ttdoc">Helpers for attribute objects. </div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SplitAttrs_html_a285b0073659f6403fb5ef3808347f3c9"><div class="ttname"><a href="structtvm_1_1relay_1_1SplitAttrs.html#a285b0073659f6403fb5ef3808347f3c9">tvm::relay::SplitAttrs::indices_or_sections</a></div><div class="ttdeci">ObjectRef indices_or_sections</div><div class="ttdef"><b>Definition:</b> transform.h:241</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SliceLikeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SliceLikeAttrs.html">tvm::relay::SliceLikeAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:279</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1InitOpAttrs_html_aaaec76cc5ea9a543c4ea174a6b38bf5e"><div class="ttname"><a href="structtvm_1_1relay_1_1InitOpAttrs.html#aaaec76cc5ea9a543c4ea174a6b38bf5e">tvm::relay::InitOpAttrs::shape</a></div><div class="ttdeci">Optional&lt; Array&lt; Integer &gt; &gt; shape</div><div class="ttdef"><b>Definition:</b> transform.h:132</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_ae8ae5bc1551b406a4f52395af343c2ce"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#ae8ae5bc1551b406a4f52395af343c2ce">tvm::relay::ArangeAttrs::start</a></div><div class="ttdeci">Expr start</div><div class="ttdef"><b>Definition:</b> transform.h:143</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SplitAttrs_html_a285b0073659f6403fb5ef3808347f3c9"><div class="ttname"><a href="structtvm_1_1relay_1_1SplitAttrs.html#a285b0073659f6403fb5ef3808347f3c9">tvm::relay::SplitAttrs::indices_or_sections</a></div><div class="ttdeci">ObjectRef indices_or_sections</div><div class="ttdef"><b>Definition:</b> transform.h:249</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SliceLikeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SliceLikeAttrs.html">tvm::relay::SliceLikeAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:287</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1InitOpAttrs_html_aaaec76cc5ea9a543c4ea174a6b38bf5e"><div class="ttname"><a href="structtvm_1_1relay_1_1InitOpAttrs.html#aaaec76cc5ea9a543c4ea174a6b38bf5e">tvm::relay::InitOpAttrs::shape</a></div><div class="ttdeci">Optional&lt; Array&lt; Integer &gt; &gt; shape</div><div class="ttdef"><b>Definition:</b> transform.h:140</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_ae8ae5bc1551b406a4f52395af343c2ce"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#ae8ae5bc1551b406a4f52395af343c2ce">tvm::relay::ArangeAttrs::start</a></div><div class="ttdeci">Expr start</div><div class="ttdef"><b>Definition:</b> transform.h:151</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ReshapeAttrs_html_a62263922c82212f2ca5864b10e1958b7"><div class="ttname"><a href="structtvm_1_1relay_1_1ReshapeAttrs.html#a62263922c82212f2ca5864b10e1958b7">tvm::relay::ReshapeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ReshapeAttrs,&quot;relay.attrs.ReshapeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:87</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html_a4814ce0d6608d11371480abe0826ee02"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html#a4814ce0d6608d11371480abe0826ee02">tvm::relay::OneHotAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(OneHotAttrs,&quot;relay.attrs.OneHotAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:356</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html_a4814ce0d6608d11371480abe0826ee02"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html#a4814ce0d6608d11371480abe0826ee02">tvm::relay::OneHotAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(OneHotAttrs,&quot;relay.attrs.OneHotAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:377</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ScatterAddAttrs_html_a3070751866037d6e9a3899ed8fc73b58"><div class="ttname"><a href="structtvm_1_1relay_1_1ScatterAddAttrs.html#a3070751866037d6e9a3899ed8fc73b58">tvm::relay::ScatterAddAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ScatterAddAttrs,&quot;relay.attrs.ScatterAddAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:107</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1DataType_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></div><div class="ttdoc">Runtime primitive data type. </div><div class="ttdef"><b>Definition:</b> data_type.h:41</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ReverseAttrs_html_a590ab4ec8765ba7b26e2914abc8fdb4b"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseAttrs.html#a590ab4ec8765ba7b26e2914abc8fdb4b">tvm::relay::ReverseAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ReverseAttrs,&quot;relay.attrs.ReverseAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:203</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1LayoutTransformAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1LayoutTransformAttrs.html">tvm::relay::LayoutTransformAttrs</a></div><div class="ttdoc">Attributes for LayoutTransform operator. </div><div class="ttdef"><b>Definition:</b> transform.h:302</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html">tvm::relay::ArangeAttrs</a></div><div class="ttdoc">Attributes used in arange operators. </div><div class="ttdef"><b>Definition:</b> transform.h:142</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ReverseAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseAttrs.html">tvm::relay::ReverseAttrs</a></div><div class="ttdoc">Attributes used in reverse operators. </div><div class="ttdef"><b>Definition:</b> transform.h:201</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SplitAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SplitAttrs.html">tvm::relay::SplitAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:240</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ClipAttrs_html_a8a9a5b34513d0e9b46cae1ac436c6917"><div class="ttname"><a href="structtvm_1_1relay_1_1ClipAttrs.html#a8a9a5b34513d0e9b46cae1ac436c6917">tvm::relay::ClipAttrs::a_min</a></div><div class="ttdeci">double a_min</div><div class="ttdef"><b>Definition:</b> transform.h:292</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html_a698ab8a2112fff60a95425155e015a78"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html#a698ab8a2112fff60a95425155e015a78">tvm::relay::OneHotAttrs::depth</a></div><div class="ttdeci">int depth</div><div class="ttdef"><b>Definition:</b> transform.h:352</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1MeshgridAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1MeshgridAttrs.html">tvm::relay::MeshgridAttrs</a></div><div class="ttdoc">Attributes used in meshgrid operators. </div><div class="ttdef"><b>Definition:</b> transform.h:157</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ReverseAttrs_html_a590ab4ec8765ba7b26e2914abc8fdb4b"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseAttrs.html#a590ab4ec8765ba7b26e2914abc8fdb4b">tvm::relay::ReverseAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ReverseAttrs,&quot;relay.attrs.ReverseAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:211</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1LayoutTransformAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1LayoutTransformAttrs.html">tvm::relay::LayoutTransformAttrs</a></div><div class="ttdoc">Attributes for LayoutTransform operator. </div><div class="ttdef"><b>Definition:</b> transform.h:323</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html">tvm::relay::ArangeAttrs</a></div><div class="ttdoc">Attributes used in arange operators. </div><div class="ttdef"><b>Definition:</b> transform.h:150</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ReverseAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseAttrs.html">tvm::relay::ReverseAttrs</a></div><div class="ttdoc">Attributes used in reverse operators. </div><div class="ttdef"><b>Definition:</b> transform.h:209</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SplitAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SplitAttrs.html">tvm::relay::SplitAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:248</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ClipAttrs_html_a8a9a5b34513d0e9b46cae1ac436c6917"><div class="ttname"><a href="structtvm_1_1relay_1_1ClipAttrs.html#a8a9a5b34513d0e9b46cae1ac436c6917">tvm::relay::ClipAttrs::a_min</a></div><div class="ttdeci">double a_min</div><div class="ttdef"><b>Definition:</b> transform.h:300</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1OneHotAttrs_html_a698ab8a2112fff60a95425155e015a78"><div class="ttname"><a href="structtvm_1_1relay_1_1OneHotAttrs.html#a698ab8a2112fff60a95425155e015a78">tvm::relay::OneHotAttrs::depth</a></div><div class="ttdeci">int depth</div><div class="ttdef"><b>Definition:</b> transform.h:373</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1MeshgridAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1MeshgridAttrs.html">tvm::relay::MeshgridAttrs</a></div><div class="ttdoc">Attributes used in meshgrid operators. </div><div class="ttdef"><b>Definition:</b> transform.h:165</div></div>
 <div class="ttc" id="ir_2attrs_8h_html_a578da113eb199bad72e26c03ad24832f"><div class="ttname"><a href="ir_2attrs_8h.html#a578da113eb199bad72e26c03ad24832f">TVM_ATTR_FIELD</a></div><div class="ttdeci">#define TVM_ATTR_FIELD(FieldName)</div><div class="ttdoc">Declare an attribute field. </div><div class="ttdef"><b>Definition:</b> attrs.h:76</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1TileAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1TileAttrs.html">tvm::relay::TileAttrs</a></div><div class="ttdoc">Attributes used in tile operators. </div><div class="ttdef"><b>Definition:</b> transform.h:191</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_a405dbeb1c77da2690c40606c980f388d"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#a405dbeb1c77da2690c40606c980f388d">tvm::relay::ArangeAttrs::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdef"><b>Definition:</b> transform.h:146</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1TileAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1TileAttrs.html">tvm::relay::TileAttrs</a></div><div class="ttdoc">Attributes used in tile operators. </div><div class="ttdef"><b>Definition:</b> transform.h:199</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_a405dbeb1c77da2690c40606c980f388d"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#a405dbeb1c77da2690c40606c980f388d">tvm::relay::ArangeAttrs::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdef"><b>Definition:</b> transform.h:154</div></div>
 <div class="ttc" id="classtvm_1_1RelayExpr_html"><div class="ttname"><a href="classtvm_1_1RelayExpr.html">tvm::RelayExpr</a></div><div class="ttdoc">Managed reference to RelayExprNode. </div><div class="ttdef"><b>Definition:</b> expr.h:176</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_a1eadf1f3964ca83dade8edeae7d6d7cf"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#a1eadf1f3964ca83dade8edeae7d6d7cf">tvm::relay::ArangeAttrs::stop</a></div><div class="ttdeci">Expr stop</div><div class="ttdef"><b>Definition:</b> transform.h:144</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SparseToDenseAttrs_html_ab9518ca799abb54900f22e907b7b0fd6"><div class="ttname"><a href="structtvm_1_1relay_1_1SparseToDenseAttrs.html#ab9518ca799abb54900f22e907b7b0fd6">tvm::relay::SparseToDenseAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SparseToDenseAttrs,&quot;relay.attrs.SparseToDenseAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:336</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SplitAttrs_html_a7eed8fdadb552057795ce0bf983f77e9"><div class="ttname"><a href="structtvm_1_1relay_1_1SplitAttrs.html#a7eed8fdadb552057795ce0bf983f77e9">tvm::relay::SplitAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SplitAttrs,&quot;relay.attrs.SplitAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:244</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_aba74338460adf3c6fc0c7f8739d0248f"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#aba74338460adf3c6fc0c7f8739d0248f">tvm::relay::StridedSliceAttrs::slice_mode</a></div><div class="ttdeci">std::string slice_mode</div><div class="ttdef"><b>Definition:</b> transform.h:261</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1TileAttrs_html_acac0351f86c23beb264227981424022e"><div class="ttname"><a href="structtvm_1_1relay_1_1TileAttrs.html#acac0351f86c23beb264227981424022e">tvm::relay::TileAttrs::reps</a></div><div class="ttdeci">Array&lt; Integer &gt; reps</div><div class="ttdef"><b>Definition:</b> transform.h:192</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_a1eadf1f3964ca83dade8edeae7d6d7cf"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#a1eadf1f3964ca83dade8edeae7d6d7cf">tvm::relay::ArangeAttrs::stop</a></div><div class="ttdeci">Expr stop</div><div class="ttdef"><b>Definition:</b> transform.h:152</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SparseToDenseAttrs_html_ab9518ca799abb54900f22e907b7b0fd6"><div class="ttname"><a href="structtvm_1_1relay_1_1SparseToDenseAttrs.html#ab9518ca799abb54900f22e907b7b0fd6">tvm::relay::SparseToDenseAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SparseToDenseAttrs,&quot;relay.attrs.SparseToDenseAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:357</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SplitAttrs_html_a7eed8fdadb552057795ce0bf983f77e9"><div class="ttname"><a href="structtvm_1_1relay_1_1SplitAttrs.html#a7eed8fdadb552057795ce0bf983f77e9">tvm::relay::SplitAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SplitAttrs,&quot;relay.attrs.SplitAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:252</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_aba74338460adf3c6fc0c7f8739d0248f"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#aba74338460adf3c6fc0c7f8739d0248f">tvm::relay::StridedSliceAttrs::slice_mode</a></div><div class="ttdeci">std::string slice_mode</div><div class="ttdef"><b>Definition:</b> transform.h:269</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1TileAttrs_html_acac0351f86c23beb264227981424022e"><div class="ttname"><a href="structtvm_1_1relay_1_1TileAttrs.html#acac0351f86c23beb264227981424022e">tvm::relay::TileAttrs::reps</a></div><div class="ttdeci">Array&lt; Integer &gt; reps</div><div class="ttdef"><b>Definition:</b> transform.h:200</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ExpandDimsAttrs_html_a81d264f861cabf1c5478e254b7f85f15"><div class="ttname"><a href="structtvm_1_1relay_1_1ExpandDimsAttrs.html#a81d264f861cabf1c5478e254b7f85f15">tvm::relay::ExpandDimsAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ExpandDimsAttrs,&quot;relay.attrs.ExpandDimsAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:50</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ReverseSequenceAttrs_html_ab107432fff56dfd9ef4a0600ee616ade"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html#ab107432fff56dfd9ef4a0600ee616ade">tvm::relay::ReverseSequenceAttrs::seq_axis</a></div><div class="ttdeci">Integer seq_axis</div><div class="ttdef"><b>Definition:</b> transform.h:212</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ReverseSequenceAttrs_html_ab107432fff56dfd9ef4a0600ee616ade"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html#ab107432fff56dfd9ef4a0600ee616ade">tvm::relay::ReverseSequenceAttrs::seq_axis</a></div><div class="ttdeci">Integer seq_axis</div><div class="ttdef"><b>Definition:</b> transform.h:220</div></div>
 <div class="ttc" id="namespacetvm_html_a28c693333c2b15702b1a9a57dec0fbf5"><div class="ttname"><a href="namespacetvm.html#a28c693333c2b15702b1a9a57dec0fbf5">tvm::NullValue&lt; DataType &gt;</a></div><div class="ttdeci">DataType NullValue&lt; DataType &gt;()</div><div class="ttdef"><b>Definition:</b> attrs.h:90</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ScatterAttrs_html_a5ada9836e19157a53637c14f9318fb64"><div class="ttname"><a href="structtvm_1_1relay_1_1ScatterAttrs.html#a5ada9836e19157a53637c14f9318fb64">tvm::relay::ScatterAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:97</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SparseToDenseAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SparseToDenseAttrs.html">tvm::relay::SparseToDenseAttrs</a></div><div class="ttdoc">Attributes used in sparse_to_dense operator. </div><div class="ttdef"><b>Definition:</b> transform.h:333</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1MeshgridAttrs_html_ab623ebb33e110ab0eeefbf30528a5be3"><div class="ttname"><a href="structtvm_1_1relay_1_1MeshgridAttrs.html#ab623ebb33e110ab0eeefbf30528a5be3">tvm::relay::MeshgridAttrs::indexing</a></div><div class="ttdeci">std::string indexing</div><div class="ttdef"><b>Definition:</b> transform.h:158</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1GatherAttrs_html_af4f634e6ea9308be4ec06c126513b685"><div class="ttname"><a href="structtvm_1_1relay_1_1GatherAttrs.html#af4f634e6ea9308be4ec06c126513b685">tvm::relay::GatherAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(GatherAttrs,&quot;relay.attrs.GatherAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:107</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1NdarraySizeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1NdarraySizeAttrs.html">tvm::relay::NdarraySizeAttrs</a></div><div class="ttdoc">Attributes for ndarray_size operator. </div><div class="ttdef"><b>Definition:</b> transform.h:342</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1StackAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1StackAttrs.html">tvm::relay::StackAttrs</a></div><div class="ttdoc">Attributes used in stack operators. </div><div class="ttdef"><b>Definition:</b> transform.h:170</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1TakeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1TakeAttrs.html">tvm::relay::TakeAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:114</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SparseToDenseAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SparseToDenseAttrs.html">tvm::relay::SparseToDenseAttrs</a></div><div class="ttdoc">Attributes used in sparse_to_dense operator. </div><div class="ttdef"><b>Definition:</b> transform.h:354</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1MeshgridAttrs_html_ab623ebb33e110ab0eeefbf30528a5be3"><div class="ttname"><a href="structtvm_1_1relay_1_1MeshgridAttrs.html#ab623ebb33e110ab0eeefbf30528a5be3">tvm::relay::MeshgridAttrs::indexing</a></div><div class="ttdeci">std::string indexing</div><div class="ttdef"><b>Definition:</b> transform.h:166</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1GatherAttrs_html_af4f634e6ea9308be4ec06c126513b685"><div class="ttname"><a href="structtvm_1_1relay_1_1GatherAttrs.html#af4f634e6ea9308be4ec06c126513b685">tvm::relay::GatherAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(GatherAttrs,&quot;relay.attrs.GatherAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:115</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1NdarraySizeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1NdarraySizeAttrs.html">tvm::relay::NdarraySizeAttrs</a></div><div class="ttdoc">Attributes for ndarray_size operator. </div><div class="ttdef"><b>Definition:</b> transform.h:363</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1StackAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1StackAttrs.html">tvm::relay::StackAttrs</a></div><div class="ttdoc">Attributes used in stack operators. </div><div class="ttdef"><b>Definition:</b> transform.h:178</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1FixedPointMultiplyAttrs_html_ac5095656867b0bad8cd53d0f957a1d9d"><div class="ttname"><a href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html#ac5095656867b0bad8cd53d0f957a1d9d">tvm::relay::FixedPointMultiplyAttrs::shift</a></div><div class="ttdeci">int32_t shift</div><div class="ttdef"><b>Definition:</b> transform.h:312</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1TakeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1TakeAttrs.html">tvm::relay::TakeAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:122</div></div>
 <div class="ttc" id="base_8h_html"><div class="ttname"><a href="base_8h.html">base.h</a></div><div class="ttdoc">Base classes for the Relay IR. </div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_ad71dfaf2cb9b1afad1757681aa51b412"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#ad71dfaf2cb9b1afad1757681aa51b412">tvm::relay::StridedSliceAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(StridedSliceAttrs,&quot;relay.attrs.StridedSliceAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:263</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SequenceMaskAttrs_html_a89976b047aa6fa83747077ed0260a5aa"><div class="ttname"><a href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a89976b047aa6fa83747077ed0260a5aa">tvm::relay::SequenceMaskAttrs::mask_value</a></div><div class="ttdeci">double mask_value</div><div class="ttdef"><b>Definition:</b> transform.h:322</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1NdarraySizeAttrs_html_a58d630300fa3ce26c47a6ba7a7362fab"><div class="ttname"><a href="structtvm_1_1relay_1_1NdarraySizeAttrs.html#a58d630300fa3ce26c47a6ba7a7362fab">tvm::relay::NdarraySizeAttrs::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdef"><b>Definition:</b> transform.h:343</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_ad71dfaf2cb9b1afad1757681aa51b412"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#ad71dfaf2cb9b1afad1757681aa51b412">tvm::relay::StridedSliceAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(StridedSliceAttrs,&quot;relay.attrs.StridedSliceAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:271</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SequenceMaskAttrs_html_a89976b047aa6fa83747077ed0260a5aa"><div class="ttname"><a href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a89976b047aa6fa83747077ed0260a5aa">tvm::relay::SequenceMaskAttrs::mask_value</a></div><div class="ttdeci">double mask_value</div><div class="ttdef"><b>Definition:</b> transform.h:343</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1NdarraySizeAttrs_html_a58d630300fa3ce26c47a6ba7a7362fab"><div class="ttname"><a href="structtvm_1_1relay_1_1NdarraySizeAttrs.html#a58d630300fa3ce26c47a6ba7a7362fab">tvm::relay::NdarraySizeAttrs::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdef"><b>Definition:</b> transform.h:364</div></div>
 <div class="ttc" id="classtvm_1_1AttrsNode_html"><div class="ttname"><a href="classtvm_1_1AttrsNode.html">tvm::AttrsNode</a></div><div class="ttdoc">The base class of the all the Use &quot;curiously recurring template pattern&quot;. </div><div class="ttdef"><b>Definition:</b> attrs.h:634</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ShapeOfAttrs_html_a4971bcf217d49330d12c48997274f264"><div class="ttname"><a href="structtvm_1_1relay_1_1ShapeOfAttrs.html#a4971bcf217d49330d12c48997274f264">tvm::relay::ShapeOfAttrs::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdef"><b>Definition:</b> transform.h:314</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ShapeOfAttrs_html_a4971bcf217d49330d12c48997274f264"><div class="ttname"><a href="structtvm_1_1relay_1_1ShapeOfAttrs.html#a4971bcf217d49330d12c48997274f264">tvm::relay::ShapeOfAttrs::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdef"><b>Definition:</b> transform.h:335</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1TransposeAttrs_html_a19f1372f9f3c5dbdc5ce5c0efc42d08b"><div class="ttname"><a href="structtvm_1_1relay_1_1TransposeAttrs.html#a19f1372f9f3c5dbdc5ce5c0efc42d08b">tvm::relay::TransposeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(TransposeAttrs,&quot;relay.attrs.TransposeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:78</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_aabe51ead537f676d53ffedf91b16ae66"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#aabe51ead537f676d53ffedf91b16ae66">tvm::relay::ArangeAttrs::step</a></div><div class="ttdeci">Expr step</div><div class="ttdef"><b>Definition:</b> transform.h:145</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1RepeatAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1RepeatAttrs.html">tvm::relay::RepeatAttrs</a></div><div class="ttdoc">Attributes used in repeat operators. </div><div class="ttdef"><b>Definition:</b> transform.h:179</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_ab8c4942d4242425714b21488bae72fec"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#ab8c4942d4242425714b21488bae72fec">tvm::relay::StridedSliceAttrs::strides</a></div><div class="ttdeci">Optional&lt; Array&lt; Integer &gt; &gt; strides</div><div class="ttdef"><b>Definition:</b> transform.h:260</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SqueezeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SqueezeAttrs.html">tvm::relay::SqueezeAttrs</a></div><div class="ttdoc">Attributes used in squeeze operators. </div><div class="ttdef"><b>Definition:</b> transform.h:225</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1LayoutTransformAttrs_html_ab7f5ccbb4c1f408da1f7a9d76c35fcf4"><div class="ttname"><a href="structtvm_1_1relay_1_1LayoutTransformAttrs.html#ab7f5ccbb4c1f408da1f7a9d76c35fcf4">tvm::relay::LayoutTransformAttrs::dst_layout</a></div><div class="ttdeci">std::string dst_layout</div><div class="ttdef"><b>Definition:</b> transform.h:304</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SqueezeAttrs_html_ad683cfe14b5df05aa38a2a3824b5d882"><div class="ttname"><a href="structtvm_1_1relay_1_1SqueezeAttrs.html#ad683cfe14b5df05aa38a2a3824b5d882">tvm::relay::SqueezeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SqueezeAttrs,&quot;relay.attrs.SqueezeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:229</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SqueezeAttrs_html_ac12e95580d7c77a3f7221c528ab3bcb2"><div class="ttname"><a href="structtvm_1_1relay_1_1SqueezeAttrs.html#ac12e95580d7c77a3f7221c528ab3bcb2">tvm::relay::SqueezeAttrs::axis</a></div><div class="ttdeci">Array&lt; Integer &gt; axis</div><div class="ttdef"><b>Definition:</b> transform.h:227</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1MeshgridAttrs_html_a5b1496dab20d06f658984b4fcb8a3d42"><div class="ttname"><a href="structtvm_1_1relay_1_1MeshgridAttrs.html#a5b1496dab20d06f658984b4fcb8a3d42">tvm::relay::MeshgridAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(MeshgridAttrs,&quot;relay.attrs.MeshgridAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:160</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_aabe51ead537f676d53ffedf91b16ae66"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#aabe51ead537f676d53ffedf91b16ae66">tvm::relay::ArangeAttrs::step</a></div><div class="ttdeci">Expr step</div><div class="ttdef"><b>Definition:</b> transform.h:153</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1RepeatAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1RepeatAttrs.html">tvm::relay::RepeatAttrs</a></div><div class="ttdoc">Attributes used in repeat operators. </div><div class="ttdef"><b>Definition:</b> transform.h:187</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_ab8c4942d4242425714b21488bae72fec"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#ab8c4942d4242425714b21488bae72fec">tvm::relay::StridedSliceAttrs::strides</a></div><div class="ttdeci">Optional&lt; Array&lt; Integer &gt; &gt; strides</div><div class="ttdef"><b>Definition:</b> transform.h:268</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SqueezeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SqueezeAttrs.html">tvm::relay::SqueezeAttrs</a></div><div class="ttdoc">Attributes used in squeeze operators. </div><div class="ttdef"><b>Definition:</b> transform.h:233</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1LayoutTransformAttrs_html_ab7f5ccbb4c1f408da1f7a9d76c35fcf4"><div class="ttname"><a href="structtvm_1_1relay_1_1LayoutTransformAttrs.html#ab7f5ccbb4c1f408da1f7a9d76c35fcf4">tvm::relay::LayoutTransformAttrs::dst_layout</a></div><div class="ttdeci">std::string dst_layout</div><div class="ttdef"><b>Definition:</b> transform.h:325</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SqueezeAttrs_html_ad683cfe14b5df05aa38a2a3824b5d882"><div class="ttname"><a href="structtvm_1_1relay_1_1SqueezeAttrs.html#ad683cfe14b5df05aa38a2a3824b5d882">tvm::relay::SqueezeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SqueezeAttrs,&quot;relay.attrs.SqueezeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:237</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SqueezeAttrs_html_ac12e95580d7c77a3f7221c528ab3bcb2"><div class="ttname"><a href="structtvm_1_1relay_1_1SqueezeAttrs.html#ac12e95580d7c77a3f7221c528ab3bcb2">tvm::relay::SqueezeAttrs::axis</a></div><div class="ttdeci">Array&lt; Integer &gt; axis</div><div class="ttdef"><b>Definition:</b> transform.h:235</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1MeshgridAttrs_html_a5b1496dab20d06f658984b4fcb8a3d42"><div class="ttname"><a href="structtvm_1_1relay_1_1MeshgridAttrs.html#a5b1496dab20d06f658984b4fcb8a3d42">tvm::relay::MeshgridAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(MeshgridAttrs,&quot;relay.attrs.MeshgridAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:168</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ConcatenateAttrs_html_adfcdf16b2e6e74b0e88b3886384e8077"><div class="ttname"><a href="structtvm_1_1relay_1_1ConcatenateAttrs.html#adfcdf16b2e6e74b0e88b3886384e8077">tvm::relay::ConcatenateAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> transform.h:65</div></div>
 <div class="ttc" id="namespacetvm_html_ab6c242e8ac09beb463fba306948b7f15"><div class="ttname"><a href="namespacetvm.html#ab6c242e8ac09beb463fba306948b7f15">tvm::NullValue</a></div><div class="ttdeci">TObjectRef NullValue()</div><div class="ttdoc">Create a NodeRef type that represents null. </div><div class="ttdef"><b>Definition:</b> attrs.h:84</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SequenceMaskAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SequenceMaskAttrs.html">tvm::relay::SequenceMaskAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:321</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_ae6c7574b378953c4491e9ac6c618d43c"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#ae6c7574b378953c4491e9ac6c618d43c">tvm::relay::ArangeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ArangeAttrs,&quot;relay.attrs.ArangeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:148</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1LayoutTransformAttrs_html_a9e39ae3c7dccea1087b6caaed7563b94"><div class="ttname"><a href="structtvm_1_1relay_1_1LayoutTransformAttrs.html#a9e39ae3c7dccea1087b6caaed7563b94">tvm::relay::LayoutTransformAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(LayoutTransformAttrs,&quot;relay.attrs.LayoutTransformAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:306</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SequenceMaskAttrs_html_a15f8fc5585e9bba5c2587963213681d4"><div class="ttname"><a href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a15f8fc5585e9bba5c2587963213681d4">tvm::relay::SequenceMaskAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SequenceMaskAttrs,&quot;relay.attrs.SequenceMaskAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:325</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1RepeatAttrs_html_a9beb4e18ba35d6323f7463dbb4f95c1b"><div class="ttname"><a href="structtvm_1_1relay_1_1RepeatAttrs.html#a9beb4e18ba35d6323f7463dbb4f95c1b">tvm::relay::RepeatAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(RepeatAttrs,&quot;relay.attrs.RepeatAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:182</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ReverseSequenceAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html">tvm::relay::ReverseSequenceAttrs</a></div><div class="ttdoc">Attributes used in reverse_sequence operators. </div><div class="ttdef"><b>Definition:</b> transform.h:211</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SequenceMaskAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1SequenceMaskAttrs.html">tvm::relay::SequenceMaskAttrs</a></div><div class="ttdef"><b>Definition:</b> transform.h:342</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ArangeAttrs_html_ae6c7574b378953c4491e9ac6c618d43c"><div class="ttname"><a href="structtvm_1_1relay_1_1ArangeAttrs.html#ae6c7574b378953c4491e9ac6c618d43c">tvm::relay::ArangeAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ArangeAttrs,&quot;relay.attrs.ArangeAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:156</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1LayoutTransformAttrs_html_a9e39ae3c7dccea1087b6caaed7563b94"><div class="ttname"><a href="structtvm_1_1relay_1_1LayoutTransformAttrs.html#a9e39ae3c7dccea1087b6caaed7563b94">tvm::relay::LayoutTransformAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(LayoutTransformAttrs,&quot;relay.attrs.LayoutTransformAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:327</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SequenceMaskAttrs_html_a15f8fc5585e9bba5c2587963213681d4"><div class="ttname"><a href="structtvm_1_1relay_1_1SequenceMaskAttrs.html#a15f8fc5585e9bba5c2587963213681d4">tvm::relay::SequenceMaskAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(SequenceMaskAttrs,&quot;relay.attrs.SequenceMaskAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:346</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1RepeatAttrs_html_a9beb4e18ba35d6323f7463dbb4f95c1b"><div class="ttname"><a href="structtvm_1_1relay_1_1RepeatAttrs.html#a9beb4e18ba35d6323f7463dbb4f95c1b">tvm::relay::RepeatAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(RepeatAttrs,&quot;relay.attrs.RepeatAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:190</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ReverseSequenceAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html">tvm::relay::ReverseSequenceAttrs</a></div><div class="ttdoc">Attributes used in reverse_sequence operators. </div><div class="ttdef"><b>Definition:</b> transform.h:219</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ReshapeAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ReshapeAttrs.html">tvm::relay::ReshapeAttrs</a></div><div class="ttdoc">Attributes used in reshape operators. </div><div class="ttdef"><b>Definition:</b> transform.h:84</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ClipAttrs_html_a751c6dbf39793d4657a81619393f7a20"><div class="ttname"><a href="structtvm_1_1relay_1_1ClipAttrs.html#a751c6dbf39793d4657a81619393f7a20">tvm::relay::ClipAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ClipAttrs,&quot;relay.attrs.ClipAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:295</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ShapeOfAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ShapeOfAttrs.html">tvm::relay::ShapeOfAttrs</a></div><div class="ttdoc">Attributes for ShapeOf operator. </div><div class="ttdef"><b>Definition:</b> transform.h:313</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1GatherAttrs_html_afebf3efdcef2b99e2515056a464dcdc0"><div class="ttname"><a href="structtvm_1_1relay_1_1GatherAttrs.html#afebf3efdcef2b99e2515056a464dcdc0">tvm::relay::GatherAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:105</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1SparseToDenseAttrs_html_a96725ff7c8a481e81a2fd0ad163b4ecf"><div class="ttname"><a href="structtvm_1_1relay_1_1SparseToDenseAttrs.html#a96725ff7c8a481e81a2fd0ad163b4ecf">tvm::relay::SparseToDenseAttrs::output_shape</a></div><div class="ttdeci">Array&lt; Integer &gt; output_shape</div><div class="ttdef"><b>Definition:</b> transform.h:334</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_a2492ceafc309edf983ba8c78fae5afe2"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#a2492ceafc309edf983ba8c78fae5afe2">tvm::relay::StridedSliceAttrs::end</a></div><div class="ttdeci">Optional&lt; Array&lt; Integer &gt; &gt; end</div><div class="ttdef"><b>Definition:</b> transform.h:259</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1RepeatAttrs_html_a91f67f0c8914efd2b7359eea9074b43f"><div class="ttname"><a href="structtvm_1_1relay_1_1RepeatAttrs.html#a91f67f0c8914efd2b7359eea9074b43f">tvm::relay::RepeatAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:181</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1StackAttrs_html_a5baf92c2303bbdabf5aa90f1ab66ad12"><div class="ttname"><a href="structtvm_1_1relay_1_1StackAttrs.html#a5baf92c2303bbdabf5aa90f1ab66ad12">tvm::relay::StackAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:171</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ClipAttrs_html_a751c6dbf39793d4657a81619393f7a20"><div class="ttname"><a href="structtvm_1_1relay_1_1ClipAttrs.html#a751c6dbf39793d4657a81619393f7a20">tvm::relay::ClipAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ClipAttrs,&quot;relay.attrs.ClipAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:303</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ScatterAddAttrs_html_a641f7409b6194a04a6a9889fe19dc3fb"><div class="ttname"><a href="structtvm_1_1relay_1_1ScatterAddAttrs.html#a641f7409b6194a04a6a9889fe19dc3fb">tvm::relay::ScatterAddAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:105</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ShapeOfAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ShapeOfAttrs.html">tvm::relay::ShapeOfAttrs</a></div><div class="ttdoc">Attributes for ShapeOf operator. </div><div class="ttdef"><b>Definition:</b> transform.h:334</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1GatherAttrs_html_afebf3efdcef2b99e2515056a464dcdc0"><div class="ttname"><a href="structtvm_1_1relay_1_1GatherAttrs.html#afebf3efdcef2b99e2515056a464dcdc0">tvm::relay::GatherAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:113</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1SparseToDenseAttrs_html_a96725ff7c8a481e81a2fd0ad163b4ecf"><div class="ttname"><a href="structtvm_1_1relay_1_1SparseToDenseAttrs.html#a96725ff7c8a481e81a2fd0ad163b4ecf">tvm::relay::SparseToDenseAttrs::output_shape</a></div><div class="ttdeci">Array&lt; Integer &gt; output_shape</div><div class="ttdef"><b>Definition:</b> transform.h:355</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1StridedSliceAttrs_html_a2492ceafc309edf983ba8c78fae5afe2"><div class="ttname"><a href="structtvm_1_1relay_1_1StridedSliceAttrs.html#a2492ceafc309edf983ba8c78fae5afe2">tvm::relay::StridedSliceAttrs::end</a></div><div class="ttdeci">Optional&lt; Array&lt; Integer &gt; &gt; end</div><div class="ttdef"><b>Definition:</b> transform.h:267</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1RepeatAttrs_html_a91f67f0c8914efd2b7359eea9074b43f"><div class="ttname"><a href="structtvm_1_1relay_1_1RepeatAttrs.html#a91f67f0c8914efd2b7359eea9074b43f">tvm::relay::RepeatAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:189</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1StackAttrs_html_a5baf92c2303bbdabf5aa90f1ab66ad12"><div class="ttname"><a href="structtvm_1_1relay_1_1StackAttrs.html#a5baf92c2303bbdabf5aa90f1ab66ad12">tvm::relay::StackAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:179</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1CastAttrs_html_a267b6de7f8e6aaf6329b60d86204e897"><div class="ttname"><a href="structtvm_1_1relay_1_1CastAttrs.html#a267b6de7f8e6aaf6329b60d86204e897">tvm::relay::CastAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(CastAttrs,&quot;relay.attrs.CastAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:40</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ConcatenateAttrs_html"><div class="ttname"><a href="structtvm_1_1relay_1_1ConcatenateAttrs.html">tvm::relay::ConcatenateAttrs</a></div><div class="ttdoc">Attributes used in concatenate operators. </div><div class="ttdef"><b>Definition:</b> transform.h:64</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1ReverseSequenceAttrs_html_a922eb49dd420d3a148f206efca0e0b48"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html#a922eb49dd420d3a148f206efca0e0b48">tvm::relay::ReverseSequenceAttrs::batch_axis</a></div><div class="ttdeci">Integer batch_axis</div><div class="ttdef"><b>Definition:</b> transform.h:213</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1ReverseSequenceAttrs_html_a922eb49dd420d3a148f206efca0e0b48"><div class="ttname"><a href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html#a922eb49dd420d3a148f206efca0e0b48">tvm::relay::ReverseSequenceAttrs::batch_axis</a></div><div class="ttdeci">Integer batch_axis</div><div class="ttdef"><b>Definition:</b> transform.h:221</div></div>
 <div class="ttc" id="classtvm_1_1Integer_html"><div class="ttname"><a href="classtvm_1_1Integer.html">tvm::Integer</a></div><div class="ttdoc">Container of constant int that adds more constructors. </div><div class="ttdef"><b>Definition:</b> expr.h:351</div></div>
-<div class="ttc" id="structtvm_1_1relay_1_1TakeAttrs_html_a5d4f821c5541cb9deb71d835b144cb22"><div class="ttname"><a href="structtvm_1_1relay_1_1TakeAttrs.html#a5d4f821c5541cb9deb71d835b144cb22">tvm::relay::TakeAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:115</div></div>
+<div class="ttc" id="structtvm_1_1relay_1_1TakeAttrs_html_a5d4f821c5541cb9deb71d835b144cb22"><div class="ttname"><a href="structtvm_1_1relay_1_1TakeAttrs.html#a5d4f821c5541cb9deb71d835b144cb22">tvm::relay::TakeAttrs::axis</a></div><div class="ttdeci">Integer axis</div><div class="ttdef"><b>Definition:</b> transform.h:123</div></div>
 <div class="ttc" id="structtvm_1_1relay_1_1ScatterAttrs_html_a5cbbb8d7a8d05eeb6847f75637f260fd"><div class="ttname"><a href="structtvm_1_1relay_1_1ScatterAttrs.html#a5cbbb8d7a8d05eeb6847f75637f260fd">tvm::relay::ScatterAttrs::TVM_DECLARE_ATTRS</a></div><div class="ttdeci">TVM_DECLARE_ATTRS(ScatterAttrs,&quot;relay.attrs.ScatterAttrs&quot;)</div><div class="ttdef"><b>Definition:</b> transform.h:99</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
diff --git a/docs/api/doxygen/include_2tvm_2relay_2transform_8h.html b/docs/api/doxygen/include_2tvm_2relay_2transform_8h.html
index 302e488..a8f5445 100644
--- a/docs/api/doxygen/include_2tvm_2relay_2transform_8h.html
+++ b/docs/api/doxygen/include_2tvm_2relay_2transform_8h.html
@@ -234,6 +234,9 @@ Functions</h2></td></tr>
 <tr class="memitem:afbbf5f3e5ffb775fafb9c48473dbfa24"><td class="memItemLeft" align="right" valign="top">Pass&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1relay_1_1transform.html#afbbf5f3e5ffb775fafb9c48473dbfa24">tvm::relay::transform::RemoveUnusedFunctions</a> (Array&lt; runtime::String &gt; entry_functions)</td></tr>
 <tr class="memdesc:afbbf5f3e5ffb775fafb9c48473dbfa24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the unused functions in the Relay <a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a>.  <a href="namespacetvm_1_1relay_1_1transform.html#afbbf5f3e5ffb775fafb9c48473dbfa24">More...</a><br /></td></tr>
 <tr class="separator:afbbf5f3e5ffb775fafb9c48473dbfa24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42d4de119382b9457742433bc7109ffe"><td class="memItemLeft" align="right" valign="top">Pass&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1relay_1_1transform.html#a42d4de119382b9457742433bc7109ffe">tvm::relay::transform::SimplifyExpr</a> ()</td></tr>
+<tr class="memdesc:a42d4de119382b9457742433bc7109ffe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplify the Relay expression.  <a href="namespacetvm_1_1relay_1_1transform.html#a42d4de119382b9457742433bc7109ffe">More...</a><br /></td></tr>
+<tr class="separator:a42d4de119382b9457742433bc7109ffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad7cfa0b6a4537989b886d47767526726"><td class="memItemLeft" align="right" valign="top">Expr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1relay.html#ad7cfa0b6a4537989b886d47767526726">tvm::relay::Bind</a> (const Expr &amp;expr, const <a class="el" href="classtvm_1_1Map.html">tvm::Map</a>&lt; Var, Expr &gt; &amp;binds)</td></tr>
 <tr class="memdesc:ad7cfa0b6a4537989b886d47767526726"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bind the free variables to a Relay expression. This is a helper function usually called by other pass functions to help optimizations.  <a href="namespacetvm_1_1relay.html#ad7cfa0b6a4537989b886d47767526726">More...</a><br /></td></tr>
 <tr class="separator:ad7cfa0b6a4537989b886d47767526726"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/docs/api/doxygen/include_2tvm_2relay_2transform_8h_source.html b/docs/api/doxygen/include_2tvm_2relay_2transform_8h_source.html
index 5527fb5..e459016 100644
--- a/docs/api/doxygen/include_2tvm_2relay_2transform_8h_source.html
+++ b/docs/api/doxygen/include_2tvm_2relay_2transform_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">transform.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="include_2tvm_2relay_2transform_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=" [...]
+<a href="include_2tvm_2relay_2transform_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=" [...]
 <div class="ttc" id="namespacetvm_1_1relay_1_1transform_html_a93bbf7ab3f612d4f38a6832d6b53b4fd"><div class="ttname"><a href="namespacetvm_1_1relay_1_1transform.html#a93bbf7ab3f612d4f38a6832d6b53b4fd">tvm::relay::transform::CanonicalizeCast</a></div><div class="ttdeci">Pass CanonicalizeCast()</div><div class="ttdoc">Canonicalize cast expressions to make operator fusion more efficient. </div></div>
 <div class="ttc" id="namespacetvm_1_1relay_1_1transform_html_aac0bfdaf6d09b360602243c81abe05a1"><div class="ttname"><a href="namespacetvm_1_1relay_1_1transform.html#aac0bfdaf6d09b360602243c81abe05a1">tvm::relay::transform::PartitionGraph</a></div><div class="ttdeci">Pass PartitionGraph()</div><div class="ttdoc">Partition a Relay program into regions that can be executed on different backends. </div></div>
 <div class="ttc" id="namespacetvm_1_1relay_1_1transform_html_a2cfef0e02cca22f3e0e85e0a10a82f5b"><div class="ttname"><a href="namespacetvm_1_1relay_1_1transform.html#a2cfef0e02cca22f3e0e85e0a10a82f5b">tvm::relay::transform::ToGraphNormalForm</a></div><div class="ttdeci">Pass ToGraphNormalForm()</div><div class="ttdoc">Remove let binding and directly share via pointer instead. </div></div>
@@ -156,6 +156,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="ttc" id="namespacetvm_1_1relay_1_1transform_html_a41656c71a440f1f9c9eae0aa409d2b22"><div class="ttname"><a href="namespacetvm_1_1relay_1_1transform.html#a41656c71a440f1f9c9eae0aa409d2b22">tvm::relay::transform::FoldConstant</a></div><div class="ttdeci">Pass FoldConstant()</div><div class="ttdoc">Fold constant expressions. </div></div>
 <div class="ttc" id="namespacetvm_1_1relay_1_1transform_html_aa405b5f11938fb8c4fa2ca21926edc9d"><div class="ttname"><a href="namespacetvm_1_1relay_1_1transform.html#aa405b5f11938fb8c4fa2ca21926edc9d">tvm::relay::transform::PassInfo</a></div><div class="ttdeci">tvm::transform::PassInfo PassInfo</div><div class="ttdef"><b>Definition:</b> transform.h:43</div></div>
 <div class="ttc" id="classtvm_1_1transform_1_1Sequential_html"><div class="ttname"><a href="classtvm_1_1transform_1_1Sequential.html">tvm::transform::Sequential</a></div><div class="ttdef"><b>Definition:</b> transform.h:371</div></div>
+<div class="ttc" id="namespacetvm_1_1relay_1_1transform_html_a42d4de119382b9457742433bc7109ffe"><div class="ttname"><a href="namespacetvm_1_1relay_1_1transform.html#a42d4de119382b9457742433bc7109ffe">tvm::relay::transform::SimplifyExpr</a></div><div class="ttdeci">Pass SimplifyExpr()</div><div class="ttdoc">Simplify the Relay expression. </div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/api/doxygen/inherit_graph_82.svg b/docs/api/doxygen/inherit_graph_82.svg
index fd0f638..53d83e4 100644
--- a/docs/api/doxygen/inherit_graph_82.svg
+++ b/docs/api/doxygen/inherit_graph_82.svg
@@ -4,11 +4,11 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: Graphical Class Hierarchy Pages: 1 -->
-<svg width="902pt" height="8160pt"
- viewBox="0.00 0.00 902.00 8159.50" 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 8155.5)">
+<svg width="902pt" height="8358pt"
+ viewBox="0.00 0.00 902.00 8357.50" 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 8353.5)">
 <title>Graphical Class Hierarchy</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-8155.5 898,-8155.5 898,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-8353.5 898,-8353.5 898,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
 <polygon fill="white" stroke="#bfbfbf" points="0,-1463.5 0,-1482.5 47,-1482.5 47,-1463.5 0,-1463.5"/>
@@ -17,5107 +17,5218 @@
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1arith_1_1ConstIntBoundNode.html" target="_top" xlink:title="Constant integer up and lower bound(inclusive). Useful for value bound analysis. ">
-<polygon fill="white" stroke="black" points="93,-5895.5 93,-5914.5 258,-5914.5 258,-5895.5 93,-5895.5"/>
-<text text-anchor="middle" x="175.5" y="-5902.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::ConstIntBoundNode</text>
+<polygon fill="white" stroke="black" points="93,-5995.5 93,-6014.5 258,-6014.5 258,-5995.5 93,-5995.5"/>
+<text text-anchor="middle" x="175.5" y="-6002.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::ConstIntBoundNode</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="M24.59,-1492.62C26.0593,-1808.78 45.528,-5840.57 83,-5886 85.9937,-5889.63 89.4833,-5892.68 93.3181,-5895.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.09,-1492.6 24.5437,-1482.61 21.0901,-1492.63 28.09,-1492.6"/>
+<path fill="none" stroke="midnightblue" d="M24.5861,-1493.06C25.9933,-1816.39 44.6858,-5939.53 83,-5986 85.9932,-5989.63 89.4824,-5992.68 93.3168,-5995.24"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.0851,-1492.82 24.5418,-1482.83 21.0852,-1492.85 28.0851,-1492.82"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsNode.html" target="_top" xlink:title="Represent integer constrains including (integer) variables, their ranges and the relations between th...">
-<polygon fill="white" stroke="black" points="95,-5857.5 95,-5876.5 256,-5876.5 256,-5857.5 95,-5857.5"/>
-<text text-anchor="middle" x="175.5" y="-5864.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntConstraintsNode</text>
+<polygon fill="white" stroke="black" points="95,-5957.5 95,-5976.5 256,-5976.5 256,-5957.5 95,-5957.5"/>
+<text text-anchor="middle" x="175.5" y="-5964.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntConstraintsNode</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node3 -->
 <g id="edge2" class="edge"><title>Node1&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M24.5937,-1492.92C26.104,-1809.84 45.8663,-5802.98 83,-5848 86.4068,-5852.13 90.4558,-5855.51 94.9247,-5858.27"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.0919,-1492.52 24.5445,-1482.53 21.092,-1492.55 28.0919,-1492.52"/>
+<path fill="none" stroke="midnightblue" d="M24.5876,-1492.89C26.0184,-1813.5 45.0058,-5901.92 83,-5948 86.4062,-5952.13 90.4547,-5955.51 94.9233,-5958.27"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.087,-1492.73 24.5426,-1482.75 21.087,-1492.77 28.087,-1492.73"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html" target="_top" xlink:title="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 &#45; n = 0 | m &gt;= 0, n &lt;= 0} This data structure represents the transformation between two equivalent linear systems. In the above example, src : {a + b = 0 | a &gt;= 0, b &gt;= 0} dst : {m &#45; n = 0 [...]
-<polygon fill="white" stroke="black" points="107.5,-5808 107.5,-5838 243.5,-5838 243.5,-5808 107.5,-5808"/>
-<text text-anchor="start" x="115.5" y="-5826" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntConstraints</text>
-<text text-anchor="middle" x="175.5" y="-5815" font-family="Helvetica,sans-Serif" font-size="10.00">TransformNode</text>
+<polygon fill="white" stroke="black" points="107.5,-5908 107.5,-5938 243.5,-5938 243.5,-5908 107.5,-5908"/>
+<text text-anchor="start" x="115.5" y="-5926" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntConstraints</text>
+<text text-anchor="middle" x="175.5" y="-5915" font-family="Helvetica,sans-Serif" font-size="10.00">TransformNode</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node4 -->
 <g id="edge3" class="edge"><title>Node1&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M24.6048,-1493.16C26.2698,-1809.86 47.7013,-5752.41 83,-5798 89.2502,-5806.07 97.8399,-5811.7 107.269,-5815.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.1027,-1492.74 24.5503,-1482.76 21.1028,-1492.78 28.1027,-1492.74"/>
+<path fill="none" stroke="midnightblue" d="M24.5961,-1492.67C26.1635,-1809.6 46.8564,-5851.3 83,-5898 89.249,-5906.07 97.8381,-5911.7 107.267,-5915.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.096,-1492.62 24.5468,-1482.64 21.0961,-1492.66 28.096,-1492.62"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" target="_top" xlink: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. ">
-<polygon fill="white" stroke="black" points="89.5,-5769.5 89.5,-5788.5 261.5,-5788.5 261.5,-5769.5 89.5,-5769.5"/>
-<text text-anchor="middle" x="175.5" y="-5776.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntGroupBoundsNode</text>
+<polygon fill="white" stroke="black" points="89.5,-5869.5 89.5,-5888.5 261.5,-5888.5 261.5,-5869.5 89.5,-5869.5"/>
+<text text-anchor="middle" x="175.5" y="-5876.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntGroupBoundsNode</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node5 -->
 <g id="edge4" class="edge"><title>Node1&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M24.5995,-1492.99C26.1833,-1806.99 46.6253,-5715.91 83,-5760 86.0976,-5763.75 89.7258,-5766.89 93.7177,-5769.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.098,-1492.66 24.5478,-1482.67 21.0981,-1492.69 28.098,-1492.66"/>
+<path fill="none" stroke="midnightblue" d="M24.5932,-1492.97C26.096,-1810.76 45.7653,-5814.86 83,-5860 85.9938,-5863.63 89.4836,-5866.68 93.3184,-5869.24"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.0913,-1492.54 24.5442,-1482.56 21.0914,-1492.57 28.0913,-1492.54"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node"><title>Node6</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1arith_1_1IntSetNode.html" target="_top" xlink:title="Base class of all Integer set containers. represent a set of integers in one dimension. ">
-<polygon fill="white" stroke="black" points="114,-5731.5 114,-5750.5 237,-5750.5 237,-5731.5 114,-5731.5"/>
-<text text-anchor="middle" x="175.5" y="-5738.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntSetNode</text>
+<polygon fill="white" stroke="black" points="114,-5831.5 114,-5850.5 237,-5850.5 237,-5831.5 114,-5831.5"/>
+<text text-anchor="middle" x="175.5" y="-5838.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntSetNode</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node6 -->
 <g id="edge5" class="edge"><title>Node1&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M24.6011,-1492.81C26.209,-1804.03 46.945,-5678.31 83,-5722 90.7447,-5731.39 101.805,-5736.9 113.573,-5740.01"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.1,-1492.57 24.5486,-1482.59 21.1001,-1492.61 28.1,-1492.57"/>
+<path fill="none" stroke="midnightblue" d="M24.597,-1493.28C26.1414,-1811.82 46.1037,-5777.27 83,-5822 90.7432,-5831.39 101.803,-5836.9 113.571,-5840.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.0948,-1492.8 24.5466,-1482.81 21.0949,-1492.83 28.0948,-1492.8"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node"><title>Node7</title>
 <g id="a_node7"><a xlink:href="classtvm_1_1arith_1_1ModularSetNode.html" target="_top" xlink:title="Range of a linear integer function. Use to do specify the possible index values. ">
-<polygon fill="white" stroke="black" points="101,-5693.5 101,-5712.5 250,-5712.5 250,-5693.5 101,-5693.5"/>
-<text text-anchor="middle" x="175.5" y="-5700.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::ModularSetNode</text>
+<polygon fill="white" stroke="black" points="101,-5793.5 101,-5812.5 250,-5812.5 250,-5793.5 101,-5793.5"/>
+<text text-anchor="middle" x="175.5" y="-5800.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::ModularSetNode</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node7 -->
 <g id="edge6" class="edge"><title>Node1&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M24.6026,-1492.63C26.2347,-1801.07 47.2647,-5640.7 83,-5684 87.8537,-5689.88 94.0093,-5694.24 100.825,-5697.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.102,-1492.48 24.5493,-1482.5 21.1021,-1492.52 28.102,-1492.48"/>
+<path fill="none" stroke="midnightblue" d="M24.5986,-1493.1C26.1671,-1808.86 46.4234,-5739.67 83,-5784 87.8528,-5789.88 94.0078,-5794.24 100.823,-5797.45"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.0968,-1492.71 24.5473,-1482.73 21.0969,-1492.75 28.0968,-1492.71"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node"><title>Node8</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1AttrFieldInfoNode.html" target="_top" xlink:title="Information about attribute fields in string representations. ">
-<polygon fill="white" stroke="black" points="114,-5655.5 114,-5674.5 237,-5674.5 237,-5655.5 114,-5655.5"/>
-<text text-anchor="middle" x="175.5" y="-5662.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfoNode</text>
+<polygon fill="white" stroke="black" points="114,-5755.5 114,-5774.5 237,-5774.5 237,-5755.5 114,-5755.5"/>
+<text text-anchor="middle" x="175.5" y="-5762.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfoNode</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node8 -->
 <g id="edge7" class="edge"><title>Node1&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M24.6067,-1492.92C26.2818,-1801.93 47.6022,-5603.11 83,-5646 90.7459,-5655.38 101.807,-5660.9 113.575,-5664.01"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.1058,-1492.73 24.5518,-1482.75 21.1059,-1492.77 28.1058,-1492.73"/>
+<path fill="none" stroke="midnightblue" d="M24.6001,-1492.92C26.1928,-1805.9 46.7431,-5702.06 83,-5746 90.7443,-5755.39 101.804,-5760.9 113.573,-5764.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.0987,-1492.62 24.5481,-1482.64 21.0988,-1492.66 28.0987,-1492.62"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node"><title>Node9</title>
 <g id="a_node9"><a xlink:href="classtvm_1_1BaseAttrsNode.html" target="_top" xlink:title="Base class of all attribute class. ">
-<polygon fill="white" stroke="black" points="118.5,-5617.5 118.5,-5636.5 232.5,-5636.5 232.5,-5617.5 118.5,-5617.5"/>
-<text text-anchor="middle" x="175.5" y="-5624.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
+<polygon fill="white" stroke="black" points="118.5,-5717.5 118.5,-5736.5 232.5,-5736.5 232.5,-5717.5 118.5,-5717.5"/>
+<text text-anchor="middle" x="175.5" y="-5724.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node9 -->
 <g id="edge8" class="edge"><title>Node1&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M25.2274,-1493.14C36.1509,-1795.65 166.552,-5406.91 174.154,-5617.42"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.7128,-1492.67 24.8541,-1482.81 21.7173,-1492.93 28.7128,-1492.67"/>
+<path fill="none" stroke="midnightblue" d="M25.1945,-1492.7C35.8865,-1795.92 166.541,-5501.28 174.154,-5717.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.6924,-1492.57 24.8421,-1482.7 21.6968,-1492.82 28.6924,-1492.57"/>
 </g>
-<!-- Node212 -->
-<g id="node212" class="node"><title>Node212</title>
-<g id="a_node212"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions. ">
+<!-- Node220 -->
+<g id="node220" class="node"><title>Node220</title>
+<g id="a_node220"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions. ">
 <polygon fill="white" stroke="black" points="119.5,-2150.5 119.5,-2169.5 231.5,-2169.5 231.5,-2150.5 119.5,-2150.5"/>
 <text text-anchor="middle" x="175.5" y="-2157.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node212 -->
-<g id="edge211" class="edge"><title>Node1&#45;&gt;Node212</title>
+<!-- Node1&#45;&gt;Node220 -->
+<g id="edge219" class="edge"><title>Node1&#45;&gt;Node220</title>
 <path fill="none" stroke="midnightblue" d="M24.8522,-1492.84C26.907,-1598.4 38.8272,-2091.31 83,-2141 92.2704,-2151.43 105.638,-2156.99 119.305,-2159.79"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="28.348,-1492.57 24.6616,-1482.64 21.3493,-1492.7 28.348,-1492.57"/>
 </g>
-<!-- Node285 -->
-<g id="node285" class="node"><title>Node285</title>
-<g id="a_node285"><a xlink:href="classtvm_1_1EnvFuncNode.html" target="_top" xlink:title="A serializable function backed by TVM&#39;s global environment. ">
+<!-- Node293 -->
+<g id="node293" class="node"><title>Node293</title>
+<g id="a_node293"><a xlink:href="classtvm_1_1EnvFuncNode.html" target="_top" xlink:title="A serializable function backed by TVM&#39;s global environment. ">
 <polygon fill="white" stroke="black" points="122.5,-2112.5 122.5,-2131.5 228.5,-2131.5 228.5,-2112.5 122.5,-2112.5"/>
 <text text-anchor="middle" x="175.5" y="-2119.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::EnvFuncNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node285 -->
-<g id="edge284" class="edge"><title>Node1&#45;&gt;Node285</title>
+<!-- Node1&#45;&gt;Node293 -->
+<g id="edge292" class="edge"><title>Node1&#45;&gt;Node293</title>
 <path fill="none" stroke="midnightblue" d="M24.9583,-1492.65C27.5038,-1594.19 41.3281,-2056.37 83,-2103 92.9464,-2114.13 107.561,-2119.71 122.204,-2122.3"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="28.4551,-1492.48 24.7133,-1482.57 21.4572,-1492.65 28.4551,-1492.48"/>
 </g>
-<!-- Node286 -->
-<g id="node286" class="node"><title>Node286</title>
-<g id="a_node286"><a xlink:href="classtvm_1_1GenericFuncNode.html" target="_top" xlink:title="Represents a generic function that can be specialized on a per&#45;target basis. ">
+<!-- Node294 -->
+<g id="node294" class="node"><title>Node294</title>
+<g id="a_node294"><a xlink:href="classtvm_1_1GenericFuncNode.html" target="_top" xlink:title="Represents a generic function that can be specialized on a per&#45;target basis. ">
 <polygon fill="white" stroke="black" points="113,-2074.5 113,-2093.5 238,-2093.5 238,-2074.5 113,-2074.5"/>
 <text text-anchor="middle" x="175.5" y="-2081.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::GenericFuncNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node286 -->
-<g id="edge285" class="edge"><title>Node1&#45;&gt;Node286</title>
+<!-- Node1&#45;&gt;Node294 -->
+<g id="edge293" class="edge"><title>Node1&#45;&gt;Node294</title>
 <path fill="none" stroke="midnightblue" d="M25.0926,-1493C28.1903,-1591.44 43.8961,-2021.5 83,-2065 90.8098,-2073.69 101.464,-2078.99 112.746,-2082.13"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="28.5882,-1492.8 24.7833,-1482.91 21.5915,-1493.01 28.5882,-1492.8"/>
 </g>
-<!-- Node287 -->
-<g id="node287" class="node"><title>Node287</title>
-<g id="a_node287"><a xlink:href="classtvm_1_1IRModuleNode.html" target="_top" xlink:title="IRModule that holds functions and type definitions. ">
+<!-- Node295 -->
+<g id="node295" class="node"><title>Node295</title>
+<g id="a_node295"><a xlink:href="classtvm_1_1IRModuleNode.html" target="_top" xlink:title="IRModule that holds functions and type definitions. ">
 <polygon fill="white" stroke="black" points="120.5,-2036.5 120.5,-2055.5 230.5,-2055.5 230.5,-2036.5 120.5,-2036.5"/>
 <text text-anchor="middle" x="175.5" y="-2043.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::IRModuleNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node287 -->
-<g id="edge286" class="edge"><title>Node1&#45;&gt;Node287</title>
+<!-- Node1&#45;&gt;Node295 -->
+<g id="edge294" class="edge"><title>Node1&#45;&gt;Node295</title>
 <path fill="none" stroke="midnightblue" d="M25.2308,-1492.88C28.8767,-1587.19 46.3972,-1986.56 83,-2027 92.5809,-2037.59 106.387,-2043.14 120.381,-2045.87"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="28.7221,-1492.58 24.8466,-1482.72 21.7271,-1492.85 28.7221,-1492.58"/>
 </g>
-<!-- Node288 -->
-<g id="node288" class="node"><title>Node288</title>
-<g id="a_node288"><a xlink:href="classtvm_1_1MapNode.html" target="_top" xlink:title="Shared content of all specializations of hash map. ">
+<!-- Node296 -->
+<g id="node296" class="node"><title>Node296</title>
+<g id="a_node296"><a xlink:href="classtvm_1_1MapNode.html" target="_top" xlink:title="Shared content of all specializations of hash map. ">
 <polygon fill="white" stroke="black" points="132,-1998.5 132,-2017.5 219,-2017.5 219,-1998.5 132,-1998.5"/>
 <text text-anchor="middle" x="175.5" y="-2005.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::MapNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node288 -->
-<g id="edge287" class="edge"><title>Node1&#45;&gt;Node288</title>
+<!-- Node1&#45;&gt;Node296 -->
+<g id="edge295" class="edge"><title>Node1&#45;&gt;Node296</title>
 <path fill="none" stroke="midnightblue" d="M25.3959,-1492.93C29.6358,-1583.29 48.9151,-1951.63 83,-1989 95.2455,-2002.43 114.29,-2007.74 131.84,-2009.47"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="28.8908,-1492.74 24.9344,-1482.91 21.8982,-1493.06 28.8908,-1492.74"/>
 </g>
-<!-- Node291 -->
-<g id="node291" class="node"><title>Node291</title>
-<g id="a_node291"><a xlink:href="classtvm_1_1MemoryInfoNode.html" target="_top" xlink:title="Memory information of special memory region. Use MemoryInfo as its container type. ">
+<!-- Node299 -->
+<g id="node299" class="node"><title>Node299</title>
+<g id="a_node299"><a xlink:href="classtvm_1_1MemoryInfoNode.html" target="_top" xlink:title="Memory information of special memory region. Use MemoryInfo as its container type. ">
 <polygon fill="white" stroke="black" points="114,-1900.5 114,-1919.5 237,-1919.5 237,-1900.5 114,-1900.5"/>
 <text text-anchor="middle" x="175.5" y="-1907.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::MemoryInfoNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node291 -->
-<g id="edge290" class="edge"><title>Node1&#45;&gt;Node291</title>
+<!-- Node1&#45;&gt;Node299 -->
+<g id="edge298" class="edge"><title>Node1&#45;&gt;Node299</title>
 <path fill="none" stroke="midnightblue" d="M24.3758,-1493.21C24.3423,-1568.66 28.2084,-1832.49 83,-1891 91.2061,-1899.76 102.314,-1905.05 113.959,-1908.13"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="27.877,-1492.79 24.4075,-1482.78 20.8771,-1492.77 27.877,-1492.79"/>
 </g>
-<!-- Node292 -->
-<g id="node292" class="node"><title>Node292</title>
-<g id="a_node292"><a xlink:href="classtvm_1_1RangeNode.html" target="_top" xlink:title="range over one dimension ">
+<!-- Node300 -->
+<g id="node300" class="node"><title>Node300</title>
+<g id="a_node300"><a xlink:href="classtvm_1_1RangeNode.html" target="_top" xlink:title="range over one dimension ">
 <polygon fill="white" stroke="black" points="127,-1862.5 127,-1881.5 224,-1881.5 224,-1862.5 127,-1862.5"/>
 <text text-anchor="middle" x="175.5" y="-1869.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::RangeNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node292 -->
-<g id="edge291" class="edge"><title>Node1&#45;&gt;Node292</title>
+<!-- Node1&#45;&gt;Node300 -->
+<g id="edge299" class="edge"><title>Node1&#45;&gt;Node300</title>
 <path fill="none" stroke="midnightblue" d="M24.6818,-1492.73C25.7472,-1563.09 33.0462,-1800.38 83,-1853 94.2819,-1864.88 110.904,-1870.35 126.897,-1872.61"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="28.1799,-1492.54 24.5556,-1482.59 21.1804,-1492.63 28.1799,-1492.54"/>
 </g>
-<!-- Node293 -->
-<g id="node293" class="node"><title>Node293</title>
-<g id="a_node293"><a xlink:href="classtvm_1_1relay_1_1ClauseNode.html" target="_top" xlink:title="Clause container node. ">
+<!-- Node301 -->
+<g id="node301" class="node"><title>Node301</title>
+<g id="a_node301"><a xlink:href="classtvm_1_1relay_1_1ClauseNode.html" target="_top" xlink:title="Clause container node. ">
 <polygon fill="white" stroke="black" points="111.5,-1824.5 111.5,-1843.5 239.5,-1843.5 239.5,-1824.5 111.5,-1824.5"/>
 <text text-anchor="middle" x="175.5" y="-1831.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ClauseNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node293 -->
-<g id="edge292" class="edge"><title>Node1&#45;&gt;Node293</title>
+<!-- Node1&#45;&gt;Node301 -->
+<g id="edge300" class="edge"><title>Node1&#45;&gt;Node301</title>
 <path fill="none" stroke="midnightblue" d="M25.0576,-1492.84C27.3238,-1558.68 38.0091,-1768.39 83,-1815 90.6622,-1822.94 100.71,-1828 111.335,-1831.15"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="28.5483,-1492.49 24.7348,-1482.61 21.5518,-1492.71 28.5483,-1492.49"/>
 </g>
-<!-- Node294 -->
-<g id="node294" class="node"><title>Node294</title>
-<g id="a_node294"><a xlink:href="structtvm_1_1relay_1_1ConstructorValueObj.html" target="_top" xlink:title="tvm::relay::ConstructorValueObj">
+<!-- Node302 -->
+<g id="node302" class="node"><title>Node302</title>
+<g id="a_node302"><a xlink:href="structtvm_1_1relay_1_1ConstructorValueObj.html" target="_top" xlink:title="tvm::relay::ConstructorValueObj">
 <polygon fill="white" stroke="black" points="91.5,-1786.5 91.5,-1805.5 259.5,-1805.5 259.5,-1786.5 91.5,-1786.5"/>
 <text text-anchor="middle" x="175.5" y="-1793.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ConstructorValueObj</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node294 -->
-<g id="edge293" class="edge"><title>Node1&#45;&gt;Node294</title>
+<!-- Node1&#45;&gt;Node302 -->
+<g id="edge301" class="edge"><title>Node1&#45;&gt;Node302</title>
 <path fill="none" stroke="midnightblue" d="M25.5305,-1492.98C29.0937,-1554.03 42.9516,-1736.36 83,-1777 86.6442,-1780.7 90.807,-1783.77 95.3019,-1786.31"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="29.0122,-1492.56 24.9656,-1482.76 22.0229,-1492.94 29.0122,-1492.56"/>
 </g>
-<!-- Node295 -->
-<g id="node295" class="node"><title>Node295</title>
-<g id="a_node295"><a xlink:href="classtvm_1_1relay_1_1DFPatternCallbackNode.html" target="_top" xlink:title="Base type of all dataflow pattern callbacks. ">
+<!-- Node303 -->
+<g id="node303" class="node"><title>Node303</title>
+<g id="a_node303"><a xlink:href="classtvm_1_1relay_1_1DFPatternCallbackNode.html" target="_top" xlink:title="Base type of all dataflow pattern callbacks. ">
 <polygon fill="white" stroke="black" points="84.5,-1748.5 84.5,-1767.5 266.5,-1767.5 266.5,-1748.5 84.5,-1748.5"/>
 <text text-anchor="middle" x="175.5" y="-1755.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DFPatternCallbackNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node295 -->
-<g id="edge294" class="edge"><title>Node1&#45;&gt;Node295</title>
+<!-- Node1&#45;&gt;Node303 -->
+<g id="edge302" class="edge"><title>Node1&#45;&gt;Node303</title>
 <path fill="none" stroke="midnightblue" d="M26.1288,-1492.99C31.0842,-1548.77 47.835,-1704.25 83,-1739 86.808,-1742.76 91.1547,-1745.87 95.8379,-1748.43"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="29.5867,-1492.35 25.2481,-1482.68 22.6121,-1492.95 29.5867,-1492.35"/>
 </g>
-<!-- Node296 -->
-<g id="node296" class="node"><title>Node296</title>
-<g id="a_node296"><a xlink:href="classtvm_1_1relay_1_1DFPatternNode.html" target="_top" xlink:title="Base type of all dataflow patterns. ">
+<!-- Node304 -->
+<g id="node304" class="node"><title>Node304</title>
+<g id="a_node304"><a xlink:href="classtvm_1_1relay_1_1DFPatternNode.html" target="_top" xlink:title="Base type of all dataflow patterns. ">
 <polygon fill="white" stroke="black" points="104,-1710.5 104,-1729.5 247,-1729.5 247,-1710.5 104,-1710.5"/>
 <text text-anchor="middle" x="175.5" y="-1717.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DFPatternNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node296 -->
-<g id="edge295" class="edge"><title>Node1&#45;&gt;Node296</title>
+<!-- Node1&#45;&gt;Node304 -->
+<g id="edge303" class="edge"><title>Node1&#45;&gt;Node304</title>
 <path fill="none" stroke="midnightblue" d="M26.8862,-1492.74C33.3222,-1542.65 52.629,-1672.01 83,-1701 88.9851,-1706.71 96.2169,-1710.9 103.961,-1713.95"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="30.3328,-1492.09 25.6174,-1482.6 23.3871,-1492.96 30.3328,-1492.09"/>
 </g>
-<!-- Node310 -->
-<g id="node310" class="node"><title>Node310</title>
-<g id="a_node310"><a xlink:href="classtvm_1_1relay_1_1IdNode.html" target="_top" xlink:title="The unique identifier of variables. ">
+<!-- Node318 -->
+<g id="node318" class="node"><title>Node318</title>
+<g id="a_node318"><a xlink:href="classtvm_1_1relay_1_1IdNode.html" target="_top" xlink:title="The unique identifier of variables. ">
 <polygon fill="white" stroke="black" points="123.5,-1672.5 123.5,-1691.5 227.5,-1691.5 227.5,-1672.5 123.5,-1672.5"/>
 <text text-anchor="middle" x="175.5" y="-1679.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::IdNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node310 -->
-<g id="edge309" class="edge"><title>Node1&#45;&gt;Node310</title>
+<!-- Node1&#45;&gt;Node318 -->
+<g id="edge317" class="edge"><title>Node1&#45;&gt;Node318</title>
 <path fill="none" stroke="midnightblue" d="M24.4196,-1493.14C25.425,-1532.11 33.4989,-1617.94 83,-1663 93.9185,-1672.94 108.636,-1678.21 123.073,-1680.88"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="27.9137,-1492.61 24.2965,-1482.65 20.9142,-1492.69 27.9137,-1492.61"/>
 </g>
-<!-- Node311 -->
-<g id="node311" class="node"><title>Node311</title>
-<g id="a_node311"><a xlink:href="classtvm_1_1relay_1_1OpImplementationNode.html" target="_top" xlink:title="Operator implementation that includes compute and schedule function. ">
+<!-- Node319 -->
+<g id="node319" class="node"><title>Node319</title>
+<g id="a_node319"><a xlink:href="classtvm_1_1relay_1_1OpImplementationNode.html" target="_top" xlink:title="Operator implementation that includes compute and schedule function. ">
 <polygon fill="white" stroke="black" points="83,-1634.5 83,-1653.5 268,-1653.5 268,-1634.5 83,-1634.5"/>
 <text text-anchor="middle" x="175.5" y="-1641.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::OpImplementationNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node311 -->
-<g id="edge310" class="edge"><title>Node1&#45;&gt;Node311</title>
+<!-- Node1&#45;&gt;Node319 -->
+<g id="edge318" class="edge"><title>Node1&#45;&gt;Node319</title>
 <path fill="none" stroke="midnightblue" d="M26.1777,-1492.74C30.0655,-1525.47 42.7066,-1590.78 83,-1625 87.4519,-1628.78 92.4611,-1631.87 97.7829,-1634.4"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="29.642,-1492.21 25.1366,-1482.62 22.6788,-1492.93 29.642,-1492.21"/>
 </g>
-<!-- Node312 -->
-<g id="node312" class="node"><title>Node312</title>
-<g id="a_node312"><a xlink:href="classtvm_1_1relay_1_1OpSpecializationNode.html" target="_top" xlink:title="Specialized implementations for operators under certain conditions. ">
+<!-- Node320 -->
+<g id="node320" class="node"><title>Node320</title>
+<g id="a_node320"><a xlink:href="classtvm_1_1relay_1_1OpSpecializationNode.html" target="_top" xlink:title="Specialized implementations for operators under certain conditions. ">
 <polygon fill="white" stroke="black" points="88,-1596.5 88,-1615.5 263,-1615.5 263,-1596.5 88,-1596.5"/>
 <text text-anchor="middle" x="175.5" y="-1603.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::OpSpecializationNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node312 -->
-<g id="edge311" class="edge"><title>Node1&#45;&gt;Node312</title>
+<!-- Node1&#45;&gt;Node320 -->
+<g id="edge319" class="edge"><title>Node1&#45;&gt;Node320</title>
 <path fill="none" stroke="midnightblue" d="M28.9565,-1492.55C35.9027,-1518.36 51.8707,-1563.3 83,-1587 88.0345,-1590.83 93.6586,-1593.94 99.5759,-1596.45"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="32.3343,-1491.63 26.5141,-1482.77 25.5432,-1493.32 32.3343,-1491.63"/>
 </g>
-<!-- Node313 -->
-<g id="node313" class="node"><title>Node313</title>
-<g id="a_node313"><a xlink:href="classtvm_1_1relay_1_1OpStrategyNode.html" target="_top" xlink:title="Operator strategy to choose implementation. ">
+<!-- Node321 -->
+<g id="node321" class="node"><title>Node321</title>
+<g id="a_node321"><a xlink:href="classtvm_1_1relay_1_1OpStrategyNode.html" target="_top" xlink:title="Operator strategy to choose implementation. ">
 <polygon fill="white" stroke="black" points="100.5,-1558.5 100.5,-1577.5 250.5,-1577.5 250.5,-1558.5 100.5,-1558.5"/>
 <text text-anchor="middle" x="175.5" y="-1565.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::OpStrategyNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node313 -->
-<g id="edge312" class="edge"><title>Node1&#45;&gt;Node313</title>
+<!-- Node1&#45;&gt;Node321 -->
+<g id="edge320" class="edge"><title>Node1&#45;&gt;Node321</title>
 <path fill="none" stroke="midnightblue" d="M34.0119,-1492.03C43.8305,-1509.63 60.8262,-1535.11 83,-1549 89.1867,-1552.88 96.0256,-1555.98 103.096,-1558.46"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="36.8531,-1489.91 29.0752,-1482.72 30.6692,-1493.19 36.8531,-1489.91"/>
 </g>
-<!-- Node314 -->
-<g id="node314" class="node"><title>Node314</title>
-<g id="a_node314"><a xlink:href="classtvm_1_1relay_1_1RecClosureObj.html" target="_top" xlink:title="The container type of RecClosure. ">
+<!-- Node322 -->
+<g id="node322" class="node"><title>Node322</title>
+<g id="a_node322"><a xlink:href="classtvm_1_1relay_1_1RecClosureObj.html" target="_top" xlink:title="The container type of RecClosure. ">
 <polygon fill="white" stroke="black" points="106.5,-1520.5 106.5,-1539.5 244.5,-1539.5 244.5,-1520.5 106.5,-1520.5"/>
 <text text-anchor="middle" x="175.5" y="-1527.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::RecClosureObj</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node314 -->
-<g id="edge313" class="edge"><title>Node1&#45;&gt;Node314</title>
+<!-- Node1&#45;&gt;Node322 -->
+<g id="edge321" class="edge"><title>Node1&#45;&gt;Node322</title>
 <path fill="none" stroke="midnightblue" d="M44.6076,-1488.74C55.4386,-1496.5 69.3505,-1505.38 83,-1511 92.3022,-1514.83 102.465,-1517.92 112.527,-1520.4"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="46.4229,-1485.73 36.3077,-1482.57 42.2496,-1491.35 46.4229,-1485.73"/>
 </g>
-<!-- Node315 -->
-<g id="node315" class="node"><title>Node315</title>
-<g id="a_node315"><a xlink:href="structtvm_1_1relay_1_1RefValueObj.html" target="_top" xlink:title="tvm::relay::RefValueObj">
+<!-- Node323 -->
+<g id="node323" class="node"><title>Node323</title>
+<g id="a_node323"><a xlink:href="structtvm_1_1relay_1_1RefValueObj.html" target="_top" xlink:title="tvm::relay::RefValueObj">
 <polygon fill="white" stroke="black" points="112.5,-1482.5 112.5,-1501.5 238.5,-1501.5 238.5,-1482.5 112.5,-1482.5"/>
 <text text-anchor="middle" x="175.5" y="-1489.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::RefValueObj</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node315 -->
-<g id="edge314" class="edge"><title>Node1&#45;&gt;Node315</title>
+<!-- Node1&#45;&gt;Node323 -->
+<g id="edge322" class="edge"><title>Node1&#45;&gt;Node323</title>
 <path fill="none" stroke="midnightblue" d="M57.2638,-1477.15C73.3787,-1479.19 93.3535,-1481.72 112.222,-1484.11"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="57.6424,-1473.67 47.2818,-1475.89 56.7627,-1480.61 57.6424,-1473.67"/>
 </g>
-<!-- Node316 -->
-<g id="node316" class="node"><title>Node316</title>
-<g id="a_node316"><a xlink:href="classtvm_1_1relay_1_1RelayNode.html" target="_top" xlink:title="This is the base node container of all relay structures. ">
+<!-- Node324 -->
+<g id="node324" class="node"><title>Node324</title>
+<g id="a_node324"><a xlink:href="classtvm_1_1relay_1_1RelayNode.html" target="_top" xlink:title="This is the base node container of all relay structures. ">
 <polygon fill="white" stroke="black" points="115.5,-1444.5 115.5,-1463.5 235.5,-1463.5 235.5,-1444.5 115.5,-1444.5"/>
 <text text-anchor="middle" x="175.5" y="-1451.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::RelayNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node316 -->
-<g id="edge315" class="edge"><title>Node1&#45;&gt;Node316</title>
+<!-- Node1&#45;&gt;Node324 -->
+<g id="edge323" class="edge"><title>Node1&#45;&gt;Node324</title>
 <path fill="none" stroke="midnightblue" d="M57.2834,-1468.85C74.3261,-1466.69 95.6821,-1463.98 115.48,-1461.48"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="56.7627,-1465.39 47.2818,-1470.11 57.6424,-1472.33 56.7627,-1465.39"/>
 </g>
-<!-- Node322 -->
-<g id="node322" class="node"><title>Node322</title>
-<g id="a_node322"><a xlink:href="classtvm_1_1SourceNameNode.html" target="_top" xlink:title="The name of a source fragment. ">
+<!-- Node330 -->
+<g id="node330" class="node"><title>Node330</title>
+<g id="a_node330"><a xlink:href="classtvm_1_1SourceNameNode.html" target="_top" xlink:title="The name of a source fragment. ">
 <polygon fill="white" stroke="black" points="110.5,-1406.5 110.5,-1425.5 240.5,-1425.5 240.5,-1406.5 110.5,-1406.5"/>
 <text text-anchor="middle" x="175.5" y="-1413.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SourceNameNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node322 -->
-<g id="edge321" class="edge"><title>Node1&#45;&gt;Node322</title>
+<!-- Node1&#45;&gt;Node330 -->
+<g id="edge329" class="edge"><title>Node1&#45;&gt;Node330</title>
 <path fill="none" stroke="midnightblue" d="M44.6076,-1457.26C55.4386,-1449.5 69.3505,-1440.62 83,-1435 92.3022,-1431.17 102.465,-1428.08 112.527,-1425.6"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="42.2496,-1454.65 36.3077,-1463.43 46.4229,-1460.27 42.2496,-1454.65"/>
 </g>
-<!-- Node323 -->
-<g id="node323" class="node"><title>Node323</title>
-<g id="a_node323"><a xlink:href="classtvm_1_1SpanNode.html" target="_top" xlink:title="Stores locations in frontend source that generated a node. ">
+<!-- Node331 -->
+<g id="node331" class="node"><title>Node331</title>
+<g id="a_node331"><a xlink:href="classtvm_1_1SpanNode.html" target="_top" xlink:title="Stores locations in frontend source that generated a node. ">
 <polygon fill="white" stroke="black" points="129.5,-1368.5 129.5,-1387.5 221.5,-1387.5 221.5,-1368.5 129.5,-1368.5"/>
 <text text-anchor="middle" x="175.5" y="-1375.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SpanNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node323 -->
-<g id="edge322" class="edge"><title>Node1&#45;&gt;Node323</title>
+<!-- Node1&#45;&gt;Node331 -->
+<g id="edge330" class="edge"><title>Node1&#45;&gt;Node331</title>
 <path fill="none" stroke="midnightblue" d="M34.0119,-1453.97C43.8305,-1436.37 60.8262,-1410.89 83,-1397 96.7482,-1388.39 113.717,-1383.6 129.293,-1380.97"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="30.6692,-1452.81 29.0752,-1463.28 36.8531,-1456.09 30.6692,-1452.81"/>
 </g>
-<!-- Node324 -->
-<g id="node324" class="node"><title>Node324</title>
-<g id="a_node324"><a xlink:href="classtvm_1_1TargetIdNode.html" target="_top" xlink:title="Target Id, specifies the kind of the target. ">
+<!-- Node332 -->
+<g id="node332" class="node"><title>Node332</title>
+<g id="a_node332"><a xlink:href="classtvm_1_1TargetIdNode.html" target="_top" xlink:title="Target Id, specifies the kind of the target. ">
 <polygon fill="white" stroke="black" points="123.5,-1330.5 123.5,-1349.5 227.5,-1349.5 227.5,-1330.5 123.5,-1330.5"/>
 <text text-anchor="middle" x="175.5" y="-1337.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetIdNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node324 -->
-<g id="edge323" class="edge"><title>Node1&#45;&gt;Node324</title>
+<!-- Node1&#45;&gt;Node332 -->
+<g id="edge331" class="edge"><title>Node1&#45;&gt;Node332</title>
 <path fill="none" stroke="midnightblue" d="M28.9565,-1453.45C35.9027,-1427.64 51.8707,-1382.7 83,-1359 94.4889,-1350.25 109.049,-1345.29 123.155,-1342.54"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="25.5432,-1452.68 26.5141,-1463.23 32.3343,-1454.37 25.5432,-1452.68"/>
 </g>
-<!-- Node325 -->
-<g id="node325" class="node"><title>Node325</title>
-<g id="a_node325"><a xlink:href="classtvm_1_1TargetNode.html" target="_top" xlink:title="Compilation target. ">
+<!-- Node333 -->
+<g id="node333" class="node"><title>Node333</title>
+<g id="a_node333"><a xlink:href="classtvm_1_1TargetNode.html" target="_top" xlink:title="Compilation target. ">
 <polygon fill="white" stroke="black" points="127.5,-1292.5 127.5,-1311.5 223.5,-1311.5 223.5,-1292.5 127.5,-1292.5"/>
 <text text-anchor="middle" x="175.5" y="-1299.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node325 -->
-<g id="edge324" class="edge"><title>Node1&#45;&gt;Node325</title>
+<!-- Node1&#45;&gt;Node333 -->
+<g id="edge332" class="edge"><title>Node1&#45;&gt;Node333</title>
 <path fill="none" stroke="midnightblue" d="M26.1777,-1453.26C30.0655,-1420.53 42.7066,-1355.22 83,-1321 95.2427,-1310.6 111.7,-1305.41 127.282,-1302.94"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="22.6788,-1453.07 25.1366,-1463.38 29.642,-1453.79 22.6788,-1453.07"/>
 </g>
-<!-- Node326 -->
-<g id="node326" class="node"><title>Node326</title>
-<g id="a_node326"><a xlink:href="classtvm_1_1te_1_1IterVarAttrNode.html" target="_top" xlink:title="node container for IterVar attr ">
+<!-- Node334 -->
+<g id="node334" class="node"><title>Node334</title>
+<g id="a_node334"><a xlink:href="classtvm_1_1te_1_1IterVarAttrNode.html" target="_top" xlink:title="node container for IterVar attr ">
 <polygon fill="white" stroke="black" points="109.5,-1254.5 109.5,-1273.5 241.5,-1273.5 241.5,-1254.5 109.5,-1254.5"/>
 <text text-anchor="middle" x="175.5" y="-1261.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::IterVarAttrNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node326 -->
-<g id="edge325" class="edge"><title>Node1&#45;&gt;Node326</title>
+<!-- Node1&#45;&gt;Node334 -->
+<g id="edge333" class="edge"><title>Node1&#45;&gt;Node334</title>
 <path fill="none" stroke="midnightblue" d="M24.4196,-1452.86C25.425,-1413.89 33.4989,-1328.06 83,-1283 90.439,-1276.23 99.6416,-1271.62 109.317,-1268.53"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="20.9142,-1453.31 24.2965,-1463.35 27.9137,-1453.39 20.9142,-1453.31"/>
 </g>
-<!-- Node327 -->
-<g id="node327" class="node"><title>Node327</title>
-<g id="a_node327"><a xlink:href="classtvm_1_1te_1_1IterVarRelationNode.html" target="_top" xlink:title="base node of iteration var ">
+<!-- Node335 -->
+<g id="node335" class="node"><title>Node335</title>
+<g id="a_node335"><a xlink:href="classtvm_1_1te_1_1IterVarRelationNode.html" target="_top" xlink:title="base node of iteration var ">
 <polygon fill="white" stroke="black" points="99.5,-1216.5 99.5,-1235.5 251.5,-1235.5 251.5,-1216.5 99.5,-1216.5"/>
 <text text-anchor="middle" x="175.5" y="-1223.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::IterVarRelationNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node327 -->
-<g id="edge326" class="edge"><title>Node1&#45;&gt;Node327</title>
+<!-- Node1&#45;&gt;Node335 -->
+<g id="edge334" class="edge"><title>Node1&#45;&gt;Node335</title>
 <path fill="none" stroke="midnightblue" d="M26.8862,-1453.26C33.3222,-1403.35 52.629,-1273.99 83,-1245 87.8115,-1240.41 93.4289,-1236.8 99.4704,-1233.97"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="23.3871,-1453.04 25.6174,-1463.4 30.3328,-1453.91 23.3871,-1453.04"/>
 </g>
-<!-- Node332 -->
-<g id="node332" class="node"><title>Node332</title>
-<g id="a_node332"><a xlink:href="classtvm_1_1te_1_1OperationNode.html" target="_top" xlink:title="Base class of all operation nodes. ">
+<!-- Node340 -->
+<g id="node340" class="node"><title>Node340</title>
+<g id="a_node340"><a xlink:href="classtvm_1_1te_1_1OperationNode.html" target="_top" xlink:title="Base class of all operation nodes. ">
 <polygon fill="white" stroke="black" points="110.5,-1178.5 110.5,-1197.5 240.5,-1197.5 240.5,-1178.5 110.5,-1178.5"/>
 <text text-anchor="middle" x="175.5" y="-1185.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::OperationNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node332 -->
-<g id="edge331" class="edge"><title>Node1&#45;&gt;Node332</title>
+<!-- Node1&#45;&gt;Node340 -->
+<g id="edge339" class="edge"><title>Node1&#45;&gt;Node340</title>
 <path fill="none" stroke="midnightblue" d="M26.1288,-1453.01C31.0842,-1397.23 47.835,-1241.75 83,-1207 90.5006,-1199.59 100.091,-1194.71 110.227,-1191.57"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="22.6121,-1453.05 25.2481,-1463.32 29.5867,-1453.65 22.6121,-1453.05"/>
 </g>
-<!-- Node340 -->
-<g id="node340" class="node"><title>Node340</title>
-<g id="a_node340"><a xlink:href="classtvm_1_1te_1_1ScheduleNode.html" target="_top" xlink:title="node container for schedule ">
+<!-- Node348 -->
+<g id="node348" class="node"><title>Node348</title>
+<g id="a_node348"><a xlink:href="classtvm_1_1te_1_1ScheduleNode.html" target="_top" xlink:title="node container for schedule ">
 <polygon fill="white" stroke="black" points="112,-1140.5 112,-1159.5 239,-1159.5 239,-1140.5 112,-1140.5"/>
 <text text-anchor="middle" x="175.5" y="-1147.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::ScheduleNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node340 -->
-<g id="edge339" class="edge"><title>Node1&#45;&gt;Node340</title>
+<!-- Node1&#45;&gt;Node348 -->
+<g id="edge347" class="edge"><title>Node1&#45;&gt;Node348</title>
 <path fill="none" stroke="midnightblue" d="M25.5305,-1453.02C29.0937,-1391.97 42.9516,-1209.64 83,-1169 90.8578,-1161.03 101.127,-1155.97 111.937,-1152.84"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="22.0229,-1453.06 24.9656,-1463.24 29.0122,-1453.44 22.0229,-1453.06"/>
 </g>
-<!-- Node341 -->
-<g id="node341" class="node"><title>Node341</title>
-<g id="a_node341"><a xlink:href="classtvm_1_1te_1_1SpecializedConditionNode.html" target="_top" xlink:title="Container for specialization conditions. ">
+<!-- Node349 -->
+<g id="node349" class="node"><title>Node349</title>
+<g id="a_node349"><a xlink:href="classtvm_1_1te_1_1SpecializedConditionNode.html" target="_top" xlink:title="Container for specialization conditions. ">
 <polygon fill="white" stroke="black" points="84.5,-1102.5 84.5,-1121.5 266.5,-1121.5 266.5,-1102.5 84.5,-1102.5"/>
 <text text-anchor="middle" x="175.5" y="-1109.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::SpecializedConditionNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node341 -->
-<g id="edge340" class="edge"><title>Node1&#45;&gt;Node341</title>
+<!-- Node1&#45;&gt;Node349 -->
+<g id="edge348" class="edge"><title>Node1&#45;&gt;Node349</title>
 <path fill="none" stroke="midnightblue" d="M25.0576,-1453.16C27.3238,-1387.32 38.0091,-1177.61 83,-1131 86.6057,-1127.26 90.7397,-1124.17 95.2135,-1121.6"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.5518,-1453.29 24.7348,-1463.39 28.5483,-1453.51 21.5518,-1453.29"/>
 </g>
-<!-- Node342 -->
-<g id="node342" class="node"><title>Node342</title>
-<g id="a_node342"><a xlink:href="classtvm_1_1te_1_1StageNode.html" target="_top" xlink:title="represents a stage. ">
+<!-- Node350 -->
+<g id="node350" class="node"><title>Node350</title>
+<g id="a_node350"><a xlink:href="classtvm_1_1te_1_1StageNode.html" target="_top" xlink:title="represents a stage. ">
 <polygon fill="white" stroke="black" points="120,-1064.5 120,-1083.5 231,-1083.5 231,-1064.5 120,-1064.5"/>
 <text text-anchor="middle" x="175.5" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::StageNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node342 -->
-<g id="edge341" class="edge"><title>Node1&#45;&gt;Node342</title>
+<!-- Node1&#45;&gt;Node350 -->
+<g id="edge349" class="edge"><title>Node1&#45;&gt;Node350</title>
 <path fill="none" stroke="midnightblue" d="M24.6818,-1453.27C25.7472,-1382.91 33.0462,-1145.62 83,-1093 92.6064,-1082.88 106.085,-1077.42 119.749,-1074.62"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.1804,-1453.37 24.5556,-1463.41 28.1799,-1453.46 21.1804,-1453.37"/>
 </g>
-<!-- Node343 -->
-<g id="node343" class="node"><title>Node343</title>
-<g id="a_node343"><a xlink:href="classtvm_1_1te_1_1TensorIntrinCallNode.html" target="_top" xlink:title="tvm::te::TensorIntrinCallNode">
+<!-- Node351 -->
+<g id="node351" class="node"><title>Node351</title>
+<g id="a_node351"><a xlink:href="classtvm_1_1te_1_1TensorIntrinCallNode.html" target="_top" xlink:title="tvm::te::TensorIntrinCallNode">
 <polygon fill="white" stroke="black" points="98,-1026.5 98,-1045.5 253,-1045.5 253,-1026.5 98,-1026.5"/>
 <text text-anchor="middle" x="175.5" y="-1033.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::TensorIntrinCallNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node343 -->
-<g id="edge342" class="edge"><title>Node1&#45;&gt;Node343</title>
+<!-- Node1&#45;&gt;Node351 -->
+<g id="edge350" class="edge"><title>Node1&#45;&gt;Node351</title>
 <path fill="none" stroke="midnightblue" d="M24.3758,-1452.79C24.3423,-1377.34 28.2084,-1113.51 83,-1055 87.214,-1050.5 92.193,-1046.92 97.6171,-1044.08"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="20.8771,-1453.23 24.4075,-1463.22 27.877,-1453.21 20.8771,-1453.23"/>
 </g>
-<!-- Node344 -->
-<g id="node344" class="node"><title>Node344</title>
-<g id="a_node344"><a xlink:href="classtvm_1_1te_1_1TensorIntrinNode.html" target="_top" xlink:title="Node to represent a Tensor intrinsic operator. ">
+<!-- Node352 -->
+<g id="node352" class="node"><title>Node352</title>
+<g id="a_node352"><a xlink:href="classtvm_1_1te_1_1TensorIntrinNode.html" target="_top" xlink:title="Node to represent a Tensor intrinsic operator. ">
 <polygon fill="white" stroke="black" points="107,-988.5 107,-1007.5 244,-1007.5 244,-988.5 107,-988.5"/>
 <text text-anchor="middle" x="175.5" y="-995.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::TensorIntrinNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node344 -->
-<g id="edge343" class="edge"><title>Node1&#45;&gt;Node344</title>
+<!-- Node1&#45;&gt;Node352 -->
+<g id="edge351" class="edge"><title>Node1&#45;&gt;Node352</title>
 <path fill="none" stroke="midnightblue" d="M24.1165,-1453.01C23.0206,-1373.6 23.1827,-1081.62 83,-1017 89.5026,-1009.98 97.868,-1005.18 106.892,-1001.96"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="20.6189,-1453.19 24.2804,-1463.13 27.618,-1453.08 20.6189,-1453.19"/>
 </g>
-<!-- Node345 -->
-<g id="node345" class="node"><title>Node345</title>
-<g id="a_node345"><a xlink:href="classtvm_1_1tir_1_1BijectiveLayoutNode.html" target="_top" xlink:title="tvm::tir::BijectiveLayoutNode">
+<!-- Node353 -->
+<g id="node353" class="node"><title>Node353</title>
+<g id="a_node353"><a xlink:href="classtvm_1_1tir_1_1BijectiveLayoutNode.html" target="_top" xlink:title="tvm::tir::BijectiveLayoutNode">
 <polygon fill="white" stroke="black" points="98,-950.5 98,-969.5 253,-969.5 253,-950.5 98,-950.5"/>
 <text text-anchor="middle" x="175.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::BijectiveLayoutNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node345 -->
-<g id="edge344" class="edge"><title>Node1&#45;&gt;Node345</title>
+<!-- Node1&#45;&gt;Node353 -->
+<g id="edge352" class="edge"><title>Node1&#45;&gt;Node353</title>
 <path fill="none" stroke="midnightblue" d="M25.5005,-1453.09C30.096,-1365.17 50.3636,-1014.6 83,-979 87.2757,-974.336 92.3722,-970.652 97.9403,-967.757"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="22.0046,-1452.92 24.9868,-1463.08 28.9954,-1453.28 22.0046,-1452.92"/>
 </g>
-<!-- Node346 -->
-<g id="node346" class="node"><title>Node346</title>
-<g id="a_node346"><a xlink:href="classtvm_1_1tir_1_1BufferNode.html" target="_top" xlink:title="Node to represent a buffer. ">
+<!-- Node354 -->
+<g id="node354" class="node"><title>Node354</title>
+<g id="a_node354"><a xlink:href="classtvm_1_1tir_1_1BufferNode.html" target="_top" xlink:title="Node to represent a buffer. ">
 <polygon fill="white" stroke="black" points="120,-912.5 120,-931.5 231,-931.5 231,-912.5 120,-912.5"/>
 <text text-anchor="middle" x="175.5" y="-919.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::BufferNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node346 -->
-<g id="edge345" class="edge"><title>Node1&#45;&gt;Node346</title>
+<!-- Node1&#45;&gt;Node354 -->
+<g id="edge353" class="edge"><title>Node1&#45;&gt;Node354</title>
 <path fill="none" stroke="midnightblue" d="M25.3254,-1453.04C29.315,-1360.92 47.8614,-979.655 83,-941 92.4946,-930.555 106.104,-925.015 119.934,-922.253"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.8205,-1453.09 24.8932,-1463.23 28.8142,-1453.38 21.8205,-1453.09"/>
 </g>
-<!-- Node347 -->
-<g id="node347" class="node"><title>Node347</title>
-<g id="a_node347"><a xlink:href="classtvm_1_1tir_1_1CommReducerNode.html" target="_top" xlink:title="A commutative reducer node to represent a commutative binary operator with identity element...">
+<!-- Node355 -->
+<g id="node355" class="node"><title>Node355</title>
+<g id="a_node355"><a xlink:href="classtvm_1_1tir_1_1CommReducerNode.html" target="_top" xlink:title="A commutative reducer node to represent a commutative binary operator with identity element...">
 <polygon fill="white" stroke="black" points="99,-874.5 99,-893.5 252,-893.5 252,-874.5 99,-874.5"/>
 <text text-anchor="middle" x="175.5" y="-881.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::CommReducerNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node347 -->
-<g id="edge346" class="edge"><title>Node1&#45;&gt;Node347</title>
+<!-- Node1&#45;&gt;Node355 -->
+<g id="edge354" class="edge"><title>Node1&#45;&gt;Node355</title>
 <path fill="none" stroke="midnightblue" d="M25.1569,-1453.45C28.5374,-1358.11 45.2943,-944.782 83,-903 87.4566,-898.062 92.8327,-894.218 98.7194,-891.244"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.6588,-1453.34 24.8105,-1463.46 28.6546,-1453.58 21.6588,-1453.34"/>
 </g>
-<!-- Node348 -->
-<g id="node348" class="node"><title>Node348</title>
-<g id="a_node348"><a xlink:href="classtvm_1_1tir_1_1DataProducerNode.html" target="_top" xlink:title="Base node for data producers. ">
+<!-- Node356 -->
+<g id="node356" class="node"><title>Node356</title>
+<g id="a_node356"><a xlink:href="classtvm_1_1tir_1_1DataProducerNode.html" target="_top" xlink:title="Base node for data producers. ">
 <polygon fill="white" stroke="black" points="101,-836.5 101,-855.5 250,-855.5 250,-836.5 101,-836.5"/>
 <text text-anchor="middle" x="175.5" y="-843.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::DataProducerNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node348 -->
-<g id="edge347" class="edge"><title>Node1&#45;&gt;Node348</title>
+<!-- Node1&#45;&gt;Node356 -->
+<g id="edge355" class="edge"><title>Node1&#45;&gt;Node356</title>
 <path fill="none" stroke="midnightblue" d="M25.0349,-1453.1C27.8992,-1353.25 42.8218,-909.807 83,-865 87.9825,-859.444 94.1287,-855.271 100.86,-852.163"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.5307,-1453.21 24.7506,-1463.3 28.528,-1453.4 21.5307,-1453.21"/>
 </g>
-<!-- Node350 -->
-<g id="node350" class="node"><title>Node350</title>
-<g id="a_node350"><a xlink:href="classtvm_1_1tir_1_1IterVarNode.html" target="_top" xlink:title="An iteration variable representing an iteration over a one dimensional interval. ">
+<!-- Node358 -->
+<g id="node358" class="node"><title>Node358</title>
+<g id="a_node358"><a xlink:href="classtvm_1_1tir_1_1IterVarNode.html" target="_top" xlink:title="An iteration variable representing an iteration over a one dimensional interval. ">
 <polygon fill="white" stroke="black" points="118.5,-798.5 118.5,-817.5 232.5,-817.5 232.5,-798.5 118.5,-798.5"/>
 <text text-anchor="middle" x="175.5" y="-805.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::IterVarNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node350 -->
-<g id="edge349" class="edge"><title>Node1&#45;&gt;Node350</title>
+<!-- Node1&#45;&gt;Node358 -->
+<g id="edge357" class="edge"><title>Node1&#45;&gt;Node358</title>
 <path fill="none" stroke="midnightblue" d="M24.9147,-1453.16C27.2576,-1349.71 40.29,-874.9 83,-827 92.0699,-816.828 105.039,-811.286 118.372,-808.43"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.415,-1453.12 24.6953,-1463.19 28.4133,-1453.27 21.415,-1453.12"/>
 </g>
-<!-- Node351 -->
-<g id="node351" class="node"><title>Node351</title>
-<g id="a_node351"><a xlink:href="classtvm_1_1tir_1_1LayoutNode.html" target="_top" xlink:title="Layout is to describe how data is organized within an N&#45;dimention tensor. It is composed of upper cas...">
+<!-- Node359 -->
+<g id="node359" class="node"><title>Node359</title>
+<g id="a_node359"><a xlink:href="classtvm_1_1tir_1_1LayoutNode.html" target="_top" xlink:title="Layout is to describe how data is organized within an N&#45;dimention tensor. It is composed of upper cas...">
 <polygon fill="white" stroke="black" points="118,-760.5 118,-779.5 233,-779.5 233,-760.5 118,-760.5"/>
 <text text-anchor="middle" x="175.5" y="-767.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::LayoutNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node351 -->
-<g id="edge350" class="edge"><title>Node1&#45;&gt;Node351</title>
+<!-- Node1&#45;&gt;Node359 -->
+<g id="edge358" class="edge"><title>Node1&#45;&gt;Node359</title>
 <path fill="none" stroke="midnightblue" d="M24.806,-1453.36C26.6461,-1346.69 37.7354,-840.021 83,-789 91.9368,-778.927 104.697,-773.388 117.862,-770.503"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.3061,-1453.32 24.6405,-1463.38 28.3052,-1453.44 21.3061,-1453.32"/>
 </g>
-<!-- Node352 -->
-<g id="node352" class="node"><title>Node352</title>
-<g id="a_node352"><a xlink:href="classtvm_1_1tir_1_1StmtNode.html" target="_top" xlink:title="Base node of all statements. ">
+<!-- Node360 -->
+<g id="node360" class="node"><title>Node360</title>
+<g id="a_node360"><a xlink:href="classtvm_1_1tir_1_1StmtNode.html" target="_top" xlink:title="Base node of all statements. ">
 <polygon fill="white" stroke="black" points="122,-722.5 122,-741.5 229,-741.5 229,-722.5 122,-722.5"/>
 <text text-anchor="middle" x="175.5" y="-729.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::StmtNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node352 -->
-<g id="edge351" class="edge"><title>Node1&#45;&gt;Node352</title>
+<!-- Node1&#45;&gt;Node360 -->
+<g id="edge359" class="edge"><title>Node1&#45;&gt;Node360</title>
 <path fill="none" stroke="midnightblue" d="M24.7131,-1453.31C26.086,-1343.04 35.2103,-805.11 83,-751 92.7735,-739.934 107.16,-734.334 121.646,-731.713"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.2127,-1453.33 24.5951,-1463.37 28.2123,-1453.41 21.2127,-1453.33"/>
 </g>
-<!-- Node367 -->
-<g id="node367" class="node"><title>Node367</title>
-<g id="a_node367"><a xlink:href="classtvm_1_1transform_1_1PassContextNode.html" target="_top" xlink:title="PassContextNode contains the information that a pass can rely on, such as analysis results...">
+<!-- Node375 -->
+<g id="node375" class="node"><title>Node375</title>
+<g id="a_node375"><a xlink:href="classtvm_1_1transform_1_1PassContextNode.html" target="_top" xlink:title="PassContextNode contains the information that a pass can rely on, such as analysis results...">
 <polygon fill="white" stroke="black" points="86,-684.5 86,-703.5 265,-703.5 265,-684.5 86,-684.5"/>
 <text text-anchor="middle" x="175.5" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::transform::PassContextNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node367 -->
-<g id="edge366" class="edge"><title>Node1&#45;&gt;Node367</title>
+<!-- Node1&#45;&gt;Node375 -->
+<g id="edge374" class="edge"><title>Node1&#45;&gt;Node375</title>
 <path fill="none" stroke="midnightblue" d="M24.6284,-1453.35C25.55,-1339.75 32.6694,-770.219 83,-713 86.2147,-709.345 89.9325,-706.286 93.9913,-703.734"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.1282,-1453.37 24.5539,-1463.4 28.128,-1453.43 21.1282,-1453.37"/>
 </g>
-<!-- Node368 -->
-<g id="node368" class="node"><title>Node368</title>
-<g id="a_node368"><a xlink:href="classtvm_1_1transform_1_1PassInfoNode.html" target="_top" xlink:title="Meta data that will be used to help optimization and analysis. ">
+<!-- Node376 -->
+<g id="node376" class="node"><title>Node376</title>
+<g id="a_node376"><a xlink:href="classtvm_1_1transform_1_1PassInfoNode.html" target="_top" xlink:title="Meta data that will be used to help optimization and analysis. ">
 <polygon fill="white" stroke="black" points="96,-646.5 96,-665.5 255,-665.5 255,-646.5 96,-646.5"/>
 <text text-anchor="middle" x="175.5" y="-653.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::transform::PassInfoNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node368 -->
-<g id="edge367" class="edge"><title>Node1&#45;&gt;Node368</title>
+<!-- Node1&#45;&gt;Node376 -->
+<g id="edge375" class="edge"><title>Node1&#45;&gt;Node376</title>
 <path fill="none" stroke="midnightblue" d="M24.5516,-1453.47C25.0384,-1336.83 30.1128,-735.347 83,-675 86.6357,-670.851 90.9197,-667.47 95.6156,-664.724"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.0517,-1453.46 24.5167,-1463.47 28.0517,-1453.48 21.0517,-1453.46"/>
 </g>
-<!-- Node369 -->
-<g id="node369" class="node"><title>Node369</title>
-<g id="a_node369"><a xlink:href="classtvm_1_1transform_1_1PassNode.html" target="_top" xlink:title="PassNode is the base type of differnt types of optimization passes. It is designed as a pure class an...">
+<!-- Node377 -->
+<g id="node377" class="node"><title>Node377</title>
+<g id="a_node377"><a xlink:href="classtvm_1_1transform_1_1PassNode.html" target="_top" xlink:title="PassNode is the base type of differnt types of optimization passes. It is designed as a pure class an...">
 <polygon fill="white" stroke="black" points="104.5,-608.5 104.5,-627.5 246.5,-627.5 246.5,-608.5 104.5,-608.5"/>
 <text text-anchor="middle" x="175.5" y="-615.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::transform::PassNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node369 -->
-<g id="edge368" class="edge"><title>Node1&#45;&gt;Node369</title>
+<!-- Node1&#45;&gt;Node377 -->
+<g id="edge376" class="edge"><title>Node1&#45;&gt;Node377</title>
 <path fill="none" stroke="midnightblue" d="M24.4828,-1453.29C24.5579,-1332.95 27.5987,-700.427 83,-637 88.7635,-630.402 96.1668,-625.741 104.262,-622.496"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="20.9827,-1453.3 24.4831,-1463.3 27.9827,-1453.3 20.9827,-1453.3"/>
 </g>
-<!-- Node370 -->
-<g id="node370" class="node"><title>Node370</title>
-<g id="a_node370"><a xlink:href="classtvm_1_1TypeNode.html" target="_top" xlink:title="Type is the base type of all types. ">
+<!-- Node378 -->
+<g id="node378" class="node"><title>Node378</title>
+<g id="a_node378"><a xlink:href="classtvm_1_1TypeNode.html" target="_top" xlink:title="Type is the base type of all types. ">
 <polygon fill="white" stroke="black" points="131.5,-247.5 131.5,-266.5 219.5,-266.5 219.5,-247.5 131.5,-247.5"/>
 <text text-anchor="middle" x="175.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypeNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node370 -->
-<g id="edge369" class="edge"><title>Node1&#45;&gt;Node370</title>
+<!-- Node1&#45;&gt;Node378 -->
+<g id="edge377" class="edge"><title>Node1&#45;&gt;Node378</title>
 <path fill="none" stroke="midnightblue" d="M24.4074,-1453.26C24.2555,-1358.1 26.9454,-937.458 83,-599 105.244,-464.688 157.495,-306.767 171.174,-266.642"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="20.9079,-1453.45 24.4376,-1463.44 27.9078,-1453.43 20.9079,-1453.45"/>
 </g>
-<!-- Node385 -->
-<g id="node385" class="node"><title>Node385</title>
-<g id="a_node385"><a xlink:href="classtvm_1_1TypeReporterNode.html" target="_top" xlink:title="reporter that reports back to the type resolution information. ">
+<!-- Node393 -->
+<g id="node393" class="node"><title>Node393</title>
+<g id="a_node393"><a xlink:href="classtvm_1_1TypeReporterNode.html" target="_top" xlink:title="reporter that reports back to the type resolution information. ">
 <polygon fill="white" stroke="black" points="111.5,-209.5 111.5,-228.5 239.5,-228.5 239.5,-209.5 111.5,-209.5"/>
 <text text-anchor="middle" x="175.5" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypeReporterNode</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node385 -->
-<g id="edge384" class="edge"><title>Node1&#45;&gt;Node385</title>
+<!-- Node1&#45;&gt;Node393 -->
+<g id="edge392" class="edge"><title>Node1&#45;&gt;Node393</title>
 <path fill="none" stroke="midnightblue" d="M24.7535,-1453.13C26.8156,-1298.03 41.824,-286.227 83,-238 90.3744,-229.363 100.557,-224.029 111.461,-220.837"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="21.2493,-1453.43 24.6184,-1463.47 28.2487,-1453.52 21.2493,-1453.43"/>
 </g>
 <!-- Node10 -->
 <g id="node10" class="node"><title>Node10</title>
 <g id="a_node10"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Adaptive\lPool2DAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326,-8121 326,-8151 469,-8151 469,-8121 326,-8121"/>
-<text text-anchor="start" x="334" y="-8139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Adaptive</text>
-<text text-anchor="middle" x="397.5" y="-8128" font-family="Helvetica,sans-Serif" font-size="10.00">Pool2DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="326,-8319 326,-8349 469,-8349 469,-8319 326,-8319"/>
+<text text-anchor="start" x="334" y="-8337" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Adaptive</text>
+<text text-anchor="middle" x="397.5" y="-8326" font-family="Helvetica,sans-Serif" font-size="10.00">Pool2DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node10 -->
 <g id="edge9" class="edge"><title>Node9&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M242.355,-5629.46C252.246,-5632.74 261.345,-5637.94 268,-5646 355.249,-5751.64 219.371,-8004.25 304,-8112 309.739,-8119.31 317.393,-8124.57 325.85,-8128.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.246,-5626.07 232.682,-5626.87 241.44,-5632.84 243.246,-5626.07"/>
+<path fill="none" stroke="midnightblue" d="M242.358,-5729.45C252.25,-5732.73 261.347,-5737.94 268,-5746 358.685,-5855.87 216.04,-8197.94 304,-8310 309.737,-8317.31 317.39,-8322.57 325.846,-8326.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.25,-5726.07 232.686,-5726.87 241.444,-5732.83 243.25,-5726.07"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node"><title>Node12</title>
 <g id="a_node12"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Adaptive\lPool3DAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326,-8072 326,-8102 469,-8102 469,-8072 326,-8072"/>
-<text text-anchor="start" x="334" y="-8090" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Adaptive</text>
-<text text-anchor="middle" x="397.5" y="-8079" font-family="Helvetica,sans-Serif" font-size="10.00">Pool3DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="326,-8270 326,-8300 469,-8300 469,-8270 326,-8270"/>
+<text text-anchor="start" x="334" y="-8288" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Adaptive</text>
+<text text-anchor="middle" x="397.5" y="-8277" font-family="Helvetica,sans-Serif" font-size="10.00">Pool3DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node12 -->
 <g id="edge11" class="edge"><title>Node9&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M242.353,-5629.46C252.244,-5632.74 261.344,-5637.94 268,-5646 353.531,-5749.53 221.037,-7957.4 304,-8063 309.74,-8070.31 317.395,-8075.56 325.852,-8079.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.244,-5626.07 232.68,-5626.88 241.438,-5632.84 243.244,-5626.07"/>
+<path fill="none" stroke="midnightblue" d="M242.356,-5729.46C252.248,-5732.73 261.346,-5737.94 268,-5746 356.967,-5853.75 217.706,-8151.09 304,-8261 309.738,-8268.31 317.391,-8273.57 325.848,-8277.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.248,-5726.07 232.684,-5726.87 241.442,-5732.83 243.248,-5726.07"/>
 </g>
 <!-- Node14 -->
 <g id="node14" class="node"><title>Node14</title>
 <g id="a_node14"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AffineGrid\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="323.5,-8023 323.5,-8053 471.5,-8053 471.5,-8023 323.5,-8023"/>
-<text text-anchor="start" x="331.5" y="-8041" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AffineGrid</text>
-<text text-anchor="middle" x="397.5" y="-8030" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="323.5,-8221 323.5,-8251 471.5,-8251 471.5,-8221 323.5,-8221"/>
+<text text-anchor="start" x="331.5" y="-8239" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AffineGrid</text>
+<text text-anchor="middle" x="397.5" y="-8228" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node14 -->
 <g id="edge13" class="edge"><title>Node9&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M242.35,-5629.46C252.243,-5632.74 261.343,-5637.94 268,-5646 351.813,-5747.42 222.703,-7910.55 304,-8014 309.126,-8020.52 315.778,-8025.41 323.164,-8029.06"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.242,-5626.08 232.677,-5626.88 241.436,-5632.84 243.242,-5626.08"/>
+<path fill="none" stroke="midnightblue" d="M242.355,-5729.46C252.246,-5732.74 261.345,-5737.94 268,-5746 355.249,-5851.64 219.371,-8104.25 304,-8212 309.124,-8218.52 315.775,-8223.41 323.161,-8227.06"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.246,-5726.07 232.682,-5726.87 241.44,-5732.84 243.246,-5726.07"/>
 </g>
 <!-- Node16 -->
 <g id="node16" class="node"><title>Node16</title>
 <g id="a_node16"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AllocStorage\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="316.5,-7974 316.5,-8004 478.5,-8004 478.5,-7974 316.5,-7974"/>
-<text text-anchor="start" x="324.5" y="-7992" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AllocStorage</text>
-<text text-anchor="middle" x="397.5" y="-7981" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="316.5,-8172 316.5,-8202 478.5,-8202 478.5,-8172 316.5,-8172"/>
+<text text-anchor="start" x="324.5" y="-8190" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AllocStorage</text>
+<text text-anchor="middle" x="397.5" y="-8179" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node16 -->
 <g id="edge15" class="edge"><title>Node9&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M242.348,-5629.46C252.241,-5632.74 261.341,-5637.95 268,-5646 350.095,-5745.31 224.368,-7863.7 304,-7965 307.486,-7969.43 311.678,-7973.11 316.326,-7976.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.24,-5626.08 232.675,-5626.88 241.434,-5632.84 243.24,-5626.08"/>
+<path fill="none" stroke="midnightblue" d="M242.353,-5729.46C252.244,-5732.74 261.344,-5737.94 268,-5746 353.531,-5849.53 221.037,-8057.4 304,-8163 307.485,-8167.44 311.676,-8171.12 316.323,-8174.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.244,-5726.07 232.68,-5726.88 241.438,-5732.84 243.244,-5726.07"/>
 </g>
 <!-- Node18 -->
 <g id="node18" class="node"><title>Node18</title>
 <g id="a_node18"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AllocTensor\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="320,-7925 320,-7955 475,-7955 475,-7925 320,-7925"/>
-<text text-anchor="start" x="328" y="-7943" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AllocTensor</text>
-<text text-anchor="middle" x="397.5" y="-7932" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="320,-8123 320,-8153 475,-8153 475,-8123 320,-8123"/>
+<text text-anchor="start" x="328" y="-8141" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AllocTensor</text>
+<text text-anchor="middle" x="397.5" y="-8130" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node18 -->
 <g id="edge17" class="edge"><title>Node9&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M242.346,-5629.46C252.239,-5632.74 261.34,-5637.95 268,-5646 348.342,-5743.15 226.569,-7815.51 304,-7915 308.291,-7920.51 313.664,-7924.89 319.648,-7928.36"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.237,-5626.08 232.673,-5626.88 241.431,-5632.84 243.237,-5626.08"/>
+<path fill="none" stroke="midnightblue" d="M242.35,-5729.46C252.243,-5732.74 261.343,-5737.94 268,-5746 351.778,-5847.38 223.26,-8009.19 304,-8113 308.289,-8118.52 313.661,-8122.89 319.644,-8126.36"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.242,-5726.08 232.677,-5726.88 241.436,-5732.84 243.242,-5726.08"/>
 </g>
 <!-- Node20 -->
 <g id="node20" class="node"><title>Node20</title>
 <g id="a_node20"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ArangeAttrs \&gt;">
-<polygon fill="white" stroke="black" points="312.5,-7886.5 312.5,-7905.5 482.5,-7905.5 482.5,-7886.5 312.5,-7886.5"/>
-<text text-anchor="middle" x="397.5" y="-7893.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ArangeAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="312.5,-8084.5 312.5,-8103.5 482.5,-8103.5 482.5,-8084.5 312.5,-8084.5"/>
+<text text-anchor="middle" x="397.5" y="-8091.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ArangeAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node20 -->
 <g id="edge19" class="edge"><title>Node9&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M242.344,-5629.47C252.237,-5632.74 261.339,-5637.95 268,-5646 347.01,-5741.52 224.887,-7781.57 304,-7877 307.034,-7880.66 310.568,-7883.73 314.449,-7886.31"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.235,-5626.08 232.671,-5626.88 241.429,-5632.84 243.235,-5626.08"/>
+<path fill="none" stroke="midnightblue" d="M242.349,-5729.46C252.241,-5732.74 261.342,-5737.94 268,-5746 350.446,-5845.74 221.447,-7975.35 304,-8075 307.033,-8078.66 310.566,-8081.74 314.446,-8084.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.24,-5726.08 232.676,-5726.88 241.434,-5732.84 243.24,-5726.08"/>
 </g>
 <!-- Node22 -->
 <g id="node22" class="node"><title>Node22</title>
 <g id="a_node22"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ArgsortAttrs \&gt;">
-<polygon fill="white" stroke="black" points="312,-7848.5 312,-7867.5 483,-7867.5 483,-7848.5 312,-7848.5"/>
-<text text-anchor="middle" x="397.5" y="-7855.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ArgsortAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="312,-8046.5 312,-8065.5 483,-8065.5 483,-8046.5 312,-8046.5"/>
+<text text-anchor="middle" x="397.5" y="-8053.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ArgsortAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node22 -->
 <g id="edge21" class="edge"><title>Node9&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M242.342,-5629.47C252.235,-5632.75 261.338,-5637.95 268,-5646 345.678,-5739.88 226.221,-7745.2 304,-7839 307.035,-7842.66 310.569,-7845.73 314.451,-7848.31"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.233,-5626.08 232.669,-5626.88 241.427,-5632.85 243.233,-5626.08"/>
+<path fill="none" stroke="midnightblue" d="M242.347,-5729.46C252.239,-5732.74 261.341,-5737.95 268,-5746 349.114,-5844.1 222.781,-7938.98 304,-8037 307.034,-8040.66 310.567,-8043.74 314.448,-8046.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.238,-5726.08 232.674,-5726.88 241.432,-5732.84 243.238,-5726.08"/>
 </g>
 <!-- Node24 -->
 <g id="node24" class="node"><title>Node24</title>
 <g id="a_node24"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AvgPool1\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="325,-7799 325,-7829 470,-7829 470,-7799 325,-7799"/>
-<text text-anchor="start" x="333" y="-7817" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AvgPool1</text>
-<text text-anchor="middle" x="397.5" y="-7806" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="325,-7997 325,-8027 470,-8027 470,-7997 325,-7997"/>
+<text text-anchor="start" x="333" y="-8015" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AvgPool1</text>
+<text text-anchor="middle" x="397.5" y="-8004" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node24 -->
 <g id="edge23" class="edge"><title>Node9&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M242.34,-5629.47C252.233,-5632.75 261.336,-5637.95 268,-5646 343.96,-5737.77 230.317,-7696.39 304,-7790 309.541,-7797.04 316.861,-7802.18 324.961,-7805.9"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.231,-5626.09 232.666,-5626.89 241.425,-5632.85 243.231,-5626.09"/>
+<path fill="none" stroke="midnightblue" d="M242.345,-5729.47C252.237,-5732.74 261.339,-5737.95 268,-5746 347.396,-5841.99 226.985,-7890.09 304,-7988 309.539,-7995.04 316.857,-8000.18 324.957,-8003.91"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.236,-5726.08 232.671,-5726.88 241.43,-5732.84 243.236,-5726.08"/>
 </g>
 <!-- Node26 -->
 <g id="node26" class="node"><title>Node26</title>
 <g id="a_node26"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AvgPool2\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="325,-7750 325,-7780 470,-7780 470,-7750 325,-7750"/>
-<text text-anchor="start" x="333" y="-7768" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AvgPool2</text>
-<text text-anchor="middle" x="397.5" y="-7757" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="325,-7948 325,-7978 470,-7978 470,-7948 325,-7948"/>
+<text text-anchor="start" x="333" y="-7966" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AvgPool2</text>
+<text text-anchor="middle" x="397.5" y="-7955" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node26 -->
 <g id="edge25" class="edge"><title>Node9&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M242.337,-5629.47C252.231,-5632.75 261.335,-5637.95 268,-5646 342.242,-5735.66 231.982,-7649.55 304,-7741 309.543,-7748.04 316.863,-7753.18 324.964,-7756.9"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.228,-5626.09 232.663,-5626.89 241.422,-5632.85 243.228,-5626.09"/>
+<path fill="none" stroke="midnightblue" d="M242.342,-5729.47C252.235,-5732.75 261.338,-5737.95 268,-5746 345.678,-5839.88 228.651,-7843.24 304,-7939 309.54,-7946.04 316.859,-7951.18 324.959,-7954.9"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.233,-5726.08 232.669,-5726.88 241.427,-5732.85 243.233,-5726.08"/>
 </g>
 <!-- Node28 -->
 <g id="node28" class="node"><title>Node28</title>
 <g id="a_node28"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AvgPool3\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="325,-7701 325,-7731 470,-7731 470,-7701 325,-7701"/>
-<text text-anchor="start" x="333" y="-7719" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AvgPool3</text>
-<text text-anchor="middle" x="397.5" y="-7708" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="325,-7899 325,-7929 470,-7929 470,-7899 325,-7899"/>
+<text text-anchor="start" x="333" y="-7917" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; AvgPool3</text>
+<text text-anchor="middle" x="397.5" y="-7906" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node28 -->
 <g id="edge27" class="edge"><title>Node9&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M242.334,-5629.47C252.228,-5632.75 261.333,-5637.95 268,-5646 340.524,-5733.55 233.648,-7602.7 304,-7692 309.544,-7699.04 316.865,-7704.17 324.967,-7707.9"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.225,-5626.09 232.66,-5626.89 241.419,-5632.85 243.225,-5626.09"/>
+<path fill="none" stroke="midnightblue" d="M242.34,-5729.47C252.233,-5732.75 261.336,-5737.95 268,-5746 343.96,-5837.77 230.317,-7796.39 304,-7890 309.541,-7897.04 316.861,-7902.18 324.961,-7905.9"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.231,-5726.09 232.666,-5726.89 241.425,-5732.85 243.231,-5726.09"/>
 </g>
 <!-- Node30 -->
 <g id="node30" class="node"><title>Node30</title>
 <g id="a_node30"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BatchNorm\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="319.5,-7652 319.5,-7682 475.5,-7682 475.5,-7652 319.5,-7652"/>
-<text text-anchor="start" x="327.5" y="-7670" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BatchNorm</text>
-<text text-anchor="middle" x="397.5" y="-7659" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="319.5,-7850 319.5,-7880 475.5,-7880 475.5,-7850 319.5,-7850"/>
+<text text-anchor="start" x="327.5" y="-7868" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BatchNorm</text>
+<text text-anchor="middle" x="397.5" y="-7857" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node30 -->
 <g id="edge29" class="edge"><title>Node9&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M242.331,-5629.48C252.225,-5632.75 261.331,-5637.95 268,-5646 338.771,-5731.39 235.788,-7554.55 304,-7642 308.195,-7647.38 313.419,-7651.67 319.234,-7655.1"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.222,-5626.09 232.657,-5626.89 241.416,-5632.86 243.222,-5626.09"/>
+<path fill="none" stroke="midnightblue" d="M242.337,-5729.47C252.231,-5732.75 261.335,-5737.95 268,-5746 342.207,-5835.61 232.479,-7748.23 304,-7840 308.193,-7845.38 313.415,-7849.68 319.229,-7853.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.228,-5726.09 232.663,-5726.89 241.422,-5732.85 243.228,-5726.09"/>
 </g>
 <!-- Node32 -->
 <g id="node32" class="node"><title>Node32</title>
 <g id="a_node32"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BiasAddAttrs \&gt;">
-<polygon fill="white" stroke="black" points="310,-7613.5 310,-7632.5 485,-7632.5 485,-7613.5 310,-7613.5"/>
-<text text-anchor="middle" x="397.5" y="-7620.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BiasAddAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="310,-7811.5 310,-7830.5 485,-7830.5 485,-7811.5 310,-7811.5"/>
+<text text-anchor="middle" x="397.5" y="-7818.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BiasAddAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node32 -->
 <g id="edge31" class="edge"><title>Node9&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M242.329,-5629.48C252.223,-5632.76 261.33,-5637.95 268,-5646 337.439,-5729.75 234.471,-7520.32 304,-7604 307.038,-7607.66 310.575,-7610.73 314.459,-7613.3"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.219,-5626.09 232.655,-5626.9 241.414,-5632.86 243.219,-5626.09"/>
+<path fill="none" stroke="midnightblue" d="M242.335,-5729.47C252.229,-5732.75 261.333,-5737.95 268,-5746 340.875,-5833.98 231.031,-7714.1 304,-7802 307.037,-7805.66 310.573,-7808.73 314.455,-7811.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.225,-5726.09 232.661,-5726.89 241.42,-5732.85 243.225,-5726.09"/>
 </g>
 <!-- Node34 -->
 <g id="node34" class="node"><title>Node34</title>
 <g id="a_node34"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BinaryConv2\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="317,-7564 317,-7594 478,-7594 478,-7564 317,-7564"/>
-<text text-anchor="start" x="325" y="-7582" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BinaryConv2</text>
-<text text-anchor="middle" x="397.5" y="-7571" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="317,-7762 317,-7792 478,-7792 478,-7762 317,-7762"/>
+<text text-anchor="start" x="325" y="-7780" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BinaryConv2</text>
+<text text-anchor="middle" x="397.5" y="-7769" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node34 -->
 <g id="edge33" class="edge"><title>Node9&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M242.326,-5629.48C252.221,-5632.76 261.328,-5637.96 268,-5646 335.721,-5727.64 238.304,-7471.72 304,-7555 307.596,-7559.56 311.938,-7563.32 316.755,-7566.42"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.216,-5626.1 232.651,-5626.9 241.411,-5632.86 243.216,-5626.1"/>
+<path fill="none" stroke="midnightblue" d="M242.332,-5729.48C252.226,-5732.75 261.332,-5737.95 268,-5746 339.157,-5831.87 234.973,-7665.41 304,-7753 307.594,-7757.56 311.935,-7761.32 316.75,-7764.42"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.222,-5726.09 232.658,-5726.89 241.417,-5732.85 243.222,-5726.09"/>
 </g>
 <!-- Node36 -->
 <g id="node36" class="node"><title>Node36</title>
 <g id="a_node36"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BinaryDense\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="316.5,-7515 316.5,-7545 478.5,-7545 478.5,-7515 316.5,-7515"/>
-<text text-anchor="start" x="324.5" y="-7533" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BinaryDense</text>
-<text text-anchor="middle" x="397.5" y="-7522" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="316.5,-7713 316.5,-7743 478.5,-7743 478.5,-7713 316.5,-7713"/>
+<text text-anchor="start" x="324.5" y="-7731" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BinaryDense</text>
+<text text-anchor="middle" x="397.5" y="-7720" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node36 -->
 <g id="edge35" class="edge"><title>Node9&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M242.322,-5629.48C252.217,-5632.76 261.326,-5637.96 268,-5646 333.968,-5725.49 240.414,-7423.59 304,-7505 307.482,-7509.46 311.67,-7513.17 316.316,-7516.26"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.212,-5626.1 232.648,-5626.9 241.407,-5632.86 243.212,-5626.1"/>
+<path fill="none" stroke="midnightblue" d="M242.329,-5729.48C252.223,-5732.76 261.33,-5737.95 268,-5746 337.404,-5829.71 237.105,-7617.27 304,-7703 307.479,-7707.46 311.666,-7711.17 316.311,-7714.27"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.219,-5726.09 232.655,-5726.9 241.414,-5732.86 243.219,-5726.09"/>
 </g>
 <!-- Node38 -->
 <g id="node38" class="node"><title>Node38</title>
 <g id="a_node38"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BitPackAttrs \&gt;">
-<polygon fill="white" stroke="black" points="312.5,-7476.5 312.5,-7495.5 482.5,-7495.5 482.5,-7476.5 312.5,-7476.5"/>
-<text text-anchor="middle" x="397.5" y="-7483.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BitPackAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="312.5,-7674.5 312.5,-7693.5 482.5,-7693.5 482.5,-7674.5 312.5,-7674.5"/>
+<text text-anchor="middle" x="397.5" y="-7681.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; BitPackAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node38 -->
 <g id="edge37" class="edge"><title>Node9&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M242.32,-5629.49C252.215,-5632.76 261.324,-5637.96 268,-5646 332.636,-5723.85 239.28,-7389.22 304,-7467 307.041,-7470.65 310.58,-7473.73 314.465,-7476.3"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.209,-5626.1 232.645,-5626.9 241.404,-5632.86 243.209,-5626.1"/>
+<path fill="none" stroke="midnightblue" d="M242.326,-5729.48C252.221,-5732.76 261.328,-5737.96 268,-5746 336.072,-5828.07 235.84,-7583 304,-7665 307.039,-7668.66 310.577,-7671.73 314.461,-7674.3"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.217,-5726.1 232.652,-5726.9 241.411,-5732.86 243.217,-5726.1"/>
 </g>
 <!-- Node40 -->
 <g id="node40" class="node"><title>Node40</title>
 <g id="a_node40"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CastAttrs \&gt;">
-<polygon fill="white" stroke="black" points="318.5,-7438.5 318.5,-7457.5 476.5,-7457.5 476.5,-7438.5 318.5,-7438.5"/>
-<text text-anchor="middle" x="397.5" y="-7445.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; CastAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="318.5,-7636.5 318.5,-7655.5 476.5,-7655.5 476.5,-7636.5 318.5,-7636.5"/>
+<text text-anchor="middle" x="397.5" y="-7643.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; CastAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node40 -->
 <g id="edge39" class="edge"><title>Node9&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M242.317,-5629.49C252.213,-5632.76 261.323,-5637.96 268,-5646 331.304,-5722.21 240.614,-7352.85 304,-7429 307.986,-7433.79 312.826,-7437.57 318.18,-7440.55"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.206,-5626.1 232.642,-5626.91 241.401,-5632.87 243.206,-5626.1"/>
+<path fill="none" stroke="midnightblue" d="M242.324,-5729.48C252.219,-5732.76 261.327,-5737.96 268,-5746 334.739,-5826.44 237.174,-7546.63 304,-7627 307.983,-7631.79 312.822,-7635.58 318.175,-7638.55"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.214,-5726.1 232.649,-5726.9 241.409,-5732.86 243.214,-5726.1"/>
 </g>
 <!-- Node42 -->
 <g id="node42" class="node"><title>Node42</title>
 <g id="a_node42"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CastHint\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326,-7389 326,-7419 469,-7419 469,-7389 326,-7389"/>
-<text text-anchor="start" x="334" y="-7407" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; CastHint</text>
-<text text-anchor="middle" x="397.5" y="-7396" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="326,-7587 326,-7617 469,-7617 469,-7587 326,-7587"/>
+<text text-anchor="start" x="334" y="-7605" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; CastHint</text>
+<text text-anchor="middle" x="397.5" y="-7594" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node42 -->
 <g id="edge41" class="edge"><title>Node9&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M242.313,-5629.49C252.209,-5632.77 261.32,-5637.96 268,-5646 329.551,-5720.06 244.669,-7303.15 304,-7379 309.74,-7386.34 317.394,-7391.66 325.852,-7395.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.202,-5626.11 232.638,-5626.91 241.397,-5632.87 243.202,-5626.11"/>
+<path fill="none" stroke="midnightblue" d="M242.32,-5729.49C252.216,-5732.76 261.325,-5737.96 268,-5746 332.986,-5824.28 241.36,-7496.83 304,-7577 309.735,-7584.34 317.388,-7589.67 325.844,-7593.51"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.21,-5726.1 232.646,-5726.9 241.405,-5732.86 243.21,-5726.1"/>
 </g>
 <!-- Node44 -->
 <g id="node44" class="node"><title>Node44</title>
 <g id="a_node44"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ClipAttrs \&gt;">
-<polygon fill="white" stroke="black" points="321,-7350.5 321,-7369.5 474,-7369.5 474,-7350.5 321,-7350.5"/>
-<text text-anchor="middle" x="397.5" y="-7357.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ClipAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="321,-7548.5 321,-7567.5 474,-7567.5 474,-7548.5 321,-7548.5"/>
+<text text-anchor="middle" x="397.5" y="-7555.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ClipAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node44 -->
 <g id="edge43" class="edge"><title>Node9&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M242.31,-5629.49C252.206,-5632.77 261.318,-5637.96 268,-5646 328.219,-5718.42 243.704,-7268.64 304,-7341 308.618,-7346.54 314.381,-7350.74 320.759,-7353.89"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.199,-5626.11 232.635,-5626.91 241.394,-5632.87 243.199,-5626.11"/>
+<path fill="none" stroke="midnightblue" d="M242.317,-5729.49C252.213,-5732.76 261.323,-5737.96 268,-5746 331.654,-5822.65 240.263,-7462.42 304,-7539 308.615,-7544.54 314.376,-7548.74 320.752,-7551.9"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.207,-5726.1 232.643,-5726.91 241.402,-5732.87 243.207,-5726.1"/>
 </g>
 <!-- Node46 -->
 <g id="node46" class="node"><title>Node46</title>
 <g id="a_node46"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Compiler\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="325.5,-7301 325.5,-7331 469.5,-7331 469.5,-7301 325.5,-7301"/>
-<text text-anchor="start" x="333.5" y="-7319" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Compiler</text>
-<text text-anchor="middle" x="397.5" y="-7308" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="325.5,-7499 325.5,-7529 469.5,-7529 469.5,-7499 325.5,-7499"/>
+<text text-anchor="start" x="333.5" y="-7517" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Compiler</text>
+<text text-anchor="middle" x="397.5" y="-7506" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node46 -->
 <g id="edge45" class="edge"><title>Node9&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M242.305,-5629.5C252.202,-5632.77 261.316,-5637.97 268,-5646 326.501,-5716.31 247.244,-7220.27 304,-7292 309.662,-7299.16 317.161,-7304.34 325.446,-7308.08"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.194,-5626.11 232.63,-5626.92 241.39,-5632.88 243.194,-5626.11"/>
+<path fill="none" stroke="midnightblue" d="M242.314,-5729.49C252.21,-5732.77 261.321,-5737.96 268,-5746 329.936,-5820.53 243.913,-7413.97 304,-7490 309.658,-7497.16 317.154,-7502.35 325.438,-7506.09"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.203,-5726.11 232.639,-5726.91 241.398,-5732.87 243.203,-5726.11"/>
 </g>
 <!-- Node48 -->
 <g id="node48" class="node"><title>Node48</title>
 <g id="a_node48"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Concatenate\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="316,-7252 316,-7282 479,-7282 479,-7252 316,-7252"/>
-<text text-anchor="start" x="324" y="-7270" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Concatenate</text>
-<text text-anchor="middle" x="397.5" y="-7259" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="316,-7450 316,-7480 479,-7480 479,-7450 316,-7450"/>
+<text text-anchor="start" x="324" y="-7468" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Concatenate</text>
+<text text-anchor="middle" x="397.5" y="-7457" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node48 -->
 <g id="edge47" class="edge"><title>Node9&#45;&gt;Node48</title>
-<path fill="none" stroke="midnightblue" d="M242.301,-5629.5C252.198,-5632.78 261.313,-5637.97 268,-5646 324.748,-5714.16 249.295,-7172.19 304,-7242 307.386,-7246.32 311.436,-7249.94 315.923,-7252.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.189,-5626.12 232.625,-5626.92 241.385,-5632.88 243.189,-5626.12"/>
+<path fill="none" stroke="midnightblue" d="M242.31,-5729.49C252.206,-5732.77 261.318,-5737.96 268,-5746 328.183,-5818.38 245.986,-7365.87 304,-7440 307.383,-7444.32 311.431,-7447.95 315.917,-7450.98"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.199,-5726.11 232.634,-5726.91 241.394,-5732.87 243.199,-5726.11"/>
 </g>
 <!-- Node50 -->
 <g id="node50" class="node"><title>Node50</title>
 <g id="a_node50"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv1DAttrs \&gt;">
-<polygon fill="white" stroke="black" points="311,-7213.5 311,-7232.5 484,-7232.5 484,-7213.5 311,-7213.5"/>
-<text text-anchor="middle" x="397.5" y="-7220.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv1DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="311,-7411.5 311,-7430.5 484,-7430.5 484,-7411.5 311,-7411.5"/>
+<text text-anchor="middle" x="397.5" y="-7418.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv1DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node50 -->
 <g id="edge49" class="edge"><title>Node9&#45;&gt;Node50</title>
-<path fill="none" stroke="midnightblue" d="M242.297,-5629.51C252.195,-5632.78 261.311,-5637.97 268,-5646 323.416,-5712.52 248.513,-7137.54 304,-7204 307.047,-7207.65 310.591,-7210.72 314.479,-7213.28"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.186,-5626.12 232.621,-5626.92 241.381,-5632.88 243.186,-5626.12"/>
+<path fill="none" stroke="midnightblue" d="M242.306,-5729.5C252.203,-5732.77 261.316,-5737.97 268,-5746 326.851,-5816.74 245.073,-7331.32 304,-7402 307.045,-7405.65 310.586,-7408.72 314.474,-7411.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.195,-5726.11 232.631,-5726.92 241.391,-5732.88 243.195,-5726.11"/>
 </g>
 <!-- Node52 -->
 <g id="node52" class="node"><title>Node52</title>
 <g id="a_node52"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv1DTranspose\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="304,-7164 304,-7194 491,-7194 491,-7164 304,-7164"/>
-<text text-anchor="start" x="312" y="-7182" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv1DTranspose</text>
-<text text-anchor="middle" x="397.5" y="-7171" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="304,-7362 304,-7392 491,-7392 491,-7362 304,-7362"/>
+<text text-anchor="start" x="312" y="-7380" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv1DTranspose</text>
+<text text-anchor="middle" x="397.5" y="-7369" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node52 -->
 <g id="edge51" class="edge"><title>Node9&#45;&gt;Node52</title>
-<path fill="none" stroke="midnightblue" d="M242.292,-5629.51C252.19,-5632.78 261.308,-5637.97 268,-5646 321.663,-5710.37 252.266,-7088.07 304,-7154 306.978,-7157.8 310.469,-7161.05 314.317,-7163.84"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.18,-5626.12 232.616,-5626.93 241.376,-5632.89 243.18,-5626.12"/>
+<path fill="none" stroke="midnightblue" d="M242.302,-5729.5C252.199,-5732.78 261.314,-5737.97 268,-5746 325.098,-5814.59 248.957,-7281.75 304,-7352 306.975,-7355.8 310.464,-7359.06 314.311,-7361.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.19,-5726.12 232.626,-5726.92 241.386,-5732.88 243.19,-5726.12"/>
 </g>
 <!-- Node54 -->
 <g id="node54" class="node"><title>Node54</title>
 <g id="a_node54"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DAttrs \&gt;">
-<polygon fill="white" stroke="black" points="311,-7125.5 311,-7144.5 484,-7144.5 484,-7125.5 311,-7125.5"/>
-<text text-anchor="middle" x="397.5" y="-7132.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv2DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="311,-7323.5 311,-7342.5 484,-7342.5 484,-7323.5 311,-7323.5"/>
+<text text-anchor="middle" x="397.5" y="-7330.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv2DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node54 -->
 <g id="edge53" class="edge"><title>Node9&#45;&gt;Node54</title>
-<path fill="none" stroke="midnightblue" d="M242.288,-5629.51C252.187,-5632.79 261.305,-5637.98 268,-5646 372.662,-5771.46 199.203,-6990.65 304,-7116 307.05,-7119.65 310.595,-7122.71 314.485,-7125.28"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.176,-5626.13 232.612,-5626.93 241.372,-5632.89 243.176,-5626.13"/>
+<path fill="none" stroke="midnightblue" d="M242.298,-5729.5C252.196,-5732.78 261.311,-5737.97 268,-5746 323.766,-5812.95 248.162,-7247.11 304,-7314 307.047,-7317.65 310.59,-7320.72 314.479,-7323.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.187,-5726.12 232.622,-5726.92 241.382,-5732.88 243.187,-5726.12"/>
 </g>
 <!-- Node56 -->
 <g id="node56" class="node"><title>Node56</title>
 <g id="a_node56"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DTranspose\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="304,-7076 304,-7106 491,-7106 491,-7076 304,-7076"/>
-<text text-anchor="start" x="312" y="-7094" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv2DTranspose</text>
-<text text-anchor="middle" x="397.5" y="-7083" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="304,-7274 304,-7304 491,-7304 491,-7274 304,-7274"/>
+<text text-anchor="start" x="312" y="-7292" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv2DTranspose</text>
+<text text-anchor="middle" x="397.5" y="-7281" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node56 -->
 <g id="edge55" class="edge"><title>Node9&#45;&gt;Node56</title>
-<path fill="none" stroke="midnightblue" d="M242.282,-5629.52C252.182,-5632.79 261.302,-5637.98 268,-5646 369.226,-5767.24 205.782,-6943.31 304,-7067 306.683,-7070.38 309.774,-7073.32 313.164,-7075.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.17,-5626.13 232.606,-5626.94 241.366,-5632.9 243.17,-5626.13"/>
+<path fill="none" stroke="midnightblue" d="M242.293,-5729.51C252.191,-5732.78 261.309,-5737.97 268,-5746 322.049,-5810.84 251.56,-7198.85 304,-7265 306.68,-7268.38 309.769,-7271.32 313.158,-7273.88"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.181,-5726.12 232.617,-5726.93 241.377,-5732.89 243.181,-5726.12"/>
 </g>
 <!-- Node58 -->
 <g id="node58" class="node"><title>Node58</title>
 <g id="a_node58"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DWinograd\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="306,-7027 306,-7057 489,-7057 489,-7027 306,-7027"/>
-<text text-anchor="start" x="314" y="-7045" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv2DWinograd</text>
-<text text-anchor="middle" x="397.5" y="-7034" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="306,-7225 306,-7255 489,-7255 489,-7225 306,-7225"/>
+<text text-anchor="start" x="314" y="-7243" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv2DWinograd</text>
+<text text-anchor="middle" x="397.5" y="-7232" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node58 -->
 <g id="edge57" class="edge"><title>Node9&#45;&gt;Node58</title>
-<path fill="none" stroke="midnightblue" d="M242.276,-5629.52C252.176,-5632.79 261.298,-5637.98 268,-5646 365.791,-5763.01 209.112,-6898.62 304,-7018 306.684,-7021.38 309.777,-7024.32 313.168,-7026.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.163,-5626.14 232.599,-5626.94 241.36,-5632.9 243.163,-5626.14"/>
+<path fill="none" stroke="midnightblue" d="M242.288,-5729.51C252.187,-5732.79 261.305,-5737.98 268,-5746 372.662,-5871.46 202.451,-7088.01 304,-7216 306.681,-7219.38 309.772,-7222.32 313.161,-7224.88"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.176,-5726.13 232.612,-5726.93 241.372,-5732.89 243.176,-5726.13"/>
 </g>
 <!-- Node60 -->
 <g id="node60" class="node"><title>Node60</title>
 <g id="a_node60"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DWinograd\lNNPACKWeightTransformAttrs \&gt;">
-<polygon fill="white" stroke="black" points="306,-6978 306,-7008 489,-7008 489,-6978 306,-6978"/>
-<text text-anchor="start" x="314" y="-6996" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv2DWinograd</text>
-<text text-anchor="middle" x="397.5" y="-6985" font-family="Helvetica,sans-Serif" font-size="10.00">NNPACKWeightTransformAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="306,-7176 306,-7206 489,-7206 489,-7176 306,-7176"/>
+<text text-anchor="start" x="314" y="-7194" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv2DWinograd</text>
+<text text-anchor="middle" x="397.5" y="-7183" font-family="Helvetica,sans-Serif" font-size="10.00">NNPACKWeightTransformAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node60 -->
 <g id="edge59" class="edge"><title>Node9&#45;&gt;Node60</title>
-<path fill="none" stroke="midnightblue" d="M242.269,-5629.53C252.17,-5632.8 261.294,-5637.98 268,-5646 362.285,-5758.71 213.093,-6852.55 304,-6968 306.985,-6971.79 310.48,-6975.04 314.332,-6977.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.156,-5626.14 232.592,-5626.95 241.353,-5632.91 243.156,-5626.14"/>
+<path fill="none" stroke="midnightblue" d="M242.282,-5729.52C252.182,-5732.79 261.302,-5737.98 268,-5746 369.156,-5867.15 206.475,-7041.91 304,-7166 306.981,-7169.79 310.474,-7173.05 314.324,-7175.84"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.17,-5726.13 232.605,-5726.94 241.366,-5732.9 243.17,-5726.13"/>
 </g>
 <!-- Node62 -->
 <g id="node62" class="node"><title>Node62</title>
 <g id="a_node62"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv3DAttrs \&gt;">
-<polygon fill="white" stroke="black" points="311,-6939.5 311,-6958.5 484,-6958.5 484,-6939.5 311,-6939.5"/>
-<text text-anchor="middle" x="397.5" y="-6946.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv3DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="311,-7137.5 311,-7156.5 484,-7156.5 484,-7137.5 311,-7137.5"/>
+<text text-anchor="middle" x="397.5" y="-7144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv3DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node62 -->
 <g id="edge61" class="edge"><title>Node9&#45;&gt;Node62</title>
-<path fill="none" stroke="midnightblue" d="M242.264,-5629.53C252.165,-5632.8 261.291,-5637.99 268,-5646 359.621,-5755.43 212.261,-6820.67 304,-6930 307.056,-6933.64 310.607,-6936.7 314.501,-6939.27"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.151,-5626.15 232.586,-5626.95 241.348,-5632.91 243.151,-5626.15"/>
+<path fill="none" stroke="midnightblue" d="M242.277,-5729.52C252.177,-5732.79 261.299,-5737.98 268,-5746 366.492,-5863.88 205.381,-7010.23 304,-7128 307.052,-7131.65 310.6,-7134.71 314.492,-7137.27"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.165,-5726.14 232.6,-5726.94 241.361,-5732.9 243.165,-5726.14"/>
 </g>
 <!-- Node64 -->
 <g id="node64" class="node"><title>Node64</title>
 <g id="a_node64"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv3DTranspose\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="304,-6890 304,-6920 491,-6920 491,-6890 304,-6890"/>
-<text text-anchor="start" x="312" y="-6908" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv3DTranspose</text>
-<text text-anchor="middle" x="397.5" y="-6897" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="304,-7088 304,-7118 491,-7118 491,-7088 304,-7088"/>
+<text text-anchor="start" x="312" y="-7106" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv3DTranspose</text>
+<text text-anchor="middle" x="397.5" y="-7095" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node64 -->
 <g id="edge63" class="edge"><title>Node9&#45;&gt;Node64</title>
-<path fill="none" stroke="midnightblue" d="M242.256,-5629.54C252.159,-5632.81 261.287,-5637.99 268,-5646 356.186,-5751.21 218.424,-6773.66 304,-6881 306.689,-6884.37 309.786,-6887.31 313.18,-6889.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.143,-5626.15 232.579,-5626.96 241.34,-5632.92 243.143,-5626.15"/>
+<path fill="none" stroke="midnightblue" d="M242.271,-5729.53C252.172,-5732.8 261.295,-5737.98 268,-5746 363.057,-5859.65 211.763,-6963.05 304,-7079 306.685,-7082.38 309.779,-7085.31 313.171,-7087.87"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.158,-5726.14 232.594,-5726.95 241.355,-5732.91 243.158,-5726.14"/>
 </g>
 <!-- Node66 -->
 <g id="node66" class="node"><title>Node66</title>
 <g id="a_node66"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv3DWinograd\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="306,-6841 306,-6871 489,-6871 489,-6841 306,-6841"/>
-<text text-anchor="start" x="314" y="-6859" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv3DWinograd</text>
-<text text-anchor="middle" x="397.5" y="-6848" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="306,-7039 306,-7069 489,-7069 489,-7039 306,-7039"/>
+<text text-anchor="start" x="314" y="-7057" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Conv3DWinograd</text>
+<text text-anchor="middle" x="397.5" y="-7046" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node66 -->
 <g id="edge65" class="edge"><title>Node9&#45;&gt;Node66</title>
-<path fill="none" stroke="midnightblue" d="M242.248,-5629.55C252.152,-5632.82 261.282,-5637.99 268,-5646 352.751,-5746.99 221.755,-6728.96 304,-6832 306.691,-6835.37 309.789,-6838.31 313.185,-6840.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.134,-5626.16 232.57,-5626.97 241.332,-5632.92 243.134,-5626.16"/>
+<path fill="none" stroke="midnightblue" d="M242.264,-5729.53C252.165,-5732.8 261.291,-5737.99 268,-5746 359.621,-5855.43 215.094,-6918.35 304,-7030 306.687,-7033.37 309.782,-7036.31 313.176,-7038.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.151,-5726.15 232.586,-5726.95 241.348,-5732.91 243.151,-5726.15"/>
 </g>
 <!-- Node68 -->
 <g id="node68" class="node"><title>Node68</title>
 <g id="a_node68"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ConvGemm\lWeightTransformAttrs \&gt;">
-<polygon fill="white" stroke="black" points="318.5,-6792 318.5,-6822 476.5,-6822 476.5,-6792 318.5,-6792"/>
-<text text-anchor="start" x="326.5" y="-6810" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ConvGemm</text>
-<text text-anchor="middle" x="397.5" y="-6799" font-family="Helvetica,sans-Serif" font-size="10.00">WeightTransformAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="318.5,-6990 318.5,-7020 476.5,-7020 476.5,-6990 318.5,-6990"/>
+<text text-anchor="start" x="326.5" y="-7008" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ConvGemm</text>
+<text text-anchor="middle" x="397.5" y="-6997" font-family="Helvetica,sans-Serif" font-size="10.00">WeightTransformAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node68 -->
 <g id="edge67" class="edge"><title>Node9&#45;&gt;Node68</title>
-<path fill="none" stroke="midnightblue" d="M242.239,-5629.55C252.144,-5632.82 261.277,-5638 268,-5646 349.316,-5742.77 225.085,-6684.27 304,-6783 308.04,-6788.05 312.995,-6792.13 318.494,-6795.4"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.125,-5626.17 232.561,-5626.97 241.323,-5632.93 243.125,-5626.17"/>
+<path fill="none" stroke="midnightblue" d="M242.256,-5729.54C252.159,-5732.81 261.287,-5737.99 268,-5746 356.186,-5851.21 218.424,-6873.66 304,-6981 308.033,-6986.06 312.985,-6990.13 318.481,-6993.41"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.143,-5726.15 232.579,-5726.96 241.34,-5732.92 243.143,-5726.15"/>
 </g>
 <!-- Node70 -->
 <g id="node70" class="node"><title>Node70</title>
 <g id="a_node70"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ConvWinograd\lWeightTransformAttrs \&gt;">
-<polygon fill="white" stroke="black" points="312.5,-6743 312.5,-6773 482.5,-6773 482.5,-6743 312.5,-6743"/>
-<text text-anchor="start" x="320.5" y="-6761" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ConvWinograd</text>
-<text text-anchor="middle" x="397.5" y="-6750" font-family="Helvetica,sans-Serif" font-size="10.00">WeightTransformAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="312.5,-6941 312.5,-6971 482.5,-6971 482.5,-6941 312.5,-6941"/>
+<text text-anchor="start" x="320.5" y="-6959" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ConvWinograd</text>
+<text text-anchor="middle" x="397.5" y="-6948" font-family="Helvetica,sans-Serif" font-size="10.00">WeightTransformAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node70 -->
 <g id="edge69" class="edge"><title>Node9&#45;&gt;Node70</title>
-<path fill="none" stroke="midnightblue" d="M242.23,-5629.56C252.135,-5632.83 261.271,-5638 268,-5646 345.881,-5738.55 228.415,-6639.57 304,-6734 306.696,-6737.37 309.798,-6740.3 313.196,-6742.85"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.115,-5626.18 232.551,-5626.98 241.313,-5632.94 243.115,-5626.18"/>
+<path fill="none" stroke="midnightblue" d="M242.248,-5729.55C252.152,-5732.82 261.282,-5737.99 268,-5746 352.751,-5846.99 221.755,-6828.96 304,-6932 306.691,-6935.37 309.789,-6938.31 313.185,-6940.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.134,-5726.16 232.57,-5726.97 241.332,-5732.92 243.134,-5726.16"/>
 </g>
 <!-- Node72 -->
 <g id="node72" class="node"><title>Node72</title>
 <g id="a_node72"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Correlation\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="320.5,-6694 320.5,-6724 474.5,-6724 474.5,-6694 320.5,-6694"/>
-<text text-anchor="start" x="328.5" y="-6712" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Correlation</text>
-<text text-anchor="middle" x="397.5" y="-6701" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="320.5,-6892 320.5,-6922 474.5,-6922 474.5,-6892 320.5,-6892"/>
+<text text-anchor="start" x="328.5" y="-6910" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Correlation</text>
+<text text-anchor="middle" x="397.5" y="-6899" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node72 -->
 <g id="edge71" class="edge"><title>Node9&#45;&gt;Node72</title>
-<path fill="none" stroke="midnightblue" d="M242.219,-5629.57C252.126,-5632.84 261.265,-5638.01 268,-5646 342.446,-5734.32 231.745,-6594.87 304,-6685 308.462,-6690.57 314.035,-6694.94 320.22,-6698.36"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.104,-5626.18 232.54,-5626.99 241.302,-5632.95 243.104,-5626.18"/>
+<path fill="none" stroke="midnightblue" d="M242.239,-5729.55C252.144,-5732.82 261.277,-5738 268,-5746 349.316,-5842.77 225.085,-6784.27 304,-6883 308.454,-6888.57 314.022,-6892.95 320.203,-6896.38"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.125,-5726.17 232.561,-5726.97 241.323,-5732.93 243.125,-5726.17"/>
 </g>
 <!-- Node74 -->
 <g id="node74" class="node"><title>Node74</title>
 <g id="a_node74"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CropAndResize\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="311,-6645 311,-6675 484,-6675 484,-6645 311,-6645"/>
-<text text-anchor="start" x="319" y="-6663" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; CropAndResize</text>
-<text text-anchor="middle" x="397.5" y="-6652" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="311,-6843 311,-6873 484,-6873 484,-6843 311,-6843"/>
+<text text-anchor="start" x="319" y="-6861" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; CropAndResize</text>
+<text text-anchor="middle" x="397.5" y="-6850" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node74 -->
 <g id="edge73" class="edge"><title>Node9&#45;&gt;Node74</title>
-<path fill="none" stroke="midnightblue" d="M242.208,-5629.58C252.115,-5632.85 261.258,-5638.02 268,-5646 338.942,-5730.02 235.577,-6548.92 304,-6635 307.002,-6638.78 310.511,-6642.02 314.373,-6644.8"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.091,-5626.19 232.527,-5627 241.29,-5632.96 243.091,-5626.19"/>
+<path fill="none" stroke="midnightblue" d="M242.23,-5729.56C252.135,-5732.83 261.271,-5738 268,-5746 345.811,-5838.46 228.96,-6738.28 304,-6833 306.996,-6836.78 310.5,-6840.03 314.358,-6842.81"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.114,-5726.18 232.551,-5726.98 241.313,-5732.94 243.114,-5726.18"/>
 </g>
 <!-- Node76 -->
 <g id="node76" class="node"><title>Node76</title>
 <g id="a_node76"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DebugAttrs \&gt;">
-<polygon fill="white" stroke="black" points="314,-6606.5 314,-6625.5 481,-6625.5 481,-6606.5 314,-6606.5"/>
-<text text-anchor="middle" x="397.5" y="-6613.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DebugAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="314,-6804.5 314,-6823.5 481,-6823.5 481,-6804.5 314,-6804.5"/>
+<text text-anchor="middle" x="397.5" y="-6811.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DebugAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node76 -->
 <g id="edge75" class="edge"><title>Node9&#45;&gt;Node76</title>
-<path fill="none" stroke="midnightblue" d="M242.198,-5629.59C252.107,-5632.85 261.252,-5638.02 268,-5646 336.278,-5726.74 235.635,-6516.33 304,-6597 307.18,-6600.75 310.885,-6603.89 314.948,-6606.49"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.081,-5626.2 232.517,-5627.01 241.28,-5632.97 243.081,-5626.2"/>
+<path fill="none" stroke="midnightblue" d="M242.222,-5729.57C252.128,-5732.84 261.266,-5738.01 268,-5746 343.147,-5835.19 228.757,-6705.9 304,-6795 307.067,-6798.63 310.627,-6801.69 314.528,-6804.24"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.106,-5726.18 232.542,-5726.99 241.305,-5732.95 243.106,-5726.18"/>
 </g>
 <!-- Node78 -->
 <g id="node78" class="node"><title>Node78</title>
 <g id="a_node78"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Deformable\lConv2DAttrs \&gt;">
-<polygon fill="white" stroke="black" points="318.5,-6557 318.5,-6587 476.5,-6587 476.5,-6557 318.5,-6557"/>
-<text text-anchor="start" x="326.5" y="-6575" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Deformable</text>
-<text text-anchor="middle" x="397.5" y="-6564" font-family="Helvetica,sans-Serif" font-size="10.00">Conv2DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="318.5,-6755 318.5,-6785 476.5,-6785 476.5,-6755 318.5,-6755"/>
+<text text-anchor="start" x="326.5" y="-6773" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Deformable</text>
+<text text-anchor="middle" x="397.5" y="-6762" font-family="Helvetica,sans-Serif" font-size="10.00">Conv2DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node78 -->
 <g id="edge77" class="edge"><title>Node9&#45;&gt;Node78</title>
-<path fill="none" stroke="midnightblue" d="M242.184,-5629.6C252.094,-5632.86 261.244,-5638.03 268,-5646 332.774,-5722.44 241.517,-6468.68 304,-6547 307.942,-6551.94 312.752,-6555.97 318.086,-6559.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.066,-5626.21 232.502,-5627.02 241.266,-5632.98 243.066,-5626.21"/>
+<path fill="none" stroke="midnightblue" d="M242.21,-5729.58C252.118,-5732.84 261.259,-5738.01 268,-5746 339.643,-5830.88 234.902,-6658.04 304,-6745 308.036,-6750.08 312.989,-6754.19 318.486,-6757.51"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.094,-5726.19 232.53,-5727 241.293,-5732.96 243.094,-5726.19"/>
 </g>
 <!-- Node80 -->
 <g id="node80" class="node"><title>Node80</title>
 <g id="a_node80"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DenseAttrs \&gt;">
-<polygon fill="white" stroke="black" points="314,-6518.5 314,-6537.5 481,-6537.5 481,-6518.5 314,-6518.5"/>
-<text text-anchor="middle" x="397.5" y="-6525.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DenseAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="314,-6716.5 314,-6735.5 481,-6735.5 481,-6716.5 314,-6716.5"/>
+<text text-anchor="middle" x="397.5" y="-6723.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DenseAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node80 -->
 <g id="edge79" class="edge"><title>Node9&#45;&gt;Node80</title>
-<path fill="none" stroke="midnightblue" d="M242.824,-5629.83C252.484,-5633.1 261.385,-5638.21 268,-5646 330.111,-5719.16 241.81,-6435.9 304,-6509 307.187,-6512.75 310.897,-6515.87 314.965,-6518.48"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.535,-5626.39 232.966,-5627.14 241.691,-5633.15 243.535,-5626.39"/>
+<path fill="none" stroke="midnightblue" d="M242.201,-5729.59C252.109,-5732.85 261.253,-5738.02 268,-5746 336.979,-5827.6 234.933,-6625.47 304,-6707 307.179,-6710.75 310.883,-6713.89 314.946,-6716.5"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.084,-5726.2 232.52,-5727.01 241.283,-5732.96 243.084,-5726.2"/>
 </g>
 <!-- Node82 -->
 <g id="node82" class="node"><title>Node82</title>
-<g id="a_node82"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DeviceCopy\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="318.5,-6469 318.5,-6499 476.5,-6499 476.5,-6469 318.5,-6469"/>
-<text text-anchor="start" x="326.5" y="-6487" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DeviceCopy</text>
-<text text-anchor="middle" x="397.5" y="-6476" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node82"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Dequantize\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="319.5,-6667 319.5,-6697 475.5,-6697 475.5,-6667 319.5,-6667"/>
+<text text-anchor="start" x="327.5" y="-6685" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Dequantize</text>
+<text text-anchor="middle" x="397.5" y="-6674" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node82 -->
 <g id="edge81" class="edge"><title>Node9&#45;&gt;Node82</title>
-<path fill="none" stroke="midnightblue" d="M242.807,-5629.84C252.469,-5633.11 261.375,-5638.22 268,-5646 326.607,-5714.86 247.457,-6388.44 304,-6459 307.953,-6463.93 312.77,-6467.95 318.109,-6471.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.517,-5626.41 232.948,-5627.15 241.673,-5633.16 243.517,-5626.41"/>
+<path fill="none" stroke="midnightblue" d="M242.187,-5729.6C252.097,-5732.86 261.245,-5738.03 268,-5746 333.545,-5823.38 240.375,-6579.03 304,-6658 308.268,-6663.3 313.541,-6667.51 319.388,-6670.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.07,-5726.21 232.506,-5727.02 241.269,-5732.98 243.07,-5726.21"/>
 </g>
 <!-- Node84 -->
 <g id="node84" class="node"><title>Node84</title>
-<g id="a_node84"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DilateAttrs \&gt;">
-<polygon fill="white" stroke="black" points="315.5,-6430.5 315.5,-6449.5 479.5,-6449.5 479.5,-6430.5 315.5,-6430.5"/>
-<text text-anchor="middle" x="397.5" y="-6437.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DilateAttrs &gt;</text>
+<g id="a_node84"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DeviceCopy\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="318.5,-6618 318.5,-6648 476.5,-6648 476.5,-6618 318.5,-6618"/>
+<text text-anchor="start" x="326.5" y="-6636" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DeviceCopy</text>
+<text text-anchor="middle" x="397.5" y="-6625" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node84 -->
 <g id="edge83" class="edge"><title>Node9&#45;&gt;Node84</title>
-<path fill="none" stroke="midnightblue" d="M242.792,-5629.85C252.457,-5633.12 261.367,-5638.22 268,-5646 323.944,-5711.58 247.985,-6355.48 304,-6421 307.302,-6424.86 311.161,-6428.07 315.394,-6430.72"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.502,-5626.42 232.933,-5627.16 241.659,-5633.17 243.502,-5626.42"/>
+<path fill="none" stroke="midnightblue" d="M242.823,-5729.83C252.484,-5733.1 261.385,-5738.21 268,-5746 330.041,-5819.08 244.15,-6533.12 304,-6608 307.947,-6612.94 312.76,-6616.96 318.095,-6620.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.535,-5726.39 232.966,-5727.14 241.69,-5733.15 243.535,-5726.39"/>
 </g>
 <!-- Node86 -->
 <g id="node86" class="node"><title>Node86</title>
-<g id="a_node86"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Dilation2\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326,-6381 326,-6411 469,-6411 469,-6381 326,-6381"/>
-<text text-anchor="start" x="334" y="-6399" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Dilation2</text>
-<text text-anchor="middle" x="397.5" y="-6388" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<g id="a_node86"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DilateAttrs \&gt;">
+<polygon fill="white" stroke="black" points="315.5,-6579.5 315.5,-6598.5 479.5,-6598.5 479.5,-6579.5 315.5,-6579.5"/>
+<text text-anchor="middle" x="397.5" y="-6586.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DilateAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node86 -->
 <g id="edge85" class="edge"><title>Node9&#45;&gt;Node86</title>
-<path fill="none" stroke="midnightblue" d="M242.771,-5629.87C252.438,-5633.14 261.354,-5638.23 268,-5646 372.882,-5768.56 202.793,-6245.39 304,-6371 309.74,-6378.12 317.284,-6383.34 325.591,-6387.14"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.479,-5626.44 232.911,-5627.18 241.637,-5633.19 243.479,-5626.44"/>
+<path fill="none" stroke="midnightblue" d="M242.811,-5729.84C252.473,-5733.11 261.377,-5738.21 268,-5746 327.378,-5815.8 244.547,-6500.26 304,-6570 307.297,-6573.87 311.152,-6577.08 315.381,-6579.73"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.521,-5726.4 232.952,-5727.15 241.677,-5733.16 243.521,-5726.4"/>
 </g>
 <!-- Node88 -->
 <g id="node88" class="node"><title>Node88</title>
-<g id="a_node88"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DropoutAttrs \&gt;">
-<polygon fill="white" stroke="black" points="310,-6342.5 310,-6361.5 485,-6361.5 485,-6342.5 310,-6342.5"/>
-<text text-anchor="middle" x="397.5" y="-6349.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DropoutAttrs &gt;</text>
+<g id="a_node88"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Dilation2\lDAttrs \&gt;">
+<polygon fill="white" stroke="black" points="326,-6530 326,-6560 469,-6560 469,-6530 326,-6530"/>
+<text text-anchor="start" x="334" y="-6548" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Dilation2</text>
+<text text-anchor="middle" x="397.5" y="-6537" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node88 -->
 <g id="edge87" class="edge"><title>Node9&#45;&gt;Node88</title>
-<path fill="none" stroke="midnightblue" d="M242.753,-5629.89C252.422,-5633.15 261.344,-5638.24 268,-5646 367.558,-5762.01 204.318,-6217.09 304,-6333 307.207,-6336.73 310.933,-6339.84 315.011,-6342.44"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.46,-5626.45 232.891,-5627.2 241.619,-5633.21 243.46,-5626.45"/>
+<path fill="none" stroke="midnightblue" d="M242.792,-5729.85C252.456,-5733.12 261.366,-5738.22 268,-5746 323.874,-5811.5 250.09,-6452.88 304,-6520 309.729,-6527.13 317.266,-6532.36 325.57,-6536.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.501,-5726.42 232.933,-5727.16 241.658,-5733.17 243.501,-5726.42"/>
 </g>
 <!-- Node90 -->
 <g id="node90" class="node"><title>Node90</title>
-<g id="a_node90"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ExpandDims\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="317,-6293 317,-6323 478,-6323 478,-6293 317,-6293"/>
-<text text-anchor="start" x="325" y="-6311" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ExpandDims</text>
-<text text-anchor="middle" x="397.5" y="-6300" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node90"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DropoutAttrs \&gt;">
+<polygon fill="white" stroke="black" points="310,-6491.5 310,-6510.5 485,-6510.5 485,-6491.5 310,-6491.5"/>
+<text text-anchor="middle" x="397.5" y="-6498.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DropoutAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node90 -->
 <g id="edge89" class="edge"><title>Node9&#45;&gt;Node90</title>
-<path fill="none" stroke="midnightblue" d="M242.727,-5629.91C252.398,-5633.17 261.328,-5638.26 268,-5646 360.693,-5753.58 213.977,-6174.18 304,-6284 307.681,-6288.49 312.085,-6292.2 316.945,-6295.26"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.432,-5626.48 232.863,-5627.22 241.592,-5633.23 243.432,-5626.48"/>
+<path fill="none" stroke="midnightblue" d="M242.776,-5729.87C252.442,-5733.14 261.357,-5738.23 268,-5746 374.423,-5870.45 197.443,-6357.66 304,-6482 307.2,-6485.73 310.921,-6488.85 314.996,-6491.45"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.484,-5726.43 232.916,-5727.18 241.642,-5733.19 243.484,-5726.43"/>
 </g>
 <!-- Node92 -->
 <g id="node92" class="node"><title>Node92</title>
-<g id="a_node92"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; FIFOBuffer\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="322.5,-6244 322.5,-6274 472.5,-6274 472.5,-6244 322.5,-6244"/>
-<text text-anchor="start" x="330.5" y="-6262" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; FIFOBuffer</text>
-<text text-anchor="middle" x="397.5" y="-6251" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node92"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ExpandDims\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="317,-6442 317,-6472 478,-6472 478,-6442 317,-6442"/>
+<text text-anchor="start" x="325" y="-6460" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ExpandDims</text>
+<text text-anchor="middle" x="397.5" y="-6449" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node92 -->
 <g id="edge91" class="edge"><title>Node9&#45;&gt;Node92</title>
-<path fill="none" stroke="midnightblue" d="M242.695,-5629.94C252.371,-5633.2 261.31,-5638.27 268,-5646 353.689,-5744.97 221.278,-6132.54 304,-6234 308.94,-6240.06 315.185,-6244.74 322.088,-6248.34"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.398,-5626.5 232.83,-5627.25 241.559,-5633.26 243.398,-5626.5"/>
+<path fill="none" stroke="midnightblue" d="M242.753,-5729.89C252.422,-5733.15 261.344,-5738.24 268,-5746 367.558,-5862.01 207.322,-6314.58 304,-6433 307.672,-6437.5 312.069,-6441.21 316.924,-6444.28"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.46,-5726.45 232.891,-5727.2 241.619,-5733.21 243.46,-5726.45"/>
 </g>
 <!-- Node94 -->
 <g id="node94" class="node"><title>Node94</title>
-<g id="a_node94"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GatherAttrs \&gt;">
-<polygon fill="white" stroke="black" points="313,-6205.5 313,-6224.5 482,-6224.5 482,-6205.5 313,-6205.5"/>
-<text text-anchor="middle" x="397.5" y="-6212.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GatherAttrs &gt;</text>
+<g id="a_node94"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; FIFOBuffer\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="322.5,-6393 322.5,-6423 472.5,-6423 472.5,-6393 322.5,-6393"/>
+<text text-anchor="start" x="330.5" y="-6411" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; FIFOBuffer</text>
+<text text-anchor="middle" x="397.5" y="-6400" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node94 -->
 <g id="edge93" class="edge"><title>Node9&#45;&gt;Node94</title>
-<path fill="none" stroke="midnightblue" d="M242.667,-5629.96C252.346,-5633.22 261.293,-5638.29 268,-5646 348.368,-5738.43 223.533,-6103.66 304,-6196 307.231,-6199.71 310.975,-6202.81 315.068,-6205.39"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.369,-5626.53 232.801,-5627.28 241.531,-5633.28 243.369,-5626.53"/>
+<path fill="none" stroke="midnightblue" d="M242.727,-5729.91C252.398,-5733.17 261.328,-5738.26 268,-5746 360.693,-5853.58 213.977,-6274.18 304,-6384 308.943,-6390.03 315.189,-6394.66 322.093,-6398.19"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.432,-5726.48 232.863,-5727.22 241.592,-5733.23 243.432,-5726.48"/>
 </g>
 <!-- Node96 -->
 <g id="node96" class="node"><title>Node96</title>
-<g id="a_node96"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GetValid\lCountsAttrs \&gt;">
-<polygon fill="white" stroke="black" points="327,-6156 327,-6186 468,-6186 468,-6156 327,-6156"/>
-<text text-anchor="start" x="335" y="-6174" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GetValid</text>
-<text text-anchor="middle" x="397.5" y="-6163" font-family="Helvetica,sans-Serif" font-size="10.00">CountsAttrs &gt;</text>
+<g id="a_node96"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; FixedPoint\lMultiplyAttrs \&gt;">
+<polygon fill="white" stroke="black" points="323,-6344 323,-6374 472,-6374 472,-6344 323,-6344"/>
+<text text-anchor="start" x="331" y="-6362" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; FixedPoint</text>
+<text text-anchor="middle" x="397.5" y="-6351" font-family="Helvetica,sans-Serif" font-size="10.00">MultiplyAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node96 -->
 <g id="edge95" class="edge"><title>Node9&#45;&gt;Node96</title>
-<path fill="none" stroke="midnightblue" d="M242.625,-5630C252.309,-5633.25 261.269,-5638.31 268,-5646 341.508,-5730 232.577,-6061.22 304,-6147 310.051,-6154.27 317.993,-6159.49 326.685,-6163.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.324,-5626.56 232.756,-5627.32 241.488,-5633.32 243.324,-5626.56"/>
+<path fill="none" stroke="midnightblue" d="M242.695,-5729.94C252.371,-5733.2 261.31,-5738.27 268,-5746 353.689,-5844.97 221.278,-6232.54 304,-6334 309.151,-6340.32 315.719,-6345.13 322.972,-6348.79"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.398,-5726.5 232.83,-5727.25 241.559,-5733.26 243.398,-5726.5"/>
 </g>
 <!-- Node98 -->
 <g id="node98" class="node"><title>Node98</title>
-<g id="a_node98"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GlobalPool2\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="318.5,-6107 318.5,-6137 476.5,-6137 476.5,-6107 318.5,-6107"/>
-<text text-anchor="start" x="326.5" y="-6125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GlobalPool2</text>
-<text text-anchor="middle" x="397.5" y="-6114" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<g id="a_node98"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GatherAttrs \&gt;">
+<polygon fill="white" stroke="black" points="313,-6305.5 313,-6324.5 482,-6324.5 482,-6305.5 313,-6305.5"/>
+<text text-anchor="middle" x="397.5" y="-6312.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GatherAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node98 -->
 <g id="edge97" class="edge"><title>Node9&#45;&gt;Node98</title>
-<path fill="none" stroke="midnightblue" d="M242.575,-5630.04C252.264,-5633.29 261.239,-5638.33 268,-5646 334.651,-5721.57 239.225,-6020.82 304,-6098 308.053,-6102.83 312.941,-6106.75 318.326,-6109.94"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.27,-5626.61 232.703,-5627.36 241.437,-5633.36 243.27,-5626.61"/>
+<path fill="none" stroke="midnightblue" d="M242.667,-5729.96C252.346,-5733.22 261.293,-5738.29 268,-5746 348.368,-5838.43 223.533,-6203.66 304,-6296 307.231,-6299.71 310.975,-6302.81 315.068,-6305.39"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.369,-5726.53 232.801,-5727.28 241.531,-5733.28 243.369,-5726.53"/>
 </g>
 <!-- Node100 -->
 <g id="node100" class="node"><title>Node100</title>
-<g id="a_node100"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GridSample\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="318.5,-6058 318.5,-6088 476.5,-6088 476.5,-6058 318.5,-6058"/>
-<text text-anchor="start" x="326.5" y="-6076" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GridSample</text>
-<text text-anchor="middle" x="397.5" y="-6065" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node100"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GetValid\lCountsAttrs \&gt;">
+<polygon fill="white" stroke="black" points="327,-6256 327,-6286 468,-6286 468,-6256 327,-6256"/>
+<text text-anchor="start" x="335" y="-6274" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GetValid</text>
+<text text-anchor="middle" x="397.5" y="-6263" font-family="Helvetica,sans-Serif" font-size="10.00">CountsAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node100 -->
 <g id="edge99" class="edge"><title>Node9&#45;&gt;Node100</title>
-<path fill="none" stroke="midnightblue" d="M242.512,-5630.1C252.209,-5633.34 261.202,-5638.37 268,-5646 327.797,-5713.15 245.87,-5980.41 304,-6049 308.076,-6053.81 312.98,-6057.72 318.376,-6060.89"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.204,-5626.66 232.636,-5627.42 241.373,-5633.42 243.204,-5626.66"/>
+<path fill="none" stroke="midnightblue" d="M242.625,-5730C252.309,-5733.25 261.269,-5738.31 268,-5746 341.508,-5830 232.577,-6161.22 304,-6247 310.051,-6254.27 317.993,-6259.49 326.685,-6263.21"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.324,-5726.56 232.756,-5727.32 241.488,-5733.32 243.324,-5726.56"/>
 </g>
 <!-- Node102 -->
 <g id="node102" class="node"><title>Node102</title>
-<g id="a_node102"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GroupNorm\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="318.5,-6009 318.5,-6039 476.5,-6039 476.5,-6009 318.5,-6009"/>
-<text text-anchor="start" x="326.5" y="-6027" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GroupNorm</text>
-<text text-anchor="middle" x="397.5" y="-6016" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node102"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GlobalPool2\lDAttrs \&gt;">
+<polygon fill="white" stroke="black" points="318.5,-6207 318.5,-6237 476.5,-6237 476.5,-6207 318.5,-6207"/>
+<text text-anchor="start" x="326.5" y="-6225" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GlobalPool2</text>
+<text text-anchor="middle" x="397.5" y="-6214" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node102 -->
 <g id="edge101" class="edge"><title>Node9&#45;&gt;Node102</title>
-<path fill="none" stroke="midnightblue" d="M242.431,-5630.17C252.137,-5633.4 261.155,-5638.41 268,-5646 373.618,-5763.11 201.896,-5878.81 304,-5999 308.093,-6003.82 313.009,-6007.76 318.413,-6010.97"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.117,-5626.73 232.55,-5627.5 241.29,-5633.49 243.117,-5626.73"/>
+<path fill="none" stroke="midnightblue" d="M242.575,-5730.04C252.264,-5733.29 261.239,-5738.33 268,-5746 334.651,-5821.57 239.225,-6120.82 304,-6198 308.053,-6202.83 312.941,-6206.75 318.326,-6209.94"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.27,-5726.61 232.703,-5727.36 241.437,-5733.36 243.27,-5726.61"/>
 </g>
 <!-- Node104 -->
 <g id="node104" class="node"><title>Node104</title>
-<g id="a_node104"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; InitOpAttrs \&gt;">
-<polygon fill="white" stroke="black" points="315.5,-5970.5 315.5,-5989.5 479.5,-5989.5 479.5,-5970.5 315.5,-5970.5"/>
-<text text-anchor="middle" x="397.5" y="-5977.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; InitOpAttrs &gt;</text>
+<g id="a_node104"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GridSample\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="318.5,-6158 318.5,-6188 476.5,-6188 476.5,-6158 318.5,-6158"/>
+<text text-anchor="start" x="326.5" y="-6176" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GridSample</text>
+<text text-anchor="middle" x="397.5" y="-6165" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node104 -->
 <g id="edge103" class="edge"><title>Node9&#45;&gt;Node104</title>
-<path fill="none" stroke="midnightblue" d="M242.699,-5630.36C252.282,-5633.59 261.191,-5638.54 268,-5646 363.007,-5750.07 208.881,-5857.04 304,-5961 307.431,-5964.75 311.387,-5967.87 315.691,-5970.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.513,-5626.95 232.943,-5627.68 241.658,-5633.7 243.513,-5626.95"/>
+<path fill="none" stroke="midnightblue" d="M242.512,-5730.1C252.209,-5733.34 261.202,-5738.37 268,-5746 327.797,-5813.15 245.87,-6080.41 304,-6149 308.076,-6153.81 312.98,-6157.72 318.376,-6160.89"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.204,-5726.66 232.636,-5727.42 241.373,-5733.42 243.204,-5726.66"/>
 </g>
 <!-- Node106 -->
 <g id="node106" class="node"><title>Node106</title>
-<g id="a_node106"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Instance\lNormAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326.5,-5921 326.5,-5951 468.5,-5951 468.5,-5921 326.5,-5921"/>
-<text text-anchor="start" x="334.5" y="-5939" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Instance</text>
-<text text-anchor="middle" x="397.5" y="-5928" font-family="Helvetica,sans-Serif" font-size="10.00">NormAttrs &gt;</text>
+<g id="a_node106"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GroupNorm\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="318.5,-6109 318.5,-6139 476.5,-6139 476.5,-6109 318.5,-6109"/>
+<text text-anchor="start" x="326.5" y="-6127" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; GroupNorm</text>
+<text text-anchor="middle" x="397.5" y="-6116" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node106 -->
 <g id="edge105" class="edge"><title>Node9&#45;&gt;Node106</title>
-<path fill="none" stroke="midnightblue" d="M242.567,-5630.48C252.166,-5633.69 261.114,-5638.61 268,-5646 349.345,-5733.27 224.823,-5822.76 304,-5912 310.056,-5918.83 317.779,-5923.83 326.174,-5927.47"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.372,-5627.07 232.802,-5627.81 241.523,-5633.82 243.372,-5627.07"/>
+<path fill="none" stroke="midnightblue" d="M242.431,-5730.17C252.137,-5733.4 261.155,-5738.41 268,-5746 373.618,-5863.11 201.896,-5978.81 304,-6099 308.093,-6103.82 313.009,-6107.76 318.413,-6110.97"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.117,-5726.73 232.55,-5727.5 241.29,-5733.49 243.117,-5726.73"/>
 </g>
 <!-- Node108 -->
 <g id="node108" class="node"><title>Node108</title>
-<g id="a_node108"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; L2Normalize\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="317,-5872 317,-5902 478,-5902 478,-5872 317,-5872"/>
-<text text-anchor="start" x="325" y="-5890" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; L2Normalize</text>
-<text text-anchor="middle" x="397.5" y="-5879" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node108"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; InitOpAttrs \&gt;">
+<polygon fill="white" stroke="black" points="315.5,-6070.5 315.5,-6089.5 479.5,-6089.5 479.5,-6070.5 315.5,-6070.5"/>
+<text text-anchor="middle" x="397.5" y="-6077.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; InitOpAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node108 -->
 <g id="edge107" class="edge"><title>Node9&#45;&gt;Node108</title>
-<path fill="none" stroke="midnightblue" d="M242.378,-5630.66C252,-5633.85 261.004,-5638.72 268,-5646 335.72,-5716.51 238.032,-5790.85 304,-5863 307.694,-5867.04 311.973,-5870.44 316.625,-5873.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.17,-5627.25 232.602,-5628 241.332,-5634 243.17,-5627.25"/>
+<path fill="none" stroke="midnightblue" d="M242.699,-5730.36C252.282,-5733.59 261.191,-5738.54 268,-5746 363.007,-5850.07 208.881,-5957.04 304,-6061 307.431,-6064.75 311.387,-6067.87 315.691,-6070.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.513,-5726.95 232.943,-5727.68 241.658,-5733.7 243.513,-5726.95"/>
 </g>
 <!-- Node110 -->
 <g id="node110" class="node"><title>Node110</title>
-<g id="a_node110"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; LayerNorm\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="320,-5823 320,-5853 475,-5853 475,-5823 320,-5823"/>
-<text text-anchor="start" x="328" y="-5841" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; LayerNorm</text>
-<text text-anchor="middle" x="397.5" y="-5830" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node110"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Instance\lNormAttrs \&gt;">
+<polygon fill="white" stroke="black" points="326.5,-6021 326.5,-6051 468.5,-6051 468.5,-6021 326.5,-6021"/>
+<text text-anchor="start" x="334.5" y="-6039" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Instance</text>
+<text text-anchor="middle" x="397.5" y="-6028" font-family="Helvetica,sans-Serif" font-size="10.00">NormAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node110 -->
 <g id="edge109" class="edge"><title>Node9&#45;&gt;Node110</title>
-<path fill="none" stroke="midnightblue" d="M242.438,-5631.06C251.964,-5634.22 260.922,-5638.97 268,-5646 322.167,-5699.82 251.171,-5758.86 304,-5814 308.591,-5818.79 314.006,-5822.67 319.875,-5825.81"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.341,-5627.68 232.771,-5628.4 241.488,-5634.43 243.341,-5627.68"/>
+<path fill="none" stroke="midnightblue" d="M242.567,-5730.48C252.166,-5733.69 261.114,-5738.61 268,-5746 349.345,-5833.27 224.823,-5922.76 304,-6012 310.056,-6018.83 317.779,-6023.83 326.174,-6027.47"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.372,-5727.07 232.802,-5727.81 241.523,-5733.82 243.372,-5727.07"/>
 </g>
 <!-- Node112 -->
 <g id="node112" class="node"><title>Node112</title>
-<g id="a_node112"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; LayoutTransform\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="307,-5774 307,-5804 488,-5804 488,-5774 307,-5774"/>
-<text text-anchor="start" x="315" y="-5792" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; LayoutTransform</text>
-<text text-anchor="middle" x="397.5" y="-5781" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node112"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; L2Normalize\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="317,-5972 317,-6002 478,-6002 478,-5972 317,-5972"/>
+<text text-anchor="start" x="325" y="-5990" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; L2Normalize</text>
+<text text-anchor="middle" x="397.5" y="-5979" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node112 -->
 <g id="edge111" class="edge"><title>Node9&#45;&gt;Node112</title>
-<path fill="none" stroke="midnightblue" d="M242.591,-5631.79C251.94,-5634.88 260.803,-5639.42 268,-5646 308.772,-5683.29 264.156,-5726.72 304,-5765 307.589,-5768.45 311.607,-5771.42 315.904,-5773.97"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.292,-5628.35 232.722,-5629.06 241.43,-5635.1 243.292,-5628.35"/>
+<path fill="none" stroke="midnightblue" d="M242.378,-5730.66C252,-5733.85 261.004,-5738.72 268,-5746 335.72,-5816.51 238.032,-5890.85 304,-5963 307.694,-5967.04 311.973,-5970.44 316.625,-5973.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.17,-5727.25 232.602,-5728 241.332,-5734 243.17,-5727.25"/>
 </g>
 <!-- Node114 -->
 <g id="node114" class="node"><title>Node114</title>
-<g id="a_node114"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; LeakyRelu\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="323,-5725 323,-5755 472,-5755 472,-5725 323,-5725"/>
-<text text-anchor="start" x="331" y="-5743" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; LeakyRelu</text>
-<text text-anchor="middle" x="397.5" y="-5732" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node114"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; LayerNorm\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="320,-5923 320,-5953 475,-5953 475,-5923 320,-5923"/>
+<text text-anchor="start" x="328" y="-5941" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; LayerNorm</text>
+<text text-anchor="middle" x="397.5" y="-5930" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node114 -->
 <g id="edge113" class="edge"><title>Node9&#45;&gt;Node114</title>
-<path fill="none" stroke="midnightblue" d="M242.268,-5633.24C251.5,-5636.16 260.412,-5640.26 268,-5646 295.592,-5666.86 277.038,-5693.33 304,-5715 309.706,-5719.58 316.182,-5723.33 322.997,-5726.39"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.142,-5629.85 232.574,-5630.6 241.307,-5636.6 243.142,-5629.85"/>
+<path fill="none" stroke="midnightblue" d="M242.438,-5731.06C251.964,-5734.22 260.922,-5738.97 268,-5746 322.167,-5799.82 251.171,-5858.86 304,-5914 308.591,-5918.79 314.006,-5922.67 319.875,-5925.81"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.341,-5727.68 232.771,-5728.4 241.488,-5734.43 243.341,-5727.68"/>
 </g>
 <!-- Node116 -->
 <g id="node116" class="node"><title>Node116</title>
-<g id="a_node116"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; LRNAttrs \&gt;">
-<polygon fill="white" stroke="black" points="320,-5686.5 320,-5705.5 475,-5705.5 475,-5686.5 320,-5686.5"/>
-<text text-anchor="middle" x="397.5" y="-5693.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; LRNAttrs &gt;</text>
+<g id="a_node116"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; LayoutTransform\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="307,-5874 307,-5904 488,-5904 488,-5874 307,-5874"/>
+<text text-anchor="start" x="315" y="-5892" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; LayoutTransform</text>
+<text text-anchor="middle" x="397.5" y="-5881" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node116 -->
 <g id="edge115" class="edge"><title>Node9&#45;&gt;Node116</title>
-<path fill="none" stroke="midnightblue" d="M242.587,-5636.52C251.369,-5638.99 260.07,-5642.09 268,-5646 286.94,-5655.33 285.05,-5667.69 304,-5677 311.945,-5680.9 320.655,-5684.01 329.452,-5686.47"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="243.226,-5633.07 232.672,-5634 241.5,-5639.86 243.226,-5633.07"/>
+<path fill="none" stroke="midnightblue" d="M242.591,-5731.79C251.94,-5734.88 260.803,-5739.42 268,-5746 308.772,-5783.29 264.156,-5826.72 304,-5865 307.589,-5868.45 311.607,-5871.42 315.904,-5873.97"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.292,-5728.35 232.722,-5729.06 241.43,-5735.1 243.292,-5728.35"/>
 </g>
 <!-- Node118 -->
 <g id="node118" class="node"><title>Node118</title>
-<g id="a_node118"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MaxPool1\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="324,-5637 324,-5667 471,-5667 471,-5637 324,-5637"/>
-<text text-anchor="start" x="332" y="-5655" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MaxPool1</text>
-<text text-anchor="middle" x="397.5" y="-5644" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<g id="a_node118"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; LeakyRelu\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="323,-5825 323,-5855 472,-5855 472,-5825 323,-5825"/>
+<text text-anchor="start" x="331" y="-5843" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; LeakyRelu</text>
+<text text-anchor="middle" x="397.5" y="-5832" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node118 -->
 <g id="edge117" class="edge"><title>Node9&#45;&gt;Node118</title>
-<path fill="none" stroke="midnightblue" d="M242.575,-5634.51C268.211,-5637.42 297.654,-5640.77 323.88,-5643.75"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="242.916,-5631.02 232.585,-5633.37 242.125,-5637.98 242.916,-5631.02"/>
+<path fill="none" stroke="midnightblue" d="M242.268,-5733.24C251.5,-5736.16 260.412,-5740.26 268,-5746 295.592,-5766.86 277.038,-5793.33 304,-5815 309.706,-5819.58 316.182,-5823.33 322.997,-5826.39"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.142,-5729.85 232.574,-5730.6 241.307,-5736.6 243.142,-5729.85"/>
 </g>
 <!-- Node120 -->
 <g id="node120" class="node"><title>Node120</title>
-<g id="a_node120"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MaxPool2\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="324,-5588 324,-5618 471,-5618 471,-5588 324,-5588"/>
-<text text-anchor="start" x="332" y="-5606" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MaxPool2</text>
-<text text-anchor="middle" x="397.5" y="-5595" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<g id="a_node120"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; LRNAttrs \&gt;">
+<polygon fill="white" stroke="black" points="320,-5786.5 320,-5805.5 475,-5805.5 475,-5786.5 320,-5786.5"/>
+<text text-anchor="middle" x="397.5" y="-5793.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; LRNAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node120 -->
 <g id="edge119" class="edge"><title>Node9&#45;&gt;Node120</title>
-<path fill="none" stroke="midnightblue" d="M242.575,-5619.79C268.211,-5617 297.654,-5613.78 323.88,-5610.92"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="242.146,-5616.32 232.585,-5620.88 242.905,-5623.28 242.146,-5616.32"/>
+<path fill="none" stroke="midnightblue" d="M242.587,-5736.52C251.369,-5738.99 260.07,-5742.09 268,-5746 286.94,-5755.33 285.05,-5767.69 304,-5777 311.945,-5780.9 320.655,-5784.01 329.452,-5786.47"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="243.226,-5733.07 232.672,-5734 241.5,-5739.86 243.226,-5733.07"/>
 </g>
 <!-- Node122 -->
 <g id="node122" class="node"><title>Node122</title>
-<g id="a_node122"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MaxPool3\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="324,-5539 324,-5569 471,-5569 471,-5539 324,-5539"/>
-<text text-anchor="start" x="332" y="-5557" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MaxPool3</text>
-<text text-anchor="middle" x="397.5" y="-5546" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<g id="a_node122"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MaxPool1\lDAttrs \&gt;">
+<polygon fill="white" stroke="black" points="324,-5737 324,-5767 471,-5767 471,-5737 324,-5737"/>
+<text text-anchor="start" x="332" y="-5755" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MaxPool1</text>
+<text text-anchor="middle" x="397.5" y="-5744" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node122 -->
 <g id="edge121" class="edge"><title>Node9&#45;&gt;Node122</title>
-<path fill="none" stroke="midnightblue" d="M209.331,-5613.64C234.902,-5603.49 271.41,-5589.51 304,-5579 314.766,-5575.53 326.339,-5572.14 337.53,-5569.03"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="207.747,-5610.51 199.761,-5617.47 210.346,-5617.01 207.747,-5610.51"/>
+<path fill="none" stroke="midnightblue" d="M242.575,-5734.51C268.211,-5737.42 297.654,-5740.77 323.88,-5743.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="242.916,-5731.02 232.585,-5733.37 242.125,-5737.98 242.916,-5731.02"/>
 </g>
 <!-- Node124 -->
 <g id="node124" class="node"><title>Node124</title>
-<g id="a_node124"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Meshgrid\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="325,-5490 325,-5520 470,-5520 470,-5490 325,-5490"/>
-<text text-anchor="start" x="333" y="-5508" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Meshgrid</text>
-<text text-anchor="middle" x="397.5" y="-5497" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node124"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MaxPool2\lDAttrs \&gt;">
+<polygon fill="white" stroke="black" points="324,-5688 324,-5718 471,-5718 471,-5688 324,-5688"/>
+<text text-anchor="start" x="332" y="-5706" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MaxPool2</text>
+<text text-anchor="middle" x="397.5" y="-5695" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node124 -->
 <g id="edge123" class="edge"><title>Node9&#45;&gt;Node124</title>
-<path fill="none" stroke="midnightblue" d="M193.468,-5610.59C216.618,-5589.06 260.243,-5551.52 304,-5530 311.762,-5526.18 320.187,-5522.88 328.686,-5520.05"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="191.037,-5608.07 186.167,-5617.48 195.842,-5613.16 191.037,-5608.07"/>
+<path fill="none" stroke="midnightblue" d="M242.575,-5719.79C268.211,-5717 297.654,-5713.78 323.88,-5710.92"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="242.146,-5716.32 232.585,-5720.88 242.905,-5723.28 242.146,-5716.32"/>
 </g>
 <!-- Node126 -->
 <g id="node126" class="node"><title>Node126</title>
-<g id="a_node126"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MirrorPad\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="324.5,-5441 324.5,-5471 470.5,-5471 470.5,-5441 324.5,-5441"/>
-<text text-anchor="start" x="332.5" y="-5459" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MirrorPad</text>
-<text text-anchor="middle" x="397.5" y="-5448" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node126"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MaxPool3\lDAttrs \&gt;">
+<polygon fill="white" stroke="black" points="324,-5639 324,-5669 471,-5669 471,-5639 324,-5639"/>
+<text text-anchor="start" x="332" y="-5657" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MaxPool3</text>
+<text text-anchor="middle" x="397.5" y="-5646" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node126 -->
 <g id="edge125" class="edge"><title>Node9&#45;&gt;Node126</title>
-<path fill="none" stroke="midnightblue" d="M187.449,-5608.51C206.88,-5577.34 250.435,-5514.47 304,-5481 310.207,-5477.12 317.014,-5473.84 324.029,-5471.06"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="184.222,-5607.08 182.006,-5617.44 190.199,-5610.72 184.222,-5607.08"/>
+<path fill="none" stroke="midnightblue" d="M209.331,-5713.64C234.902,-5703.49 271.41,-5689.51 304,-5679 314.766,-5675.53 326.339,-5672.14 337.53,-5669.03"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="207.747,-5710.51 199.761,-5717.47 210.346,-5717.01 207.747,-5710.51"/>
 </g>
 <!-- Node128 -->
 <g id="node128" class="node"><title>Node128</title>
-<g id="a_node128"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MultiBox\lPriorAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326.5,-5392 326.5,-5422 468.5,-5422 468.5,-5392 326.5,-5392"/>
-<text text-anchor="start" x="334.5" y="-5410" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MultiBox</text>
-<text text-anchor="middle" x="397.5" y="-5399" font-family="Helvetica,sans-Serif" font-size="10.00">PriorAttrs &gt;</text>
+<g id="a_node128"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Meshgrid\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="325,-5590 325,-5620 470,-5620 470,-5590 325,-5590"/>
+<text text-anchor="start" x="333" y="-5608" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Meshgrid</text>
+<text text-anchor="middle" x="397.5" y="-5597" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node128 -->
 <g id="edge127" class="edge"><title>Node9&#45;&gt;Node128</title>
-<path fill="none" stroke="midnightblue" d="M183.649,-5607.58C199.175,-5568.16 239.831,-5478.58 304,-5432 310.731,-5427.11 318.362,-5423.18 326.284,-5420.02"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="180.317,-5606.49 180.013,-5617.08 186.855,-5608.99 180.317,-5606.49"/>
+<path fill="none" stroke="midnightblue" d="M193.468,-5710.59C216.618,-5689.06 260.243,-5651.52 304,-5630 311.762,-5626.18 320.187,-5622.88 328.686,-5620.05"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="191.037,-5708.07 186.167,-5717.48 195.842,-5713.16 191.037,-5708.07"/>
 </g>
 <!-- Node130 -->
 <g id="node130" class="node"><title>Node130</title>
-<g id="a_node130"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MultiBox\lTransformLocAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326.5,-5343 326.5,-5373 468.5,-5373 468.5,-5343 326.5,-5343"/>
-<text text-anchor="start" x="334.5" y="-5361" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MultiBox</text>
-<text text-anchor="middle" x="397.5" y="-5350" font-family="Helvetica,sans-Serif" font-size="10.00">TransformLocAttrs &gt;</text>
+<g id="a_node130"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MirrorPad\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="324.5,-5541 324.5,-5571 470.5,-5571 470.5,-5541 324.5,-5541"/>
+<text text-anchor="start" x="332.5" y="-5559" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MirrorPad</text>
+<text text-anchor="middle" x="397.5" y="-5548" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node130 -->
 <g id="edge129" class="edge"><title>Node9&#45;&gt;Node130</title>
-<path fill="none" stroke="midnightblue" d="M181.022,-5607.3C192.745,-5560.79 228.604,-5443.55 304,-5383 310.615,-5377.69 318.265,-5373.5 326.276,-5370.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="177.555,-5606.75 178.606,-5617.29 184.359,-5608.39 177.555,-5606.75"/>
+<path fill="none" stroke="midnightblue" d="M187.449,-5708.51C206.88,-5677.34 250.435,-5614.47 304,-5581 310.207,-5577.12 317.014,-5573.84 324.029,-5571.06"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="184.222,-5707.08 182.006,-5717.44 190.199,-5710.72 184.222,-5707.08"/>
 </g>
 <!-- Node132 -->
 <g id="node132" class="node"><title>Node132</title>
-<g id="a_node132"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; NdarraySize\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="317.5,-5294 317.5,-5324 477.5,-5324 477.5,-5294 317.5,-5294"/>
-<text text-anchor="start" x="325.5" y="-5312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; NdarraySize</text>
-<text text-anchor="middle" x="397.5" y="-5301" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node132"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MultiBox\lPriorAttrs \&gt;">
+<polygon fill="white" stroke="black" points="326.5,-5492 326.5,-5522 468.5,-5522 468.5,-5492 326.5,-5492"/>
+<text text-anchor="start" x="334.5" y="-5510" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MultiBox</text>
+<text text-anchor="middle" x="397.5" y="-5499" font-family="Helvetica,sans-Serif" font-size="10.00">PriorAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node132 -->
 <g id="edge131" class="edge"><title>Node9&#45;&gt;Node132</title>
-<path fill="none" stroke="midnightblue" d="M179.137,-5607.38C187.279,-5554.7 216.954,-5409.15 304,-5334 308.407,-5330.2 313.338,-5326.96 318.568,-5324.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="175.654,-5607.01 177.679,-5617.4 182.581,-5608.01 175.654,-5607.01"/>
+<path fill="none" stroke="midnightblue" d="M183.649,-5707.58C199.175,-5668.16 239.831,-5578.58 304,-5532 310.731,-5527.11 318.362,-5523.18 326.284,-5520.02"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="180.317,-5706.49 180.013,-5717.08 186.855,-5708.99 180.317,-5706.49"/>
 </g>
 <!-- Node134 -->
 <g id="node134" class="node"><title>Node134</title>
-<g id="a_node134"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; NonMaximum\lSuppressionAttrs \&gt;">
-<polygon fill="white" stroke="black" points="313.5,-5245 313.5,-5275 481.5,-5275 481.5,-5245 313.5,-5245"/>
-<text text-anchor="start" x="321.5" y="-5263" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; NonMaximum</text>
-<text text-anchor="middle" x="397.5" y="-5252" font-family="Helvetica,sans-Serif" font-size="10.00">SuppressionAttrs &gt;</text>
+<g id="a_node134"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; MultiBox\lTransformLocAttrs \&gt;">
+<polygon fill="white" stroke="black" points="326.5,-5443 326.5,-5473 468.5,-5473 468.5,-5443 326.5,-5443"/>
+<text text-anchor="start" x="334.5" y="-5461" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; MultiBox</text>
+<text text-anchor="middle" x="397.5" y="-5450" font-family="Helvetica,sans-Serif" font-size="10.00">TransformLocAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node134 -->
 <g id="edge133" class="edge"><title>Node9&#45;&gt;Node134</title>
-<path fill="none" stroke="midnightblue" d="M177.777,-5607.31C182.653,-5548.89 205.199,-5375.03 304,-5285 308.181,-5281.19 312.883,-5277.95 317.893,-5275.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="174.278,-5607.16 177.02,-5617.39 181.259,-5607.68 174.278,-5607.16"/>
+<path fill="none" stroke="midnightblue" d="M181.022,-5707.3C192.745,-5660.79 228.604,-5543.55 304,-5483 310.615,-5477.69 318.265,-5473.5 326.276,-5470.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="177.555,-5706.75 178.606,-5717.29 184.359,-5708.39 177.555,-5706.75"/>
 </g>
 <!-- Node136 -->
 <g id="node136" class="node"><title>Node136</title>
-<g id="a_node136"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; OnDevice\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="324,-5196 324,-5226 471,-5226 471,-5196 324,-5196"/>
-<text text-anchor="start" x="332" y="-5214" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; OnDevice</text>
-<text text-anchor="middle" x="397.5" y="-5203" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node136"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; NdarraySize\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="317.5,-5394 317.5,-5424 477.5,-5424 477.5,-5394 317.5,-5394"/>
+<text text-anchor="start" x="325.5" y="-5412" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; NdarraySize</text>
+<text text-anchor="middle" x="397.5" y="-5401" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node136 -->
 <g id="edge135" class="edge"><title>Node9&#45;&gt;Node136</title>
-<path fill="none" stroke="midnightblue" d="M176.732,-5607.11C178.597,-5543.19 193.38,-5341.09 304,-5236 309.668,-5230.61 316.373,-5226.36 323.543,-5223.01"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.227,-5607.31 176.514,-5617.38 180.226,-5607.46 173.227,-5607.31"/>
+<path fill="none" stroke="midnightblue" d="M179.137,-5707.38C187.279,-5654.7 216.954,-5509.15 304,-5434 308.407,-5430.2 313.338,-5426.96 318.568,-5424.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="175.654,-5707.01 177.679,-5717.4 182.581,-5708.01 175.654,-5707.01"/>
 </g>
 <!-- Node138 -->
 <g id="node138" class="node"><title>Node138</title>
-<g id="a_node138"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; OneHotAttrs \&gt;">
-<polygon fill="white" stroke="black" points="311,-5157.5 311,-5176.5 484,-5176.5 484,-5157.5 311,-5157.5"/>
-<text text-anchor="middle" x="397.5" y="-5164.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; OneHotAttrs &gt;</text>
+<g id="a_node138"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; NonMaximum\lSuppressionAttrs \&gt;">
+<polygon fill="white" stroke="black" points="313.5,-5345 313.5,-5375 481.5,-5375 481.5,-5345 313.5,-5345"/>
+<text text-anchor="start" x="321.5" y="-5363" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; NonMaximum</text>
+<text text-anchor="middle" x="397.5" y="-5352" font-family="Helvetica,sans-Serif" font-size="10.00">SuppressionAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node138 -->
 <g id="edge137" class="edge"><title>Node9&#45;&gt;Node138</title>
-<path fill="none" stroke="midnightblue" d="M179.528,-5607.09C191.763,-5529.24 239.982,-5246.74 304,-5187 308.565,-5182.74 313.812,-5179.3 319.44,-5176.54"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="176.002,-5606.99 177.93,-5617.41 182.92,-5608.06 176.002,-5606.99"/>
+<path fill="none" stroke="midnightblue" d="M177.777,-5707.31C182.653,-5648.89 205.199,-5475.03 304,-5385 308.181,-5381.19 312.883,-5377.95 317.893,-5375.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="174.278,-5707.16 177.02,-5717.39 181.259,-5707.68 174.278,-5707.16"/>
 </g>
 <!-- Node140 -->
 <g id="node140" class="node"><title>Node140</title>
-<g id="a_node140"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; PadAttrs \&gt;">
-<polygon fill="white" stroke="black" points="321,-5119.5 321,-5138.5 474,-5138.5 474,-5119.5 321,-5119.5"/>
-<text text-anchor="middle" x="397.5" y="-5126.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; PadAttrs &gt;</text>
+<g id="a_node140"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; OnDevice\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="324,-5296 324,-5326 471,-5326 471,-5296 324,-5296"/>
+<text text-anchor="start" x="332" y="-5314" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; OnDevice</text>
+<text text-anchor="middle" x="397.5" y="-5303" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node140 -->
 <g id="edge139" class="edge"><title>Node9&#45;&gt;Node140</title>
-<path fill="none" stroke="midnightblue" d="M178.966,-5607.43C189.646,-5525.79 234.523,-5213.59 304,-5148 308.888,-5143.39 314.582,-5139.76 320.7,-5136.93"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="175.492,-5607 177.687,-5617.37 182.435,-5607.9 175.492,-5607"/>
+<path fill="none" stroke="midnightblue" d="M176.732,-5707.11C178.597,-5643.19 193.38,-5441.09 304,-5336 309.668,-5330.61 316.373,-5326.36 323.543,-5323.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.227,-5707.31 176.514,-5717.38 180.226,-5707.46 173.227,-5707.31"/>
 </g>
 <!-- Node142 -->
 <g id="node142" class="node"><title>Node142</title>
-<g id="a_node142"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; PReluAttrs \&gt;">
-<polygon fill="white" stroke="black" points="317,-5081.5 317,-5100.5 478,-5100.5 478,-5081.5 317,-5081.5"/>
-<text text-anchor="middle" x="397.5" y="-5088.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; PReluAttrs &gt;</text>
+<g id="a_node142"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; OneHotAttrs \&gt;">
+<polygon fill="white" stroke="black" points="311,-5257.5 311,-5276.5 484,-5276.5 484,-5257.5 311,-5257.5"/>
+<text text-anchor="middle" x="397.5" y="-5264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; OneHotAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node142 -->
 <g id="edge141" class="edge"><title>Node9&#45;&gt;Node142</title>
-<path fill="none" stroke="midnightblue" d="M178.575,-5607.28C188.008,-5521.45 229.619,-5181.52 304,-5110 307.9,-5106.25 312.331,-5103.15 317.092,-5100.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="175.071,-5607.14 177.479,-5617.45 182.03,-5607.89 175.071,-5607.14"/>
+<path fill="none" stroke="midnightblue" d="M179.528,-5707.09C191.763,-5629.24 239.982,-5346.74 304,-5287 308.565,-5282.74 313.812,-5279.3 319.44,-5276.54"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="176.002,-5706.99 177.93,-5717.41 182.92,-5708.06 176.002,-5706.99"/>
 </g>
 <!-- Node144 -->
 <g id="node144" class="node"><title>Node144</title>
-<g id="a_node144"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Proposal\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326,-5032 326,-5062 469,-5062 469,-5032 326,-5032"/>
-<text text-anchor="start" x="334" y="-5050" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Proposal</text>
-<text text-anchor="middle" x="397.5" y="-5039" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node144"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; PadAttrs \&gt;">
+<polygon fill="white" stroke="black" points="321,-5219.5 321,-5238.5 474,-5238.5 474,-5219.5 321,-5219.5"/>
+<text text-anchor="middle" x="397.5" y="-5226.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; PadAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node144 -->
 <g id="edge143" class="edge"><title>Node9&#45;&gt;Node144</title>
-<path fill="none" stroke="midnightblue" d="M178.359,-5607.1C187.124,-5517.43 227.152,-5151.84 304,-5072 310.114,-5065.65 317.662,-5060.85 325.786,-5057.25"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="174.856,-5606.97 177.386,-5617.25 181.824,-5607.63 174.856,-5606.97"/>
+<path fill="none" stroke="midnightblue" d="M178.966,-5707.43C189.646,-5625.79 234.523,-5313.59 304,-5248 308.888,-5243.39 314.582,-5239.76 320.7,-5236.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="175.492,-5707 177.687,-5717.37 182.435,-5707.9 175.492,-5707"/>
 </g>
 <!-- Node146 -->
 <g id="node146" class="node"><title>Node146</title>
-<g id="a_node146"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Quantize\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="325.5,-4983 325.5,-5013 469.5,-5013 469.5,-4983 325.5,-4983"/>
-<text text-anchor="start" x="333.5" y="-5001" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Quantize</text>
-<text text-anchor="middle" x="397.5" y="-4990" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node146"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; PReluAttrs \&gt;">
+<polygon fill="white" stroke="black" points="317,-5181.5 317,-5200.5 478,-5200.5 478,-5181.5 317,-5181.5"/>
+<text text-anchor="middle" x="397.5" y="-5188.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; PReluAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node146 -->
 <g id="edge145" class="edge"><title>Node9&#45;&gt;Node146</title>
-<path fill="none" stroke="midnightblue" d="M177.954,-5607.18C185.26,-5512.9 220.945,-5110.84 304,-5023 309.943,-5016.71 317.289,-5011.95 325.221,-5008.35"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="174.451,-5607.09 177.187,-5617.32 181.431,-5607.61 174.451,-5607.09"/>
+<path fill="none" stroke="midnightblue" d="M178.575,-5707.28C188.008,-5621.45 229.619,-5281.52 304,-5210 307.9,-5206.25 312.331,-5203.15 317.092,-5200.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="175.071,-5707.14 177.479,-5717.45 182.03,-5707.89 175.071,-5707.14"/>
 </g>
 <!-- Node148 -->
 <g id="node148" class="node"><title>Node148</title>
-<g id="a_node148"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ReduceAttrs \&gt;">
-<polygon fill="white" stroke="black" points="312.5,-4944.5 312.5,-4963.5 482.5,-4963.5 482.5,-4944.5 312.5,-4944.5"/>
-<text text-anchor="middle" x="397.5" y="-4951.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ReduceAttrs &gt;</text>
+<g id="a_node148"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Proposal\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="326,-5132 326,-5162 469,-5162 469,-5132 326,-5132"/>
+<text text-anchor="start" x="334" y="-5150" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Proposal</text>
+<text text-anchor="middle" x="397.5" y="-5139" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node148 -->
 <g id="edge147" class="edge"><title>Node9&#45;&gt;Node148</title>
-<path fill="none" stroke="midnightblue" d="M177.504,-5607.38C182.957,-5508.69 212.229,-5067.64 304,-4974 308.14,-4969.78 312.945,-4966.34 318.146,-4963.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="174.005,-5607.28 176.966,-5617.45 180.995,-5607.65 174.005,-5607.28"/>
+<path fill="none" stroke="midnightblue" d="M178.359,-5707.1C187.124,-5617.43 227.152,-5251.84 304,-5172 310.114,-5165.65 317.662,-5160.85 325.786,-5157.25"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="174.856,-5706.97 177.386,-5717.25 181.824,-5707.63 174.856,-5706.97"/>
 </g>
 <!-- Node150 -->
 <g id="node150" class="node"><title>Node150</title>
-<g id="a_node150"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; RepeatAttrs \&gt;">
-<polygon fill="white" stroke="black" points="313,-4906.5 313,-4925.5 482,-4925.5 482,-4906.5 313,-4906.5"/>
-<text text-anchor="middle" x="397.5" y="-4913.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; RepeatAttrs &gt;</text>
+<g id="a_node150"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Quantize\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="325.5,-5083 325.5,-5113 469.5,-5113 469.5,-5083 325.5,-5083"/>
+<text text-anchor="start" x="333.5" y="-5101" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Quantize</text>
+<text text-anchor="middle" x="397.5" y="-5090" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node150 -->
 <g id="edge149" class="edge"><title>Node9&#45;&gt;Node150</title>
-<path fill="none" stroke="midnightblue" d="M177.26,-5607.17C181.605,-5504.52 206.653,-5034.35 304,-4935 307.672,-4931.25 311.871,-4928.15 316.408,-4925.58"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.755,-5607.23 176.847,-5617.36 180.749,-5607.51 173.755,-5607.23"/>
+<path fill="none" stroke="midnightblue" d="M177.954,-5707.18C185.26,-5612.9 220.945,-5210.84 304,-5123 309.943,-5116.71 317.289,-5111.95 325.221,-5108.35"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="174.451,-5707.09 177.187,-5717.32 181.431,-5707.61 174.451,-5707.09"/>
 </g>
 <!-- Node152 -->
 <g id="node152" class="node"><title>Node152</title>
-<g id="a_node152"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Requantize\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="320.5,-4857 320.5,-4887 474.5,-4887 474.5,-4857 320.5,-4857"/>
-<text text-anchor="start" x="328.5" y="-4875" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Requantize</text>
-<text text-anchor="middle" x="397.5" y="-4864" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node152"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ReduceAttrs \&gt;">
+<polygon fill="white" stroke="black" points="312.5,-5044.5 312.5,-5063.5 482.5,-5063.5 482.5,-5044.5 312.5,-5044.5"/>
+<text text-anchor="middle" x="397.5" y="-5051.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ReduceAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node152 -->
 <g id="edge151" class="edge"><title>Node9&#45;&gt;Node152</title>
-<path fill="none" stroke="midnightblue" d="M177.17,-5607.21C181.144,-5501.64 204.929,-5005.53 304,-4897 308.598,-4891.96 314.096,-4887.9 320.088,-4884.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.666,-5607.27 176.804,-5617.39 180.661,-5607.53 173.666,-5607.27"/>
+<path fill="none" stroke="midnightblue" d="M177.504,-5707.38C182.957,-5608.69 212.229,-5167.64 304,-5074 308.14,-5069.78 312.945,-5066.34 318.146,-5063.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="174.005,-5707.28 176.966,-5717.45 180.995,-5707.65 174.005,-5707.28"/>
 </g>
 <!-- Node154 -->
 <g id="node154" class="node"><title>Node154</title>
-<g id="a_node154"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ReshapeAttrs \&gt;">
-<polygon fill="white" stroke="black" points="309.5,-4818.5 309.5,-4837.5 485.5,-4837.5 485.5,-4818.5 309.5,-4818.5"/>
-<text text-anchor="middle" x="397.5" y="-4825.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ReshapeAttrs &gt;</text>
+<g id="a_node154"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; RepeatAttrs \&gt;">
+<polygon fill="white" stroke="black" points="313,-5006.5 313,-5025.5 482,-5025.5 482,-5006.5 313,-5006.5"/>
+<text text-anchor="middle" x="397.5" y="-5013.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; RepeatAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node154 -->
 <g id="edge153" class="edge"><title>Node9&#45;&gt;Node154</title>
-<path fill="none" stroke="midnightblue" d="M176.836,-5607.19C179.116,-5497.16 195.709,-4961.93 304,-4848 307.962,-4843.83 312.569,-4840.43 317.572,-4837.66"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.331,-5607.42 176.64,-5617.49 180.33,-5607.56 173.331,-5607.42"/>
+<path fill="none" stroke="midnightblue" d="M177.26,-5707.17C181.605,-5604.52 206.653,-5134.35 304,-5035 307.672,-5031.25 311.871,-5028.15 316.408,-5025.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.755,-5707.23 176.847,-5717.36 180.749,-5707.51 173.755,-5707.23"/>
 </g>
 <!-- Node156 -->
 <g id="node156" class="node"><title>Node156</title>
-<g id="a_node156"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Resize3d\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326,-4769 326,-4799 469,-4799 469,-4769 326,-4769"/>
-<text text-anchor="start" x="334" y="-4787" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Resize3d</text>
-<text text-anchor="middle" x="397.5" y="-4776" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node156"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Requantize\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="320.5,-4957 320.5,-4987 474.5,-4987 474.5,-4957 320.5,-4957"/>
+<text text-anchor="start" x="328.5" y="-4975" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Requantize</text>
+<text text-anchor="middle" x="397.5" y="-4964" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node156 -->
 <g id="edge155" class="edge"><title>Node9&#45;&gt;Node156</title>
-<path fill="none" stroke="midnightblue" d="M176.768,-5607.01C178.693,-5493.62 193.749,-4932.02 304,-4809 309.995,-4802.31 317.577,-4797.33 325.809,-4793.64"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.264,-5607.27 176.609,-5617.33 180.263,-5607.38 173.264,-5607.27"/>
+<path fill="none" stroke="midnightblue" d="M177.17,-5707.21C181.144,-5601.64 204.929,-5105.53 304,-4997 308.598,-4991.96 314.096,-4987.9 320.088,-4984.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.666,-5707.27 176.804,-5717.39 180.661,-5707.53 173.666,-5707.27"/>
 </g>
 <!-- Node158 -->
 <g id="node158" class="node"><title>Node158</title>
-<g id="a_node158"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ResizeAttrs \&gt;">
-<polygon fill="white" stroke="black" points="314.5,-4730.5 314.5,-4749.5 480.5,-4749.5 480.5,-4730.5 314.5,-4730.5"/>
-<text text-anchor="middle" x="397.5" y="-4737.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ResizeAttrs &gt;</text>
+<g id="a_node158"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ReshapeAttrs \&gt;">
+<polygon fill="white" stroke="black" points="309.5,-4918.5 309.5,-4937.5 485.5,-4937.5 485.5,-4918.5 309.5,-4918.5"/>
+<text text-anchor="middle" x="397.5" y="-4925.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ReshapeAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node158 -->
 <g id="edge157" class="edge"><title>Node9&#45;&gt;Node158</title>
-<path fill="none" stroke="midnightblue" d="M176.477,-5607.2C176.755,-5490.03 184.07,-4888.24 304,-4760 307.928,-4755.8 312.511,-4752.37 317.496,-4749.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="172.977,-5607.25 176.469,-5617.26 179.977,-5607.26 172.977,-5607.25"/>
+<path fill="none" stroke="midnightblue" d="M176.836,-5707.19C179.116,-5597.16 195.709,-5061.93 304,-4948 307.962,-4943.83 312.569,-4940.43 317.572,-4937.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.331,-5707.42 176.64,-5717.49 180.33,-5707.56 173.331,-5707.42"/>
 </g>
 <!-- Node160 -->
 <g id="node160" class="node"><title>Node160</title>
-<g id="a_node160"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ReverseAttrs \&gt;">
-<polygon fill="white" stroke="black" points="311,-4692.5 311,-4711.5 484,-4711.5 484,-4692.5 311,-4692.5"/>
-<text text-anchor="middle" x="397.5" y="-4699.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ReverseAttrs &gt;</text>
+<g id="a_node160"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ReshapeTensor\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="311,-4869 311,-4899 484,-4899 484,-4869 311,-4869"/>
+<text text-anchor="start" x="319" y="-4887" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ReshapeTensor</text>
+<text text-anchor="middle" x="397.5" y="-4876" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node160 -->
 <g id="edge159" class="edge"><title>Node9&#45;&gt;Node160</title>
-<path fill="none" stroke="midnightblue" d="M176.32,-5607.06C175.65,-5486.43 178.246,-4854.91 304,-4721 307.479,-4717.3 311.472,-4714.21 315.803,-4711.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="172.822,-5607.4 176.393,-5617.38 179.822,-5607.35 172.822,-5607.4"/>
+<path fill="none" stroke="midnightblue" d="M176.768,-5707.01C178.693,-5593.62 193.749,-5032.02 304,-4909 307.442,-4905.16 311.406,-4901.88 315.717,-4899.09"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.264,-5707.27 176.609,-5717.33 180.263,-5707.38 173.264,-5707.27"/>
 </g>
 <!-- Node162 -->
 <g id="node162" class="node"><title>Node162</title>
-<g id="a_node162"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ReverseSequence\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="304,-4643 304,-4673 491,-4673 491,-4643 304,-4643"/>
-<text text-anchor="start" x="312" y="-4661" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ReverseSequence</text>
-<text text-anchor="middle" x="397.5" y="-4650" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node162"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Resize3d\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="326,-4820 326,-4850 469,-4850 469,-4820 326,-4820"/>
+<text text-anchor="start" x="334" y="-4838" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Resize3d</text>
+<text text-anchor="middle" x="397.5" y="-4827" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node162 -->
 <g id="edge161" class="edge"><title>Node9&#45;&gt;Node162</title>
-<path fill="none" stroke="midnightblue" d="M176.312,-5607.11C175.557,-5484.04 177.551,-4827.02 304,-4683 307.402,-4679.12 311.337,-4675.82 315.626,-4673.01"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="172.814,-5607.34 176.39,-5617.31 179.813,-5607.29 172.814,-5607.34"/>
+<path fill="none" stroke="midnightblue" d="M176.573,-5707.29C177.407,-5590.62 187.38,-4991.26 304,-4860 309.967,-4853.28 317.532,-4848.29 325.756,-4844.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.073,-5707.28 176.517,-5717.3 180.073,-5707.32 173.073,-5707.28"/>
 </g>
 <!-- Node164 -->
 <g id="node164" class="node"><title>Node164</title>
-<g id="a_node164"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ROIAlign\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="327.5,-4594 327.5,-4624 467.5,-4624 467.5,-4594 327.5,-4594"/>
-<text text-anchor="start" x="335.5" y="-4612" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ROIAlign</text>
-<text text-anchor="middle" x="397.5" y="-4601" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node164"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ResizeAttrs \&gt;">
+<polygon fill="white" stroke="black" points="314.5,-4781.5 314.5,-4800.5 480.5,-4800.5 480.5,-4781.5 314.5,-4781.5"/>
+<text text-anchor="middle" x="397.5" y="-4788.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ResizeAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node164 -->
 <g id="edge163" class="edge"><title>Node9&#45;&gt;Node164</title>
-<path fill="none" stroke="midnightblue" d="M176.168,-5607.27C174.449,-5480.97 171.188,-4786.26 304,-4634 310.342,-4626.73 318.559,-4621.47 327.475,-4617.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="172.67,-5607.46 176.32,-5617.4 179.67,-5607.35 172.67,-5607.46"/>
+<path fill="none" stroke="midnightblue" d="M176.306,-5707.23C175.538,-5586.31 177.562,-4947.25 304,-4811 307.912,-4806.78 312.483,-4803.35 317.46,-4800.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.807,-5707.31 176.385,-5717.28 179.807,-5707.25 172.807,-5707.31"/>
 </g>
 <!-- Node166 -->
 <g id="node166" class="node"><title>Node166</title>
-<g id="a_node166"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ROIPoolAttrs \&gt;">
-<polygon fill="white" stroke="black" points="311.5,-4555.5 311.5,-4574.5 483.5,-4574.5 483.5,-4555.5 311.5,-4555.5"/>
-<text text-anchor="middle" x="397.5" y="-4562.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ROIPoolAttrs &gt;</text>
+<g id="a_node166"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ReverseAttrs \&gt;">
+<polygon fill="white" stroke="black" points="311,-4743.5 311,-4762.5 484,-4762.5 484,-4743.5 311,-4743.5"/>
+<text text-anchor="middle" x="397.5" y="-4750.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ReverseAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node166 -->
 <g id="edge165" class="edge"><title>Node9&#45;&gt;Node166</title>
-<path fill="none" stroke="midnightblue" d="M177.577,-5606.86C185.146,-5468.67 232.145,-4663.72 304,-4585 307.766,-4580.87 312.163,-4577.49 316.958,-4574.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="174.063,-5607.04 177.016,-5617.21 181.052,-5607.41 174.063,-5607.04"/>
+<path fill="none" stroke="midnightblue" d="M176.163,-5707.16C174.475,-5583.03 171.665,-4913.92 304,-4772 307.466,-4768.28 311.449,-4765.19 315.773,-4762.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.667,-5707.49 176.318,-5717.44 179.667,-5707.38 172.667,-5707.49"/>
 </g>
 <!-- Node168 -->
 <g id="node168" class="node"><title>Node168</title>
-<g id="a_node168"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ScatterAttrs \&gt;">
-<polygon fill="white" stroke="black" points="312,-4517.5 312,-4536.5 483,-4536.5 483,-4517.5 312,-4517.5"/>
-<text text-anchor="middle" x="397.5" y="-4524.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ScatterAttrs &gt;</text>
+<g id="a_node168"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ReverseSequence\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="304,-4694 304,-4724 491,-4724 491,-4694 304,-4694"/>
+<text text-anchor="start" x="312" y="-4712" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ReverseSequence</text>
+<text text-anchor="middle" x="397.5" y="-4701" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node168 -->
 <g id="edge167" class="edge"><title>Node9&#45;&gt;Node168</title>
-<path fill="none" stroke="midnightblue" d="M177.448,-5607.41C184.372,-5467.85 229.02,-4627.66 304,-4546 307.437,-4542.26 311.399,-4539.14 315.707,-4536.56"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.948,-5607.32 176.953,-5617.48 180.939,-5607.67 173.948,-5607.32"/>
+<path fill="none" stroke="midnightblue" d="M176.168,-5707.27C174.449,-5580.97 171.188,-4886.26 304,-4734 307.28,-4730.24 311.062,-4727.02 315.183,-4724.26"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.67,-5707.46 176.32,-5717.4 179.67,-5707.35 172.67,-5707.46"/>
 </g>
 <!-- Node170 -->
 <g id="node170" class="node"><title>Node170</title>
-<g id="a_node170"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Sequence\lMaskAttrs \&gt;">
-<polygon fill="white" stroke="black" points="323,-4468 323,-4498 472,-4498 472,-4468 323,-4468"/>
-<text text-anchor="start" x="331" y="-4486" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Sequence</text>
-<text text-anchor="middle" x="397.5" y="-4475" font-family="Helvetica,sans-Serif" font-size="10.00">MaskAttrs &gt;</text>
+<g id="a_node170"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ROIAlign\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="327.5,-4645 327.5,-4675 467.5,-4675 467.5,-4645 327.5,-4645"/>
+<text text-anchor="start" x="335.5" y="-4663" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ROIAlign</text>
+<text text-anchor="middle" x="397.5" y="-4652" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node170 -->
 <g id="edge169" class="edge"><title>Node9&#45;&gt;Node170</title>
-<path fill="none" stroke="midnightblue" d="M177.43,-5607.22C184.313,-5464.47 229.143,-4595.07 304,-4508 309.206,-4501.95 315.711,-4497.28 322.846,-4493.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.92,-5607.34 176.94,-5617.5 180.912,-5607.68 173.92,-5607.34"/>
+<path fill="none" stroke="midnightblue" d="M177.622,-5706.9C185.496,-5568.98 234.177,-4765.53 304,-4685 310.321,-4677.71 318.525,-4672.44 327.436,-4668.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="174.109,-5707.05 177.038,-5717.23 181.097,-5707.44 174.109,-5707.05"/>
 </g>
 <!-- Node172 -->
 <g id="node172" class="node"><title>Node172</title>
-<g id="a_node172"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ShapeFunc\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="320.5,-4419 320.5,-4449 474.5,-4449 474.5,-4419 320.5,-4419"/>
-<text text-anchor="start" x="328.5" y="-4437" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ShapeFunc</text>
-<text text-anchor="middle" x="397.5" y="-4426" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node172"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ROIPoolAttrs \&gt;">
+<polygon fill="white" stroke="black" points="311.5,-4606.5 311.5,-4625.5 483.5,-4625.5 483.5,-4606.5 311.5,-4606.5"/>
+<text text-anchor="middle" x="397.5" y="-4613.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ROIPoolAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node172 -->
 <g id="edge171" class="edge"><title>Node9&#45;&gt;Node172</title>
-<path fill="none" stroke="midnightblue" d="M177.33,-5607.25C183.642,-5461.08 225.962,-4550.2 304,-4459 308.542,-4453.69 314.084,-4449.45 320.175,-4446.07"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.826,-5607.28 176.896,-5617.42 180.819,-5607.57 173.826,-5607.28"/>
+<path fill="none" stroke="midnightblue" d="M177.443,-5707.24C184.337,-5566.45 228.807,-4718.83 304,-4636 307.755,-4631.86 312.144,-4628.47 316.932,-4625.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.939,-5707.24 176.951,-5717.4 180.931,-5707.58 173.939,-5707.24"/>
 </g>
 <!-- Node174 -->
 <g id="node174" class="node"><title>Node174</title>
-<g id="a_node174"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ShapeOfAttrs \&gt;">
-<polygon fill="white" stroke="black" points="309,-4380.5 309,-4399.5 486,-4399.5 486,-4380.5 309,-4380.5"/>
-<text text-anchor="middle" x="397.5" y="-4387.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ShapeOfAttrs &gt;</text>
+<g id="a_node174"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ScatterAdd\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="320,-4557 320,-4587 475,-4587 475,-4557 320,-4557"/>
+<text text-anchor="start" x="328" y="-4575" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ScatterAdd</text>
+<text text-anchor="middle" x="397.5" y="-4564" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node174 -->
 <g id="edge173" class="edge"><title>Node9&#45;&gt;Node174</title>
-<path fill="none" stroke="midnightblue" d="M177.191,-5607.31C182.613,-5457.68 220.361,-4503.25 304,-4410 307.73,-4405.84 312.101,-4402.43 316.876,-4399.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.692,-5607.22 176.832,-5617.34 180.687,-5607.47 173.692,-5607.22"/>
+<path fill="none" stroke="midnightblue" d="M177.417,-5707.02C184.201,-5562.88 228.464,-4684.95 304,-4597 308.444,-4591.83 313.837,-4587.67 319.761,-4584.33"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.902,-5707.25 176.933,-5717.41 180.895,-5707.58 173.902,-5707.25"/>
 </g>
 <!-- Node176 -->
 <g id="node176" class="node"><title>Node176</title>
-<g id="a_node176"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SliceLike\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326,-4331 326,-4361 469,-4361 469,-4331 326,-4331"/>
-<text text-anchor="start" x="334" y="-4349" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SliceLike</text>
-<text text-anchor="middle" x="397.5" y="-4338" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node176"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ScatterAttrs \&gt;">
+<polygon fill="white" stroke="black" points="312,-4518.5 312,-4537.5 483,-4537.5 483,-4518.5 312,-4518.5"/>
+<text text-anchor="middle" x="397.5" y="-4525.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ScatterAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node176 -->
 <g id="edge175" class="edge"><title>Node9&#45;&gt;Node176</title>
-<path fill="none" stroke="midnightblue" d="M177.174,-5607.2C182.534,-5454.64 220.264,-4469.61 304,-4371 309.922,-4364.03 317.569,-4358.89 325.927,-4355.14"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.669,-5607.28 176.82,-5617.39 180.665,-5607.52 173.669,-5607.28"/>
+<path fill="none" stroke="midnightblue" d="M177.271,-5707.03C183.158,-5559.19 222.958,-4638.05 304,-4548 307.737,-4543.85 312.113,-4540.45 316.892,-4537.67"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.763,-5707.18 176.867,-5717.31 180.757,-5707.45 173.763,-5707.18"/>
 </g>
 <!-- Node178 -->
 <g id="node178" class="node"><title>Node178</title>
-<g id="a_node178"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SoftmaxAttrs \&gt;">
-<polygon fill="white" stroke="black" points="309.5,-4292.5 309.5,-4311.5 485.5,-4311.5 485.5,-4292.5 309.5,-4292.5"/>
-<text text-anchor="middle" x="397.5" y="-4299.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SoftmaxAttrs &gt;</text>
+<g id="a_node178"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Sequence\lMaskAttrs \&gt;">
+<polygon fill="white" stroke="black" points="323,-4469 323,-4499 472,-4499 472,-4469 323,-4469"/>
+<text text-anchor="start" x="331" y="-4487" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Sequence</text>
+<text text-anchor="middle" x="397.5" y="-4476" font-family="Helvetica,sans-Serif" font-size="10.00">MaskAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node178 -->
 <g id="edge177" class="edge"><title>Node9&#45;&gt;Node178</title>
-<path fill="none" stroke="midnightblue" d="M177.044,-5607.34C181.524,-5451.77 214.452,-4422.54 304,-4322 307.715,-4317.83 312.076,-4314.41 316.844,-4311.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.545,-5607.26 176.761,-5617.36 180.542,-5607.46 173.545,-5607.26"/>
+<path fill="none" stroke="midnightblue" d="M177.234,-5707.33C182.982,-5557.87 222.705,-4604.43 304,-4509 309.178,-4502.92 315.666,-4498.24 322.791,-4494.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.736,-5707.22 176.854,-5717.35 180.731,-5707.49 173.736,-5707.22"/>
 </g>
 <!-- Node180 -->
 <g id="node180" class="node"><title>Node180</title>
-<g id="a_node180"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SparseDense\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="314.5,-4243 314.5,-4273 480.5,-4273 480.5,-4243 314.5,-4243"/>
-<text text-anchor="start" x="322.5" y="-4261" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SparseDense</text>
-<text text-anchor="middle" x="397.5" y="-4250" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node180"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ShapeFunc\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="320.5,-4420 320.5,-4450 474.5,-4450 474.5,-4420 320.5,-4420"/>
+<text text-anchor="start" x="328.5" y="-4438" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ShapeFunc</text>
+<text text-anchor="middle" x="397.5" y="-4427" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node180 -->
 <g id="edge179" class="edge"><title>Node9&#45;&gt;Node180</title>
-<path fill="none" stroke="midnightblue" d="M177.033,-5607.29C181.482,-5449.08 214.529,-4389.07 304,-4283 307.218,-4279.19 310.952,-4275.92 315.036,-4273.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.53,-5607.35 176.752,-5617.45 180.527,-5607.55 173.53,-5607.35"/>
+<path fill="none" stroke="midnightblue" d="M177.161,-5707.02C182.428,-5553.14 219.581,-4559.5 304,-4460 308.52,-4454.67 314.047,-4450.42 320.128,-4447.03"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.653,-5707.2 176.814,-5717.31 180.649,-5707.43 173.653,-5707.2"/>
 </g>
 <!-- Node182 -->
 <g id="node182" class="node"><title>Node182</title>
-<g id="a_node182"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SparseTo\lDenseAttrs \&gt;">
-<polygon fill="white" stroke="black" points="325,-4194 325,-4224 470,-4224 470,-4194 325,-4194"/>
-<text text-anchor="start" x="333" y="-4212" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SparseTo</text>
-<text text-anchor="middle" x="397.5" y="-4201" font-family="Helvetica,sans-Serif" font-size="10.00">DenseAttrs &gt;</text>
+<g id="a_node182"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ShapeOfAttrs \&gt;">
+<polygon fill="white" stroke="black" points="309,-4381.5 309,-4400.5 486,-4400.5 486,-4381.5 309,-4381.5"/>
+<text text-anchor="middle" x="397.5" y="-4388.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; ShapeOfAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node182 -->
 <g id="edge181" class="edge"><title>Node9&#45;&gt;Node182</title>
-<path fill="none" stroke="midnightblue" d="M176.969,-5607.08C180.962,-5444.87 211.382,-4344.17 304,-4234 309.673,-4227.25 316.962,-4222.23 324.955,-4218.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.461,-5607.38 176.719,-5617.46 180.459,-5607.55 173.461,-5607.38"/>
+<path fill="none" stroke="midnightblue" d="M177.032,-5707.18C181.417,-5550.29 213.746,-4512.42 304,-4411 307.714,-4406.83 312.073,-4403.41 316.84,-4400.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.53,-5707.18 176.754,-5717.27 180.528,-5707.37 173.53,-5707.18"/>
 </g>
 <!-- Node184 -->
 <g id="node184" class="node"><title>Node184</title>
-<g id="a_node184"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SparseTranspose\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="306,-4145 306,-4175 489,-4175 489,-4145 306,-4145"/>
-<text text-anchor="start" x="314" y="-4163" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SparseTranspose</text>
-<text text-anchor="middle" x="397.5" y="-4152" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node184"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SliceLike\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="326,-4332 326,-4362 469,-4362 469,-4332 326,-4332"/>
+<text text-anchor="start" x="334" y="-4350" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SliceLike</text>
+<text text-anchor="middle" x="397.5" y="-4339" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node184 -->
 <g id="edge183" class="edge"><title>Node9&#45;&gt;Node184</title>
-<path fill="none" stroke="midnightblue" d="M176.897,-5607.39C180.397,-5443.12 208.132,-4299.39 304,-4185 307.205,-4181.18 310.93,-4177.9 315.008,-4175.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.396,-5607.43 176.687,-5617.5 180.395,-5607.57 173.396,-5607.43"/>
+<path fill="none" stroke="midnightblue" d="M177.021,-5707.13C181.379,-5547.63 213.844,-4478.97 304,-4372 309.896,-4365 317.529,-4359.86 325.879,-4356.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.516,-5707.28 176.747,-5717.37 180.514,-5707.46 173.516,-5707.28"/>
 </g>
 <!-- Node186 -->
 <g id="node186" class="node"><title>Node186</title>
-<g id="a_node186"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SplitAttrs \&gt;">
-<polygon fill="white" stroke="black" points="319,-4106.5 319,-4125.5 476,-4125.5 476,-4106.5 319,-4106.5"/>
-<text text-anchor="middle" x="397.5" y="-4113.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SplitAttrs &gt;</text>
+<g id="a_node186"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SoftmaxAttrs \&gt;">
+<polygon fill="white" stroke="black" points="309.5,-4293.5 309.5,-4312.5 485.5,-4312.5 485.5,-4293.5 309.5,-4293.5"/>
+<text text-anchor="middle" x="397.5" y="-4300.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SoftmaxAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node186 -->
 <g id="edge185" class="edge"><title>Node9&#45;&gt;Node186</title>
-<path fill="none" stroke="midnightblue" d="M176.799,-5606.94C179.503,-5437.7 202.031,-4251.89 304,-4136 308.233,-4131.19 313.323,-4127.38 318.91,-4124.38"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.296,-5607.1 176.641,-5617.16 180.295,-5607.21 173.296,-5607.1"/>
+<path fill="none" stroke="midnightblue" d="M176.912,-5706.88C180.446,-5543.08 207.893,-4431.65 304,-4323 307.701,-4318.82 312.051,-4315.39 316.811,-4312.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.403,-5707.3 176.691,-5717.37 180.401,-5707.44 173.403,-5707.3"/>
 </g>
 <!-- Node188 -->
 <g id="node188" class="node"><title>Node188</title>
-<g id="a_node188"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SqueezeAttrs \&gt;">
-<polygon fill="white" stroke="black" points="308.5,-4068.5 308.5,-4087.5 486.5,-4087.5 486.5,-4068.5 308.5,-4068.5"/>
-<text text-anchor="middle" x="397.5" y="-4075.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SqueezeAttrs &gt;</text>
+<g id="a_node188"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SparseDense\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="314.5,-4244 314.5,-4274 480.5,-4274 480.5,-4244 314.5,-4244"/>
+<text text-anchor="start" x="322.5" y="-4262" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SparseDense</text>
+<text text-anchor="middle" x="397.5" y="-4251" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node188 -->
 <g id="edge187" class="edge"><title>Node9&#45;&gt;Node188</title>
-<path fill="none" stroke="midnightblue" d="M176.74,-5607.2C178.993,-5436.41 198.737,-4215.65 304,-4097 307.264,-4093.32 311.033,-4090.24 315.145,-4087.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.24,-5607.24 176.612,-5617.28 180.239,-5607.33 173.24,-5607.24"/>
+<path fill="none" stroke="midnightblue" d="M176.897,-5707.38C180.388,-5542.99 208.07,-4398.48 304,-4284 307.205,-4280.17 310.93,-4276.9 315.008,-4274.11"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.395,-5707.42 176.686,-5717.49 180.393,-5707.57 173.395,-5707.42"/>
 </g>
 <!-- Node190 -->
 <g id="node190" class="node"><title>Node190</title>
-<g id="a_node190"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; StackAttrs \&gt;">
-<polygon fill="white" stroke="black" points="316,-4030.5 316,-4049.5 479,-4049.5 479,-4030.5 316,-4030.5"/>
-<text text-anchor="middle" x="397.5" y="-4037.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; StackAttrs &gt;</text>
+<g id="a_node190"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SparseTo\lDenseAttrs \&gt;">
+<polygon fill="white" stroke="black" points="325,-4195 325,-4225 470,-4225 470,-4195 325,-4195"/>
+<text text-anchor="start" x="333" y="-4213" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SparseTo</text>
+<text text-anchor="middle" x="397.5" y="-4202" font-family="Helvetica,sans-Serif" font-size="10.00">DenseAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node190 -->
 <g id="edge189" class="edge"><title>Node9&#45;&gt;Node190</title>
-<path fill="none" stroke="midnightblue" d="M176.698,-5607.24C178.61,-5434.26 196.151,-4180.81 304,-4059 307.478,-4055.07 311.531,-4051.83 315.962,-4049.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.196,-5607.39 176.59,-5617.43 180.196,-5607.47 173.196,-5607.39"/>
+<path fill="none" stroke="midnightblue" d="M176.844,-5706.97C179.922,-5537.94 204.958,-4353.54 304,-4235 309.653,-4228.23 316.93,-4223.2 324.917,-4219.47"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.341,-5707.11 176.663,-5717.17 180.34,-5707.23 173.341,-5707.11"/>
 </g>
 <!-- Node192 -->
 <g id="node192" class="node"><title>Node192</title>
-<g id="a_node192"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; StridedSlice\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="318.5,-3981 318.5,-4011 476.5,-4011 476.5,-3981 318.5,-3981"/>
-<text text-anchor="start" x="326.5" y="-3999" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; StridedSlice</text>
-<text text-anchor="middle" x="397.5" y="-3988" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node192"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SparseTranspose\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="306,-4146 306,-4176 489,-4176 489,-4146 306,-4146"/>
+<text text-anchor="start" x="314" y="-4164" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SparseTranspose</text>
+<text text-anchor="middle" x="397.5" y="-4153" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node192 -->
 <g id="edge191" class="edge"><title>Node9&#45;&gt;Node192</title>
-<path fill="none" stroke="midnightblue" d="M176.715,-5607.08C178.786,-5431.34 197.504,-4149.24 304,-4021 308.039,-4016.14 312.916,-4012.17 318.295,-4008.93"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.214,-5607.18 176.6,-5617.22 180.213,-5607.26 173.214,-5607.18"/>
+<path fill="none" stroke="midnightblue" d="M176.785,-5707.1C179.415,-5535.49 201.738,-4308.73 304,-4186 307.195,-4182.17 310.911,-4178.89 314.983,-4176.09"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.283,-5707.18 176.634,-5717.23 180.283,-5707.29 173.283,-5707.18"/>
 </g>
 <!-- Node194 -->
 <g id="node194" class="node"><title>Node194</title>
-<g id="a_node194"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SubPixel\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="326.5,-3932 326.5,-3962 468.5,-3962 468.5,-3932 326.5,-3932"/>
-<text text-anchor="start" x="334.5" y="-3950" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SubPixel</text>
-<text text-anchor="middle" x="397.5" y="-3939" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node194"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SplitAttrs \&gt;">
+<polygon fill="white" stroke="black" points="319,-4107.5 319,-4126.5 476,-4126.5 476,-4107.5 319,-4107.5"/>
+<text text-anchor="middle" x="397.5" y="-4114.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SplitAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node194 -->
 <g id="edge193" class="edge"><title>Node9&#45;&gt;Node194</title>
-<path fill="none" stroke="midnightblue" d="M176.664,-5607.29C178.314,-5429.41 194.262,-4104.46 304,-3972 309.943,-3964.83 317.712,-3959.59 326.225,-3955.8"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.164,-5607.29 176.575,-5617.32 180.163,-5607.36 173.164,-5607.29"/>
+<path fill="none" stroke="midnightblue" d="M176.684,-5707.24C178.483,-5532.91 195.304,-4261.2 304,-4137 308.22,-4132.18 313.301,-4128.36 318.883,-4125.36"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.184,-5707.26 176.584,-5717.3 180.183,-5707.33 173.184,-5707.26"/>
 </g>
 <!-- Node196 -->
 <g id="node196" class="node"><title>Node196</title>
-<g id="a_node196"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; TakeAttrs \&gt;">
-<polygon fill="white" stroke="black" points="319,-3893.5 319,-3912.5 476,-3912.5 476,-3893.5 319,-3893.5"/>
-<text text-anchor="middle" x="397.5" y="-3900.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; TakeAttrs &gt;</text>
+<g id="a_node196"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SqueezeAttrs \&gt;">
+<polygon fill="white" stroke="black" points="308.5,-4069.5 308.5,-4088.5 486.5,-4088.5 486.5,-4069.5 308.5,-4069.5"/>
+<text text-anchor="middle" x="397.5" y="-4076.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SqueezeAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node196 -->
 <g id="edge195" class="edge"><title>Node9&#45;&gt;Node196</title>
-<path fill="none" stroke="midnightblue" d="M176.572,-5607.23C177.414,-5425.99 187.618,-4056.7 304,-3923 308.207,-3918.17 313.279,-3914.34 318.855,-3911.33"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.072,-5607.41 176.529,-5617.42 180.072,-5607.44 173.072,-5607.41"/>
+<path fill="none" stroke="midnightblue" d="M176.634,-5707.29C178.016,-5530.75 192.004,-4224.88 304,-4098 307.255,-4094.31 311.017,-4091.23 315.123,-4088.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.133,-5707.43 176.559,-5717.45 180.133,-5707.48 173.133,-5707.43"/>
 </g>
 <!-- Node198 -->
 <g id="node198" class="node"><title>Node198</title>
-<g id="a_node198"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; TileAttrs \&gt;">
-<polygon fill="white" stroke="black" points="321.5,-3855.5 321.5,-3874.5 473.5,-3874.5 473.5,-3855.5 321.5,-3855.5"/>
-<text text-anchor="middle" x="397.5" y="-3862.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; TileAttrs &gt;</text>
+<g id="a_node198"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; StackAttrs \&gt;">
+<polygon fill="white" stroke="black" points="316,-4031.5 316,-4050.5 479,-4050.5 479,-4031.5 316,-4031.5"/>
+<text text-anchor="middle" x="397.5" y="-4038.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; StackAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node198 -->
 <g id="edge197" class="edge"><title>Node9&#45;&gt;Node198</title>
-<path fill="none" stroke="midnightblue" d="M176.529,-5607.05C176.976,-5422.71 184.316,-4020.29 304,-3884 308.868,-3878.46 314.883,-3874.27 321.491,-3871.15"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.029,-5607.19 176.509,-5617.2 180.029,-5607.21 173.029,-5607.19"/>
+<path fill="none" stroke="midnightblue" d="M176.599,-5707.1C177.668,-5527.52 189.465,-4189.99 304,-4060 307.468,-4056.06 311.515,-4052.81 315.941,-4050.14"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.098,-5707.21 176.543,-5717.23 180.098,-5707.25 173.098,-5707.21"/>
 </g>
 <!-- Node200 -->
 <g id="node200" class="node"><title>Node200</title>
-<g id="a_node200"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; TopKAttrs \&gt;">
-<polygon fill="white" stroke="black" points="318.5,-3817.5 318.5,-3836.5 476.5,-3836.5 476.5,-3817.5 318.5,-3817.5"/>
-<text text-anchor="middle" x="397.5" y="-3824.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; TopKAttrs &gt;</text>
+<g id="a_node200"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; StridedSlice\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="318.5,-3982 318.5,-4012 476.5,-4012 476.5,-3982 318.5,-3982"/>
+<text text-anchor="start" x="326.5" y="-4000" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; StridedSlice</text>
+<text text-anchor="middle" x="397.5" y="-3989" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node200 -->
 <g id="edge199" class="edge"><title>Node9&#45;&gt;Node200</title>
-<path fill="none" stroke="midnightblue" d="M176.496,-5607.19C176.638,-5421.2 181.704,-3985.48 304,-3846 308.107,-3841.32 313.033,-3837.6 318.444,-3834.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="172.996,-5607.4 176.493,-5617.4 179.996,-5607.4 172.996,-5607.4"/>
+<path fill="none" stroke="midnightblue" d="M176.617,-5707.26C177.864,-5526.26 191.003,-4158.7 304,-4022 308.027,-4017.13 312.897,-4013.15 318.271,-4009.91"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.116,-5707.41 176.551,-5717.44 180.116,-5707.46 173.116,-5707.41"/>
 </g>
 <!-- Node202 -->
 <g id="node202" class="node"><title>Node202</title>
-<g id="a_node202"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Transpose\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="323,-3768 323,-3798 472,-3798 472,-3768 323,-3768"/>
-<text text-anchor="start" x="331" y="-3786" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Transpose</text>
-<text text-anchor="middle" x="397.5" y="-3775" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node202"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; SubPixel\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="326.5,-3933 326.5,-3963 468.5,-3963 468.5,-3933 326.5,-3933"/>
+<text text-anchor="start" x="334.5" y="-3951" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; SubPixel</text>
+<text text-anchor="middle" x="397.5" y="-3940" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node202 -->
 <g id="edge201" class="edge"><title>Node9&#45;&gt;Node202</title>
-<path fill="none" stroke="midnightblue" d="M176.52,-5607.1C176.884,-5418.77 183.586,-3954.37 304,-3808 309.073,-3801.83 315.495,-3797.1 322.583,-3793.48"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.02,-5607.22 176.505,-5617.22 180.02,-5607.23 173.02,-5607.22"/>
+<path fill="none" stroke="midnightblue" d="M176.575,-5706.97C177.444,-5521.91 187.862,-4113.8 304,-3973 309.928,-3965.81 317.688,-3960.57 326.196,-3956.78"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.074,-5707.15 176.531,-5717.16 180.074,-5707.18 173.074,-5707.15"/>
 </g>
 <!-- Node204 -->
 <g id="node204" class="node"><title>Node204</title>
-<g id="a_node204"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; UpSampling3\lDAttrs \&gt;">
-<polygon fill="white" stroke="black" points="314.5,-3719 314.5,-3749 480.5,-3749 480.5,-3719 314.5,-3719"/>
-<text text-anchor="start" x="322.5" y="-3737" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; UpSampling3</text>
-<text text-anchor="middle" x="397.5" y="-3726" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+<g id="a_node204"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; TakeAttrs \&gt;">
+<polygon fill="white" stroke="black" points="319,-3894.5 319,-3913.5 476,-3913.5 476,-3894.5 319,-3894.5"/>
+<text text-anchor="middle" x="397.5" y="-3901.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; TakeAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node204 -->
 <g id="edge203" class="edge"><title>Node9&#45;&gt;Node204</title>
-<path fill="none" stroke="midnightblue" d="M176.481,-5607.15C176.477,-5416.25 180.369,-3909.56 304,-3759 307.167,-3755.14 310.862,-3751.85 314.918,-3749.03"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="172.981,-5607.39 176.486,-5617.39 179.981,-5607.38 172.981,-5607.39"/>
+<path fill="none" stroke="midnightblue" d="M176.487,-5707.23C176.541,-5520.2 180.933,-4065.96 304,-3924 308.197,-3919.16 313.263,-3915.33 318.834,-3912.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.987,-5707.29 176.488,-5717.29 179.987,-5707.29 172.987,-5707.29"/>
 </g>
 <!-- Node206 -->
 <g id="node206" class="node"><title>Node206</title>
-<g id="a_node206"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; UpSampling\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="317.5,-3670 317.5,-3700 477.5,-3700 477.5,-3670 317.5,-3670"/>
-<text text-anchor="start" x="325.5" y="-3688" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; UpSampling</text>
-<text text-anchor="middle" x="397.5" y="-3677" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node206"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; TileAttrs \&gt;">
+<polygon fill="white" stroke="black" points="321.5,-3856.5 321.5,-3875.5 473.5,-3875.5 473.5,-3856.5 321.5,-3856.5"/>
+<text text-anchor="middle" x="397.5" y="-3863.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; TileAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node206 -->
 <g id="edge205" class="edge"><title>Node9&#45;&gt;Node206</title>
-<path fill="none" stroke="midnightblue" d="M176.444,-5606.92C176.082,-5412.28 177.212,-3864.68 304,-3710 307.796,-3705.37 312.354,-3701.55 317.384,-3698.39"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="172.945,-5607.14 176.467,-5617.13 179.945,-5607.13 172.945,-5607.14"/>
+<path fill="none" stroke="midnightblue" d="M176.447,-5707.38C176.114,-5518.69 177.514,-4029.61 304,-3885 308.857,-3879.45 314.865,-3875.26 321.469,-3872.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.947,-5707.5 176.469,-5717.5 179.947,-5707.49 172.947,-5707.5"/>
 </g>
 <!-- Node208 -->
 <g id="node208" class="node"><title>Node208</title>
-<g id="a_node208"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; YoloReorg\lAttrs \&gt;">
-<polygon fill="white" stroke="black" points="324.5,-3621 324.5,-3651 470.5,-3651 470.5,-3621 324.5,-3621"/>
-<text text-anchor="start" x="332.5" y="-3639" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; YoloReorg</text>
-<text text-anchor="middle" x="397.5" y="-3628" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<g id="a_node208"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; TopKAttrs \&gt;">
+<polygon fill="white" stroke="black" points="318.5,-3818.5 318.5,-3837.5 476.5,-3837.5 476.5,-3818.5 318.5,-3818.5"/>
+<text text-anchor="middle" x="397.5" y="-3825.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; TopKAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node208 -->
 <g id="edge207" class="edge"><title>Node9&#45;&gt;Node208</title>
-<path fill="none" stroke="midnightblue" d="M176.411,-5607.31C175.697,-5411.63 173.919,-3819.97 304,-3661 309.478,-3654.31 316.547,-3649.3 324.335,-3645.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="172.911,-5607.33 176.451,-5617.32 179.911,-5607.31 172.911,-5607.33"/>
+<path fill="none" stroke="midnightblue" d="M176.418,-5707.26C175.798,-5515.92 174.955,-3994.74 304,-3847 308.098,-3842.31 313.018,-3838.59 318.425,-3835.66"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.918,-5707.31 176.454,-5717.3 179.918,-5707.29 172.918,-5707.31"/>
 </g>
 <!-- Node210 -->
 <g id="node210" class="node"><title>Node210</title>
-<g id="a_node210"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="The base class of the all the Use &quot;curiously recurring template pattern&quot;. ">
-<polygon fill="white" stroke="black" points="312.5,-3582.5 312.5,-3601.5 482.5,-3601.5 482.5,-3582.5 312.5,-3582.5"/>
-<text text-anchor="middle" x="397.5" y="-3589.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DerivedType &gt;</text>
+<g id="a_node210"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Transpose\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="323,-3769 323,-3799 472,-3799 472,-3769 323,-3769"/>
+<text text-anchor="start" x="331" y="-3787" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; Transpose</text>
+<text text-anchor="middle" x="397.5" y="-3776" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node210 -->
 <g id="edge209" class="edge"><title>Node9&#45;&gt;Node210</title>
-<path fill="none" stroke="midnightblue" d="M176.328,-5606.78C174.807,-5405.85 166.703,-3771.57 304,-3612 307.536,-3607.89 311.698,-3604.51 316.265,-3601.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="172.831,-5607.09 176.41,-5617.06 179.83,-5607.03 172.831,-5607.09"/>
+<path fill="none" stroke="midnightblue" d="M176.444,-5706.91C176.074,-5512.17 177.149,-3963.76 304,-3809 309.062,-3802.82 315.477,-3798.09 322.561,-3794.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.944,-5707.14 176.467,-5717.13 179.944,-5707.12 172.944,-5707.14"/>
 </g>
-<!-- Node211 -->
-<g id="node211" class="node"><title>Node211</title>
-<g id="a_node211"><a xlink:href="classtvm_1_1DictAttrsNode.html" target="_top" xlink:title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior...">
-<polygon fill="white" stroke="black" points="343,-3544.5 343,-3563.5 452,-3563.5 452,-3544.5 343,-3544.5"/>
-<text text-anchor="middle" x="397.5" y="-3551.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DictAttrsNode</text>
+<!-- Node212 -->
+<g id="node212" class="node"><title>Node212</title>
+<g id="a_node212"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; UpSampling3\lDAttrs \&gt;">
+<polygon fill="white" stroke="black" points="314.5,-3720 314.5,-3750 480.5,-3750 480.5,-3720 314.5,-3720"/>
+<text text-anchor="start" x="322.5" y="-3738" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; UpSampling3</text>
+<text text-anchor="middle" x="397.5" y="-3727" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs &gt;</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node212 -->
+<g id="edge211" class="edge"><title>Node9&#45;&gt;Node212</title>
+<path fill="none" stroke="midnightblue" d="M176.41,-5707.3C175.689,-5511.52 173.855,-3919.05 304,-3760 307.16,-3756.14 310.85,-3752.84 314.902,-3750.02"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.91,-5707.33 176.451,-5717.32 179.91,-5707.3 172.91,-5707.33"/>
+</g>
+<!-- Node214 -->
+<g id="node214" class="node"><title>Node214</title>
+<g id="a_node214"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; UpSampling\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="317.5,-3671 317.5,-3701 477.5,-3701 477.5,-3671 317.5,-3671"/>
+<text text-anchor="start" x="325.5" y="-3689" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; UpSampling</text>
+<text text-anchor="middle" x="397.5" y="-3678" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node214 -->
+<g id="edge213" class="edge"><title>Node9&#45;&gt;Node214</title>
+<path fill="none" stroke="midnightblue" d="M176.375,-5706.81C175.307,-5506.16 170.755,-3874.1 304,-3711 307.789,-3706.36 312.341,-3702.53 317.368,-3699.38"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.876,-5707.09 176.433,-5717.07 179.876,-5707.05 172.876,-5707.09"/>
+</g>
+<!-- Node216 -->
+<g id="node216" class="node"><title>Node216</title>
+<g id="a_node216"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; YoloReorg\lAttrs \&gt;">
+<polygon fill="white" stroke="black" points="324.5,-3622 324.5,-3652 470.5,-3652 470.5,-3622 324.5,-3622"/>
+<text text-anchor="start" x="332.5" y="-3640" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; YoloReorg</text>
+<text text-anchor="middle" x="397.5" y="-3629" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node216 -->
+<g id="edge215" class="edge"><title>Node9&#45;&gt;Node216</title>
+<path fill="none" stroke="midnightblue" d="M176.346,-5707.25C174.947,-5505.89 167.447,-3829.4 304,-3662 309.468,-3655.3 316.531,-3650.29 324.315,-3646.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="172.846,-5707.31 176.419,-5717.28 179.846,-5707.26 172.846,-5707.31"/>
+</g>
+<!-- Node218 -->
+<g id="node218" class="node"><title>Node218</title>
+<g id="a_node218"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="The base class of the all the Use &quot;curiously recurring template pattern&quot;. ">
+<polygon fill="white" stroke="black" points="312.5,-3583.5 312.5,-3602.5 482.5,-3602.5 482.5,-3583.5 312.5,-3583.5"/>
+<text text-anchor="middle" x="397.5" y="-3590.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNode&lt; DerivedType &gt;</text>
 </a>
 </g>
 </g>
-<!-- Node9&#45;&gt;Node211 -->
-<g id="edge210" class="edge"><title>Node9&#45;&gt;Node211</title>
-<path fill="none" stroke="midnightblue" d="M177.048,-5607.06C182.807,-5400.33 233.478,-3654.21 304,-3573 313.782,-3561.74 328.298,-3556.08 342.946,-3553.47"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="173.541,-5607.24 176.763,-5617.34 180.539,-5607.44 173.541,-5607.24"/>
+<!-- Node9&#45;&gt;Node218 -->
+<g id="edge217" class="edge"><title>Node9&#45;&gt;Node218</title>
+<path fill="none" stroke="midnightblue" d="M177.023,-5706.8C182.575,-5495.55 231.897,-3697.05 304,-3613 307.53,-3608.88 311.687,-3605.5 316.251,-3602.72"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.517,-5706.97 176.755,-5717.05 180.515,-5707.15 173.517,-5706.97"/>
+</g>
+<!-- Node219 -->
+<g id="node219" class="node"><title>Node219</title>
+<g id="a_node219"><a xlink:href="classtvm_1_1DictAttrsNode.html" target="_top" xlink:title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior...">
+<polygon fill="white" stroke="black" points="343,-3545.5 343,-3564.5 452,-3564.5 452,-3545.5 343,-3545.5"/>
+<text text-anchor="middle" x="397.5" y="-3552.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DictAttrsNode</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node219 -->
+<g id="edge218" class="edge"><title>Node9&#45;&gt;Node219</title>
+<path fill="none" stroke="midnightblue" d="M176.989,-5707.07C182.275,-5494.97 230.101,-3659.34 304,-3574 313.766,-3562.72 328.277,-3557.06 342.926,-3554.45"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="173.483,-5707.26 176.735,-5717.34 180.481,-5707.43 173.483,-5707.26"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node"><title>Node11</title>
 <g id="a_node11"><a xlink:href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html" target="_top" xlink:title="Attributes for adaptive pool operator. ">
-<polygon fill="white" stroke="black" points="556,-8121 556,-8151 694,-8151 694,-8121 556,-8121"/>
-<text text-anchor="start" x="564" y="-8139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AdaptivePool2</text>
-<text text-anchor="middle" x="625" y="-8128" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs</text>
+<polygon fill="white" stroke="black" points="556,-8319 556,-8349 694,-8349 694,-8319 556,-8319"/>
+<text text-anchor="start" x="564" y="-8337" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AdaptivePool2</text>
+<text text-anchor="middle" x="625" y="-8326" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node10&#45;&gt;Node11 -->
 <g id="edge10" class="edge"><title>Node10&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M479.431,-8136C504.457,-8136 531.761,-8136 555.833,-8136"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-8132.5 469.231,-8136 479.231,-8139.5 479.231,-8132.5"/>
+<path fill="none" stroke="midnightblue" d="M479.431,-8334C504.457,-8334 531.761,-8334 555.833,-8334"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-8330.5 469.231,-8334 479.231,-8337.5 479.231,-8330.5"/>
 </g>
 <!-- Node13 -->
 <g id="node13" class="node"><title>Node13</title>
 <g id="a_node13"><a xlink:href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html" target="_top" xlink:title="tvm::relay::AdaptivePool3\lDAttrs">
-<polygon fill="white" stroke="black" points="556,-8072 556,-8102 694,-8102 694,-8072 556,-8072"/>
-<text text-anchor="start" x="564" y="-8090" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AdaptivePool3</text>
-<text text-anchor="middle" x="625" y="-8079" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs</text>
+<polygon fill="white" stroke="black" points="556,-8270 556,-8300 694,-8300 694,-8270 556,-8270"/>
+<text text-anchor="start" x="564" y="-8288" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AdaptivePool3</text>
+<text text-anchor="middle" x="625" y="-8277" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node12&#45;&gt;Node13 -->
 <g id="edge12" class="edge"><title>Node12&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M479.431,-8087C504.457,-8087 531.761,-8087 555.833,-8087"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-8083.5 469.231,-8087 479.231,-8090.5 479.231,-8083.5"/>
+<path fill="none" stroke="midnightblue" d="M479.431,-8285C504.457,-8285 531.761,-8285 555.833,-8285"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-8281.5 469.231,-8285 479.231,-8288.5 479.231,-8281.5"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node"><title>Node15</title>
 <g id="a_node15"><a xlink:href="structtvm_1_1relay_1_1AffineGridAttrs.html" target="_top" xlink:title="Attributes used in image affine_grid operator. ">
-<polygon fill="white" stroke="black" points="555,-8028.5 555,-8047.5 695,-8047.5 695,-8028.5 555,-8028.5"/>
-<text text-anchor="middle" x="625" y="-8035.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AffineGridAttrs</text>
+<polygon fill="white" stroke="black" points="555,-8226.5 555,-8245.5 695,-8245.5 695,-8226.5 555,-8226.5"/>
+<text text-anchor="middle" x="625" y="-8233.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AffineGridAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node14&#45;&gt;Node15 -->
 <g id="edge14" class="edge"><title>Node14&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M481.89,-8038C505.941,-8038 531.908,-8038 554.983,-8038"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="481.713,-8034.5 471.713,-8038 481.713,-8041.5 481.713,-8034.5"/>
+<path fill="none" stroke="midnightblue" d="M481.89,-8236C505.941,-8236 531.908,-8236 554.983,-8236"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="481.713,-8232.5 471.713,-8236 481.713,-8239.5 481.713,-8232.5"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node"><title>Node17</title>
 <g id="a_node17"><a xlink:href="structtvm_1_1relay_1_1AllocStorageAttrs.html" target="_top" xlink:title="Options for allocating storage. ">
-<polygon fill="white" stroke="black" points="559.5,-7974 559.5,-8004 690.5,-8004 690.5,-7974 559.5,-7974"/>
-<text text-anchor="start" x="567.5" y="-7992" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AllocStorage</text>
-<text text-anchor="middle" x="625" y="-7981" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polygon fill="white" stroke="black" points="559.5,-8172 559.5,-8202 690.5,-8202 690.5,-8172 559.5,-8172"/>
+<text text-anchor="start" x="567.5" y="-8190" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AllocStorage</text>
+<text text-anchor="middle" x="625" y="-8179" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node16&#45;&gt;Node17 -->
 <g id="edge16" class="edge"><title>Node16&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M488.67,-7989C512.304,-7989 537.319,-7989 559.326,-7989"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="488.638,-7985.5 478.638,-7989 488.638,-7992.5 488.638,-7985.5"/>
+<path fill="none" stroke="midnightblue" d="M488.67,-8187C512.304,-8187 537.319,-8187 559.326,-8187"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="488.638,-8183.5 478.638,-8187 488.638,-8190.5 488.638,-8183.5"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node"><title>Node19</title>
 <g id="a_node19"><a xlink:href="structtvm_1_1relay_1_1AllocTensorAttrs.html" target="_top" xlink:title="Options for allocating tensors. ">
-<polygon fill="white" stroke="black" points="552,-7930.5 552,-7949.5 698,-7949.5 698,-7930.5 552,-7930.5"/>
-<text text-anchor="middle" x="625" y="-7937.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AllocTensorAttrs</text>
+<polygon fill="white" stroke="black" points="552,-8128.5 552,-8147.5 698,-8147.5 698,-8128.5 552,-8128.5"/>
+<text text-anchor="middle" x="625" y="-8135.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AllocTensorAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node18&#45;&gt;Node19 -->
 <g id="edge18" class="edge"><title>Node18&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M485.45,-7940C507.358,-7940 530.639,-7940 551.738,-7940"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="485.159,-7936.5 475.159,-7940 485.159,-7943.5 485.159,-7936.5"/>
+<path fill="none" stroke="midnightblue" d="M485.45,-8138C507.358,-8138 530.639,-8138 551.738,-8138"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="485.159,-8134.5 475.159,-8138 485.159,-8141.5 485.159,-8134.5"/>
 </g>
 <!-- Node21 -->
 <g id="node21" class="node"><title>Node21</title>
 <g id="a_node21"><a xlink:href="structtvm_1_1relay_1_1ArangeAttrs.html" target="_top" xlink:title="Attributes used in arange operators. ">
-<polygon fill="white" stroke="black" points="561,-7886.5 561,-7905.5 689,-7905.5 689,-7886.5 561,-7886.5"/>
-<text text-anchor="middle" x="625" y="-7893.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ArangeAttrs</text>
+<polygon fill="white" stroke="black" points="561,-8084.5 561,-8103.5 689,-8103.5 689,-8084.5 561,-8084.5"/>
+<text text-anchor="middle" x="625" y="-8091.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ArangeAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node20&#45;&gt;Node21 -->
 <g id="edge20" class="edge"><title>Node20&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M492.897,-7896C515.849,-7896 539.844,-7896 560.938,-7896"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="492.789,-7892.5 482.789,-7896 492.789,-7899.5 492.789,-7892.5"/>
+<path fill="none" stroke="midnightblue" d="M492.897,-8094C515.849,-8094 539.844,-8094 560.938,-8094"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="492.789,-8090.5 482.789,-8094 492.789,-8097.5 492.789,-8090.5"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node"><title>Node23</title>
 <g id="a_node23"><a xlink:href="structtvm_1_1relay_1_1ArgsortAttrs.html" target="_top" xlink:title="Attributes used in argsort operators. ">
-<polygon fill="white" stroke="black" points="561,-7848.5 561,-7867.5 689,-7867.5 689,-7848.5 561,-7848.5"/>
-<text text-anchor="middle" x="625" y="-7855.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ArgsortAttrs</text>
+<polygon fill="white" stroke="black" points="561,-8046.5 561,-8065.5 689,-8065.5 689,-8046.5 561,-8046.5"/>
+<text text-anchor="middle" x="625" y="-8053.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ArgsortAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node22&#45;&gt;Node23 -->
 <g id="edge22" class="edge"><title>Node22&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M493.157,-7858C515.968,-7858 539.793,-7858 560.766,-7858"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="493.109,-7854.5 483.109,-7858 493.109,-7861.5 493.109,-7854.5"/>
+<path fill="none" stroke="midnightblue" d="M493.157,-8056C515.968,-8056 539.793,-8056 560.766,-8056"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="493.109,-8052.5 483.109,-8056 493.109,-8059.5 493.109,-8052.5"/>
 </g>
 <!-- Node25 -->
 <g id="node25" class="node"><title>Node25</title>
 <g id="a_node25"><a xlink:href="structtvm_1_1relay_1_1AvgPool1DAttrs.html" target="_top" xlink:title="Attributes for 1D avg pool operator. ">
-<polygon fill="white" stroke="black" points="553,-7804.5 553,-7823.5 697,-7823.5 697,-7804.5 553,-7804.5"/>
-<text text-anchor="middle" x="625" y="-7811.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AvgPool1DAttrs</text>
+<polygon fill="white" stroke="black" points="553,-8002.5 553,-8021.5 697,-8021.5 697,-8002.5 553,-8002.5"/>
+<text text-anchor="middle" x="625" y="-8009.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AvgPool1DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node25 -->
 <g id="edge24" class="edge"><title>Node24&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M480.224,-7814C504.024,-7814 529.825,-7814 552.913,-7814"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-7810.5 470.159,-7814 480.159,-7817.5 480.159,-7810.5"/>
+<path fill="none" stroke="midnightblue" d="M480.224,-8012C504.024,-8012 529.825,-8012 552.913,-8012"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-8008.5 470.159,-8012 480.159,-8015.5 480.159,-8008.5"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node"><title>Node27</title>
 <g id="a_node27"><a xlink:href="structtvm_1_1relay_1_1AvgPool2DAttrs.html" target="_top" xlink:title="Attributes for avg pool operator. ">
-<polygon fill="white" stroke="black" points="553,-7755.5 553,-7774.5 697,-7774.5 697,-7755.5 553,-7755.5"/>
-<text text-anchor="middle" x="625" y="-7762.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AvgPool2DAttrs</text>
+<polygon fill="white" stroke="black" points="553,-7953.5 553,-7972.5 697,-7972.5 697,-7953.5 553,-7953.5"/>
+<text text-anchor="middle" x="625" y="-7960.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AvgPool2DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node26&#45;&gt;Node27 -->
 <g id="edge26" class="edge"><title>Node26&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M480.224,-7765C504.024,-7765 529.825,-7765 552.913,-7765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-7761.5 470.159,-7765 480.159,-7768.5 480.159,-7761.5"/>
+<path fill="none" stroke="midnightblue" d="M480.224,-7963C504.024,-7963 529.825,-7963 552.913,-7963"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-7959.5 470.159,-7963 480.159,-7966.5 480.159,-7959.5"/>
 </g>
 <!-- Node29 -->
 <g id="node29" class="node"><title>Node29</title>
 <g id="a_node29"><a xlink:href="structtvm_1_1relay_1_1AvgPool3DAttrs.html" target="_top" xlink:title="Attributes for 3D avg pool operator. ">
-<polygon fill="white" stroke="black" points="553,-7706.5 553,-7725.5 697,-7725.5 697,-7706.5 553,-7706.5"/>
-<text text-anchor="middle" x="625" y="-7713.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AvgPool3DAttrs</text>
+<polygon fill="white" stroke="black" points="553,-7904.5 553,-7923.5 697,-7923.5 697,-7904.5 553,-7904.5"/>
+<text text-anchor="middle" x="625" y="-7911.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::AvgPool3DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node28&#45;&gt;Node29 -->
 <g id="edge28" class="edge"><title>Node28&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M480.224,-7716C504.024,-7716 529.825,-7716 552.913,-7716"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-7712.5 470.159,-7716 480.159,-7719.5 480.159,-7712.5"/>
+<path fill="none" stroke="midnightblue" d="M480.224,-7914C504.024,-7914 529.825,-7914 552.913,-7914"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-7910.5 470.159,-7914 480.159,-7917.5 480.159,-7910.5"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node"><title>Node31</title>
 <g id="a_node31"><a xlink:href="structtvm_1_1relay_1_1BatchNormAttrs.html" target="_top" xlink:title="Attributes used in batch_norm operator. ">
-<polygon fill="white" stroke="black" points="551,-7657.5 551,-7676.5 699,-7676.5 699,-7657.5 551,-7657.5"/>
-<text text-anchor="middle" x="625" y="-7664.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BatchNormAttrs</text>
+<polygon fill="white" stroke="black" points="551,-7855.5 551,-7874.5 699,-7874.5 699,-7855.5 551,-7855.5"/>
+<text text-anchor="middle" x="625" y="-7862.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BatchNormAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node30&#45;&gt;Node31 -->
 <g id="edge30" class="edge"><title>Node30&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M485.901,-7667C507.419,-7667 530.236,-7667 550.993,-7667"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="485.789,-7663.5 475.789,-7667 485.789,-7670.5 485.789,-7663.5"/>
+<path fill="none" stroke="midnightblue" d="M485.901,-7865C507.419,-7865 530.236,-7865 550.993,-7865"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="485.789,-7861.5 475.789,-7865 485.789,-7868.5 485.789,-7861.5"/>
 </g>
 <!-- Node33 -->
 <g id="node33" class="node"><title>Node33</title>
 <g id="a_node33"><a xlink:href="structtvm_1_1relay_1_1BiasAddAttrs.html" target="_top" xlink:title="Add a 1D Tensor to an axis of a data. ">
-<polygon fill="white" stroke="black" points="559,-7613.5 559,-7632.5 691,-7632.5 691,-7613.5 559,-7613.5"/>
-<text text-anchor="middle" x="625" y="-7620.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BiasAddAttrs</text>
+<polygon fill="white" stroke="black" points="559,-7811.5 559,-7830.5 691,-7830.5 691,-7811.5 559,-7811.5"/>
+<text text-anchor="middle" x="625" y="-7818.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BiasAddAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node32&#45;&gt;Node33 -->
 <g id="edge32" class="edge"><title>Node32&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M495.16,-7623C516.614,-7623 538.862,-7623 558.71,-7623"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="495.039,-7619.5 485.039,-7623 495.039,-7626.5 495.039,-7619.5"/>
+<path fill="none" stroke="midnightblue" d="M495.16,-7821C516.614,-7821 538.862,-7821 558.71,-7821"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="495.039,-7817.5 485.039,-7821 495.039,-7824.5 495.039,-7817.5"/>
 </g>
 <!-- Node35 -->
 <g id="node35" class="node"><title>Node35</title>
 <g id="a_node35"><a xlink:href="structtvm_1_1relay_1_1BinaryConv2DAttrs.html" target="_top" xlink:title="Attribues used in bitserial convolution operators. ">
-<polygon fill="white" stroke="black" points="544.5,-7569.5 544.5,-7588.5 705.5,-7588.5 705.5,-7569.5 544.5,-7569.5"/>
-<text text-anchor="middle" x="625" y="-7576.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BinaryConv2DAttrs</text>
+<polygon fill="white" stroke="black" points="544.5,-7767.5 544.5,-7786.5 705.5,-7786.5 705.5,-7767.5 544.5,-7767.5"/>
+<text text-anchor="middle" x="625" y="-7774.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BinaryConv2DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node35 -->
 <g id="edge34" class="edge"><title>Node34&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M488.224,-7579C506.809,-7579 526.265,-7579 544.455,-7579"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="488.003,-7575.5 478.003,-7579 488.003,-7582.5 488.003,-7575.5"/>
+<path fill="none" stroke="midnightblue" d="M488.224,-7777C506.809,-7777 526.265,-7777 544.455,-7777"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="488.003,-7773.5 478.003,-7777 488.003,-7780.5 488.003,-7773.5"/>
 </g>
 <!-- Node37 -->
 <g id="node37" class="node"><title>Node37</title>
 <g id="a_node37"><a xlink:href="structtvm_1_1relay_1_1BinaryDenseAttrs.html" target="_top" xlink:title="tvm::relay::BinaryDenseAttrs">
-<polygon fill="white" stroke="black" points="548,-7520.5 548,-7539.5 702,-7539.5 702,-7520.5 548,-7520.5"/>
-<text text-anchor="middle" x="625" y="-7527.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BinaryDenseAttrs</text>
+<polygon fill="white" stroke="black" points="548,-7718.5 548,-7737.5 702,-7737.5 702,-7718.5 548,-7718.5"/>
+<text text-anchor="middle" x="625" y="-7725.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BinaryDenseAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node36&#45;&gt;Node37 -->
 <g id="edge36" class="edge"><title>Node36&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M488.785,-7530C508.378,-7530 528.915,-7530 547.897,-7530"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="488.638,-7526.5 478.638,-7530 488.638,-7533.5 488.638,-7526.5"/>
+<path fill="none" stroke="midnightblue" d="M488.785,-7728C508.378,-7728 528.915,-7728 547.897,-7728"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="488.638,-7724.5 478.638,-7728 488.638,-7731.5 488.638,-7724.5"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node"><title>Node39</title>
 <g id="a_node39"><a xlink:href="structtvm_1_1relay_1_1BitPackAttrs.html" target="_top" xlink:title="Attributes used in bitpack operators. ">
-<polygon fill="white" stroke="black" points="561,-7476.5 561,-7495.5 689,-7495.5 689,-7476.5 561,-7476.5"/>
-<text text-anchor="middle" x="625" y="-7483.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BitPackAttrs</text>
+<polygon fill="white" stroke="black" points="561,-7674.5 561,-7693.5 689,-7693.5 689,-7674.5 561,-7674.5"/>
+<text text-anchor="middle" x="625" y="-7681.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::BitPackAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node38&#45;&gt;Node39 -->
 <g id="edge38" class="edge"><title>Node38&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M492.897,-7486C515.849,-7486 539.844,-7486 560.938,-7486"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="492.789,-7482.5 482.789,-7486 492.789,-7489.5 492.789,-7482.5"/>
+<path fill="none" stroke="midnightblue" d="M492.897,-7684C515.849,-7684 539.844,-7684 560.938,-7684"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="492.789,-7680.5 482.789,-7684 492.789,-7687.5 492.789,-7680.5"/>
 </g>
 <!-- Node41 -->
 <g id="node41" class="node"><title>Node41</title>
 <g id="a_node41"><a xlink:href="structtvm_1_1relay_1_1CastAttrs.html" target="_top" xlink:title="data type cast ">
-<polygon fill="white" stroke="black" points="567.5,-7438.5 567.5,-7457.5 682.5,-7457.5 682.5,-7438.5 567.5,-7438.5"/>
-<text text-anchor="middle" x="625" y="-7445.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CastAttrs</text>
+<polygon fill="white" stroke="black" points="567.5,-7636.5 567.5,-7655.5 682.5,-7655.5 682.5,-7636.5 567.5,-7636.5"/>
+<text text-anchor="middle" x="625" y="-7643.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CastAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node40&#45;&gt;Node41 -->
 <g id="edge40" class="edge"><title>Node40&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M486.975,-7448C513.975,-7448 542.925,-7448 567.226,-7448"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-7444.5 476.736,-7448 486.736,-7451.5 486.736,-7444.5"/>
+<path fill="none" stroke="midnightblue" d="M486.975,-7646C513.975,-7646 542.925,-7646 567.226,-7646"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-7642.5 476.736,-7646 486.736,-7649.5 486.736,-7642.5"/>
 </g>
 <!-- Node43 -->
 <g id="node43" class="node"><title>Node43</title>
 <g id="a_node43"><a xlink:href="structtvm_1_1relay_1_1CastHintAttrs.html" target="_top" xlink:title="Annotate an expression to be cast into specific data type. ">
-<polygon fill="white" stroke="black" points="558,-7394.5 558,-7413.5 692,-7413.5 692,-7394.5 558,-7394.5"/>
-<text text-anchor="middle" x="625" y="-7401.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CastHintAttrs</text>
+<polygon fill="white" stroke="black" points="558,-7592.5 558,-7611.5 692,-7611.5 692,-7592.5 558,-7592.5"/>
+<text text-anchor="middle" x="625" y="-7599.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CastHintAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node42&#45;&gt;Node43 -->
 <g id="edge42" class="edge"><title>Node42&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M479.331,-7404C505.05,-7404 533.183,-7404 557.746,-7404"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-7400.5 469.231,-7404 479.231,-7407.5 479.231,-7400.5"/>
+<path fill="none" stroke="midnightblue" d="M479.331,-7602C505.05,-7602 533.183,-7602 557.746,-7602"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-7598.5 469.231,-7602 479.231,-7605.5 479.231,-7598.5"/>
 </g>
 <!-- Node45 -->
 <g id="node45" class="node"><title>Node45</title>
 <g id="a_node45"><a xlink:href="structtvm_1_1relay_1_1ClipAttrs.html" target="_top" xlink:title="Attributes for Clip operator. ">
-<polygon fill="white" stroke="black" points="570,-7350.5 570,-7369.5 680,-7369.5 680,-7350.5 570,-7350.5"/>
-<text text-anchor="middle" x="625" y="-7357.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ClipAttrs</text>
+<polygon fill="white" stroke="black" points="570,-7548.5 570,-7567.5 680,-7567.5 680,-7548.5 570,-7548.5"/>
+<text text-anchor="middle" x="625" y="-7555.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ClipAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node44&#45;&gt;Node45 -->
 <g id="edge44" class="edge"><title>Node44&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M484.264,-7360C513.004,-7360 544.229,-7360 569.858,-7360"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="484.216,-7356.5 474.216,-7360 484.216,-7363.5 484.216,-7356.5"/>
+<path fill="none" stroke="midnightblue" d="M484.264,-7558C513.004,-7558 544.229,-7558 569.858,-7558"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="484.216,-7554.5 474.216,-7558 484.216,-7561.5 484.216,-7554.5"/>
 </g>
 <!-- Node47 -->
 <g id="node47" class="node"><title>Node47</title>
 <g id="a_node47"><a xlink:href="structtvm_1_1relay_1_1CompilerAttrs.html" target="_top" xlink:title="Options for the operators used to annotate a compiler. ">
-<polygon fill="white" stroke="black" points="557,-7306.5 557,-7325.5 693,-7325.5 693,-7306.5 557,-7306.5"/>
-<text text-anchor="middle" x="625" y="-7313.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CompilerAttrs</text>
+<polygon fill="white" stroke="black" points="557,-7504.5 557,-7523.5 693,-7523.5 693,-7504.5 557,-7504.5"/>
+<text text-anchor="middle" x="625" y="-7511.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CompilerAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node46&#45;&gt;Node47 -->
 <g id="edge46" class="edge"><title>Node46&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M479.83,-7316C505.075,-7316 532.604,-7316 556.777,-7316"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.54,-7312.5 469.54,-7316 479.54,-7319.5 479.54,-7312.5"/>
+<path fill="none" stroke="midnightblue" d="M479.83,-7514C505.075,-7514 532.604,-7514 556.777,-7514"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="479.54,-7510.5 469.54,-7514 479.54,-7517.5 479.54,-7510.5"/>
 </g>
 <!-- Node49 -->
 <g id="node49" class="node"><title>Node49</title>
 <g id="a_node49"><a xlink:href="structtvm_1_1relay_1_1ConcatenateAttrs.html" target="_top" xlink:title="Attributes used in concatenate operators. ">
-<polygon fill="white" stroke="black" points="547.5,-7257.5 547.5,-7276.5 702.5,-7276.5 702.5,-7257.5 547.5,-7257.5"/>
-<text text-anchor="middle" x="625" y="-7264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ConcatenateAttrs</text>
+<polygon fill="white" stroke="black" points="547.5,-7455.5 547.5,-7474.5 702.5,-7474.5 702.5,-7455.5 547.5,-7455.5"/>
+<text text-anchor="middle" x="625" y="-7462.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ConcatenateAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node48&#45;&gt;Node49 -->
 <g id="edge48" class="edge"><title>Node48&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M489.493,-7267C508.626,-7267 528.629,-7267 547.183,-7267"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="489.274,-7263.5 479.274,-7267 489.274,-7270.5 489.274,-7263.5"/>
+<path fill="none" stroke="midnightblue" d="M489.493,-7465C508.626,-7465 528.629,-7465 547.183,-7465"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="489.274,-7461.5 479.274,-7465 489.274,-7468.5 489.274,-7461.5"/>
 </g>
 <!-- Node51 -->
 <g id="node51" class="node"><title>Node51</title>
 <g id="a_node51"><a xlink:href="structtvm_1_1relay_1_1Conv1DAttrs.html" target="_top" xlink:title="Attributes used in 1D convolution operators. ">
-<polygon fill="white" stroke="black" points="559.5,-7213.5 559.5,-7232.5 690.5,-7232.5 690.5,-7213.5 559.5,-7213.5"/>
-<text text-anchor="middle" x="625" y="-7220.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv1DAttrs</text>
+<polygon fill="white" stroke="black" points="559.5,-7411.5 559.5,-7430.5 690.5,-7430.5 690.5,-7411.5 559.5,-7411.5"/>
+<text text-anchor="middle" x="625" y="-7418.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv1DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node50&#45;&gt;Node51 -->
 <g id="edge50" class="edge"><title>Node50&#45;&gt;Node51</title>
-<path fill="none" stroke="midnightblue" d="M494.089,-7223C516.052,-7223 538.904,-7223 559.206,-7223"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-7219.5 484.073,-7223 494.073,-7226.5 494.073,-7219.5"/>
+<path fill="none" stroke="midnightblue" d="M494.089,-7421C516.052,-7421 538.904,-7421 559.206,-7421"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-7417.5 484.073,-7421 494.073,-7424.5 494.073,-7417.5"/>
 </g>
 <!-- Node53 -->
 <g id="node53" class="node"><title>Node53</title>
 <g id="a_node53"><a xlink:href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html" target="_top" xlink:title="Attributes used in 1D transposed convolution operator. ">
-<polygon fill="white" stroke="black" points="547.5,-7164 547.5,-7194 702.5,-7194 702.5,-7164 547.5,-7164"/>
-<text text-anchor="start" x="555.5" y="-7182" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv1DTranspose</text>
-<text text-anchor="middle" x="625" y="-7171" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polygon fill="white" stroke="black" points="547.5,-7362 547.5,-7392 702.5,-7392 702.5,-7362 547.5,-7362"/>
+<text text-anchor="start" x="555.5" y="-7380" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv1DTranspose</text>
+<text text-anchor="middle" x="625" y="-7369" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node52&#45;&gt;Node53 -->
 <g id="edge52" class="edge"><title>Node52&#45;&gt;Node53</title>
-<path fill="none" stroke="midnightblue" d="M501.341,-7179C516.855,-7179 532.62,-7179 547.451,-7179"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="501.196,-7175.5 491.196,-7179 501.196,-7182.5 501.196,-7175.5"/>
+<path fill="none" stroke="midnightblue" d="M501.341,-7377C516.855,-7377 532.62,-7377 547.451,-7377"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="501.196,-7373.5 491.196,-7377 501.196,-7380.5 501.196,-7373.5"/>
 </g>
 <!-- Node55 -->
 <g id="node55" class="node"><title>Node55</title>
 <g id="a_node55"><a xlink:href="structtvm_1_1relay_1_1Conv2DAttrs.html" target="_top" xlink:title="Attributes used in convolution operators. ">
-<polygon fill="white" stroke="black" points="559.5,-7125.5 559.5,-7144.5 690.5,-7144.5 690.5,-7125.5 559.5,-7125.5"/>
-<text text-anchor="middle" x="625" y="-7132.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv2DAttrs</text>
+<polygon fill="white" stroke="black" points="559.5,-7323.5 559.5,-7342.5 690.5,-7342.5 690.5,-7323.5 559.5,-7323.5"/>
+<text text-anchor="middle" x="625" y="-7330.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv2DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node54&#45;&gt;Node55 -->
 <g id="edge54" class="edge"><title>Node54&#45;&gt;Node55</title>
-<path fill="none" stroke="midnightblue" d="M494.089,-7135C516.052,-7135 538.904,-7135 559.206,-7135"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-7131.5 484.073,-7135 494.073,-7138.5 494.073,-7131.5"/>
+<path fill="none" stroke="midnightblue" d="M494.089,-7333C516.052,-7333 538.904,-7333 559.206,-7333"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-7329.5 484.073,-7333 494.073,-7336.5 494.073,-7329.5"/>
 </g>
 <!-- Node57 -->
 <g id="node57" class="node"><title>Node57</title>
 <g id="a_node57"><a xlink:href="structtvm_1_1relay_1_1Conv2DTransposeAttrs.html" target="_top" xlink:title="Attributes used in transposed convolution operator. ">
-<polygon fill="white" stroke="black" points="547.5,-7076 547.5,-7106 702.5,-7106 702.5,-7076 547.5,-7076"/>
-<text text-anchor="start" x="555.5" y="-7094" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv2DTranspose</text>
-<text text-anchor="middle" x="625" y="-7083" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polygon fill="white" stroke="black" points="547.5,-7274 547.5,-7304 702.5,-7304 702.5,-7274 547.5,-7274"/>
+<text text-anchor="start" x="555.5" y="-7292" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv2DTranspose</text>
+<text text-anchor="middle" x="625" y="-7281" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node56&#45;&gt;Node57 -->
 <g id="edge56" class="edge"><title>Node56&#45;&gt;Node57</title>
-<path fill="none" stroke="midnightblue" d="M501.341,-7091C516.855,-7091 532.62,-7091 547.451,-7091"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="501.196,-7087.5 491.196,-7091 501.196,-7094.5 501.196,-7087.5"/>
+<path fill="none" stroke="midnightblue" d="M501.341,-7289C516.855,-7289 532.62,-7289 547.451,-7289"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="501.196,-7285.5 491.196,-7289 501.196,-7292.5 501.196,-7285.5"/>
 </g>
 <!-- Node59 -->
 <g id="node59" class="node"><title>Node59</title>
 <g id="a_node59"><a xlink:href="structtvm_1_1relay_1_1Conv2DWinogradAttrs.html" target="_top" xlink:title="Attributes used in convolution operators with winograd algorithm. ">
-<polygon fill="white" stroke="black" points="549,-7027 549,-7057 701,-7057 701,-7027 549,-7027"/>
-<text text-anchor="start" x="557" y="-7045" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv2DWinograd</text>
-<text text-anchor="middle" x="625" y="-7034" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polygon fill="white" stroke="black" points="549,-7225 549,-7255 701,-7255 701,-7225 549,-7225"/>
+<text text-anchor="start" x="557" y="-7243" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv2DWinograd</text>
+<text text-anchor="middle" x="625" y="-7232" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node58&#45;&gt;Node59 -->
 <g id="edge58" class="edge"><title>Node58&#45;&gt;Node59</title>
-<path fill="none" stroke="midnightblue" d="M499.538,-7042C516.162,-7042 533.13,-7042 548.974,-7042"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="499.245,-7038.5 489.245,-7042 499.245,-7045.5 499.245,-7038.5"/>
+<path fill="none" stroke="midnightblue" d="M499.538,-7240C516.162,-7240 533.13,-7240 548.974,-7240"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="499.245,-7236.5 489.245,-7240 499.245,-7243.5 499.245,-7236.5"/>
 </g>
 <!-- Node61 -->
 <g id="node61" class="node"><title>Node61</title>
 <g id="a_node61"><a xlink:href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html" target="_top" xlink:title="Attributes used in winograd weight transformation operators. ">
-<polygon fill="white" stroke="black" points="546,-6978 546,-7008 704,-7008 704,-6978 546,-6978"/>
-<text text-anchor="start" x="554" y="-6996" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv2DWinograd</text>
-<text text-anchor="middle" x="625" y="-6985" font-family="Helvetica,sans-Serif" font-size="10.00">NNPACKWeightTransformAttrs</text>
+<polygon fill="white" stroke="black" points="546,-7176 546,-7206 704,-7206 704,-7176 546,-7176"/>
+<text text-anchor="start" x="554" y="-7194" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv2DWinograd</text>
+<text text-anchor="middle" x="625" y="-7183" font-family="Helvetica,sans-Serif" font-size="10.00">NNPACKWeightTransformAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node60&#45;&gt;Node61 -->
 <g id="edge60" class="edge"><title>Node60&#45;&gt;Node61</title>
-<path fill="none" stroke="midnightblue" d="M499.408,-6993C514.958,-6993 530.813,-6993 545.771,-6993"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="499.245,-6989.5 489.245,-6993 499.245,-6996.5 499.245,-6989.5"/>
+<path fill="none" stroke="midnightblue" d="M499.408,-7191C514.958,-7191 530.813,-7191 545.771,-7191"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="499.245,-7187.5 489.245,-7191 499.245,-7194.5 499.245,-7187.5"/>
 </g>
 <!-- Node63 -->
 <g id="node63" class="node"><title>Node63</title>
 <g id="a_node63"><a xlink:href="structtvm_1_1relay_1_1Conv3DAttrs.html" target="_top" xlink:title="Attributes used in convolution operators. ">
-<polygon fill="white" stroke="black" points="559.5,-6939.5 559.5,-6958.5 690.5,-6958.5 690.5,-6939.5 559.5,-6939.5"/>
-<text text-anchor="middle" x="625" y="-6946.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv3DAttrs</text>
+<polygon fill="white" stroke="black" points="559.5,-7137.5 559.5,-7156.5 690.5,-7156.5 690.5,-7137.5 559.5,-7137.5"/>
+<text text-anchor="middle" x="625" y="-7144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv3DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node62&#45;&gt;Node63 -->
 <g id="edge62" class="edge"><title>Node62&#45;&gt;Node63</title>
-<path fill="none" stroke="midnightblue" d="M494.089,-6949C516.052,-6949 538.904,-6949 559.206,-6949"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-6945.5 484.073,-6949 494.073,-6952.5 494.073,-6945.5"/>
+<path fill="none" stroke="midnightblue" d="M494.089,-7147C516.052,-7147 538.904,-7147 559.206,-7147"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-7143.5 484.073,-7147 494.073,-7150.5 494.073,-7143.5"/>
 </g>
 <!-- Node65 -->
 <g id="node65" class="node"><title>Node65</title>
 <g id="a_node65"><a xlink:href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html" target="_top" xlink:title="Attributes used in transposed convolution operator. ">
-<polygon fill="white" stroke="black" points="547.5,-6890 547.5,-6920 702.5,-6920 702.5,-6890 547.5,-6890"/>
-<text text-anchor="start" x="555.5" y="-6908" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv3DTranspose</text>
-<text text-anchor="middle" x="625" y="-6897" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polygon fill="white" stroke="black" points="547.5,-7088 547.5,-7118 702.5,-7118 702.5,-7088 547.5,-7088"/>
+<text text-anchor="start" x="555.5" y="-7106" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv3DTranspose</text>
+<text text-anchor="middle" x="625" y="-7095" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node64&#45;&gt;Node65 -->
 <g id="edge64" class="edge"><title>Node64&#45;&gt;Node65</title>
-<path fill="none" stroke="midnightblue" d="M501.341,-6905C516.855,-6905 532.62,-6905 547.451,-6905"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="501.196,-6901.5 491.196,-6905 501.196,-6908.5 501.196,-6901.5"/>
+<path fill="none" stroke="midnightblue" d="M501.341,-7103C516.855,-7103 532.62,-7103 547.451,-7103"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="501.196,-7099.5 491.196,-7103 501.196,-7106.5 501.196,-7099.5"/>
 </g>
 <!-- Node67 -->
 <g id="node67" class="node"><title>Node67</title>
 <g id="a_node67"><a xlink:href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html" target="_top" xlink:title="Attributes used in 3d winograd convolution operators. ">
-<polygon fill="white" stroke="black" points="549,-6841 549,-6871 701,-6871 701,-6841 549,-6841"/>
-<text text-anchor="start" x="557" y="-6859" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv3DWinograd</text>
-<text text-anchor="middle" x="625" y="-6848" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polygon fill="white" stroke="black" points="549,-7039 549,-7069 701,-7069 701,-7039 549,-7039"/>
+<text text-anchor="start" x="557" y="-7057" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Conv3DWinograd</text>
+<text text-anchor="middle" x="625" y="-7046" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node66&#45;&gt;Node67 -->
 <g id="edge66" class="edge"><title>Node66&#45;&gt;Node67</title>
-<path fill="none" stroke="midnightblue" d="M499.538,-6856C516.162,-6856 533.13,-6856 548.974,-6856"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="499.245,-6852.5 489.245,-6856 499.245,-6859.5 499.245,-6852.5"/>
+<path fill="none" stroke="midnightblue" d="M499.538,-7054C516.162,-7054 533.13,-7054 548.974,-7054"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="499.245,-7050.5 489.245,-7054 499.245,-7057.5 499.245,-7050.5"/>
 </g>
 <!-- Node69 -->
 <g id="node69" class="node"><title>Node69</title>
 <g id="a_node69"><a xlink:href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html" target="_top" xlink:title="Attributes used in gemm weight transformation operators. ">
-<polygon fill="white" stroke="black" points="546,-6792 546,-6822 704,-6822 704,-6792 546,-6792"/>
-<text text-anchor="start" x="554" y="-6810" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ConvGemmWeight</text>
-<text text-anchor="middle" x="625" y="-6799" font-family="Helvetica,sans-Serif" font-size="10.00">TransformAttrs</text>
+<polygon fill="white" stroke="black" points="546,-6990 546,-7020 704,-7020 704,-6990 546,-6990"/>
+<text text-anchor="start" x="554" y="-7008" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ConvGemmWeight</text>
+<text text-anchor="middle" x="625" y="-6997" font-family="Helvetica,sans-Serif" font-size="10.00">TransformAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node68&#45;&gt;Node69 -->
 <g id="edge68" class="edge"><title>Node68&#45;&gt;Node69</title>
-<path fill="none" stroke="midnightblue" d="M486.826,-6807C506.323,-6807 526.844,-6807 545.902,-6807"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6803.5 476.736,-6807 486.736,-6810.5 486.736,-6803.5"/>
+<path fill="none" stroke="midnightblue" d="M486.826,-7005C506.323,-7005 526.844,-7005 545.902,-7005"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-7001.5 476.736,-7005 486.736,-7008.5 486.736,-7001.5"/>
 </g>
 <!-- Node71 -->
 <g id="node71" class="node"><title>Node71</title>
 <g id="a_node71"><a xlink:href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html" target="_top" xlink:title="Attributes used in winograd weight transformation operators. ">
-<polygon fill="white" stroke="black" points="556,-6743 556,-6773 694,-6773 694,-6743 556,-6743"/>
-<text text-anchor="start" x="564" y="-6761" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ConvWinograd</text>
-<text text-anchor="middle" x="625" y="-6750" font-family="Helvetica,sans-Serif" font-size="10.00">WeightTransformAttrs</text>
+<polygon fill="white" stroke="black" points="556,-6941 556,-6971 694,-6971 694,-6941 556,-6941"/>
+<text text-anchor="start" x="564" y="-6959" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ConvWinograd</text>
+<text text-anchor="middle" x="625" y="-6948" font-family="Helvetica,sans-Serif" font-size="10.00">WeightTransformAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node70&#45;&gt;Node71 -->
 <g id="edge70" class="edge"><title>Node70&#45;&gt;Node71</title>
-<path fill="none" stroke="midnightblue" d="M493.071,-6758C514.188,-6758 536.179,-6758 555.974,-6758"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="492.789,-6754.5 482.789,-6758 492.789,-6761.5 492.789,-6754.5"/>
+<path fill="none" stroke="midnightblue" d="M493.071,-6956C514.188,-6956 536.179,-6956 555.974,-6956"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="492.789,-6952.5 482.789,-6956 492.789,-6959.5 492.789,-6952.5"/>
 </g>
 <!-- Node73 -->
 <g id="node73" class="node"><title>Node73</title>
 <g id="a_node73"><a xlink:href="structtvm_1_1relay_1_1CorrelationAttrs.html" target="_top" xlink:title="Attributes used in correlation operators. ">
-<polygon fill="white" stroke="black" points="552,-6699.5 552,-6718.5 698,-6718.5 698,-6699.5 552,-6699.5"/>
-<text text-anchor="middle" x="625" y="-6706.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CorrelationAttrs</text>
+<polygon fill="white" stroke="black" points="552,-6897.5 552,-6916.5 698,-6916.5 698,-6897.5 552,-6897.5"/>
+<text text-anchor="middle" x="625" y="-6904.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CorrelationAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node72&#45;&gt;Node73 -->
 <g id="edge72" class="edge"><title>Node72&#45;&gt;Node73</title>
-<path fill="none" stroke="midnightblue" d="M484.593,-6709C506.747,-6709 530.358,-6709 551.731,-6709"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="484.53,-6705.5 474.53,-6709 484.53,-6712.5 484.53,-6705.5"/>
+<path fill="none" stroke="midnightblue" d="M484.593,-6907C506.747,-6907 530.358,-6907 551.731,-6907"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="484.53,-6903.5 474.53,-6907 484.53,-6910.5 484.53,-6903.5"/>
 </g>
 <!-- Node75 -->
 <g id="node75" class="node"><title>Node75</title>
 <g id="a_node75"><a xlink:href="structtvm_1_1relay_1_1CropAndResizeAttrs.html" target="_top" xlink:title="Attributes used in image crop_and_resize operator. ">
-<polygon fill="white" stroke="black" points="554.5,-6645 554.5,-6675 695.5,-6675 695.5,-6645 554.5,-6645"/>
-<text text-anchor="start" x="562.5" y="-6663" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CropAndResize</text>
-<text text-anchor="middle" x="625" y="-6652" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polygon fill="white" stroke="black" points="554.5,-6843 554.5,-6873 695.5,-6873 695.5,-6843 554.5,-6843"/>
+<text text-anchor="start" x="562.5" y="-6861" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::CropAndResize</text>
+<text text-anchor="middle" x="625" y="-6850" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node74&#45;&gt;Node75 -->
 <g id="edge74" class="edge"><title>Node74&#45;&gt;Node75</title>
-<path fill="none" stroke="midnightblue" d="M494.211,-6660C514.363,-6660 535.258,-6660 554.242,-6660"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-6656.5 484.073,-6660 494.073,-6663.5 494.073,-6656.5"/>
+<path fill="none" stroke="midnightblue" d="M494.211,-6858C514.363,-6858 535.258,-6858 554.242,-6858"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-6854.5 484.073,-6858 494.073,-6861.5 494.073,-6854.5"/>
 </g>
 <!-- Node77 -->
 <g id="node77" class="node"><title>Node77</title>
 <g id="a_node77"><a xlink:href="structtvm_1_1relay_1_1DebugAttrs.html" target="_top" xlink:title="Options for the debug operators. ">
-<polygon fill="white" stroke="black" points="562.5,-6606.5 562.5,-6625.5 687.5,-6625.5 687.5,-6606.5 562.5,-6606.5"/>
-<text text-anchor="middle" x="625" y="-6613.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DebugAttrs</text>
+<polygon fill="white" stroke="black" points="562.5,-6804.5 562.5,-6823.5 687.5,-6823.5 687.5,-6804.5 562.5,-6804.5"/>
+<text text-anchor="middle" x="625" y="-6811.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DebugAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node76&#45;&gt;Node77 -->
 <g id="edge76" class="edge"><title>Node76&#45;&gt;Node77</title>
-<path fill="none" stroke="midnightblue" d="M491.329,-6616C515.199,-6616 540.298,-6616 562.164,-6616"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="491.187,-6612.5 481.187,-6616 491.187,-6619.5 491.187,-6612.5"/>
+<path fill="none" stroke="midnightblue" d="M491.329,-6814C515.199,-6814 540.298,-6814 562.164,-6814"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="491.187,-6810.5 481.187,-6814 491.187,-6817.5 491.187,-6810.5"/>
 </g>
 <!-- Node79 -->
 <g id="node79" class="node"><title>Node79</title>
 <g id="a_node79"><a xlink:href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html" target="_top" xlink:title="Attributes for DeformableConv2D operator. ">
-<polygon fill="white" stroke="black" points="547,-6557 547,-6587 703,-6587 703,-6557 547,-6557"/>
-<text text-anchor="start" x="555" y="-6575" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DeformableConv2</text>
-<text text-anchor="middle" x="625" y="-6564" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs</text>
+<polygon fill="white" stroke="black" points="547,-6755 547,-6785 703,-6785 703,-6755 547,-6755"/>
+<text text-anchor="start" x="555" y="-6773" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DeformableConv2</text>
+<text text-anchor="middle" x="625" y="-6762" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node78&#45;&gt;Node79 -->
 <g id="edge78" class="edge"><title>Node78&#45;&gt;Node79</title>
-<path fill="none" stroke="midnightblue" d="M486.941,-6572C506.665,-6572 527.43,-6572 546.664,-6572"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6568.5 476.736,-6572 486.736,-6575.5 486.736,-6568.5"/>
+<path fill="none" stroke="midnightblue" d="M486.941,-6770C506.665,-6770 527.43,-6770 546.664,-6770"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6766.5 476.736,-6770 486.736,-6773.5 486.736,-6766.5"/>
 </g>
 <!-- Node81 -->
 <g id="node81" class="node"><title>Node81</title>
 <g id="a_node81"><a xlink:href="structtvm_1_1relay_1_1DenseAttrs.html" target="_top" xlink:title="Attributes for dense operator. ">
-<polygon fill="white" stroke="black" points="563,-6518.5 563,-6537.5 687,-6537.5 687,-6518.5 563,-6518.5"/>
-<text text-anchor="middle" x="625" y="-6525.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DenseAttrs</text>
+<polygon fill="white" stroke="black" points="563,-6716.5 563,-6735.5 687,-6735.5 687,-6716.5 563,-6716.5"/>
+<text text-anchor="middle" x="625" y="-6723.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DenseAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node80&#45;&gt;Node81 -->
 <g id="edge80" class="edge"><title>Node80&#45;&gt;Node81</title>
-<path fill="none" stroke="midnightblue" d="M491.425,-6528C515.522,-6528 540.867,-6528 562.867,-6528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="491.187,-6524.5 481.187,-6528 491.187,-6531.5 491.187,-6524.5"/>
+<path fill="none" stroke="midnightblue" d="M491.425,-6726C515.522,-6726 540.867,-6726 562.867,-6726"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="491.187,-6722.5 481.187,-6726 491.187,-6729.5 491.187,-6722.5"/>
 </g>
 <!-- Node83 -->
 <g id="node83" class="node"><title>Node83</title>
-<g id="a_node83"><a xlink:href="structtvm_1_1relay_1_1DeviceCopyAttrs.html" target="_top" xlink:title="Options for the device copy operators. ">
-<polygon fill="white" stroke="black" points="550.5,-6474.5 550.5,-6493.5 699.5,-6493.5 699.5,-6474.5 550.5,-6474.5"/>
-<text text-anchor="middle" x="625" y="-6481.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DeviceCopyAttrs</text>
+<g id="a_node83"><a xlink:href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html" target="_top" xlink:title="Attribute for dequantize operator. ">
+<polygon fill="white" stroke="black" points="550.5,-6667 550.5,-6697 699.5,-6697 699.5,-6667 550.5,-6667"/>
+<text text-anchor="start" x="558.5" y="-6685" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::qnn::Dequantize</text>
+<text text-anchor="middle" x="625" y="-6674" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node82&#45;&gt;Node83 -->
 <g id="edge82" class="edge"><title>Node82&#45;&gt;Node83</title>
-<path fill="none" stroke="midnightblue" d="M486.948,-6484C507.97,-6484 530.176,-6484 550.451,-6484"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6480.5 476.736,-6484 486.736,-6487.5 486.736,-6480.5"/>
+<path fill="none" stroke="midnightblue" d="M485.794,-6682C507.083,-6682 529.649,-6682 550.237,-6682"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="485.789,-6678.5 475.789,-6682 485.789,-6685.5 485.789,-6678.5"/>
 </g>
 <!-- Node85 -->
 <g id="node85" class="node"><title>Node85</title>
-<g id="a_node85"><a xlink:href="structtvm_1_1relay_1_1DilateAttrs.html" target="_top" xlink:title="Attributes used in dilate operator. ">
-<polygon fill="white" stroke="black" points="564.5,-6430.5 564.5,-6449.5 685.5,-6449.5 685.5,-6430.5 564.5,-6430.5"/>
-<text text-anchor="middle" x="625" y="-6437.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DilateAttrs</text>
+<g id="a_node85"><a xlink:href="structtvm_1_1relay_1_1DeviceCopyAttrs.html" target="_top" xlink:title="Options for the device copy operators. ">
+<polygon fill="white" stroke="black" points="550.5,-6623.5 550.5,-6642.5 699.5,-6642.5 699.5,-6623.5 550.5,-6623.5"/>
+<text text-anchor="middle" x="625" y="-6630.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DeviceCopyAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node84&#45;&gt;Node85 -->
 <g id="edge84" class="edge"><title>Node84&#45;&gt;Node85</title>
-<path fill="none" stroke="midnightblue" d="M489.887,-6440C515.028,-6440 541.641,-6440 564.475,-6440"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="489.592,-6436.5 479.592,-6440 489.592,-6443.5 489.592,-6436.5"/>
+<path fill="none" stroke="midnightblue" d="M486.948,-6633C507.97,-6633 530.176,-6633 550.451,-6633"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6629.5 476.736,-6633 486.736,-6636.5 486.736,-6629.5"/>
 </g>
 <!-- Node87 -->
 <g id="node87" class="node"><title>Node87</title>
-<g id="a_node87"><a xlink:href="structtvm_1_1relay_1_1Dilation2DAttrs.html" target="_top" xlink:title="Attributes used in dilation operators. ">
-<polygon fill="white" stroke="black" points="553.5,-6386.5 553.5,-6405.5 696.5,-6405.5 696.5,-6386.5 553.5,-6386.5"/>
-<text text-anchor="middle" x="625" y="-6393.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Dilation2DAttrs</text>
+<g id="a_node87"><a xlink:href="structtvm_1_1relay_1_1DilateAttrs.html" target="_top" xlink:title="Attributes used in dilate operator. ">
+<polygon fill="white" stroke="black" points="564.5,-6579.5 564.5,-6598.5 685.5,-6598.5 685.5,-6579.5 564.5,-6579.5"/>
+<text text-anchor="middle" x="625" y="-6586.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DilateAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node86&#45;&gt;Node87 -->
 <g id="edge86" class="edge"><title>Node86&#45;&gt;Node87</title>
-<path fill="none" stroke="midnightblue" d="M479.415,-6396C503.514,-6396 529.727,-6396 553.133,-6396"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-6392.5 469.231,-6396 479.231,-6399.5 479.231,-6392.5"/>
+<path fill="none" stroke="midnightblue" d="M489.887,-6589C515.028,-6589 541.641,-6589 564.475,-6589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="489.592,-6585.5 479.592,-6589 489.592,-6592.5 489.592,-6585.5"/>
 </g>
 <!-- Node89 -->
 <g id="node89" class="node"><title>Node89</title>
-<g id="a_node89"><a xlink:href="structtvm_1_1relay_1_1DropoutAttrs.html" target="_top" xlink:title="Attributes used in dropout operator. ">
-<polygon fill="white" stroke="black" points="559,-6342.5 559,-6361.5 691,-6361.5 691,-6342.5 559,-6342.5"/>
-<text text-anchor="middle" x="625" y="-6349.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DropoutAttrs</text>
+<g id="a_node89"><a xlink:href="structtvm_1_1relay_1_1Dilation2DAttrs.html" target="_top" xlink:title="Attributes used in dilation operators. ">
+<polygon fill="white" stroke="black" points="553.5,-6535.5 553.5,-6554.5 696.5,-6554.5 696.5,-6535.5 553.5,-6535.5"/>
+<text text-anchor="middle" x="625" y="-6542.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Dilation2DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node88&#45;&gt;Node89 -->
 <g id="edge88" class="edge"><title>Node88&#45;&gt;Node89</title>
-<path fill="none" stroke="midnightblue" d="M495.16,-6352C516.614,-6352 538.862,-6352 558.71,-6352"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="495.039,-6348.5 485.039,-6352 495.039,-6355.5 495.039,-6348.5"/>
+<path fill="none" stroke="midnightblue" d="M479.415,-6545C503.514,-6545 529.727,-6545 553.133,-6545"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-6541.5 469.231,-6545 479.231,-6548.5 479.231,-6541.5"/>
 </g>
 <!-- Node91 -->
 <g id="node91" class="node"><title>Node91</title>
-<g id="a_node91"><a xlink:href="structtvm_1_1relay_1_1ExpandDimsAttrs.html" target="_top" xlink:title="Attributes used in expand_dims operators. ">
-<polygon fill="white" stroke="black" points="548.5,-6298.5 548.5,-6317.5 701.5,-6317.5 701.5,-6298.5 548.5,-6298.5"/>
-<text text-anchor="middle" x="625" y="-6305.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ExpandDimsAttrs</text>
+<g id="a_node91"><a xlink:href="structtvm_1_1relay_1_1DropoutAttrs.html" target="_top" xlink:title="Attributes used in dropout operator. ">
+<polygon fill="white" stroke="black" points="559,-6491.5 559,-6510.5 691,-6510.5 691,-6491.5 559,-6491.5"/>
+<text text-anchor="middle" x="625" y="-6498.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::DropoutAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node90&#45;&gt;Node91 -->
 <g id="edge90" class="edge"><title>Node90&#45;&gt;Node91</title>
-<path fill="none" stroke="midnightblue" d="M488.012,-6308C507.955,-6308 528.913,-6308 548.24,-6308"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="488.003,-6304.5 478.003,-6308 488.003,-6311.5 488.003,-6304.5"/>
+<path fill="none" stroke="midnightblue" d="M495.16,-6501C516.614,-6501 538.862,-6501 558.71,-6501"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="495.039,-6497.5 485.039,-6501 495.039,-6504.5 495.039,-6497.5"/>
 </g>
 <!-- Node93 -->
 <g id="node93" class="node"><title>Node93</title>
-<g id="a_node93"><a xlink:href="structtvm_1_1relay_1_1FIFOBufferAttrs.html" target="_top" xlink:title="Attributes for FIFO buffer operator. ">
-<polygon fill="white" stroke="black" points="554,-6249.5 554,-6268.5 696,-6268.5 696,-6249.5 554,-6249.5"/>
-<text text-anchor="middle" x="625" y="-6256.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::FIFOBufferAttrs</text>
+<g id="a_node93"><a xlink:href="structtvm_1_1relay_1_1ExpandDimsAttrs.html" target="_top" xlink:title="Attributes used in expand_dims operators. ">
+<polygon fill="white" stroke="black" points="548.5,-6447.5 548.5,-6466.5 701.5,-6466.5 701.5,-6447.5 548.5,-6447.5"/>
+<text text-anchor="middle" x="625" y="-6454.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ExpandDimsAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node92&#45;&gt;Node93 -->
 <g id="edge92" class="edge"><title>Node92&#45;&gt;Node93</title>
-<path fill="none" stroke="midnightblue" d="M482.869,-6259C506.176,-6259 531.213,-6259 553.634,-6259"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="482.649,-6255.5 472.649,-6259 482.649,-6262.5 482.649,-6255.5"/>
+<path fill="none" stroke="midnightblue" d="M488.012,-6457C507.955,-6457 528.913,-6457 548.24,-6457"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="488.003,-6453.5 478.003,-6457 488.003,-6460.5 488.003,-6453.5"/>
 </g>
 <!-- Node95 -->
 <g id="node95" class="node"><title>Node95</title>
-<g id="a_node95"><a xlink:href="structtvm_1_1relay_1_1GatherAttrs.html" target="_top" xlink:title="tvm::relay::GatherAttrs">
-<polygon fill="white" stroke="black" points="562,-6205.5 562,-6224.5 688,-6224.5 688,-6205.5 562,-6205.5"/>
-<text text-anchor="middle" x="625" y="-6212.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GatherAttrs</text>
+<g id="a_node95"><a xlink:href="structtvm_1_1relay_1_1FIFOBufferAttrs.html" target="_top" xlink:title="Attributes for FIFO buffer operator. ">
+<polygon fill="white" stroke="black" points="554,-6398.5 554,-6417.5 696,-6417.5 696,-6398.5 554,-6398.5"/>
+<text text-anchor="middle" x="625" y="-6405.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::FIFOBufferAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node94&#45;&gt;Node95 -->
 <g id="edge94" class="edge"><title>Node94&#45;&gt;Node95</title>
-<path fill="none" stroke="midnightblue" d="M492.16,-6215C515.716,-6215 540.416,-6215 561.987,-6215"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="492.147,-6211.5 482.147,-6215 492.147,-6218.5 492.147,-6211.5"/>
+<path fill="none" stroke="midnightblue" d="M482.869,-6408C506.176,-6408 531.213,-6408 553.634,-6408"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="482.649,-6404.5 472.649,-6408 482.649,-6411.5 482.649,-6404.5"/>
 </g>
 <!-- Node97 -->
 <g id="node97" class="node"><title>Node97</title>
-<g id="a_node97"><a xlink:href="structtvm_1_1relay_1_1GetValidCountsAttrs.html" target="_top" xlink:title="Attributes used in get_valid_counts operator. ">
-<polygon fill="white" stroke="black" points="553.5,-6156 553.5,-6186 696.5,-6186 696.5,-6156 553.5,-6156"/>
-<text text-anchor="start" x="561.5" y="-6174" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GetValidCounts</text>
-<text text-anchor="middle" x="625" y="-6163" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node97"><a xlink:href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html" target="_top" xlink:title="Attributes for FixedPointMultiply operator. ">
+<polygon fill="white" stroke="black" points="548,-6344 548,-6374 702,-6374 702,-6344 548,-6344"/>
+<text text-anchor="start" x="556" y="-6362" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::FixedPointMultiply</text>
+<text text-anchor="middle" x="625" y="-6351" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node96&#45;&gt;Node97 -->
 <g id="edge96" class="edge"><title>Node96&#45;&gt;Node97</title>
-<path fill="none" stroke="midnightblue" d="M478.61,-6171C503.007,-6171 529.635,-6171 553.359,-6171"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="478.305,-6167.5 468.305,-6171 478.305,-6174.5 478.305,-6167.5"/>
+<path fill="none" stroke="midnightblue" d="M482.13,-6359C503.669,-6359 526.73,-6359 547.865,-6359"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="482.025,-6355.5 472.025,-6359 482.025,-6362.5 482.025,-6355.5"/>
 </g>
 <!-- Node99 -->
 <g id="node99" class="node"><title>Node99</title>
-<g id="a_node99"><a xlink:href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html" target="_top" xlink:title="Attributes for global pool operator. ">
-<polygon fill="white" stroke="black" points="546.5,-6112.5 546.5,-6131.5 703.5,-6131.5 703.5,-6112.5 546.5,-6112.5"/>
-<text text-anchor="middle" x="625" y="-6119.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GlobalPool2DAttrs</text>
+<g id="a_node99"><a xlink:href="structtvm_1_1relay_1_1GatherAttrs.html" target="_top" xlink:title="tvm::relay::GatherAttrs">
+<polygon fill="white" stroke="black" points="562,-6305.5 562,-6324.5 688,-6324.5 688,-6305.5 562,-6305.5"/>
+<text text-anchor="middle" x="625" y="-6312.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GatherAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node98&#45;&gt;Node99 -->
 <g id="edge98" class="edge"><title>Node98&#45;&gt;Node99</title>
-<path fill="none" stroke="midnightblue" d="M486.883,-6122C506.494,-6122 527.137,-6122 546.283,-6122"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6118.5 476.736,-6122 486.736,-6125.5 486.736,-6118.5"/>
+<path fill="none" stroke="midnightblue" d="M492.16,-6315C515.716,-6315 540.416,-6315 561.987,-6315"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="492.147,-6311.5 482.147,-6315 492.147,-6318.5 492.147,-6311.5"/>
 </g>
 <!-- Node101 -->
 <g id="node101" class="node"><title>Node101</title>
-<g id="a_node101"><a xlink:href="structtvm_1_1relay_1_1GridSampleAttrs.html" target="_top" xlink:title="Attributes used in image grid_sample operator. ">
-<polygon fill="white" stroke="black" points="550.5,-6063.5 550.5,-6082.5 699.5,-6082.5 699.5,-6063.5 550.5,-6063.5"/>
-<text text-anchor="middle" x="625" y="-6070.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GridSampleAttrs</text>
+<g id="a_node101"><a xlink:href="structtvm_1_1relay_1_1GetValidCountsAttrs.html" target="_top" xlink:title="Attributes used in get_valid_counts operator. ">
+<polygon fill="white" stroke="black" points="553.5,-6256 553.5,-6286 696.5,-6286 696.5,-6256 553.5,-6256"/>
+<text text-anchor="start" x="561.5" y="-6274" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GetValidCounts</text>
+<text text-anchor="middle" x="625" y="-6263" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node100&#45;&gt;Node101 -->
 <g id="edge100" class="edge"><title>Node100&#45;&gt;Node101</title>
-<path fill="none" stroke="midnightblue" d="M486.948,-6073C507.97,-6073 530.176,-6073 550.451,-6073"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6069.5 476.736,-6073 486.736,-6076.5 486.736,-6069.5"/>
+<path fill="none" stroke="midnightblue" d="M478.61,-6271C503.007,-6271 529.635,-6271 553.359,-6271"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="478.305,-6267.5 468.305,-6271 478.305,-6274.5 478.305,-6267.5"/>
 </g>
 <!-- Node103 -->
 <g id="node103" class="node"><title>Node103</title>
-<g id="a_node103"><a xlink:href="structtvm_1_1relay_1_1GroupNormAttrs.html" target="_top" xlink:title="Attributes used in group_norm operator. ">
-<polygon fill="white" stroke="black" points="550.5,-6014.5 550.5,-6033.5 699.5,-6033.5 699.5,-6014.5 550.5,-6014.5"/>
-<text text-anchor="middle" x="625" y="-6021.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GroupNormAttrs</text>
+<g id="a_node103"><a xlink:href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html" target="_top" xlink:title="Attributes for global pool operator. ">
+<polygon fill="white" stroke="black" points="546.5,-6212.5 546.5,-6231.5 703.5,-6231.5 703.5,-6212.5 546.5,-6212.5"/>
+<text text-anchor="middle" x="625" y="-6219.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GlobalPool2DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node102&#45;&gt;Node103 -->
 <g id="edge102" class="edge"><title>Node102&#45;&gt;Node103</title>
-<path fill="none" stroke="midnightblue" d="M486.948,-6024C507.97,-6024 530.176,-6024 550.451,-6024"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6020.5 476.736,-6024 486.736,-6027.5 486.736,-6020.5"/>
+<path fill="none" stroke="midnightblue" d="M486.883,-6222C506.494,-6222 527.137,-6222 546.283,-6222"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6218.5 476.736,-6222 486.736,-6225.5 486.736,-6218.5"/>
 </g>
 <!-- Node105 -->
 <g id="node105" class="node"><title>Node105</title>
-<g id="a_node105"><a xlink:href="structtvm_1_1relay_1_1InitOpAttrs.html" target="_top" xlink:title="Attributes that specify a tensor. ">
-<polygon fill="white" stroke="black" points="564.5,-5970.5 564.5,-5989.5 685.5,-5989.5 685.5,-5970.5 564.5,-5970.5"/>
-<text text-anchor="middle" x="625" y="-5977.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::InitOpAttrs</text>
+<g id="a_node105"><a xlink:href="structtvm_1_1relay_1_1GridSampleAttrs.html" target="_top" xlink:title="Attributes used in image grid_sample operator. ">
+<polygon fill="white" stroke="black" points="550.5,-6163.5 550.5,-6182.5 699.5,-6182.5 699.5,-6163.5 550.5,-6163.5"/>
+<text text-anchor="middle" x="625" y="-6170.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GridSampleAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node104&#45;&gt;Node105 -->
 <g id="edge104" class="edge"><title>Node104&#45;&gt;Node105</title>
-<path fill="none" stroke="midnightblue" d="M489.887,-5980C515.028,-5980 541.641,-5980 564.475,-5980"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="489.592,-5976.5 479.592,-5980 489.592,-5983.5 489.592,-5976.5"/>
+<path fill="none" stroke="midnightblue" d="M486.948,-6173C507.97,-6173 530.176,-6173 550.451,-6173"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6169.5 476.736,-6173 486.736,-6176.5 486.736,-6169.5"/>
 </g>
 <!-- Node107 -->
 <g id="node107" class="node"><title>Node107</title>
-<g id="a_node107"><a xlink:href="structtvm_1_1relay_1_1InstanceNormAttrs.html" target="_top" xlink:title="Attributes used in instance_norm operator. ">
-<polygon fill="white" stroke="black" points="556.5,-5921 556.5,-5951 693.5,-5951 693.5,-5921 556.5,-5921"/>
-<text text-anchor="start" x="564.5" y="-5939" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::InstanceNorm</text>
-<text text-anchor="middle" x="625" y="-5928" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node107"><a xlink:href="structtvm_1_1relay_1_1GroupNormAttrs.html" target="_top" xlink:title="Attributes used in group_norm operator. ">
+<polygon fill="white" stroke="black" points="550.5,-6114.5 550.5,-6133.5 699.5,-6133.5 699.5,-6114.5 550.5,-6114.5"/>
+<text text-anchor="middle" x="625" y="-6121.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::GroupNormAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node106&#45;&gt;Node107 -->
 <g id="edge106" class="edge"><title>Node106&#45;&gt;Node107</title>
-<path fill="none" stroke="midnightblue" d="M478.924,-5936C504.231,-5936 531.912,-5936 556.247,-5936"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="478.614,-5932.5 468.614,-5936 478.613,-5939.5 478.614,-5932.5"/>
+<path fill="none" stroke="midnightblue" d="M486.948,-6124C507.97,-6124 530.176,-6124 550.451,-6124"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-6120.5 476.736,-6124 486.736,-6127.5 486.736,-6120.5"/>
 </g>
 <!-- Node109 -->
 <g id="node109" class="node"><title>Node109</title>
-<g id="a_node109"><a xlink:href="structtvm_1_1relay_1_1L2NormalizeAttrs.html" target="_top" xlink:title="Attributes for L2Normalize operator. ">
-<polygon fill="white" stroke="black" points="548.5,-5877.5 548.5,-5896.5 701.5,-5896.5 701.5,-5877.5 548.5,-5877.5"/>
-<text text-anchor="middle" x="625" y="-5884.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::L2NormalizeAttrs</text>
+<g id="a_node109"><a xlink:href="structtvm_1_1relay_1_1InitOpAttrs.html" target="_top" xlink:title="Attributes that specify a tensor. ">
+<polygon fill="white" stroke="black" points="564.5,-6070.5 564.5,-6089.5 685.5,-6089.5 685.5,-6070.5 564.5,-6070.5"/>
+<text text-anchor="middle" x="625" y="-6077.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::InitOpAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node108&#45;&gt;Node109 -->
 <g id="edge108" class="edge"><title>Node108&#45;&gt;Node109</title>
-<path fill="none" stroke="midnightblue" d="M488.012,-5887C507.955,-5887 528.913,-5887 548.24,-5887"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="488.003,-5883.5 478.003,-5887 488.003,-5890.5 488.003,-5883.5"/>
+<path fill="none" stroke="midnightblue" d="M489.887,-6080C515.028,-6080 541.641,-6080 564.475,-6080"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="489.592,-6076.5 479.592,-6080 489.592,-6083.5 489.592,-6076.5"/>
 </g>
 <!-- Node111 -->
 <g id="node111" class="node"><title>Node111</title>
-<g id="a_node111"><a xlink:href="structtvm_1_1relay_1_1LayerNormAttrs.html" target="_top" xlink:title="Attributes used in layer_norm operator. ">
-<polygon fill="white" stroke="black" points="552,-5828.5 552,-5847.5 698,-5847.5 698,-5828.5 552,-5828.5"/>
-<text text-anchor="middle" x="625" y="-5835.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::LayerNormAttrs</text>
+<g id="a_node111"><a xlink:href="structtvm_1_1relay_1_1InstanceNormAttrs.html" target="_top" xlink:title="Attributes used in instance_norm operator. ">
+<polygon fill="white" stroke="black" points="556.5,-6021 556.5,-6051 693.5,-6051 693.5,-6021 556.5,-6021"/>
+<text text-anchor="start" x="564.5" y="-6039" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::InstanceNorm</text>
+<text text-anchor="middle" x="625" y="-6028" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node110&#45;&gt;Node111 -->
 <g id="edge110" class="edge"><title>Node110&#45;&gt;Node111</title>
-<path fill="none" stroke="midnightblue" d="M485.45,-5838C507.358,-5838 530.639,-5838 551.738,-5838"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="485.159,-5834.5 475.159,-5838 485.159,-5841.5 485.159,-5834.5"/>
+<path fill="none" stroke="midnightblue" d="M478.924,-6036C504.231,-6036 531.912,-6036 556.247,-6036"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="478.614,-6032.5 468.614,-6036 478.613,-6039.5 478.614,-6032.5"/>
 </g>
 <!-- Node113 -->
 <g id="node113" class="node"><title>Node113</title>
-<g id="a_node113"><a xlink:href="structtvm_1_1relay_1_1LayoutTransformAttrs.html" target="_top" xlink:title="Attributes for LayoutTransform operator. ">
-<polygon fill="white" stroke="black" points="550.5,-5774 550.5,-5804 699.5,-5804 699.5,-5774 550.5,-5774"/>
-<text text-anchor="start" x="558.5" y="-5792" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::LayoutTransform</text>
-<text text-anchor="middle" x="625" y="-5781" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node113"><a xlink:href="structtvm_1_1relay_1_1L2NormalizeAttrs.html" target="_top" xlink:title="Attributes for L2Normalize operator. ">
+<polygon fill="white" stroke="black" points="548.5,-5977.5 548.5,-5996.5 701.5,-5996.5 701.5,-5977.5 548.5,-5977.5"/>
+<text text-anchor="middle" x="625" y="-5984.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::L2NormalizeAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node112&#45;&gt;Node113 -->
 <g id="edge112" class="edge"><title>Node112&#45;&gt;Node113</title>
-<path fill="none" stroke="midnightblue" d="M498.501,-5789C515.978,-5789 533.869,-5789 550.465,-5789"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="498.272,-5785.5 488.272,-5789 498.271,-5792.5 498.272,-5785.5"/>
+<path fill="none" stroke="midnightblue" d="M488.012,-5987C507.955,-5987 528.913,-5987 548.24,-5987"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="488.003,-5983.5 478.003,-5987 488.003,-5990.5 488.003,-5983.5"/>
 </g>
 <!-- Node115 -->
 <g id="node115" class="node"><title>Node115</title>
-<g id="a_node115"><a xlink:href="structtvm_1_1relay_1_1LeakyReluAttrs.html" target="_top" xlink:title="Attributes for leaky relu operator. ">
-<polygon fill="white" stroke="black" points="555,-5730.5 555,-5749.5 695,-5749.5 695,-5730.5 555,-5730.5"/>
-<text text-anchor="middle" x="625" y="-5737.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::LeakyReluAttrs</text>
+<g id="a_node115"><a xlink:href="structtvm_1_1relay_1_1LayerNormAttrs.html" target="_top" xlink:title="Attributes used in layer_norm operator. ">
+<polygon fill="white" stroke="black" points="552,-5928.5 552,-5947.5 698,-5947.5 698,-5928.5 552,-5928.5"/>
+<text text-anchor="middle" x="625" y="-5935.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::LayerNormAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node114&#45;&gt;Node115 -->
 <g id="edge114" class="edge"><title>Node114&#45;&gt;Node115</title>
-<path fill="none" stroke="midnightblue" d="M482.144,-5740C506.055,-5740 531.841,-5740 554.785,-5740"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="482.025,-5736.5 472.025,-5740 482.025,-5743.5 482.025,-5736.5"/>
+<path fill="none" stroke="midnightblue" d="M485.45,-5938C507.358,-5938 530.639,-5938 551.738,-5938"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="485.159,-5934.5 475.159,-5938 485.159,-5941.5 485.159,-5934.5"/>
 </g>
 <!-- Node117 -->
 <g id="node117" class="node"><title>Node117</title>
-<g id="a_node117"><a xlink:href="structtvm_1_1relay_1_1LRNAttrs.html" target="_top" xlink:title="Attributes for LRN operator. ">
-<polygon fill="white" stroke="black" points="569,-5686.5 569,-5705.5 681,-5705.5 681,-5686.5 569,-5686.5"/>
-<text text-anchor="middle" x="625" y="-5693.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::LRNAttrs</text>
+<g id="a_node117"><a xlink:href="structtvm_1_1relay_1_1LayoutTransformAttrs.html" target="_top" xlink:title="Attributes for LayoutTransform operator. ">
+<polygon fill="white" stroke="black" points="550.5,-5874 550.5,-5904 699.5,-5904 699.5,-5874 550.5,-5874"/>
+<text text-anchor="start" x="558.5" y="-5892" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::LayoutTransform</text>
+<text text-anchor="middle" x="625" y="-5881" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node116&#45;&gt;Node117 -->
 <g id="edge116" class="edge"><title>Node116&#45;&gt;Node117</title>
-<path fill="none" stroke="midnightblue" d="M485.385,-5696C513.459,-5696 543.794,-5696 568.908,-5696"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="485.159,-5692.5 475.159,-5696 485.159,-5699.5 485.159,-5692.5"/>
+<path fill="none" stroke="midnightblue" d="M498.501,-5889C515.978,-5889 533.869,-5889 550.465,-5889"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="498.272,-5885.5 488.272,-5889 498.271,-5892.5 498.272,-5885.5"/>
 </g>
 <!-- Node119 -->
 <g id="node119" class="node"><title>Node119</title>
-<g id="a_node119"><a xlink:href="structtvm_1_1relay_1_1MaxPool1DAttrs.html" target="_top" xlink:title="Attributes for 1D max pool operator. ">
-<polygon fill="white" stroke="black" points="552,-5642.5 552,-5661.5 698,-5661.5 698,-5642.5 552,-5642.5"/>
-<text text-anchor="middle" x="625" y="-5649.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MaxPool1DAttrs</text>
+<g id="a_node119"><a xlink:href="structtvm_1_1relay_1_1LeakyReluAttrs.html" target="_top" xlink:title="Attributes for leaky relu operator. ">
+<polygon fill="white" stroke="black" points="555,-5830.5 555,-5849.5 695,-5849.5 695,-5830.5 555,-5830.5"/>
+<text text-anchor="middle" x="625" y="-5837.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::LeakyReluAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node118&#45;&gt;Node119 -->
 <g id="edge118" class="edge"><title>Node118&#45;&gt;Node119</title>
-<path fill="none" stroke="midnightblue" d="M481.247,-5652C504.424,-5652 529.426,-5652 551.931,-5652"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="481.091,-5648.5 471.091,-5652 481.091,-5655.5 481.091,-5648.5"/>
+<path fill="none" stroke="midnightblue" d="M482.144,-5840C506.055,-5840 531.841,-5840 554.785,-5840"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="482.025,-5836.5 472.025,-5840 482.025,-5843.5 482.025,-5836.5"/>
 </g>
 <!-- Node121 -->
 <g id="node121" class="node"><title>Node121</title>
-<g id="a_node121"><a xlink:href="structtvm_1_1relay_1_1MaxPool2DAttrs.html" target="_top" xlink:title="Attributes for max pool operator. ">
-<polygon fill="white" stroke="black" points="552,-5593.5 552,-5612.5 698,-5612.5 698,-5593.5 552,-5593.5"/>
-<text text-anchor="middle" x="625" y="-5600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MaxPool2DAttrs</text>
+<g id="a_node121"><a xlink:href="structtvm_1_1relay_1_1LRNAttrs.html" target="_top" xlink:title="Attributes for LRN operator. ">
+<polygon fill="white" stroke="black" points="569,-5786.5 569,-5805.5 681,-5805.5 681,-5786.5 569,-5786.5"/>
+<text text-anchor="middle" x="625" y="-5793.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::LRNAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node120&#45;&gt;Node121 -->
 <g id="edge120" class="edge"><title>Node120&#45;&gt;Node121</title>
-<path fill="none" stroke="midnightblue" d="M481.247,-5603C504.424,-5603 529.426,-5603 551.931,-5603"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="481.091,-5599.5 471.091,-5603 481.091,-5606.5 481.091,-5599.5"/>
+<path fill="none" stroke="midnightblue" d="M485.385,-5796C513.459,-5796 543.794,-5796 568.908,-5796"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="485.159,-5792.5 475.159,-5796 485.159,-5799.5 485.159,-5792.5"/>
 </g>
 <!-- Node123 -->
 <g id="node123" class="node"><title>Node123</title>
-<g id="a_node123"><a xlink:href="structtvm_1_1relay_1_1MaxPool3DAttrs.html" target="_top" xlink:title="Attributes for 3D max pool operator. ">
-<polygon fill="white" stroke="black" points="552,-5544.5 552,-5563.5 698,-5563.5 698,-5544.5 552,-5544.5"/>
-<text text-anchor="middle" x="625" y="-5551.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MaxPool3DAttrs</text>
+<g id="a_node123"><a xlink:href="structtvm_1_1relay_1_1MaxPool1DAttrs.html" target="_top" xlink:title="Attributes for 1D max pool operator. ">
+<polygon fill="white" stroke="black" points="552,-5742.5 552,-5761.5 698,-5761.5 698,-5742.5 552,-5742.5"/>
+<text text-anchor="middle" x="625" y="-5749.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MaxPool1DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node122&#45;&gt;Node123 -->
 <g id="edge122" class="edge"><title>Node122&#45;&gt;Node123</title>
-<path fill="none" stroke="midnightblue" d="M481.247,-5554C504.424,-5554 529.426,-5554 551.931,-5554"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="481.091,-5550.5 471.091,-5554 481.091,-5557.5 481.091,-5550.5"/>
+<path fill="none" stroke="midnightblue" d="M481.247,-5752C504.424,-5752 529.426,-5752 551.931,-5752"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="481.091,-5748.5 471.091,-5752 481.091,-5755.5 481.091,-5748.5"/>
 </g>
 <!-- Node125 -->
 <g id="node125" class="node"><title>Node125</title>
-<g id="a_node125"><a xlink:href="structtvm_1_1relay_1_1MeshgridAttrs.html" target="_top" xlink:title="Attributes used in meshgrid operators. ">
-<polygon fill="white" stroke="black" points="556.5,-5495.5 556.5,-5514.5 693.5,-5514.5 693.5,-5495.5 556.5,-5495.5"/>
-<text text-anchor="middle" x="625" y="-5502.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MeshgridAttrs</text>
+<g id="a_node125"><a xlink:href="structtvm_1_1relay_1_1MaxPool2DAttrs.html" target="_top" xlink:title="Attributes for max pool operator. ">
+<polygon fill="white" stroke="black" points="552,-5693.5 552,-5712.5 698,-5712.5 698,-5693.5 552,-5693.5"/>
+<text text-anchor="middle" x="625" y="-5700.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MaxPool2DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node124&#45;&gt;Node125 -->
 <g id="edge124" class="edge"><title>Node124&#45;&gt;Node125</title>
-<path fill="none" stroke="midnightblue" d="M480.339,-5505C505.302,-5505 532.456,-5505 556.368,-5505"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-5501.5 470.159,-5505 480.159,-5508.5 480.159,-5501.5"/>
+<path fill="none" stroke="midnightblue" d="M481.247,-5703C504.424,-5703 529.426,-5703 551.931,-5703"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="481.091,-5699.5 471.091,-5703 481.091,-5706.5 481.091,-5699.5"/>
 </g>
 <!-- Node127 -->
 <g id="node127" class="node"><title>Node127</title>
-<g id="a_node127"><a xlink:href="structtvm_1_1relay_1_1MirrorPadAttrs.html" target="_top" xlink:title="Attributes used for the MirrorPadding operator. ">
-<polygon fill="white" stroke="black" points="556,-5446.5 556,-5465.5 694,-5465.5 694,-5446.5 556,-5446.5"/>
-<text text-anchor="middle" x="625" y="-5453.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MirrorPadAttrs</text>
+<g id="a_node127"><a xlink:href="structtvm_1_1relay_1_1MaxPool3DAttrs.html" target="_top" xlink:title="Attributes for 3D max pool operator. ">
+<polygon fill="white" stroke="black" points="552,-5644.5 552,-5663.5 698,-5663.5 698,-5644.5 552,-5644.5"/>
+<text text-anchor="middle" x="625" y="-5651.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MaxPool3DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node126&#45;&gt;Node127 -->
 <g id="edge126" class="edge"><title>Node126&#45;&gt;Node127</title>
-<path fill="none" stroke="midnightblue" d="M480.849,-5456C505.53,-5456 532.312,-5456 555.963,-5456"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="480.78,-5452.5 470.78,-5456 480.78,-5459.5 480.78,-5452.5"/>
+<path fill="none" stroke="midnightblue" d="M481.247,-5654C504.424,-5654 529.426,-5654 551.931,-5654"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="481.091,-5650.5 471.091,-5654 481.091,-5657.5 481.091,-5650.5"/>
 </g>
 <!-- Node129 -->
 <g id="node129" class="node"><title>Node129</title>
-<g id="a_node129"><a xlink:href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html" target="_top" xlink:title="Attributes used in multibox_prior operators. ">
-<polygon fill="white" stroke="black" points="559,-5392 559,-5422 691,-5422 691,-5392 559,-5392"/>
-<text text-anchor="start" x="567" y="-5410" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MultiBoxPrior</text>
-<text text-anchor="middle" x="625" y="-5399" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node129"><a xlink:href="structtvm_1_1relay_1_1MeshgridAttrs.html" target="_top" xlink:title="Attributes used in meshgrid operators. ">
+<polygon fill="white" stroke="black" points="556.5,-5595.5 556.5,-5614.5 693.5,-5614.5 693.5,-5595.5 556.5,-5595.5"/>
+<text text-anchor="middle" x="625" y="-5602.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MeshgridAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node128&#45;&gt;Node129 -->
 <g id="edge128" class="edge"><title>Node128&#45;&gt;Node129</title>
-<path fill="none" stroke="midnightblue" d="M478.914,-5407C505.157,-5407 533.953,-5407 558.925,-5407"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="478.614,-5403.5 468.614,-5407 478.613,-5410.5 478.614,-5403.5"/>
+<path fill="none" stroke="midnightblue" d="M480.339,-5605C505.302,-5605 532.456,-5605 556.368,-5605"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-5601.5 470.159,-5605 480.159,-5608.5 480.159,-5601.5"/>
 </g>
 <!-- Node131 -->
 <g id="node131" class="node"><title>Node131</title>
-<g id="a_node131"><a xlink:href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html" target="_top" xlink:title="tvm::relay::MultiBoxTransform\lLocAttrs">
-<polygon fill="white" stroke="black" points="546,-5343 546,-5373 704,-5373 704,-5343 546,-5343"/>
-<text text-anchor="start" x="554" y="-5361" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MultiBoxTransform</text>
-<text text-anchor="middle" x="625" y="-5350" font-family="Helvetica,sans-Serif" font-size="10.00">LocAttrs</text>
+<g id="a_node131"><a xlink:href="structtvm_1_1relay_1_1MirrorPadAttrs.html" target="_top" xlink:title="Attributes used for the MirrorPadding operator. ">
+<polygon fill="white" stroke="black" points="556,-5546.5 556,-5565.5 694,-5565.5 694,-5546.5 556,-5546.5"/>
+<text text-anchor="middle" x="625" y="-5553.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MirrorPadAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node130&#45;&gt;Node131 -->
 <g id="edge130" class="edge"><title>Node130&#45;&gt;Node131</title>
-<path fill="none" stroke="midnightblue" d="M478.797,-5358C500.541,-5358 524.044,-5358 545.677,-5358"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="478.614,-5354.5 468.614,-5358 478.613,-5361.5 478.614,-5354.5"/>
+<path fill="none" stroke="midnightblue" d="M480.849,-5556C505.53,-5556 532.312,-5556 555.963,-5556"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="480.78,-5552.5 470.78,-5556 480.78,-5559.5 480.78,-5552.5"/>
 </g>
 <!-- Node133 -->
 <g id="node133" class="node"><title>Node133</title>
-<g id="a_node133"><a xlink:href="structtvm_1_1relay_1_1NdarraySizeAttrs.html" target="_top" xlink:title="Attributes for ndarray_size operator. ">
-<polygon fill="white" stroke="black" points="549,-5299.5 549,-5318.5 701,-5318.5 701,-5299.5 549,-5299.5"/>
-<text text-anchor="middle" x="625" y="-5306.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::NdarraySizeAttrs</text>
+<g id="a_node133"><a xlink:href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html" target="_top" xlink:title="Attributes used in multibox_prior operators. ">
+<polygon fill="white" stroke="black" points="559,-5492 559,-5522 691,-5522 691,-5492 559,-5492"/>
+<text text-anchor="start" x="567" y="-5510" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MultiBoxPrior</text>
+<text text-anchor="middle" x="625" y="-5499" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node132&#45;&gt;Node133 -->
 <g id="edge132" class="edge"><title>Node132&#45;&gt;Node133</title>
-<path fill="none" stroke="midnightblue" d="M487.817,-5309C508.008,-5309 529.249,-5309 548.791,-5309"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="487.686,-5305.5 477.686,-5309 487.686,-5312.5 487.686,-5305.5"/>
+<path fill="none" stroke="midnightblue" d="M478.914,-5507C505.157,-5507 533.953,-5507 558.925,-5507"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="478.614,-5503.5 468.614,-5507 478.613,-5510.5 478.614,-5503.5"/>
 </g>
 <!-- Node135 -->
 <g id="node135" class="node"><title>Node135</title>
-<g id="a_node135"><a xlink:href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html" target="_top" xlink:title="Attributes used in non_maximum_suppression operator. ">
-<polygon fill="white" stroke="black" points="527,-5245 527,-5275 723,-5275 723,-5245 527,-5245"/>
-<text text-anchor="start" x="535" y="-5263" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::NonMaximumSuppression</text>
-<text text-anchor="middle" x="625" y="-5252" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node135"><a xlink:href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html" target="_top" xlink:title="tvm::relay::MultiBoxTransform\lLocAttrs">
+<polygon fill="white" stroke="black" points="546,-5443 546,-5473 704,-5473 704,-5443 546,-5443"/>
+<text text-anchor="start" x="554" y="-5461" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::MultiBoxTransform</text>
+<text text-anchor="middle" x="625" y="-5450" font-family="Helvetica,sans-Serif" font-size="10.00">LocAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node134&#45;&gt;Node135 -->
 <g id="edge134" class="edge"><title>Node134&#45;&gt;Node135</title>
-<path fill="none" stroke="midnightblue" d="M491.593,-5260C503.168,-5260 515.028,-5260 526.664,-5260"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="491.507,-5256.5 481.507,-5260 491.507,-5263.5 491.507,-5256.5"/>
+<path fill="none" stroke="midnightblue" d="M478.797,-5458C500.541,-5458 524.044,-5458 545.677,-5458"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="478.614,-5454.5 468.614,-5458 478.613,-5461.5 478.614,-5454.5"/>
 </g>
 <!-- Node137 -->
 <g id="node137" class="node"><title>Node137</title>
-<g id="a_node137"><a xlink:href="structtvm_1_1relay_1_1OnDeviceAttrs.html" target="_top" xlink:title="Options for the device annotation operators. ">
-<polygon fill="white" stroke="black" points="555.5,-5201.5 555.5,-5220.5 694.5,-5220.5 694.5,-5201.5 555.5,-5201.5"/>
-<text text-anchor="middle" x="625" y="-5208.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::OnDeviceAttrs</text>
+<g id="a_node137"><a xlink:href="structtvm_1_1relay_1_1NdarraySizeAttrs.html" target="_top" xlink:title="Attributes for ndarray_size operator. ">
+<polygon fill="white" stroke="black" points="549,-5399.5 549,-5418.5 701,-5418.5 701,-5399.5 549,-5399.5"/>
+<text text-anchor="middle" x="625" y="-5406.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::NdarraySizeAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node136&#45;&gt;Node137 -->
 <g id="edge136" class="edge"><title>Node136&#45;&gt;Node137</title>
-<path fill="none" stroke="midnightblue" d="M481.382,-5211C505.713,-5211 532.044,-5211 555.381,-5211"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="481.091,-5207.5 471.091,-5211 481.091,-5214.5 481.091,-5207.5"/>
+<path fill="none" stroke="midnightblue" d="M487.817,-5409C508.008,-5409 529.249,-5409 548.791,-5409"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="487.686,-5405.5 477.686,-5409 487.686,-5412.5 487.686,-5405.5"/>
 </g>
 <!-- Node139 -->
 <g id="node139" class="node"><title>Node139</title>
-<g id="a_node139"><a xlink:href="structtvm_1_1relay_1_1OneHotAttrs.html" target="_top" xlink:title="Attributes used in one&#45;hot operator. ">
-<polygon fill="white" stroke="black" points="560,-5157.5 560,-5176.5 690,-5176.5 690,-5157.5 560,-5157.5"/>
-<text text-anchor="middle" x="625" y="-5164.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::OneHotAttrs</text>
+<g id="a_node139"><a xlink:href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html" target="_top" xlink:title="Attributes used in non_maximum_suppression operator. ">
+<polygon fill="white" stroke="black" points="527,-5345 527,-5375 723,-5375 723,-5345 527,-5345"/>
+<text text-anchor="start" x="535" y="-5363" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::NonMaximumSuppression</text>
+<text text-anchor="middle" x="625" y="-5352" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node138&#45;&gt;Node139 -->
 <g id="edge138" class="edge"><title>Node138&#45;&gt;Node139</title>
-<path fill="none" stroke="midnightblue" d="M494.19,-5167C516.375,-5167 539.462,-5167 559.907,-5167"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-5163.5 484.073,-5167 494.073,-5170.5 494.073,-5163.5"/>
+<path fill="none" stroke="midnightblue" d="M491.593,-5360C503.168,-5360 515.028,-5360 526.664,-5360"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="491.507,-5356.5 481.507,-5360 491.507,-5363.5 491.507,-5356.5"/>
 </g>
 <!-- Node141 -->
 <g id="node141" class="node"><title>Node141</title>
-<g id="a_node141"><a xlink:href="structtvm_1_1relay_1_1PadAttrs.html" target="_top" xlink:title="Attributes used for the padding operator. ">
-<polygon fill="white" stroke="black" points="570,-5119.5 570,-5138.5 680,-5138.5 680,-5119.5 570,-5119.5"/>
-<text text-anchor="middle" x="625" y="-5126.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::PadAttrs</text>
+<g id="a_node141"><a xlink:href="structtvm_1_1relay_1_1OnDeviceAttrs.html" target="_top" xlink:title="Options for the device annotation operators. ">
+<polygon fill="white" stroke="black" points="555.5,-5301.5 555.5,-5320.5 694.5,-5320.5 694.5,-5301.5 555.5,-5301.5"/>
+<text text-anchor="middle" x="625" y="-5308.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::OnDeviceAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node140&#45;&gt;Node141 -->
 <g id="edge140" class="edge"><title>Node140&#45;&gt;Node141</title>
-<path fill="none" stroke="midnightblue" d="M484.264,-5129C513.004,-5129 544.229,-5129 569.858,-5129"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="484.216,-5125.5 474.216,-5129 484.216,-5132.5 484.216,-5125.5"/>
+<path fill="none" stroke="midnightblue" d="M481.382,-5311C505.713,-5311 532.044,-5311 555.381,-5311"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="481.091,-5307.5 471.091,-5311 481.091,-5314.5 481.091,-5307.5"/>
 </g>
 <!-- Node143 -->
 <g id="node143" class="node"><title>Node143</title>
-<g id="a_node143"><a xlink:href="structtvm_1_1relay_1_1PReluAttrs.html" target="_top" xlink:title="Attributes for prelu operator. ">
-<polygon fill="white" stroke="black" points="565.5,-5081.5 565.5,-5100.5 684.5,-5100.5 684.5,-5081.5 565.5,-5081.5"/>
-<text text-anchor="middle" x="625" y="-5088.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::PReluAttrs</text>
+<g id="a_node143"><a xlink:href="structtvm_1_1relay_1_1OneHotAttrs.html" target="_top" xlink:title="Attributes used in one&#45;hot operator. ">
+<polygon fill="white" stroke="black" points="560,-5257.5 560,-5276.5 690,-5276.5 690,-5257.5 560,-5257.5"/>
+<text text-anchor="middle" x="625" y="-5264.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::OneHotAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node142&#45;&gt;Node143 -->
 <g id="edge142" class="edge"><title>Node142&#45;&gt;Node143</title>
-<path fill="none" stroke="midnightblue" d="M488.239,-5091C514.205,-5091 541.87,-5091 565.407,-5091"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="488.003,-5087.5 478.003,-5091 488.003,-5094.5 488.003,-5087.5"/>
+<path fill="none" stroke="midnightblue" d="M494.19,-5267C516.375,-5267 539.462,-5267 559.907,-5267"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-5263.5 484.073,-5267 494.073,-5270.5 494.073,-5263.5"/>
 </g>
 <!-- Node145 -->
 <g id="node145" class="node"><title>Node145</title>
-<g id="a_node145"><a xlink:href="structtvm_1_1relay_1_1ProposalAttrs.html" target="_top" xlink:title="Attributes used in proposal operators. ">
-<polygon fill="white" stroke="black" points="558,-5037.5 558,-5056.5 692,-5056.5 692,-5037.5 558,-5037.5"/>
-<text text-anchor="middle" x="625" y="-5044.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ProposalAttrs</text>
+<g id="a_node145"><a xlink:href="structtvm_1_1relay_1_1PadAttrs.html" target="_top" xlink:title="Attributes used for the padding operator. ">
+<polygon fill="white" stroke="black" points="570,-5219.5 570,-5238.5 680,-5238.5 680,-5219.5 570,-5219.5"/>
+<text text-anchor="middle" x="625" y="-5226.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::PadAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node144&#45;&gt;Node145 -->
 <g id="edge144" class="edge"><title>Node144&#45;&gt;Node145</title>
-<path fill="none" stroke="midnightblue" d="M479.331,-5047C505.05,-5047 533.183,-5047 557.746,-5047"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-5043.5 469.231,-5047 479.231,-5050.5 479.231,-5043.5"/>
+<path fill="none" stroke="midnightblue" d="M484.264,-5229C513.004,-5229 544.229,-5229 569.858,-5229"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="484.216,-5225.5 474.216,-5229 484.216,-5232.5 484.216,-5225.5"/>
 </g>
 <!-- Node147 -->
 <g id="node147" class="node"><title>Node147</title>
-<g id="a_node147"><a xlink:href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_top" xlink:title="Attribute for quantize operator. ">
-<polygon fill="white" stroke="black" points="556.5,-4983 556.5,-5013 693.5,-5013 693.5,-4983 556.5,-4983"/>
-<text text-anchor="start" x="564.5" y="-5001" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::qnn::Quantize</text>
-<text text-anchor="middle" x="625" y="-4990" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node147"><a xlink:href="structtvm_1_1relay_1_1PReluAttrs.html" target="_top" xlink:title="Attributes for prelu operator. ">
+<polygon fill="white" stroke="black" points="565.5,-5181.5 565.5,-5200.5 684.5,-5200.5 684.5,-5181.5 565.5,-5181.5"/>
+<text text-anchor="middle" x="625" y="-5188.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::PReluAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node146&#45;&gt;Node147 -->
 <g id="edge146" class="edge"><title>Node146&#45;&gt;Node147</title>
-<path fill="none" stroke="midnightblue" d="M479.782,-4998C504.907,-4998 532.298,-4998 556.394,-4998"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.54,-4994.5 469.54,-4998 479.54,-5001.5 479.54,-4994.5"/>
+<path fill="none" stroke="midnightblue" d="M488.239,-5191C514.205,-5191 541.87,-5191 565.407,-5191"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="488.003,-5187.5 478.003,-5191 488.003,-5194.5 488.003,-5187.5"/>
 </g>
 <!-- Node149 -->
 <g id="node149" class="node"><title>Node149</title>
-<g id="a_node149"><a xlink:href="structtvm_1_1relay_1_1ReduceAttrs.html" target="_top" xlink:title="Attributes for Reduce operators. ">
-<polygon fill="white" stroke="black" points="561,-4944.5 561,-4963.5 689,-4963.5 689,-4944.5 561,-4944.5"/>
-<text text-anchor="middle" x="625" y="-4951.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ReduceAttrs</text>
+<g id="a_node149"><a xlink:href="structtvm_1_1relay_1_1ProposalAttrs.html" target="_top" xlink:title="Attributes used in proposal operators. ">
+<polygon fill="white" stroke="black" points="558,-5137.5 558,-5156.5 692,-5156.5 692,-5137.5 558,-5137.5"/>
+<text text-anchor="middle" x="625" y="-5144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ProposalAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node148&#45;&gt;Node149 -->
 <g id="edge148" class="edge"><title>Node148&#45;&gt;Node149</title>
-<path fill="none" stroke="midnightblue" d="M492.897,-4954C515.849,-4954 539.844,-4954 560.938,-4954"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="492.789,-4950.5 482.789,-4954 492.789,-4957.5 492.789,-4950.5"/>
+<path fill="none" stroke="midnightblue" d="M479.331,-5147C505.05,-5147 533.183,-5147 557.746,-5147"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-5143.5 469.231,-5147 479.231,-5150.5 479.231,-5143.5"/>
 </g>
 <!-- Node151 -->
 <g id="node151" class="node"><title>Node151</title>
-<g id="a_node151"><a xlink:href="structtvm_1_1relay_1_1RepeatAttrs.html" target="_top" xlink:title="Attributes used in repeat operators. ">
-<polygon fill="white" stroke="black" points="562,-4906.5 562,-4925.5 688,-4925.5 688,-4906.5 562,-4906.5"/>
-<text text-anchor="middle" x="625" y="-4913.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::RepeatAttrs</text>
+<g id="a_node151"><a xlink:href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_top" xlink:title="Attribute for quantize operator. ">
+<polygon fill="white" stroke="black" points="556.5,-5083 556.5,-5113 693.5,-5113 693.5,-5083 556.5,-5083"/>
+<text text-anchor="start" x="564.5" y="-5101" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::qnn::Quantize</text>
+<text text-anchor="middle" x="625" y="-5090" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node150&#45;&gt;Node151 -->
 <g id="edge150" class="edge"><title>Node150&#45;&gt;Node151</title>
-<path fill="none" stroke="midnightblue" d="M492.16,-4916C515.716,-4916 540.416,-4916 561.987,-4916"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="492.147,-4912.5 482.147,-4916 492.147,-4919.5 492.147,-4912.5"/>
+<path fill="none" stroke="midnightblue" d="M479.782,-5098C504.907,-5098 532.298,-5098 556.394,-5098"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="479.54,-5094.5 469.54,-5098 479.54,-5101.5 479.54,-5094.5"/>
 </g>
 <!-- Node153 -->
 <g id="node153" class="node"><title>Node153</title>
-<g id="a_node153"><a xlink:href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_top" xlink:title="Attribute for requantize operator. ">
-<polygon fill="white" stroke="black" points="552,-4857 552,-4887 698,-4887 698,-4857 552,-4857"/>
-<text text-anchor="start" x="560" y="-4875" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::qnn::Requantize</text>
-<text text-anchor="middle" x="625" y="-4864" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node153"><a xlink:href="structtvm_1_1relay_1_1ReduceAttrs.html" target="_top" xlink:title="Attributes for Reduce operators. ">
+<polygon fill="white" stroke="black" points="561,-5044.5 561,-5063.5 689,-5063.5 689,-5044.5 561,-5044.5"/>
+<text text-anchor="middle" x="625" y="-5051.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ReduceAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node152&#45;&gt;Node153 -->
 <g id="edge152" class="edge"><title>Node152&#45;&gt;Node153</title>
-<path fill="none" stroke="midnightblue" d="M484.593,-4872C506.747,-4872 530.358,-4872 551.731,-4872"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="484.53,-4868.5 474.53,-4872 484.53,-4875.5 484.53,-4868.5"/>
+<path fill="none" stroke="midnightblue" d="M492.897,-5054C515.849,-5054 539.844,-5054 560.938,-5054"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="492.789,-5050.5 482.789,-5054 492.789,-5057.5 492.789,-5050.5"/>
 </g>
 <!-- Node155 -->
 <g id="node155" class="node"><title>Node155</title>
-<g id="a_node155"><a xlink:href="structtvm_1_1relay_1_1ReshapeAttrs.html" target="_top" xlink:title="Attributes used in reshape operators. ">
-<polygon fill="white" stroke="black" points="558,-4818.5 558,-4837.5 692,-4837.5 692,-4818.5 558,-4818.5"/>
-<text text-anchor="middle" x="625" y="-4825.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ReshapeAttrs</text>
+<g id="a_node155"><a xlink:href="structtvm_1_1relay_1_1RepeatAttrs.html" target="_top" xlink:title="Attributes used in repeat operators. ">
+<polygon fill="white" stroke="black" points="562,-5006.5 562,-5025.5 688,-5025.5 688,-5006.5 562,-5006.5"/>
+<text text-anchor="middle" x="625" y="-5013.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::RepeatAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node154&#45;&gt;Node155 -->
 <g id="edge154" class="edge"><title>Node154&#45;&gt;Node155</title>
-<path fill="none" stroke="midnightblue" d="M495.859,-4828C516.728,-4828 538.314,-4828 557.685,-4828"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="495.684,-4824.5 485.684,-4828 495.684,-4831.5 495.684,-4824.5"/>
+<path fill="none" stroke="midnightblue" d="M492.16,-5016C515.716,-5016 540.416,-5016 561.987,-5016"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="492.147,-5012.5 482.147,-5016 492.147,-5019.5 492.147,-5012.5"/>
 </g>
 <!-- Node157 -->
 <g id="node157" class="node"><title>Node157</title>
-<g id="a_node157"><a xlink:href="structtvm_1_1relay_1_1Resize3dAttrs.html" target="_top" xlink:title="Attributes used in image resize3d operator. ">
-<polygon fill="white" stroke="black" points="557.5,-4774.5 557.5,-4793.5 692.5,-4793.5 692.5,-4774.5 557.5,-4774.5"/>
-<text text-anchor="middle" x="625" y="-4781.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Resize3dAttrs</text>
+<g id="a_node157"><a xlink:href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_top" xlink:title="Attribute for requantize operator. ">
+<polygon fill="white" stroke="black" points="552,-4957 552,-4987 698,-4987 698,-4957 552,-4957"/>
+<text text-anchor="start" x="560" y="-4975" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::qnn::Requantize</text>
+<text text-anchor="middle" x="625" y="-4964" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node156&#45;&gt;Node157 -->
 <g id="edge156" class="edge"><title>Node156&#45;&gt;Node157</title>
-<path fill="none" stroke="midnightblue" d="M479.284,-4784C504.882,-4784 532.877,-4784 557.365,-4784"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-4780.5 469.231,-4784 479.231,-4787.5 479.231,-4780.5"/>
+<path fill="none" stroke="midnightblue" d="M484.593,-4972C506.747,-4972 530.358,-4972 551.731,-4972"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="484.53,-4968.5 474.53,-4972 484.53,-4975.5 484.53,-4968.5"/>
 </g>
 <!-- Node159 -->
 <g id="node159" class="node"><title>Node159</title>
-<g id="a_node159"><a xlink:href="structtvm_1_1relay_1_1ResizeAttrs.html" target="_top" xlink:title="Attributes used in image resize operator. ">
-<polygon fill="white" stroke="black" points="563.5,-4730.5 563.5,-4749.5 686.5,-4749.5 686.5,-4730.5 563.5,-4730.5"/>
-<text text-anchor="middle" x="625" y="-4737.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ResizeAttrs</text>
+<g id="a_node159"><a xlink:href="structtvm_1_1relay_1_1ReshapeAttrs.html" target="_top" xlink:title="Attributes used in reshape operators. ">
+<polygon fill="white" stroke="black" points="558,-4918.5 558,-4937.5 692,-4937.5 692,-4918.5 558,-4918.5"/>
+<text text-anchor="middle" x="625" y="-4925.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ReshapeAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node158&#45;&gt;Node159 -->
 <g id="edge158" class="edge"><title>Node158&#45;&gt;Node159</title>
-<path fill="none" stroke="midnightblue" d="M490.578,-4740C515.058,-4740 540.885,-4740 563.226,-4740"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="490.549,-4736.5 480.549,-4740 490.549,-4743.5 490.549,-4736.5"/>
+<path fill="none" stroke="midnightblue" d="M495.859,-4928C516.728,-4928 538.314,-4928 557.685,-4928"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="495.684,-4924.5 485.684,-4928 495.684,-4931.5 495.684,-4924.5"/>
 </g>
 <!-- Node161 -->
 <g id="node161" class="node"><title>Node161</title>
-<g id="a_node161"><a xlink:href="structtvm_1_1relay_1_1ReverseAttrs.html" target="_top" xlink:title="Attributes used in reverse operators. ">
-<polygon fill="white" stroke="black" points="559.5,-4692.5 559.5,-4711.5 690.5,-4711.5 690.5,-4692.5 559.5,-4692.5"/>
-<text text-anchor="middle" x="625" y="-4699.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ReverseAttrs</text>
+<g id="a_node161"><a xlink:href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html" target="_top" xlink:title="Attributes for VM reshape_tensor operator. ">
+<polygon fill="white" stroke="black" points="554.5,-4869 554.5,-4899 695.5,-4899 695.5,-4869 554.5,-4869"/>
+<text text-anchor="start" x="562.5" y="-4887" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ReshapeTensor</text>
+<text text-anchor="middle" x="625" y="-4876" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node160&#45;&gt;Node161 -->
 <g id="edge160" class="edge"><title>Node160&#45;&gt;Node161</title>
-<path fill="none" stroke="midnightblue" d="M494.089,-4702C516.052,-4702 538.904,-4702 559.206,-4702"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-4698.5 484.073,-4702 494.073,-4705.5 494.073,-4698.5"/>
+<path fill="none" stroke="midnightblue" d="M494.211,-4884C514.363,-4884 535.258,-4884 554.242,-4884"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-4880.5 484.073,-4884 494.073,-4887.5 494.073,-4880.5"/>
 </g>
 <!-- Node163 -->
 <g id="node163" class="node"><title>Node163</title>
-<g id="a_node163"><a xlink:href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html" target="_top" xlink:title="Attributes used in reverse_sequence operators. ">
-<polygon fill="white" stroke="black" points="547.5,-4643 547.5,-4673 702.5,-4673 702.5,-4643 547.5,-4643"/>
-<text text-anchor="start" x="555.5" y="-4661" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ReverseSequence</text>
-<text text-anchor="middle" x="625" y="-4650" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node163"><a xlink:href="structtvm_1_1relay_1_1Resize3dAttrs.html" target="_top" xlink:title="Attributes used in image resize3d operator. ">
+<polygon fill="white" stroke="black" points="557.5,-4825.5 557.5,-4844.5 692.5,-4844.5 692.5,-4825.5 557.5,-4825.5"/>
+<text text-anchor="middle" x="625" y="-4832.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::Resize3dAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node162&#45;&gt;Node163 -->
 <g id="edge162" class="edge"><title>Node162&#45;&gt;Node163</title>
-<path fill="none" stroke="midnightblue" d="M501.341,-4658C516.855,-4658 532.62,-4658 547.451,-4658"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="501.196,-4654.5 491.196,-4658 501.196,-4661.5 501.196,-4654.5"/>
+<path fill="none" stroke="midnightblue" d="M479.284,-4835C504.882,-4835 532.877,-4835 557.365,-4835"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-4831.5 469.231,-4835 479.231,-4838.5 479.231,-4831.5"/>
 </g>
 <!-- Node165 -->
 <g id="node165" class="node"><title>Node165</title>
-<g id="a_node165"><a xlink:href="structtvm_1_1relay_1_1ROIAlignAttrs.html" target="_top" xlink:title="Attributes used in roi_align operators. ">
-<polygon fill="white" stroke="black" points="559,-4599.5 559,-4618.5 691,-4618.5 691,-4599.5 559,-4599.5"/>
-<text text-anchor="middle" x="625" y="-4606.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ROIAlignAttrs</text>
+<g id="a_node165"><a xlink:href="structtvm_1_1relay_1_1ResizeAttrs.html" target="_top" xlink:title="Attributes used in image resize operator. ">
+<polygon fill="white" stroke="black" points="563.5,-4781.5 563.5,-4800.5 686.5,-4800.5 686.5,-4781.5 563.5,-4781.5"/>
+<text text-anchor="middle" x="625" y="-4788.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ResizeAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node164&#45;&gt;Node165 -->
 <g id="edge164" class="edge"><title>Node164&#45;&gt;Node165</title>
-<path fill="none" stroke="midnightblue" d="M477.707,-4609C504.226,-4609 533.47,-4609 558.795,-4609"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="477.69,-4605.5 467.69,-4609 477.69,-4612.5 477.69,-4605.5"/>
+<path fill="none" stroke="midnightblue" d="M490.578,-4791C515.058,-4791 540.885,-4791 563.226,-4791"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="490.549,-4787.5 480.549,-4791 490.549,-4794.5 490.549,-4787.5"/>
 </g>
 <!-- Node167 -->
 <g id="node167" class="node"><title>Node167</title>
-<g id="a_node167"><a xlink:href="structtvm_1_1relay_1_1ROIPoolAttrs.html" target="_top" xlink:title="Attributes used in roi_pool operators. ">
-<polygon fill="white" stroke="black" points="560.5,-4555.5 560.5,-4574.5 689.5,-4574.5 689.5,-4555.5 560.5,-4555.5"/>
-<text text-anchor="middle" x="625" y="-4562.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ROIPoolAttrs</text>
+<g id="a_node167"><a xlink:href="structtvm_1_1relay_1_1ReverseAttrs.html" target="_top" xlink:title="Attributes used in reverse operators. ">
+<polygon fill="white" stroke="black" points="559.5,-4743.5 559.5,-4762.5 690.5,-4762.5 690.5,-4743.5 559.5,-4743.5"/>
+<text text-anchor="middle" x="625" y="-4750.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ReverseAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node166&#45;&gt;Node167 -->
 <g id="edge166" class="edge"><title>Node166&#45;&gt;Node167</title>
-<path fill="none" stroke="midnightblue" d="M493.982,-4565C516.418,-4565 539.789,-4565 560.426,-4565"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="493.752,-4561.5 483.752,-4565 493.752,-4568.5 493.752,-4561.5"/>
+<path fill="none" stroke="midnightblue" d="M494.089,-4753C516.052,-4753 538.904,-4753 559.206,-4753"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="494.073,-4749.5 484.073,-4753 494.073,-4756.5 494.073,-4749.5"/>
 </g>
 <!-- Node169 -->
 <g id="node169" class="node"><title>Node169</title>
-<g id="a_node169"><a xlink:href="structtvm_1_1relay_1_1ScatterAttrs.html" target="_top" xlink:title="tvm::relay::ScatterAttrs">
-<polygon fill="white" stroke="black" points="561,-4517.5 561,-4536.5 689,-4536.5 689,-4517.5 561,-4517.5"/>
-<text text-anchor="middle" x="625" y="-4524.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ScatterAttrs</text>
+<g id="a_node169"><a xlink:href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html" target="_top" xlink:title="Attributes used in reverse_sequence operators. ">
+<polygon fill="white" stroke="black" points="547.5,-4694 547.5,-4724 702.5,-4724 702.5,-4694 547.5,-4694"/>
+<text text-anchor="start" x="555.5" y="-4712" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ReverseSequence</text>
+<text text-anchor="middle" x="625" y="-4701" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node168&#45;&gt;Node169 -->
 <g id="edge168" class="edge"><title>Node168&#45;&gt;Node169</title>
-<path fill="none" stroke="midnightblue" d="M493.157,-4527C515.968,-4527 539.793,-4527 560.766,-4527"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="493.109,-4523.5 483.109,-4527 493.109,-4530.5 493.109,-4523.5"/>
+<path fill="none" stroke="midnightblue" d="M501.341,-4709C516.855,-4709 532.62,-4709 547.451,-4709"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="501.196,-4705.5 491.196,-4709 501.196,-4712.5 501.196,-4705.5"/>
 </g>
 <!-- Node171 -->
 <g id="node171" class="node"><title>Node171</title>
-<g id="a_node171"><a xlink:href="structtvm_1_1relay_1_1SequenceMaskAttrs.html" target="_top" xlink:title="tvm::relay::SequenceMask\lAttrs">
-<polygon fill="white" stroke="black" points="553.5,-4468 553.5,-4498 696.5,-4498 696.5,-4468 553.5,-4468"/>
-<text text-anchor="start" x="561.5" y="-4486" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SequenceMask</text>
-<text text-anchor="middle" x="625" y="-4475" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node171"><a xlink:href="structtvm_1_1relay_1_1ROIAlignAttrs.html" target="_top" xlink:title="Attributes used in roi_align operators. ">
+<polygon fill="white" stroke="black" points="559,-4650.5 559,-4669.5 691,-4669.5 691,-4650.5 559,-4650.5"/>
+<text text-anchor="middle" x="625" y="-4657.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ROIAlignAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node170&#45;&gt;Node171 -->
 <g id="edge170" class="edge"><title>Node170&#45;&gt;Node171</title>
-<path fill="none" stroke="midnightblue" d="M482.26,-4483C505.611,-4483 530.741,-4483 553.261,-4483"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="482.025,-4479.5 472.025,-4483 482.025,-4486.5 482.025,-4479.5"/>
+<path fill="none" stroke="midnightblue" d="M477.707,-4660C504.226,-4660 533.47,-4660 558.795,-4660"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="477.69,-4656.5 467.69,-4660 477.69,-4663.5 477.69,-4656.5"/>
 </g>
 <!-- Node173 -->
 <g id="node173" class="node"><title>Node173</title>
-<g id="a_node173"><a xlink:href="structtvm_1_1relay_1_1ShapeFuncAttrs.html" target="_top" xlink:title="Options for the shape function operator. ">
-<polygon fill="white" stroke="black" points="552,-4424.5 552,-4443.5 698,-4443.5 698,-4424.5 552,-4424.5"/>
-<text text-anchor="middle" x="625" y="-4431.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ShapeFuncAttrs</text>
+<g id="a_node173"><a xlink:href="structtvm_1_1relay_1_1ROIPoolAttrs.html" target="_top" xlink:title="Attributes used in roi_pool operators. ">
+<polygon fill="white" stroke="black" points="560.5,-4606.5 560.5,-4625.5 689.5,-4625.5 689.5,-4606.5 560.5,-4606.5"/>
+<text text-anchor="middle" x="625" y="-4613.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ROIPoolAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node172&#45;&gt;Node173 -->
 <g id="edge172" class="edge"><title>Node172&#45;&gt;Node173</title>
-<path fill="none" stroke="midnightblue" d="M484.593,-4434C506.747,-4434 530.358,-4434 551.731,-4434"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="484.53,-4430.5 474.53,-4434 484.53,-4437.5 484.53,-4430.5"/>
+<path fill="none" stroke="midnightblue" d="M493.982,-4616C516.418,-4616 539.789,-4616 560.426,-4616"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="493.752,-4612.5 483.752,-4616 493.752,-4619.5 493.752,-4612.5"/>
 </g>
 <!-- Node175 -->
 <g id="node175" class="node"><title>Node175</title>
-<g id="a_node175"><a xlink:href="structtvm_1_1relay_1_1ShapeOfAttrs.html" target="_top" xlink:title="Attributes for ShapeOf operator. ">
-<polygon fill="white" stroke="black" points="558,-4380.5 558,-4399.5 692,-4399.5 692,-4380.5 558,-4380.5"/>
-<text text-anchor="middle" x="625" y="-4387.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ShapeOfAttrs</text>
+<g id="a_node175"><a xlink:href="structtvm_1_1relay_1_1ScatterAddAttrs.html" target="_top" xlink:title="tvm::relay::ScatterAddAttrs">
+<polygon fill="white" stroke="black" points="551.5,-4562.5 551.5,-4581.5 698.5,-4581.5 698.5,-4562.5 551.5,-4562.5"/>
+<text text-anchor="middle" x="625" y="-4569.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ScatterAddAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node174&#45;&gt;Node175 -->
 <g id="edge174" class="edge"><title>Node174&#45;&gt;Node175</title>
-<path fill="none" stroke="midnightblue" d="M496.169,-4390C517.01,-4390 538.551,-4390 557.874,-4390"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="496.007,-4386.5 486.007,-4390 496.007,-4393.5 496.007,-4386.5"/>
+<path fill="none" stroke="midnightblue" d="M485.396,-4572C507.189,-4572 530.343,-4572 551.36,-4572"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="485.159,-4568.5 475.159,-4572 485.159,-4575.5 485.159,-4568.5"/>
 </g>
 <!-- Node177 -->
 <g id="node177" class="node"><title>Node177</title>
-<g id="a_node177"><a xlink:href="structtvm_1_1relay_1_1SliceLikeAttrs.html" target="_top" xlink:title="tvm::relay::SliceLikeAttrs">
-<polygon fill="white" stroke="black" points="558,-4336.5 558,-4355.5 692,-4355.5 692,-4336.5 558,-4336.5"/>
-<text text-anchor="middle" x="625" y="-4343.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SliceLikeAttrs</text>
+<g id="a_node177"><a xlink:href="structtvm_1_1relay_1_1ScatterAttrs.html" target="_top" xlink:title="tvm::relay::ScatterAttrs">
+<polygon fill="white" stroke="black" points="561,-4518.5 561,-4537.5 689,-4537.5 689,-4518.5 561,-4518.5"/>
+<text text-anchor="middle" x="625" y="-4525.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ScatterAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node176&#45;&gt;Node177 -->
 <g id="edge176" class="edge"><title>Node176&#45;&gt;Node177</title>
-<path fill="none" stroke="midnightblue" d="M479.331,-4346C505.05,-4346 533.183,-4346 557.746,-4346"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-4342.5 469.231,-4346 479.231,-4349.5 479.231,-4342.5"/>
+<path fill="none" stroke="midnightblue" d="M493.157,-4528C515.968,-4528 539.793,-4528 560.766,-4528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="493.109,-4524.5 483.109,-4528 493.109,-4531.5 493.109,-4524.5"/>
 </g>
 <!-- Node179 -->
 <g id="node179" class="node"><title>Node179</title>
-<g id="a_node179"><a xlink:href="structtvm_1_1relay_1_1SoftmaxAttrs.html" target="_top" xlink:title="Attributes used in softmax operators. ">
-<polygon fill="white" stroke="black" points="558,-4292.5 558,-4311.5 692,-4311.5 692,-4292.5 558,-4292.5"/>
-<text text-anchor="middle" x="625" y="-4299.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SoftmaxAttrs</text>
+<g id="a_node179"><a xlink:href="structtvm_1_1relay_1_1SequenceMaskAttrs.html" target="_top" xlink:title="tvm::relay::SequenceMask\lAttrs">
+<polygon fill="white" stroke="black" points="553.5,-4469 553.5,-4499 696.5,-4499 696.5,-4469 553.5,-4469"/>
+<text text-anchor="start" x="561.5" y="-4487" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SequenceMask</text>
+<text text-anchor="middle" x="625" y="-4476" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node178&#45;&gt;Node179 -->
 <g id="edge178" class="edge"><title>Node178&#45;&gt;Node179</title>
-<path fill="none" stroke="midnightblue" d="M495.859,-4302C516.728,-4302 538.314,-4302 557.685,-4302"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="495.684,-4298.5 485.684,-4302 495.684,-4305.5 495.684,-4298.5"/>
+<path fill="none" stroke="midnightblue" d="M482.26,-4484C505.611,-4484 530.741,-4484 553.261,-4484"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="482.025,-4480.5 472.025,-4484 482.025,-4487.5 482.025,-4480.5"/>
 </g>
 <!-- Node181 -->
 <g id="node181" class="node"><title>Node181</title>
-<g id="a_node181"><a xlink:href="structtvm_1_1relay_1_1SparseDenseAttrs.html" target="_top" xlink:title="Attributes for sparse_dense operator. ">
-<polygon fill="white" stroke="black" points="546,-4248.5 546,-4267.5 704,-4267.5 704,-4248.5 546,-4248.5"/>
-<text text-anchor="middle" x="625" y="-4255.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SparseDenseAttrs</text>
+<g id="a_node181"><a xlink:href="structtvm_1_1relay_1_1ShapeFuncAttrs.html" target="_top" xlink:title="Options for the shape function operator. ">
+<polygon fill="white" stroke="black" points="552,-4425.5 552,-4444.5 698,-4444.5 698,-4425.5 552,-4425.5"/>
+<text text-anchor="middle" x="625" y="-4432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ShapeFuncAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node180&#45;&gt;Node181 -->
 <g id="edge180" class="edge"><title>Node180&#45;&gt;Node181</title>
-<path fill="none" stroke="midnightblue" d="M490.627,-4258C508.932,-4258 527.986,-4258 545.773,-4258"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="490.549,-4254.5 480.549,-4258 490.549,-4261.5 490.549,-4254.5"/>
+<path fill="none" stroke="midnightblue" d="M484.593,-4435C506.747,-4435 530.358,-4435 551.731,-4435"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="484.53,-4431.5 474.53,-4435 484.53,-4438.5 484.53,-4431.5"/>
 </g>
 <!-- Node183 -->
 <g id="node183" class="node"><title>Node183</title>
-<g id="a_node183"><a xlink:href="structtvm_1_1relay_1_1SparseToDenseAttrs.html" target="_top" xlink:title="Attributes used in sparse_to_dense operator. ">
-<polygon fill="white" stroke="black" points="553,-4194 553,-4224 697,-4224 697,-4194 553,-4194"/>
-<text text-anchor="start" x="561" y="-4212" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SparseToDense</text>
-<text text-anchor="middle" x="625" y="-4201" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node183"><a xlink:href="structtvm_1_1relay_1_1ShapeOfAttrs.html" target="_top" xlink:title="Attributes for ShapeOf operator. ">
+<polygon fill="white" stroke="black" points="558,-4381.5 558,-4400.5 692,-4400.5 692,-4381.5 558,-4381.5"/>
+<text text-anchor="middle" x="625" y="-4388.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::ShapeOfAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node182&#45;&gt;Node183 -->
 <g id="edge182" class="edge"><title>Node182&#45;&gt;Node183</title>
-<path fill="none" stroke="midnightblue" d="M480.224,-4209C504.024,-4209 529.825,-4209 552.913,-4209"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-4205.5 470.159,-4209 480.159,-4212.5 480.159,-4205.5"/>
+<path fill="none" stroke="midnightblue" d="M496.169,-4391C517.01,-4391 538.551,-4391 557.874,-4391"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="496.007,-4387.5 486.007,-4391 496.007,-4394.5 496.007,-4387.5"/>
 </g>
 <!-- Node185 -->
 <g id="node185" class="node"><title>Node185</title>
-<g id="a_node185"><a xlink:href="structtvm_1_1relay_1_1SparseTransposeAttrs.html" target="_top" xlink:title="Attributes for sparse_transpose operator. ">
-<polygon fill="white" stroke="black" points="549,-4145 549,-4175 701,-4175 701,-4145 549,-4145"/>
-<text text-anchor="start" x="557" y="-4163" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SparseTranspose</text>
-<text text-anchor="middle" x="625" y="-4152" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node185"><a xlink:href="structtvm_1_1relay_1_1SliceLikeAttrs.html" target="_top" xlink:title="tvm::relay::SliceLikeAttrs">
+<polygon fill="white" stroke="black" points="558,-4337.5 558,-4356.5 692,-4356.5 692,-4337.5 558,-4337.5"/>
+<text text-anchor="middle" x="625" y="-4344.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SliceLikeAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node184&#45;&gt;Node185 -->
 <g id="edge184" class="edge"><title>Node184&#45;&gt;Node185</title>
-<path fill="none" stroke="midnightblue" d="M499.538,-4160C516.162,-4160 533.13,-4160 548.974,-4160"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="499.245,-4156.5 489.245,-4160 499.245,-4163.5 499.245,-4156.5"/>
+<path fill="none" stroke="midnightblue" d="M479.331,-4347C505.05,-4347 533.183,-4347 557.746,-4347"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="479.231,-4343.5 469.231,-4347 479.231,-4350.5 479.231,-4343.5"/>
 </g>
 <!-- Node187 -->
 <g id="node187" class="node"><title>Node187</title>
-<g id="a_node187"><a xlink:href="structtvm_1_1relay_1_1SplitAttrs.html" target="_top" xlink:title="tvm::relay::SplitAttrs">
-<polygon fill="white" stroke="black" points="568,-4106.5 568,-4125.5 682,-4125.5 682,-4106.5 568,-4106.5"/>
-<text text-anchor="middle" x="625" y="-4113.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SplitAttrs</text>
+<g id="a_node187"><a xlink:href="structtvm_1_1relay_1_1SoftmaxAttrs.html" target="_top" xlink:title="Attributes used in softmax operators. ">
+<polygon fill="white" stroke="black" points="558,-4293.5 558,-4312.5 692,-4312.5 692,-4293.5 558,-4293.5"/>
+<text text-anchor="middle" x="625" y="-4300.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SoftmaxAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node186&#45;&gt;Node187 -->
 <g id="edge186" class="edge"><title>Node186&#45;&gt;Node187</title>
-<path fill="none" stroke="midnightblue" d="M486.133,-4116C513.646,-4116 543.262,-4116 567.966,-4116"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.104,-4112.5 476.104,-4116 486.104,-4119.5 486.104,-4112.5"/>
+<path fill="none" stroke="midnightblue" d="M495.859,-4303C516.728,-4303 538.314,-4303 557.685,-4303"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="495.684,-4299.5 485.684,-4303 495.684,-4306.5 495.684,-4299.5"/>
 </g>
 <!-- Node189 -->
 <g id="node189" class="node"><title>Node189</title>
-<g id="a_node189"><a xlink:href="structtvm_1_1relay_1_1SqueezeAttrs.html" target="_top" xlink:title="Attributes used in squeeze operators. ">
-<polygon fill="white" stroke="black" points="557.5,-4068.5 557.5,-4087.5 692.5,-4087.5 692.5,-4068.5 557.5,-4068.5"/>
-<text text-anchor="middle" x="625" y="-4075.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SqueezeAttrs</text>
+<g id="a_node189"><a xlink:href="structtvm_1_1relay_1_1SparseDenseAttrs.html" target="_top" xlink:title="Attributes for sparse_dense operator. ">
+<polygon fill="white" stroke="black" points="546,-4249.5 546,-4268.5 704,-4268.5 704,-4249.5 546,-4249.5"/>
+<text text-anchor="middle" x="625" y="-4256.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SparseDenseAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node188&#45;&gt;Node189 -->
 <g id="edge188" class="edge"><title>Node188&#45;&gt;Node189</title>
-<path fill="none" stroke="midnightblue" d="M496.91,-4078C517.28,-4078 538.285,-4078 557.207,-4078"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="496.653,-4074.5 486.653,-4078 496.653,-4081.5 496.653,-4074.5"/>
+<path fill="none" stroke="midnightblue" d="M490.627,-4259C508.932,-4259 527.986,-4259 545.773,-4259"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="490.549,-4255.5 480.549,-4259 490.549,-4262.5 490.549,-4255.5"/>
 </g>
 <!-- Node191 -->
 <g id="node191" class="node"><title>Node191</title>
-<g id="a_node191"><a xlink:href="structtvm_1_1relay_1_1StackAttrs.html" target="_top" xlink:title="Attributes used in stack operators. ">
-<polygon fill="white" stroke="black" points="565,-4030.5 565,-4049.5 685,-4049.5 685,-4030.5 565,-4030.5"/>
-<text text-anchor="middle" x="625" y="-4037.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::StackAttrs</text>
+<g id="a_node191"><a xlink:href="structtvm_1_1relay_1_1SparseToDenseAttrs.html" target="_top" xlink:title="Attributes used in sparse_to_dense operator. ">
+<polygon fill="white" stroke="black" points="553,-4195 553,-4225 697,-4225 697,-4195 553,-4195"/>
+<text text-anchor="start" x="561" y="-4213" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SparseToDense</text>
+<text text-anchor="middle" x="625" y="-4202" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node190&#45;&gt;Node191 -->
 <g id="edge190" class="edge"><title>Node190&#45;&gt;Node191</title>
-<path fill="none" stroke="midnightblue" d="M489.289,-4040C514.674,-4040 541.604,-4040 564.659,-4040"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="489.274,-4036.5 479.274,-4040 489.274,-4043.5 489.274,-4036.5"/>
+<path fill="none" stroke="midnightblue" d="M480.224,-4210C504.024,-4210 529.825,-4210 552.913,-4210"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="480.159,-4206.5 470.159,-4210 480.159,-4213.5 480.159,-4206.5"/>
 </g>
 <!-- Node193 -->
 <g id="node193" class="node"><title>Node193</title>
-<g id="a_node193"><a xlink:href="structtvm_1_1relay_1_1StridedSliceAttrs.html" target="_top" xlink:title="Attributes for StridedSlice operator. ">
-<polygon fill="white" stroke="black" points="561.5,-3981 561.5,-4011 688.5,-4011 688.5,-3981 561.5,-3981"/>
-<text text-anchor="start" x="569.5" y="-3999" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::StridedSlice</text>
-<text text-anchor="middle" x="625" y="-3988" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<g id="a_node193"><a xlink:href="structtvm_1_1relay_1_1SparseTransposeAttrs.html" target="_top" xlink:title="Attributes for sparse_transpose operator. ">
+<polygon fill="white" stroke="black" points="549,-4146 549,-4176 701,-4176 701,-4146 549,-4146"/>
+<text text-anchor="start" x="557" y="-4164" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SparseTranspose</text>
+<text text-anchor="middle" x="625" y="-4153" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node192&#45;&gt;Node193 -->
 <g id="edge192" class="edge"><title>Node192&#45;&gt;Node193</title>
-<path fill="none" stroke="midnightblue" d="M486.885,-3996C511.699,-3996 538.167,-3996 561.163,-3996"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-3992.5 476.736,-3996 486.736,-3999.5 486.736,-3992.5"/>
+<path fill="none" stroke="midnightblue" d="M499.538,-4161C516.162,-4161 533.13,-4161 548.974,-4161"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="499.245,-4157.5 489.245,-4161 499.245,-4164.5 499.245,-4157.5"/>
 </g>
 <!-- Node195 -->
 <g id="node195" class="node"><title>Node195</title>
-<g id="a_node195"><a xlink:href="structtvm_1_1relay_1_1SubPixelAttrs.html" target="_top" xlink:title="Attributes used in subpixel operators. ">
-<polygon fill="white" stroke="black" points="558,-3940.5 558,-3959.5 692,-3959.5 692,-3940.5 558,-3940.5"/>
-<text text-anchor="middle" x="625" y="-3947.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SubPixelAttrs</text>
+<g id="a_node195"><a xlink:href="structtvm_1_1relay_1_1SplitAttrs.html" target="_top" xlink:title="tvm::relay::SplitAttrs">
+<polygon fill="white" stroke="black" points="568,-4107.5 568,-4126.5 682,-4126.5 682,-4107.5 568,-4107.5"/>
+<text text-anchor="middle" x="625" y="-4114.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SplitAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node194&#45;&gt;Node195 -->
 <g id="edge194" class="edge"><title>Node194&#45;&gt;Node195</title>
-<path fill="none" stroke="midnightblue" d="M478.774,-3948.07C504.655,-3948.41 533.032,-3948.79 557.781,-3949.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="478.659,-3944.57 468.614,-3947.93 478.566,-3951.57 478.659,-3944.57"/>
+<path fill="none" stroke="midnightblue" d="M486.133,-4117C513.646,-4117 543.262,-4117 567.966,-4117"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.104,-4113.5 476.104,-4117 486.104,-4120.5 486.104,-4113.5"/>
 </g>
 <!-- Node197 -->
 <g id="node197" class="node"><title>Node197</title>
-<g id="a_node197"><a xlink:href="structtvm_1_1relay_1_1TakeAttrs.html" target="_top" xlink:title="tvm::relay::TakeAttrs">
-<polygon fill="white" stroke="black" points="568,-3902.5 568,-3921.5 682,-3921.5 682,-3902.5 568,-3902.5"/>
-<text text-anchor="middle" x="625" y="-3909.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::TakeAttrs</text>
+<g id="a_node197"><a xlink:href="structtvm_1_1relay_1_1SqueezeAttrs.html" target="_top" xlink:title="Attributes used in squeeze operators. ">
+<polygon fill="white" stroke="black" points="557.5,-4069.5 557.5,-4088.5 692.5,-4088.5 692.5,-4069.5 557.5,-4069.5"/>
+<text text-anchor="middle" x="625" y="-4076.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SqueezeAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node196&#45;&gt;Node197 -->
 <g id="edge196" class="edge"><title>Node196&#45;&gt;Node197</title>
-<path fill="none" stroke="midnightblue" d="M486.133,-3906.5C513.646,-3907.6 543.262,-3908.78 567.966,-3909.76"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.236,-3903 476.104,-3906.1 485.957,-3909.99 486.236,-3903"/>
+<path fill="none" stroke="midnightblue" d="M496.91,-4079C517.28,-4079 538.285,-4079 557.207,-4079"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="496.653,-4075.5 486.653,-4079 496.653,-4082.5 496.653,-4075.5"/>
 </g>
 <!-- Node199 -->
 <g id="node199" class="node"><title>Node199</title>
-<g id="a_node199"><a xlink:href="structtvm_1_1relay_1_1TileAttrs.html" target="_top" xlink:title="Attributes used in tile operators. ">
-<polygon fill="white" stroke="black" points="570.5,-3864.5 570.5,-3883.5 679.5,-3883.5 679.5,-3864.5 570.5,-3864.5"/>
-<text text-anchor="middle" x="625" y="-3871.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::TileAttrs</text>
+<g id="a_node199"><a xlink:href="structtvm_1_1relay_1_1StackAttrs.html" target="_top" xlink:title="Attributes used in stack operators. ">
+<polygon fill="white" stroke="black" points="565,-4031.5 565,-4050.5 685,-4050.5 685,-4031.5 565,-4031.5"/>
+<text text-anchor="middle" x="625" y="-4038.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::StackAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node198&#45;&gt;Node199 -->
 <g id="edge198" class="edge"><title>Node198&#45;&gt;Node199</title>
-<path fill="none" stroke="midnightblue" d="M483.737,-3868.4C512.773,-3869.56 544.401,-3870.82 570.262,-3871.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="483.72,-3864.9 473.588,-3868 483.441,-3871.89 483.72,-3864.9"/>
+<path fill="none" stroke="midnightblue" d="M489.289,-4041C514.674,-4041 541.604,-4041 564.659,-4041"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="489.274,-4037.5 479.274,-4041 489.274,-4044.5 489.274,-4037.5"/>
 </g>
 <!-- Node201 -->
 <g id="node201" class="node"><title>Node201</title>
-<g id="a_node201"><a xlink:href="structtvm_1_1relay_1_1TopKAttrs.html" target="_top" xlink:title="tvm::relay::TopKAttrs">
-<polygon fill="white" stroke="black" points="567.5,-3826.5 567.5,-3845.5 682.5,-3845.5 682.5,-3826.5 567.5,-3826.5"/>
-<text text-anchor="middle" x="625" y="-3833.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::TopKAttrs</text>
+<g id="a_node201"><a xlink:href="structtvm_1_1relay_1_1StridedSliceAttrs.html" target="_top" xlink:title="Attributes for StridedSlice operator. ">
+<polygon fill="white" stroke="black" points="561.5,-3982 561.5,-4012 688.5,-4012 688.5,-3982 561.5,-3982"/>
+<text text-anchor="start" x="569.5" y="-4000" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::StridedSlice</text>
+<text text-anchor="middle" x="625" y="-3989" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
 </a>
 </g>
 </g>
 <!-- Node200&#45;&gt;Node201 -->
 <g id="edge200" class="edge"><title>Node200&#45;&gt;Node201</title>
-<path fill="none" stroke="midnightblue" d="M486.975,-3830.53C513.975,-3831.61 542.925,-3832.76 567.226,-3833.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="486.868,-3827.02 476.736,-3830.12 486.589,-3834.02 486.868,-3827.02"/>
+<path fill="none" stroke="midnightblue" d="M486.885,-3997C511.699,-3997 538.167,-3997 561.163,-3997"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.736,-3993.5 476.736,-3997 486.736,-4000.5 486.736,-3993.5"/>
 </g>
 <!-- Node203 -->
 <g id="node203" class="node"><title>Node203</title>
-<g id="a_node203"><a xlink:href="structtvm_1_1relay_1_1TransposeAttrs.html" target="_top" xlink:title="Attributes used in transpose operators. ">
-<polygon fill="white" stroke="black" points="554.5,-3788.5 554.5,-3807.5 695.5,-3807.5 695.5,-3788.5 554.5,-3788.5"/>
-<text text-anchor="middle" x="625" y="-3795.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::TransposeAttrs</text>
+<g id="a_node203"><a xlink:href="structtvm_1_1relay_1_1SubPixelAttrs.html" target="_top" xlink:title="Attributes used in subpixel operators. ">
+<polygon fill="white" stroke="black" points="558,-3940.5 558,-3959.5 692,-3959.5 692,-3940.5 558,-3940.5"/>
+<text text-anchor="middle" x="625" y="-3947.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::SubPixelAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node202&#45;&gt;Node203 -->
 <g id="edge202" class="edge"><title>Node202&#45;&gt;Node203</title>
-<path fill="none" stroke="midnightblue" d="M482.095,-3788.56C505.888,-3790.14 531.541,-3791.85 554.405,-3793.37"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="482.235,-3785.06 472.025,-3787.89 481.771,-3792.05 482.235,-3785.06"/>
+<path fill="none" stroke="midnightblue" d="M478.774,-3948.71C504.655,-3948.94 533.032,-3949.19 557.781,-3949.41"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="478.644,-3945.21 468.614,-3948.62 478.582,-3952.21 478.644,-3945.21"/>
 </g>
 <!-- Node205 -->
 <g id="node205" class="node"><title>Node205</title>
-<g id="a_node205"><a xlink:href="structtvm_1_1relay_1_1UpSampling3DAttrs.html" target="_top" xlink:title="Attributes for upsampling3d operator. ">
-<polygon fill="white" stroke="black" points="542.5,-3750.5 542.5,-3769.5 707.5,-3769.5 707.5,-3750.5 542.5,-3750.5"/>
-<text text-anchor="middle" x="625" y="-3757.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::UpSampling3DAttrs</text>
+<g id="a_node205"><a xlink:href="structtvm_1_1relay_1_1TakeAttrs.html" target="_top" xlink:title="tvm::relay::TakeAttrs">
+<polygon fill="white" stroke="black" points="568,-3902.5 568,-3921.5 682,-3921.5 682,-3902.5 568,-3902.5"/>
+<text text-anchor="middle" x="625" y="-3909.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::TakeAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node204&#45;&gt;Node205 -->
 <g id="edge204" class="edge"><title>Node204&#45;&gt;Node205</title>
-<path fill="none" stroke="midnightblue" d="M490.567,-3744.62C507.735,-3746.59 525.564,-3748.65 542.39,-3750.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="490.884,-3741.13 480.549,-3743.46 490.082,-3748.08 490.884,-3741.13"/>
+<path fill="none" stroke="midnightblue" d="M486.133,-3907.11C513.646,-3908.09 543.262,-3909.14 567.966,-3910.01"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.222,-3903.61 476.104,-3906.75 485.974,-3910.61 486.222,-3903.61"/>
 </g>
 <!-- Node207 -->
 <g id="node207" class="node"><title>Node207</title>
-<g id="a_node207"><a xlink:href="structtvm_1_1relay_1_1UpSamplingAttrs.html" target="_top" xlink:title="Attributes for upsampling operator. ">
-<polygon fill="white" stroke="black" points="549,-3712.5 549,-3731.5 701,-3731.5 701,-3712.5 549,-3712.5"/>
-<text text-anchor="middle" x="625" y="-3719.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::UpSamplingAttrs</text>
+<g id="a_node207"><a xlink:href="structtvm_1_1relay_1_1TileAttrs.html" target="_top" xlink:title="Attributes used in tile operators. ">
+<polygon fill="white" stroke="black" points="570.5,-3864.5 570.5,-3883.5 679.5,-3883.5 679.5,-3864.5 570.5,-3864.5"/>
+<text text-anchor="middle" x="625" y="-3871.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::TileAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node206&#45;&gt;Node207 -->
 <g id="edge206" class="edge"><title>Node206&#45;&gt;Node207</title>
-<path fill="none" stroke="midnightblue" d="M487.675,-3699.63C514.003,-3703.95 542.125,-3708.57 565.948,-3712.47"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="488.121,-3696.16 477.686,-3697.99 486.987,-3703.07 488.121,-3696.16"/>
+<path fill="none" stroke="midnightblue" d="M483.737,-3869.02C512.773,-3870.05 544.401,-3871.18 570.262,-3872.09"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="483.706,-3865.52 473.588,-3868.66 483.458,-3872.52 483.706,-3865.52"/>
 </g>
 <!-- Node209 -->
 <g id="node209" class="node"><title>Node209</title>
-<g id="a_node209"><a xlink:href="structtvm_1_1relay_1_1YoloReorgAttrs.html" target="_top" xlink:title="Attributes used in yolo reorg operators. ">
-<polygon fill="white" stroke="black" points="556,-3674.5 556,-3693.5 694,-3693.5 694,-3674.5 556,-3674.5"/>
-<text text-anchor="middle" x="625" y="-3681.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::YoloReorgAttrs</text>
+<g id="a_node209"><a xlink:href="structtvm_1_1relay_1_1TopKAttrs.html" target="_top" xlink:title="tvm::relay::TopKAttrs">
+<polygon fill="white" stroke="black" points="567.5,-3826.5 567.5,-3845.5 682.5,-3845.5 682.5,-3826.5 567.5,-3826.5"/>
+<text text-anchor="middle" x="625" y="-3833.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::TopKAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node208&#45;&gt;Node209 -->
 <g id="edge208" class="edge"><title>Node208&#45;&gt;Node209</title>
-<path fill="none" stroke="midnightblue" d="M473.623,-3653.33C491.122,-3657.26 509.696,-3661.35 527,-3665 542.112,-3668.18 558.588,-3671.48 573.6,-3674.41"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="473.988,-3649.83 463.463,-3651.04 472.447,-3656.65 473.988,-3649.83"/>
+<path fill="none" stroke="midnightblue" d="M486.975,-3831.14C513.975,-3832.1 542.925,-3833.12 567.226,-3833.99"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="486.854,-3827.63 476.736,-3830.78 486.606,-3834.63 486.854,-3827.63"/>
+</g>
+<!-- Node211 -->
+<g id="node211" class="node"><title>Node211</title>
+<g id="a_node211"><a xlink:href="structtvm_1_1relay_1_1TransposeAttrs.html" target="_top" xlink:title="Attributes used in transpose operators. ">
+<polygon fill="white" stroke="black" points="554.5,-3788.5 554.5,-3807.5 695.5,-3807.5 695.5,-3788.5 554.5,-3788.5"/>
+<text text-anchor="middle" x="625" y="-3795.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::TransposeAttrs</text>
+</a>
+</g>
+</g>
+<!-- Node210&#45;&gt;Node211 -->
+<g id="edge210" class="edge"><title>Node210&#45;&gt;Node211</title>
+<path fill="none" stroke="midnightblue" d="M482.095,-3789.19C505.888,-3790.67 531.541,-3792.26 554.405,-3793.68"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="482.223,-3785.69 472.025,-3788.56 481.789,-3792.68 482.223,-3785.69"/>
 </g>
 <!-- Node213 -->
 <g id="node213" class="node"><title>Node213</title>
-<g id="a_node213"><a xlink:href="classtvm_1_1PrimExprNode.html" target="_top" xlink:title="Base node of all primitive expressions. ">
-<polygon fill="white" stroke="black" points="342.5,-2786.5 342.5,-2805.5 452.5,-2805.5 452.5,-2786.5 342.5,-2786.5"/>
-<text text-anchor="middle" x="397.5" y="-2793.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExprNode</text>
+<g id="a_node213"><a xlink:href="structtvm_1_1relay_1_1UpSampling3DAttrs.html" target="_top" xlink:title="Attributes for upsampling3d operator. ">
+<polygon fill="white" stroke="black" points="542.5,-3750.5 542.5,-3769.5 707.5,-3769.5 707.5,-3750.5 542.5,-3750.5"/>
+<text text-anchor="middle" x="625" y="-3757.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::UpSampling3DAttrs</text>
 </a>
 </g>
 </g>
 <!-- Node212&#45;&gt;Node213 -->
 <g id="edge212" class="edge"><title>Node212&#45;&gt;Node213</title>
+<path fill="none" stroke="midnightblue" d="M490.567,-3745.21C507.735,-3747.11 525.564,-3749.09 542.39,-3750.95"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="490.873,-3741.72 480.549,-3744.1 490.102,-3748.68 490.873,-3741.72"/>
+</g>
+<!-- Node215 -->
+<g id="node215" class="node"><title>Node215</title>
+<g id="a_node215"><a xlink:href="structtvm_1_1relay_1_1UpSamplingAttrs.html" target="_top" xlink:title="Attributes for upsampling operator. ">
+<polygon fill="white" stroke="black" points="549,-3712.5 549,-3731.5 701,-3731.5 701,-3712.5 549,-3712.5"/>
+<text text-anchor="middle" x="625" y="-3719.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::UpSamplingAttrs</text>
+</a>
+</g>
+</g>
+<!-- Node214&#45;&gt;Node215 -->
+<g id="edge214" class="edge"><title>Node214&#45;&gt;Node215</title>
+<path fill="none" stroke="midnightblue" d="M487.795,-3700.26C513.44,-3704.35 540.778,-3708.71 564.181,-3712.45"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="488.113,-3696.76 477.686,-3698.64 487.009,-3703.67 488.113,-3696.76"/>
+</g>
+<!-- Node217 -->
+<g id="node217" class="node"><title>Node217</title>
+<g id="a_node217"><a xlink:href="structtvm_1_1relay_1_1YoloReorgAttrs.html" target="_top" xlink:title="Attributes used in yolo reorg operators. ">
+<polygon fill="white" stroke="black" points="556,-3674.5 556,-3693.5 694,-3693.5 694,-3674.5 556,-3674.5"/>
+<text text-anchor="middle" x="625" y="-3681.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relay::YoloReorgAttrs</text>
+</a>
+</g>
+</g>
+<!-- Node216&#45;&gt;Node217 -->
+<g id="edge216" class="edge"><title>Node216&#45;&gt;Node217</title>
+<path fill="none" stroke="midnightblue" d="M475.921,-3654.15C492.746,-3657.8 510.459,-3661.58 527,-3665 542.292,-3668.16 558.969,-3671.48 574.114,-3674.44"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="476.648,-3650.72 466.133,-3652.02 475.16,-3657.56 476.648,-3650.72"/>
+</g>
+<!-- Node221 -->
+<g id="node221" class="node"><title>Node221</title>
+<g id="a_node221"><a xlink:href="classtvm_1_1PrimExprNode.html" target="_top" xlink:title="Base node of all primitive expressions. ">
+<polygon fill="white" stroke="black" points="342.5,-2786.5 342.5,-2805.5 452.5,-2805.5 452.5,-2786.5 342.5,-2786.5"/>
+<text text-anchor="middle" x="397.5" y="-2793.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExprNode</text>
+</a>
+</g>
+</g>
+<!-- Node220&#45;&gt;Node221 -->
+<g id="edge220" class="edge"><title>Node220&#45;&gt;Node221</title>
 <path fill="none" stroke="midnightblue" d="M183.157,-2179.25C216.953,-2276.95 368.873,-2716.13 393.207,-2786.48"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="186.444,-2178.04 179.868,-2169.74 179.829,-2180.33 186.444,-2178.04"/>
 </g>
-<!-- Node266 -->
-<g id="node266" class="node"><title>Node266</title>
-<g id="a_node266"><a xlink:href="classtvm_1_1RelayExprNode.html" target="_top" xlink:title="Base node of all non&#45;primitive expressions. ">
+<!-- Node274 -->
+<g id="node274" class="node"><title>Node274</title>
+<g id="a_node274"><a xlink:href="classtvm_1_1RelayExprNode.html" target="_top" xlink:title="Base node of all non&#45;primitive expressions. ">
 <polygon fill="white" stroke="black" points="341,-1988.5 341,-2007.5 454,-2007.5 454,-1988.5 341,-1988.5"/>
 <text text-anchor="middle" x="397.5" y="-1995.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::RelayExprNode</text>
 </a>
 </g>
 </g>
-<!-- Node212&#45;&gt;Node266 -->
-<g id="edge265" class="edge"><title>Node212&#45;&gt;Node266</title>
+<!-- Node220&#45;&gt;Node274 -->
+<g id="edge273" class="edge"><title>Node220&#45;&gt;Node274</title>
 <path fill="none" stroke="midnightblue" d="M241.743,-2151.8C250.911,-2149.14 259.943,-2145.63 268,-2141 328.188,-2106.4 375.4,-2033.62 390.989,-2007.55"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="240.593,-2148.48 231.781,-2154.36 242.338,-2155.26 240.593,-2148.48"/>
 </g>
-<!-- Node214 -->
-<g id="node214" class="node"><title>Node214</title>
-<g id="a_node214"><a xlink:href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_top" xlink:title="tvm::tir::BinaryOpNode\l\&lt; AddNode \&gt;">
+<!-- Node222 -->
+<g id="node222" class="node"><title>Node222</title>
+<g id="a_node222"><a xlink:href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_top" xlink:title="tvm::tir::BinaryOpNode\l\&lt; AddNode \&gt;">
 <polygon fill="white" stroke="black" points="562,-3625 562,-3655 688,-3655 688,-3625 562,-3625"/>
 <text text-anchor="start" x="570" y="-3643" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::BinaryOpNode</text>
 <text text-anchor="middle" x="625" y="-3632" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AddNode &gt;</text>
 </a>
 </g>
 </g>
-<!-- Node213&#45;&gt;Node214 -->
-<g id="edge213" class="edge"><title>Node213&#45;&gt;Node214</title>
+<!-- Node221&#45;&gt;Node222 -->
+<g id="edge221" class="edge"><title>Node221&#45;&gt;Node222</title>
 <path fill="none" stroke="midnightblue" d="M400.286,-2815.72C411.238,-2934.76 470.702,-3554.57 527,-3616 536.143,-3625.98 548.719,-3632.1 561.788,-3635.79"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="403.751,-2815.17 399.355,-2805.53 396.78,-2815.81 403.751,-2815.17"/>
 </g>
-<!-- Node216 -->
-<g id="node216" class="node"><title>Node216</title>
-<g id="a_node216"><a xlink:href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_top" xlink:title="tvm::tir::BinaryOpNode\l\&lt; DivNode \&gt;">
+<!-- Node224 -->
+<g id="node224" class="node"><title>Node224</title>
+<g id="a_node224"><a xlink:href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_top" xlink:title="tvm::tir::BinaryOpNode\l\&lt; DivNode \&gt;">
 <polygon fill="white" stroke="black" points="562,-3576 562,-3606 688,-3606 688,-3576 562,-3576"/>
 <text text-anchor="start" x="570" y="-3594" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::BinaryOpNode</text>
 <text text-anchor="middle" x="625" y="-3583" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DivNode &gt;</text>
 </a>
 </g>
 </g>
-<!-- Node213&#45;&gt;Node216 -->
-<g id="edge215" class="edge"><title>Node213&#45;&gt;Node216</title>
+<!-- Node221&#45;&gt;Node224 -->
+<g id="edge223" class="edge"><title>Node221&#45;&gt;Node224</title>
 <path fill="none" stroke="midnightblue" d="M398.959,-2815.9C401.889,-2925.31 421.396,-3452.89 527,-3567 536.191,-3576.93 548.786,-3583.04 561.858,-3586.73"/>
 <polygon fill="midnightblue" stroke="midnightblue" points="402.452,-2815.55 398.701,-2805.64 395.454,-2815.73 402.452,-2815.55"/>
 </g>
-<!-- Node218 -->
-<g id="node218" class="node"><title>Node218</title>
-<g id="a_node218"><a xlink:href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_top" xlink:title="tvm::tir::BinaryOpNode\l\&lt; FloorDivNode \&gt;">
+<!-- Node226 -->
+<g id="node226" class="node"><title>Node226</title>
+<g id="a_node226"><a xlink:href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_top" xlink:title="tvm::tir::BinaryOpNode\l\&lt; FloorDivNode \&gt;">
 <polygon fill="white" stroke="black" points="562,-3527 562,-3557 688,-3557 688,-3527 562,-3527"/>
 <text text-anchor="start" x="570" y="-3545" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::BinaryOpNode</text>
 <text text-anchor="middle" x="625" y="-3534" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; FloorDivNode &gt;</text>
 </a>
 </g>
 </g>
-<!-- Node213&#45;&gt;Node218 -->
-<g id="edge217" class="edge"><title>Node213&#45;&gt;Node218</title>
+<!-- Node221&#45;&gt;Node226 -->
+<g id="edge225" class="edge"><title>Node221&#45;&gt;Node226</title>
... 17584 lines suppressed ...