tvm-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tqc...@apache.org
Subject [incubator-tvm-site] branch asf-site updated: Docs build at Thu Apr 30 22:24:56 PDT 2020
Date Fri, 01 May 2020 05:25:10 GMT
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 a66bb73  Docs build at Thu Apr 30 22:24:56 PDT 2020
a66bb73 is described below

commit a66bb734cfddec840d8fa5da6a6ccb4aebe86fff
Author: tqchen <tqchen@octoml.ai>
AuthorDate: Thu Apr 30 22:24:57 2020 -0700

    Docs build at Thu Apr 30 22:24:56 PDT 2020
---
 .../low_level_custom_pass.py                       |   19 +-
 .../low_level_custom_pass.ipynb                    |    6 +-
 .../_images/sphx_glr_deploy_classification_001.png |  Bin 149470 -> 245321 bytes
 .../sphx_glr_deploy_classification_thumb.png       |  Bin 106745 -> 104786 bytes
 docs/_images/sphx_glr_deploy_detection_001.png     |  Bin 330958 -> 319717 bytes
 docs/_images/sphx_glr_deploy_detection_thumb.png   |  Bin 125541 -> 121398 bytes
 docs/_images/sphx_glr_deploy_ssd_gluoncv_001.png   |  Bin 283871 -> 262413 bytes
 docs/_images/sphx_glr_deploy_ssd_gluoncv_thumb.png |  Bin 108007 -> 104403 bytes
 docs/_images/sphx_glr_from_caffe2_001.png          |  Bin 149470 -> 245321 bytes
 docs/_images/sphx_glr_from_caffe2_thumb.png        |  Bin 106745 -> 104786 bytes
 docs/_images/sphx_glr_from_darknet_001.png         |  Bin 351484 -> 340868 bytes
 docs/_images/sphx_glr_from_darknet_thumb.png       |  Bin 136338 -> 132048 bytes
 docs/_images/sphx_glr_from_keras_001.png           |  Bin 149470 -> 245321 bytes
 docs/_images/sphx_glr_from_keras_thumb.png         |  Bin 106745 -> 104786 bytes
 docs/_images/sphx_glr_from_mxnet_001.png           |  Bin 149470 -> 245321 bytes
 docs/_images/sphx_glr_from_mxnet_thumb.png         |  Bin 106745 -> 104786 bytes
 docs/_images/sphx_glr_from_onnx_001.png            |  Bin 173547 -> 164194 bytes
 docs/_images/sphx_glr_from_onnx_thumb.png          |  Bin 66996 -> 65645 bytes
 docs/_images/sphx_glr_from_tflite_001.png          |  Bin 149470 -> 245321 bytes
 docs/_images/sphx_glr_from_tflite_thumb.png        |  Bin 106745 -> 104786 bytes
 docs/_sources/api/python/runtime.rst.txt           |   25 -
 docs/_sources/api/python/tir.rst.txt               |    7 +
 docs/_sources/contribute/pull_request.rst.txt      |    3 +
 docs/_sources/deploy/android.md.txt                |   39 -
 docs/_sources/deploy/android.rst.txt               |   42 +
 docs/_sources/deploy/aocl_fpga.md.txt              |  109 -
 docs/_sources/deploy/aws_fpga.md.txt               |  170 -
 docs/_sources/deploy/cpp_deploy.md.txt             |   52 -
 docs/_sources/deploy/cpp_deploy.rst.txt            |   56 +
 docs/_sources/deploy/hls.rst.txt                   |  183 ++
 docs/_sources/deploy/index.rst.txt                 |    3 +-
 docs/_sources/deploy/integrate.md.txt              |   67 -
 docs/_sources/deploy/integrate.rst.txt             |   69 +
 docs/_sources/install/nnpack.md.txt                |  100 -
 docs/_sources/install/nnpack.rst.txt               |  118 +
 .../tutorials/autotvm/sg_execution_times.rst.txt   |   16 +-
 .../tutorials/autotvm/tune_conv2d_cuda.rst.txt     |   42 +-
 .../tutorials/autotvm/tune_simple_template.rst.txt |   20 +-
 .../tutorials/cross_compilation_and_rpc.rst.txt    |    2 +-
 .../tutorials/dev/low_level_custom_pass.rst.txt    |   19 +-
 .../tutorials/dev/sg_execution_times.rst.txt       |    6 +-
 docs/_sources/tutorials/frontend/build_gcn.rst.txt |    8 +
 .../frontend/deploy_model_on_android.rst.txt       |    2 +-
 .../tutorials/frontend/deploy_prequantized.rst.txt |    2 +-
 .../tutorials/frontend/deploy_ssd_gluoncv.rst.txt  |    2 +-
 .../tutorials/frontend/from_coreml.rst.txt         |   19 -
 docs/_sources/tutorials/frontend/from_onnx.rst.txt |    4 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |   34 +-
 .../tutorials/language/intrin_math.rst.txt         |   16 +-
 docs/_sources/tutorials/language/reduction.rst.txt |   18 +-
 .../tutorials/language/sg_execution_times.rst.txt  |   18 +-
 docs/_sources/tutorials/language/tensorize.rst.txt |    2 +-
 .../tutorials/optimize/opt_conv_cuda.rst.txt       |    2 +-
 .../tutorials/optimize/opt_conv_tensorcore.rst.txt |    2 +-
 docs/_sources/tutorials/optimize/opt_gemm.rst.txt  |   16 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |   10 +-
 docs/_sources/tutorials/relay_quick_start.rst.txt  |    2 +-
 docs/_sources/tutorials/sg_execution_times.rst.txt |    8 +-
 .../tutorials/tensor_expr_get_started.rst.txt      |    4 +-
 docs/_sources/tutorials/topi/intro_topi.rst.txt    |    2 +-
 .../tutorials/topi/sg_execution_times.rst.txt      |    4 +-
 .../vta/{install.md.txt => install.rst.txt}        |  440 +--
 .../tutorials/autotvm/sg_execution_times.rst.txt   |    4 +-
 .../vta/tutorials/autotvm/tune_relay_vta.rst.txt   |   18 +-
 .../frontend/deploy_classification.rst.txt         |    6 +-
 .../tutorials/frontend/deploy_detection.rst.txt    |    4 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |    6 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |    6 +-
 .../vta/tutorials/sg_execution_times.rst.txt       |    6 +-
 docs/_static/documentation_options.js              |    1 +
 docs/_static/searchtools.js                        |   23 +-
 docs/api/python/autotvm.html                       |  467 +--
 docs/api/python/contrib.html                       |  237 +-
 docs/api/python/driver.html                        |    9 +-
 docs/api/python/error.html                         |   21 +-
 docs/api/python/graph_runtime.html                 |   45 +-
 docs/api/python/index.html                         |    2 +
 docs/api/python/ir.html                            |  219 +-
 docs/api/python/ndarray.html                       |   35 +-
 docs/api/python/relay/analysis.html                |  105 +-
 docs/api/python/relay/backend.html                 |   97 +-
 docs/api/python/relay/frontend.html                |   37 +-
 docs/api/python/relay/image.html                   |   13 +-
 docs/api/python/relay/index.html                   |  815 ++---
 docs/api/python/relay/nn.html                      |  320 +-
 docs/api/python/relay/testing.html                 |  143 +-
 docs/api/python/relay/transform.html               |  123 +-
 docs/api/python/relay/vision.html                  |   33 +-
 docs/api/python/rpc.html                           |  103 +-
 docs/api/python/runtime.html                       |  554 +---
 docs/api/python/target.html                        |   85 +-
 docs/api/python/te.html                            |  517 +--
 docs/api/python/tir.html                           | 1080 +++---
 docs/api/python/topi.html                          |  369 +--
 docs/api/python/vta/index.html                     |   27 +-
 docs/contribute/index.html                         |    4 +-
 docs/contribute/pull_request.html                  |    3 +
 docs/deploy/android.html                           |    9 +-
 docs/deploy/aocl_fpga.html                         |  357 --
 docs/deploy/cpp_deploy.html                        |   10 +-
 docs/deploy/{aws_fpga.html => hls.html}            |   90 +-
 docs/deploy/index.html                             |   19 +-
 docs/deploy/integrate.html                         |   38 +-
 docs/doxygen/analyzer_8h.html                      |    2 +-
 docs/doxygen/analyzer_8h__dep__incl.svg            | 1001 +++---
 docs/doxygen/analyzer_8h_source.html               |   46 +-
 docs/doxygen/annotated.html                        |  289 +-
 docs/doxygen/base_8h_source.html                   |    6 +-
 docs/doxygen/batch__matmul_8h_source.html          |    4 +-
 docs/doxygen/bias__add_8h.html                     |    2 +-
 docs/doxygen/bias__add_8h__incl.svg                | 1874 ++++++-----
 docs/doxygen/bitserial_8h_source.html              |    2 +-
 docs/doxygen/bound_8h.html                         |    2 +-
 docs/doxygen/bound_8h__dep__incl.svg               | 1148 +++----
 docs/doxygen/bound_8h_source.html                  |    8 +-
 docs/doxygen/broadcast_8h.html                     |    6 +-
 docs/doxygen/broadcast_8h__incl.svg                | 2179 ++++++------
 docs/doxygen/broadcast_8h_source.html              |    2 +-
 docs/doxygen/buffer_8h.html                        |    2 +-
 docs/doxygen/buffer_8h__dep__incl.svg              | 1078 +++---
 docs/doxygen/buffer_8h_source.html                 |   10 +-
 docs/doxygen/c__runtime__api_8h.html               |    2 +-
 docs/doxygen/c__runtime__api_8h__dep__incl.svg     | 1287 ++++----
 docs/doxygen/classes.html                          |  234 +-
 docs/doxygen/classtvm_1_1BaseAttrsNode.html        |   10 +-
 docs/doxygen/classtvm_1_1BaseExprNode-members.html |    9 +-
 docs/doxygen/classtvm_1_1BaseExprNode.html         |   30 +-
 .../classtvm_1_1BaseExprNode__coll__graph.svg      |   41 +-
 .../classtvm_1_1BaseExprNode__inherit__graph.svg   |  299 +-
 docs/doxygen/classtvm_1_1BaseFuncNode-members.html |   29 +-
 docs/doxygen/classtvm_1_1BaseFuncNode.html         |   34 +-
 .../classtvm_1_1BaseFuncNode__coll__graph.svg      |  185 +-
 .../classtvm_1_1BaseFuncNode__inherit__graph.svg   |   93 +-
 .../classtvm_1_1BaseTensorTypeNode-members.html    |   13 +-
 docs/doxygen/classtvm_1_1BaseTensorTypeNode.html   |   28 +-
 ...classtvm_1_1BaseTensorTypeNode__coll__graph.svg |   92 +-
 ...sstvm_1_1BaseTensorTypeNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1BuildConfigNode-members.html       |    2 +-
 docs/doxygen/classtvm_1_1BuildConfigNode.html      |   12 +-
 .../classtvm_1_1ConstructorNode-members.html       |   37 +-
 docs/doxygen/classtvm_1_1ConstructorNode.html      |   12 +-
 .../classtvm_1_1ConstructorNode__coll__graph.svg   |  170 +-
 ...classtvm_1_1ConstructorNode__inherit__graph.svg |   64 +-
 docs/doxygen/classtvm_1_1FloatImmNode-members.html |   23 +-
 docs/doxygen/classtvm_1_1FloatImmNode.html         |   10 +-
 .../classtvm_1_1FloatImmNode__coll__graph.svg      |  108 +-
 .../classtvm_1_1FloatImmNode__inherit__graph.svg   |   62 +-
 docs/doxygen/classtvm_1_1FuncTypeNode-members.html |   27 +-
 docs/doxygen/classtvm_1_1FuncTypeNode.html         |    6 +-
 .../classtvm_1_1FuncTypeNode__coll__graph.svg      |  181 +-
 .../classtvm_1_1FuncTypeNode__inherit__graph.svg   |   47 +-
 .../classtvm_1_1GlobalTypeVarNode-members.html     |   23 +-
 docs/doxygen/classtvm_1_1GlobalTypeVarNode.html    |    6 +-
 .../classtvm_1_1GlobalTypeVarNode__coll__graph.svg |   81 +-
 ...asstvm_1_1GlobalTypeVarNode__inherit__graph.svg |   47 +-
 .../doxygen/classtvm_1_1GlobalVarNode-members.html |   29 +-
 docs/doxygen/classtvm_1_1GlobalVarNode.html        |   12 +-
 .../classtvm_1_1GlobalVarNode__coll__graph.svg     |  120 +-
 .../classtvm_1_1GlobalVarNode__inherit__graph.svg  |   64 +-
 .../classtvm_1_1IncompleteTypeNode-members.html    |   21 +-
 docs/doxygen/classtvm_1_1IncompleteTypeNode.html   |    6 +-
 ...classtvm_1_1IncompleteTypeNode__coll__graph.svg |   81 +-
 ...sstvm_1_1IncompleteTypeNode__inherit__graph.svg |   47 +-
 docs/doxygen/classtvm_1_1IntImmNode-members.html   |   23 +-
 docs/doxygen/classtvm_1_1IntImmNode.html           |   10 +-
 .../classtvm_1_1IntImmNode__coll__graph.svg        |  108 +-
 .../classtvm_1_1IntImmNode__inherit__graph.svg     |   62 +-
 docs/doxygen/classtvm_1_1OpNode-members.html       |   51 +-
 docs/doxygen/classtvm_1_1OpNode.html               |   12 +-
 docs/doxygen/classtvm_1_1OpNode__coll__graph.svg   |  172 +-
 .../doxygen/classtvm_1_1OpNode__inherit__graph.svg |   64 +-
 .../classtvm_1_1PointerTypeNode-members.html       |   21 +-
 docs/doxygen/classtvm_1_1PointerTypeNode.html      |    6 +-
 .../classtvm_1_1PointerTypeNode__coll__graph.svg   |  105 +-
 ...classtvm_1_1PointerTypeNode__inherit__graph.svg |   47 +-
 docs/doxygen/classtvm_1_1PrimExprNode-members.html |   13 +-
 docs/doxygen/classtvm_1_1PrimExprNode.html         |   30 +-
 .../classtvm_1_1PrimExprNode__coll__graph.svg      |  104 +-
 .../classtvm_1_1PrimExprNode__inherit__graph.svg   |  221 +-
 docs/doxygen/classtvm_1_1PrimTypeNode-members.html |   21 +-
 docs/doxygen/classtvm_1_1PrimTypeNode.html         |    4 +-
 .../classtvm_1_1PrimTypeNode__coll__graph.svg      |   31 +-
 .../classtvm_1_1PrimTypeNode__inherit__graph.svg   |   47 +-
 .../doxygen/classtvm_1_1RelayExprNode-members.html |   19 +-
 docs/doxygen/classtvm_1_1RelayExprNode.html        |   34 +-
 .../classtvm_1_1RelayExprNode__coll__graph.svg     |  116 +-
 .../classtvm_1_1RelayExprNode__inherit__graph.svg  |  178 +-
 .../classtvm_1_1RelayRefTypeNode-members.html      |   23 +-
 docs/doxygen/classtvm_1_1RelayRefTypeNode.html     |    6 +-
 .../classtvm_1_1RelayRefTypeNode__coll__graph.svg  |  105 +-
 ...lasstvm_1_1RelayRefTypeNode__inherit__graph.svg |   47 +-
 docs/doxygen/classtvm_1_1SourceName-members.html   |    2 +-
 docs/doxygen/classtvm_1_1SourceName.html           |   10 +-
 .../classtvm_1_1SourceNameNode-members.html        |    2 +-
 docs/doxygen/classtvm_1_1SourceNameNode.html       |   10 +-
 .../classtvm_1_1SourceNameNode__coll__graph.svg    |   38 +-
 .../classtvm_1_1TensorTypeNode-members.html        |   27 +-
 docs/doxygen/classtvm_1_1TensorTypeNode.html       |    8 +-
 .../classtvm_1_1TensorTypeNode__coll__graph.svg    |  122 +-
 .../classtvm_1_1TensorTypeNode__inherit__graph.svg |   62 +-
 .../doxygen/classtvm_1_1TupleTypeNode-members.html |   23 +-
 docs/doxygen/classtvm_1_1TupleTypeNode.html        |    6 +-
 .../classtvm_1_1TupleTypeNode__coll__graph.svg     |  107 +-
 .../classtvm_1_1TupleTypeNode__inherit__graph.svg  |   47 +-
 docs/doxygen/classtvm_1_1TypeCallNode-members.html |   23 +-
 docs/doxygen/classtvm_1_1TypeCallNode.html         |    6 +-
 .../classtvm_1_1TypeCallNode__coll__graph.svg      |  131 +-
 .../classtvm_1_1TypeCallNode__inherit__graph.svg   |   47 +-
 .../classtvm_1_1TypeConstraintNode-members.html    |   13 +-
 docs/doxygen/classtvm_1_1TypeConstraintNode.html   |   28 +-
 ...classtvm_1_1TypeConstraintNode__coll__graph.svg |   92 +-
 ...sstvm_1_1TypeConstraintNode__inherit__graph.svg |   62 +-
 docs/doxygen/classtvm_1_1TypeDataNode-members.html |   25 +-
 docs/doxygen/classtvm_1_1TypeDataNode.html         |    6 +-
 .../classtvm_1_1TypeDataNode__coll__graph.svg      |  177 +-
 .../classtvm_1_1TypeDataNode__inherit__graph.svg   |   47 +-
 docs/doxygen/classtvm_1_1TypeNode-members.html     |   11 +-
 docs/doxygen/classtvm_1_1TypeNode.html             |   26 +-
 docs/doxygen/classtvm_1_1TypeNode__coll__graph.svg |   77 +-
 .../classtvm_1_1TypeNode__inherit__graph.svg       |  125 +-
 .../classtvm_1_1TypeRelationNode-members.html      |   29 +-
 docs/doxygen/classtvm_1_1TypeRelationNode.html     |    8 +-
 .../classtvm_1_1TypeRelationNode__coll__graph.svg  |  124 +-
 ...lasstvm_1_1TypeRelationNode__inherit__graph.svg |   62 +-
 docs/doxygen/classtvm_1_1TypeVar-members.html      |    2 +-
 docs/doxygen/classtvm_1_1TypeVar.html              |   10 +-
 docs/doxygen/classtvm_1_1TypeVarNode-members.html  |   23 +-
 docs/doxygen/classtvm_1_1TypeVarNode.html          |   16 +-
 .../classtvm_1_1TypeVarNode__coll__graph.svg       |  121 +-
 .../classtvm_1_1TypeVarNode__inherit__graph.svg    |   47 +-
 .../classtvm_1_1arith_1_1Analyzer-members.html     |   19 +-
 docs/doxygen/classtvm_1_1arith_1_1Analyzer.html    |   98 +-
 .../classtvm_1_1arith_1_1Analyzer__coll__graph.svg |  133 +-
 ..._1_1arith_1_1ConstIntBoundAnalyzer-members.html |    2 +-
 ...classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html |   17 +-
 .../classtvm_1_1relay_1_1CallNode-members.html     |   35 +-
 docs/doxygen/classtvm_1_1relay_1_1CallNode.html    |   12 +-
 .../classtvm_1_1relay_1_1CallNode__coll__graph.svg |  240 +-
 ...asstvm_1_1relay_1_1CallNode__inherit__graph.svg |   64 +-
 .../classtvm_1_1relay_1_1ConstantNode-members.html |   33 +-
 .../doxygen/classtvm_1_1relay_1_1ConstantNode.html |   10 +-
 ...sstvm_1_1relay_1_1ConstantNode__coll__graph.svg |   56 +-
 ...vm_1_1relay_1_1ConstantNode__inherit__graph.svg |   64 +-
 .../classtvm_1_1relay_1_1FunctionNode-members.html |   47 +-
 .../doxygen/classtvm_1_1relay_1_1FunctionNode.html |   14 +-
 ...sstvm_1_1relay_1_1FunctionNode__coll__graph.svg |  291 +-
 ...vm_1_1relay_1_1FunctionNode__inherit__graph.svg |   89 +-
 .../classtvm_1_1relay_1_1IfNode-members.html       |   33 +-
 docs/doxygen/classtvm_1_1relay_1_1IfNode.html      |   12 +-
 .../classtvm_1_1relay_1_1IfNode__coll__graph.svg   |  166 +-
 ...classtvm_1_1relay_1_1IfNode__inherit__graph.svg |   64 +-
 ...classtvm_1_1relay_1_1InterpreterClosureObj.html |    8 +-
 .../classtvm_1_1relay_1_1LetNode-members.html      |   33 +-
 docs/doxygen/classtvm_1_1relay_1_1LetNode.html     |   12 +-
 .../classtvm_1_1relay_1_1LetNode__coll__graph.svg  |  164 +-
 ...lasstvm_1_1relay_1_1LetNode__inherit__graph.svg |   64 +-
 .../classtvm_1_1relay_1_1MatchNode-members.html    |   33 +-
 docs/doxygen/classtvm_1_1relay_1_1MatchNode.html   |   12 +-
 ...classtvm_1_1relay_1_1MatchNode__coll__graph.svg |  188 +-
 ...sstvm_1_1relay_1_1MatchNode__inherit__graph.svg |   64 +-
 ...classtvm_1_1relay_1_1RefCreateNode-members.html |   29 +-
 .../classtvm_1_1relay_1_1RefCreateNode.html        |   12 +-
 ...stvm_1_1relay_1_1RefCreateNode__coll__graph.svg |  162 +-
 ...m_1_1relay_1_1RefCreateNode__inherit__graph.svg |   64 +-
 .../classtvm_1_1relay_1_1RefReadNode-members.html  |   29 +-
 docs/doxygen/classtvm_1_1relay_1_1RefReadNode.html |   12 +-
 ...asstvm_1_1relay_1_1RefReadNode__coll__graph.svg |  162 +-
 ...tvm_1_1relay_1_1RefReadNode__inherit__graph.svg |   64 +-
 .../classtvm_1_1relay_1_1RefWriteNode-members.html |   33 +-
 .../doxygen/classtvm_1_1relay_1_1RefWriteNode.html |   12 +-
 ...sstvm_1_1relay_1_1RefWriteNode__coll__graph.svg |  160 +-
 ...vm_1_1relay_1_1RefWriteNode__inherit__graph.svg |   64 +-
 .../classtvm_1_1relay_1_1TempExprNode-members.html |   25 +-
 .../doxygen/classtvm_1_1relay_1_1TempExprNode.html |   34 +-
 ...sstvm_1_1relay_1_1TempExprNode__coll__graph.svg |  147 +-
 ...vm_1_1relay_1_1TempExprNode__inherit__graph.svg |   91 +-
 ...sstvm_1_1relay_1_1TupleGetItemNode-members.html |   31 +-
 .../classtvm_1_1relay_1_1TupleGetItemNode.html     |   12 +-
 ...m_1_1relay_1_1TupleGetItemNode__coll__graph.svg |  162 +-
 ..._1relay_1_1TupleGetItemNode__inherit__graph.svg |   64 +-
 .../classtvm_1_1relay_1_1TupleNode-members.html    |   29 +-
 docs/doxygen/classtvm_1_1relay_1_1TupleNode.html   |   12 +-
 ...classtvm_1_1relay_1_1TupleNode__coll__graph.svg |  148 +-
 ...sstvm_1_1relay_1_1TupleNode__inherit__graph.svg |   64 +-
 .../classtvm_1_1relay_1_1VarNode-members.html      |   37 +-
 docs/doxygen/classtvm_1_1relay_1_1VarNode.html     |   12 +-
 .../classtvm_1_1relay_1_1VarNode__coll__graph.svg  |  152 +-
 ...lasstvm_1_1relay_1_1VarNode__inherit__graph.svg |   64 +-
 docs/doxygen/classtvm_1_1runtime_1_1ADTObj.html    |   12 +-
 .../doxygen/classtvm_1_1runtime_1_1ModuleNode.html |    8 +-
 ...lasstvm_1_1runtime_1_1NDArray_1_1Container.html |   12 +-
 docs/doxygen/classtvm_1_1runtime_1_1Object.html    |   16 +-
 ...tvm_1_1runtime_1_1ObjectRef__inherit__graph.svg |    8 +-
 .../classtvm_1_1runtime_1_1Optional-members.html   |   17 +-
 docs/doxygen/classtvm_1_1runtime_1_1Optional.html  |   31 +
 ...lasstvm_1_1runtime_1_1Optional__coll__graph.svg |    8 +-
 ...stvm_1_1runtime_1_1Optional__inherit__graph.svg |    8 +-
 docs/doxygen/classtvm_1_1runtime_1_1StringObj.html |    8 +-
 ...lasstvm_1_1runtime_1_1StringObj_1_1FromStd.html |    6 +-
 .../classtvm_1_1runtime_1_1vm_1_1ClosureObj.html   |   12 +-
 .../classtvm_1_1runtime_1_1vm_1_1Executable.html   |    6 +-
 .../classtvm_1_1runtime_1_1vm_1_1VMClosureObj.html |    8 +-
 ...lasstvm_1_1runtime_1_1vm_1_1VirtualMachine.html |    6 +-
 .../classtvm_1_1tir_1_1AddNode-members.html        |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1AddNode.html       |    8 +-
 .../classtvm_1_1tir_1_1AddNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1AddNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1AllocateNode-members.html   |   33 +-
 docs/doxygen/classtvm_1_1tir_1_1AllocateNode.html  |    4 +-
 ...lasstvm_1_1tir_1_1AllocateNode__coll__graph.svg |   27 +-
 ...stvm_1_1tir_1_1AllocateNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1AndNode-members.html        |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1AndNode.html       |    8 +-
 .../classtvm_1_1tir_1_1AndNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1AndNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1AnyNode-members.html        |   25 +-
 docs/doxygen/classtvm_1_1tir_1_1AnyNode.html       |   10 +-
 .../classtvm_1_1tir_1_1AnyNode__coll__graph.svg    |  108 +-
 .../classtvm_1_1tir_1_1AnyNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1AssertStmtNode-members.html |   25 +-
 .../doxygen/classtvm_1_1tir_1_1AssertStmtNode.html |    6 +-
 ...sstvm_1_1tir_1_1AssertStmtNode__coll__graph.svg |  127 +-
 ...vm_1_1tir_1_1AssertStmtNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1AttrStmtNode-members.html   |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1AttrStmtNode.html  |    6 +-
 ...lasstvm_1_1tir_1_1AttrStmtNode__coll__graph.svg |  133 +-
 ...stvm_1_1tir_1_1AttrStmtNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1BinaryOpNode-members.html   |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1BinaryOpNode.html  |    8 +-
 ...lasstvm_1_1tir_1_1BinaryOpNode__coll__graph.svg |   48 +-
 ...stvm_1_1tir_1_1BinaryOpNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1BroadcastNode-members.html  |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1BroadcastNode.html |    8 +-
 ...asstvm_1_1tir_1_1BroadcastNode__coll__graph.svg |   48 +-
 ...tvm_1_1tir_1_1BroadcastNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1BufferLoadNode-members.html |   25 +-
 .../doxygen/classtvm_1_1tir_1_1BufferLoadNode.html |    8 +-
 ...sstvm_1_1tir_1_1BufferLoadNode__coll__graph.svg |   48 +-
 ...vm_1_1tir_1_1BufferLoadNode__inherit__graph.svg |   62 +-
 ...asstvm_1_1tir_1_1BufferRealizeNode-members.html |   29 +-
 .../classtvm_1_1tir_1_1BufferRealizeNode.html      |    6 +-
 ...vm_1_1tir_1_1BufferRealizeNode__coll__graph.svg |  183 +-
 ...1_1tir_1_1BufferRealizeNode__inherit__graph.svg |   45 +-
 ...classtvm_1_1tir_1_1BufferStoreNode-members.html |   23 +-
 .../classtvm_1_1tir_1_1BufferStoreNode.html        |    6 +-
 ...stvm_1_1tir_1_1BufferStoreNode__coll__graph.svg |  161 +-
 ...m_1_1tir_1_1BufferStoreNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1CallNode-members.html       |   83 +-
 docs/doxygen/classtvm_1_1tir_1_1CallNode.html      |    8 +-
 .../classtvm_1_1tir_1_1CallNode__coll__graph.svg   |   48 +-
 ...classtvm_1_1tir_1_1CallNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1CastNode-members.html       |   25 +-
 docs/doxygen/classtvm_1_1tir_1_1CastNode.html      |    8 +-
 .../classtvm_1_1tir_1_1CastNode__coll__graph.svg   |   48 +-
 ...classtvm_1_1tir_1_1CastNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1CmpOpNode-members.html      |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1CmpOpNode.html     |    8 +-
 .../classtvm_1_1tir_1_1CmpOpNode__coll__graph.svg  |   48 +-
 ...lasstvm_1_1tir_1_1CmpOpNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1DivNode-members.html        |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1DivNode.html       |    8 +-
 .../classtvm_1_1tir_1_1DivNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1DivNode__inherit__graph.svg |   62 +-
 .../doxygen/classtvm_1_1tir_1_1EQNode-members.html |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1EQNode.html        |    8 +-
 .../classtvm_1_1tir_1_1EQNode__coll__graph.svg     |   48 +-
 .../classtvm_1_1tir_1_1EQNode__inherit__graph.svg  |   62 +-
 .../classtvm_1_1tir_1_1EvaluateNode-members.html   |   21 +-
 docs/doxygen/classtvm_1_1tir_1_1EvaluateNode.html  |    6 +-
 ...lasstvm_1_1tir_1_1EvaluateNode__coll__graph.svg |  105 +-
 ...stvm_1_1tir_1_1EvaluateNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1FloorDivNode-members.html   |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1FloorDivNode.html  |    8 +-
 ...lasstvm_1_1tir_1_1FloorDivNode__coll__graph.svg |   48 +-
 ...stvm_1_1tir_1_1FloorDivNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1FloorModNode-members.html   |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1FloorModNode.html  |    8 +-
 ...lasstvm_1_1tir_1_1FloorModNode__coll__graph.svg |   48 +-
 ...stvm_1_1tir_1_1FloorModNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1ForNode-members.html        |   31 +-
 docs/doxygen/classtvm_1_1tir_1_1ForNode.html       |    4 +-
 .../classtvm_1_1tir_1_1ForNode__coll__graph.svg    |   27 +-
 .../classtvm_1_1tir_1_1ForNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1FreeNode-members.html       |   21 +-
 docs/doxygen/classtvm_1_1tir_1_1FreeNode.html      |    4 +-
 .../classtvm_1_1tir_1_1FreeNode__coll__graph.svg   |   27 +-
 ...classtvm_1_1tir_1_1FreeNode__inherit__graph.svg |   45 +-
 .../doxygen/classtvm_1_1tir_1_1GENode-members.html |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1GENode.html        |    8 +-
 .../classtvm_1_1tir_1_1GENode__coll__graph.svg     |   48 +-
 .../classtvm_1_1tir_1_1GENode__inherit__graph.svg  |   62 +-
 .../doxygen/classtvm_1_1tir_1_1GTNode-members.html |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1GTNode.html        |    8 +-
 .../classtvm_1_1tir_1_1GTNode__coll__graph.svg     |   48 +-
 .../classtvm_1_1tir_1_1GTNode__inherit__graph.svg  |   62 +-
 .../classtvm_1_1tir_1_1IfThenElseNode-members.html |   25 +-
 .../doxygen/classtvm_1_1tir_1_1IfThenElseNode.html |    6 +-
 ...sstvm_1_1tir_1_1IfThenElseNode__coll__graph.svg |  129 +-
 ...vm_1_1tir_1_1IfThenElseNode__inherit__graph.svg |   45 +-
 .../doxygen/classtvm_1_1tir_1_1LTNode-members.html |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1LTNode.html        |    8 +-
 .../classtvm_1_1tir_1_1LTNode__coll__graph.svg     |   48 +-
 .../classtvm_1_1tir_1_1LTNode__inherit__graph.svg  |   62 +-
 .../classtvm_1_1tir_1_1LetNode-members.html        |   29 +-
 docs/doxygen/classtvm_1_1tir_1_1LetNode.html       |    8 +-
 .../classtvm_1_1tir_1_1LetNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1LetNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1LetStmtNode-members.html    |   25 +-
 docs/doxygen/classtvm_1_1tir_1_1LetStmtNode.html   |    4 +-
 ...classtvm_1_1tir_1_1LetStmtNode__coll__graph.svg |   27 +-
 ...sstvm_1_1tir_1_1LetStmtNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1LoadNode-members.html       |   29 +-
 docs/doxygen/classtvm_1_1tir_1_1LoadNode.html      |    8 +-
 .../classtvm_1_1tir_1_1LoadNode__coll__graph.svg   |   48 +-
 ...classtvm_1_1tir_1_1LoadNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1MaxNode-members.html        |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1MaxNode.html       |    8 +-
 .../classtvm_1_1tir_1_1MaxNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1MaxNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1MinNode-members.html        |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1MinNode.html       |    8 +-
 .../classtvm_1_1tir_1_1MinNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1MinNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1ModNode-members.html        |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1ModNode.html       |    8 +-
 .../classtvm_1_1tir_1_1ModNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1ModNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1MulNode-members.html        |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1MulNode.html       |    8 +-
 .../classtvm_1_1tir_1_1MulNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1MulNode__inherit__graph.svg |   62 +-
 .../doxygen/classtvm_1_1tir_1_1NENode-members.html |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1NENode.html        |    8 +-
 .../classtvm_1_1tir_1_1NENode__coll__graph.svg     |   48 +-
 .../classtvm_1_1tir_1_1NENode__inherit__graph.svg  |   62 +-
 .../classtvm_1_1tir_1_1NotNode-members.html        |   25 +-
 docs/doxygen/classtvm_1_1tir_1_1NotNode.html       |    8 +-
 .../classtvm_1_1tir_1_1NotNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1NotNode__inherit__graph.svg |   62 +-
 .../doxygen/classtvm_1_1tir_1_1OrNode-members.html |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1OrNode.html        |    8 +-
 .../classtvm_1_1tir_1_1OrNode__coll__graph.svg     |   48 +-
 .../classtvm_1_1tir_1_1OrNode__inherit__graph.svg  |   62 +-
 .../classtvm_1_1tir_1_1PrefetchNode-members.html   |   25 +-
 docs/doxygen/classtvm_1_1tir_1_1PrefetchNode.html  |    4 +-
 ...lasstvm_1_1tir_1_1PrefetchNode__coll__graph.svg |   27 +-
 ...stvm_1_1tir_1_1PrefetchNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1PrimFuncNode-members.html   |   47 +-
 docs/doxygen/classtvm_1_1tir_1_1PrimFuncNode.html  |   14 +-
 ...lasstvm_1_1tir_1_1PrimFuncNode__coll__graph.svg |  279 +-
 ...stvm_1_1tir_1_1PrimFuncNode__inherit__graph.svg |   89 +-
 .../classtvm_1_1tir_1_1ProvideNode-members.html    |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1ProvideNode.html   |    6 +-
 ...classtvm_1_1tir_1_1ProvideNode__coll__graph.svg |  153 +-
 ...sstvm_1_1tir_1_1ProvideNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1RampNode-members.html       |   29 +-
 docs/doxygen/classtvm_1_1tir_1_1RampNode.html      |    8 +-
 .../classtvm_1_1tir_1_1RampNode__coll__graph.svg   |   48 +-
 ...classtvm_1_1tir_1_1RampNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1RealizeNode-members.html    |   31 +-
 docs/doxygen/classtvm_1_1tir_1_1RealizeNode.html   |    4 +-
 ...classtvm_1_1tir_1_1RealizeNode__coll__graph.svg |   27 +-
 ...sstvm_1_1tir_1_1RealizeNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1ReduceNode-members.html     |   33 +-
 docs/doxygen/classtvm_1_1tir_1_1ReduceNode.html    |    8 +-
 .../classtvm_1_1tir_1_1ReduceNode__coll__graph.svg |   48 +-
 ...asstvm_1_1tir_1_1ReduceNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1SelectNode-members.html     |   29 +-
 docs/doxygen/classtvm_1_1tir_1_1SelectNode.html    |    8 +-
 .../classtvm_1_1tir_1_1SelectNode__coll__graph.svg |   48 +-
 ...asstvm_1_1tir_1_1SelectNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1SeqStmtNode-members.html    |   23 +-
 docs/doxygen/classtvm_1_1tir_1_1SeqStmtNode.html   |    4 +-
 ...classtvm_1_1tir_1_1SeqStmtNode__coll__graph.svg |   27 +-
 ...sstvm_1_1tir_1_1SeqStmtNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1ShuffleNode-members.html    |   31 +-
 docs/doxygen/classtvm_1_1tir_1_1ShuffleNode.html   |    8 +-
 ...classtvm_1_1tir_1_1ShuffleNode__coll__graph.svg |   48 +-
 ...sstvm_1_1tir_1_1ShuffleNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1SizeVarNode-members.html    |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1SizeVarNode.html   |   12 +-
 ...classtvm_1_1tir_1_1SizeVarNode__coll__graph.svg |  163 +-
 ...sstvm_1_1tir_1_1SizeVarNode__inherit__graph.svg |   85 +-
 .../classtvm_1_1tir_1_1StmtNode-members.html       |    9 +-
 docs/doxygen/classtvm_1_1tir_1_1StmtNode.html      |   26 +-
 .../classtvm_1_1tir_1_1StmtNode__coll__graph.svg   |   41 +-
 ...classtvm_1_1tir_1_1StmtNode__inherit__graph.svg |  101 +-
 .../classtvm_1_1tir_1_1StoreNode-members.html      |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1StoreNode.html     |    4 +-
 .../classtvm_1_1tir_1_1StoreNode__coll__graph.svg  |   27 +-
 ...lasstvm_1_1tir_1_1StoreNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1StringImmNode-members.html  |   25 +-
 docs/doxygen/classtvm_1_1tir_1_1StringImmNode.html |   10 +-
 ...asstvm_1_1tir_1_1StringImmNode__coll__graph.svg |  108 +-
 ...tvm_1_1tir_1_1StringImmNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1SubNode-members.html        |   27 +-
 docs/doxygen/classtvm_1_1tir_1_1SubNode.html       |    8 +-
 .../classtvm_1_1tir_1_1SubNode__coll__graph.svg    |   48 +-
 .../classtvm_1_1tir_1_1SubNode__inherit__graph.svg |   62 +-
 .../classtvm_1_1tir_1_1VarNode-members.html        |   25 +-
 docs/doxygen/classtvm_1_1tir_1_1VarNode.html       |   32 +-
 .../classtvm_1_1tir_1_1VarNode__coll__graph.svg    |  159 +-
 .../classtvm_1_1tir_1_1VarNode__inherit__graph.svg |   85 +-
 docs/doxygen/codegen_8h.html                       |    2 +-
 docs/doxygen/codegen_8h__incl.svg                  | 2031 ++++++------
 docs/doxygen/codegen_8h_source.html                |    2 +-
 docs/doxygen/constant__utils_8h.html               |    5 +-
 docs/doxygen/constant__utils_8h__incl.svg          | 2125 ++++++------
 docs/doxygen/constant__utils_8h_source.html        |   14 +-
 docs/doxygen/cuda_2dense_8h_source.html            |   10 +-
 docs/doxygen/cuda_2injective_8h.html               |    2 +-
 docs/doxygen/cuda_2injective_8h__incl.svg          | 1768 +++++-----
 docs/doxygen/cuda_2injective_8h_source.html        |    6 +-
 docs/doxygen/cuda_2normalization_8h.html           |    2 +-
 docs/doxygen/cuda_2normalization_8h__incl.svg      | 1753 +++++-----
 docs/doxygen/cuda_2normalization_8h_source.html    |    4 +-
 docs/doxygen/cuda_2pooling_8h.html                 |    2 +-
 docs/doxygen/cuda_2pooling_8h__incl.svg            | 1765 +++++-----
 docs/doxygen/cuda_2pooling_8h_source.html          |    8 +-
 docs/doxygen/cuda_2reduction_8h.html               |    2 +-
 docs/doxygen/cuda_2reduction_8h__incl.svg          | 1768 +++++-----
 docs/doxygen/cuda_2reduction_8h_source.html        |   10 +-
 docs/doxygen/cuda_2softmax_8h.html                 |    2 +-
 docs/doxygen/cuda_2softmax_8h__incl.svg            | 1768 +++++-----
 docs/doxygen/cuda_2softmax_8h_source.html          |    8 +-
 docs/doxygen/data__layout_8h_source.html           |    8 +-
 docs/doxygen/data__type_8h.html                    |    2 +-
 docs/doxygen/data__type_8h__dep__incl.svg          | 1249 +++----
 docs/doxygen/detail_2broadcast_8h.html             |    2 +-
 docs/doxygen/detail_2broadcast_8h__incl.svg        | 2181 ++++++------
 docs/doxygen/detail_2broadcast_8h_source.html      |    6 +-
 docs/doxygen/detail_2extern_8h_source.html         |    4 +-
 docs/doxygen/dilate_8h.html                        |    4 +-
 docs/doxygen/dilate_8h__incl.svg                   | 2147 ++++++------
 docs/doxygen/dilate_8h_source.html                 |   13 +-
 docs/doxygen/dir_000004_000000.html                |    2 +-
 docs/doxygen/dir_000005_000000.html                |    2 +-
 docs/doxygen/dir_000010_000007.html                |    2 +-
 docs/doxygen/dir_000010_000013.html                |    2 +-
 docs/doxygen/dir_000010_000019.html                |   90 -
 docs/doxygen/dir_000018_000007.html                |    2 +-
 docs/doxygen/dir_000020_000000.html                |    2 +-
 docs/doxygen/dir_000023_000000.html                |    2 +-
 .../dir_02be2c9d68e402f80df60bd528724ee5_dep.svg   |    4 +-
 .../dir_14640941691eabc830844bef8114fc0c_dep.svg   |    4 +-
 .../dir_194ecda214f05a38134392ac6a69b970_dep.svg   |    8 +-
 .../dir_501163e255a572c2b8f8622055dcc830_dep.svg   |    4 +-
 .../dir_59fae77b9344561cec492d4c84fe16f0_dep.svg   |    4 +-
 .../dir_5da96592f3a7c442b838b075c58254c2_dep.svg   |   12 +-
 .../dir_63946bee875c6d52bce55e72a67a86ad.html      |    2 +-
 .../dir_63946bee875c6d52bce55e72a67a86ad_dep.svg   |  209 +-
 .../dir_72c2f11201cd7636dc7624de0754daa5.html      |    7 +-
 .../dir_72c2f11201cd7636dc7624de0754daa5_dep.svg   |  142 +-
 .../dir_82fbc0b750acd2d16bf657eba2735040_dep.svg   |    4 +-
 .../dir_85f3d6180da4edc5eb489febd20e807a_dep.svg   |    4 +-
 .../dir_9028d5d964ed0471973ff1d6dc49c294_dep.svg   |    4 +-
 .../dir_919d148e3bc0d2ada10274b170555243_dep.svg   |    4 +-
 .../dir_9a72de697ed8769045f2ae88dc0db9c6_dep.svg   |    4 +-
 .../dir_b4c7d8e826c599ba55146c099a14beb5.html      |    2 +-
 .../dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg   |  277 +-
 .../dir_cf1b2a4a187708c24d9394e639e6417e_dep.svg   |    4 +-
 .../dir_f97d855a3173728370e632aa77170e34.html      |    2 +-
 .../dir_f97d855a3173728370e632aa77170e34_dep.svg   |  119 +-
 docs/doxygen/driver__api_8h.html                   |    2 +-
 docs/doxygen/driver__api_8h__incl.svg              | 1709 +++++-----
 docs/doxygen/elemwise_8h.html                      |   11 +-
 docs/doxygen/elemwise_8h__incl.svg                 | 1949 ++++++-----
 docs/doxygen/elemwise_8h_source.html               |   83 +-
 docs/doxygen/error_8h.html                         |    2 +-
 docs/doxygen/error_8h__dep__incl.svg               |  722 +++-
 docs/doxygen/error_8h_source.html                  |    2 +-
 docs/doxygen/feature_8h_source.html                |    4 +-
 docs/doxygen/files.html                            |   11 +-
 docs/doxygen/flatten_8h.html                       |    2 +-
 docs/doxygen/flatten_8h__incl.svg                  | 2203 ++++++-------
 docs/doxygen/flatten_8h_source.html                |    4 +-
 docs/doxygen/functions__.html                      |   12 +-
 docs/doxygen/functions_a.html                      |    8 +-
 docs/doxygen/functions_b.html                      |    4 +-
 docs/doxygen/functions_c.html                      |   11 +-
 docs/doxygen/functions_eval.html                   |   24 +
 docs/doxygen/functions_func_b.html                 |    4 +-
 docs/doxygen/functions_func_c.html                 |    9 +-
 docs/doxygen/functions_func_g.html                 |    2 +-
 docs/doxygen/functions_func_o.html                 |   12 +-
 docs/doxygen/functions_func_s.html                 |    6 +-
 docs/doxygen/functions_func_t.html                 |   11 +-
 docs/doxygen/functions_g.html                      |    4 +-
 docs/doxygen/functions_i.html                      |    2 +-
 docs/doxygen/functions_k.html                      |   24 +
 docs/doxygen/functions_l.html                      |    2 +-
 docs/doxygen/functions_n.html                      |    4 +-
 docs/doxygen/functions_o.html                      |   12 +-
 docs/doxygen/functions_s.html                      |    7 +-
 docs/doxygen/functions_t.html                      |   11 +-
 docs/doxygen/functions_vars.html                   |   12 +-
 docs/doxygen/functions_vars_a.html                 |    8 +-
 docs/doxygen/functions_vars_g.html                 |    2 +-
 docs/doxygen/functions_vars_i.html                 |    2 +-
 docs/doxygen/functions_vars_l.html                 |    2 +-
 docs/doxygen/functions_vars_n.html                 |    4 +-
 docs/doxygen/functions_vars_s.html                 |    1 +
 docs/doxygen/functor_8h.html                       |    4 +-
 docs/doxygen/functor_8h__dep__incl.svg             | 1322 ++++----
 docs/doxygen/generic_2default_8h.html              |    2 +-
 docs/doxygen/generic_2default_8h__incl.svg         | 1768 +++++-----
 docs/doxygen/generic_2default_8h_source.html       |    2 +-
 docs/doxygen/generic_2extern_8h.html               |    2 +-
 docs/doxygen/generic_2extern_8h__incl.svg          | 1793 +++++-----
 docs/doxygen/generic_2extern_8h_source.html        |    2 +-
 docs/doxygen/generic_2injective_8h.html            |    2 +-
 docs/doxygen/generic_2injective_8h__incl.svg       | 1768 +++++-----
 docs/doxygen/generic_2injective_8h_source.html     |    2 +-
 docs/doxygen/generic__func_8h.html                 |    4 +-
 docs/doxygen/generic__func_8h__incl.svg            |  991 +++---
 docs/doxygen/generic__func_8h_source.html          |    2 +-
 docs/doxygen/hierarchy.html                        | 1186 +++----
 docs/doxygen/include_2tvm_2ir_2transform_8h.html   |    2 +-
 .../include_2tvm_2ir_2transform_8h__dep__incl.svg  |  674 +++-
 .../include_2tvm_2ir_2transform_8h_source.html     |    4 +-
 .../doxygen/include_2tvm_2relay_2attrs_2nn_8h.html |    3 +
 .../include_2tvm_2relay_2attrs_2nn_8h_source.html  |  339 +-
 ...de_2tvm_2relay_2attrs_2transform_8h_source.html |    4 +-
 .../include_2tvm_2relay_2qnn_2transform_8h.html    |    2 +-
 ...nclude_2tvm_2relay_2qnn_2transform_8h__incl.svg |  961 +++---
 .../doxygen/include_2tvm_2relay_2transform_8h.html |    5 +-
 .../include_2tvm_2relay_2transform_8h__incl.svg    | 1103 +++----
 .../include_2tvm_2relay_2transform_8h_source.html  |    7 +-
 docs/doxygen/include_2tvm_2tir_2transform_8h.html  |    6 +
 .../include_2tvm_2tir_2transform_8h_source.html    |   13 +-
 docs/doxygen/inherit_graph_100.svg                 |   19 +-
 docs/doxygen/inherit_graph_101.svg                 |   21 +-
 docs/doxygen/inherit_graph_102.svg                 |   17 +-
 docs/doxygen/inherit_graph_103.svg                 |   12 +-
 docs/doxygen/inherit_graph_104.svg                 |   12 +-
 docs/doxygen/inherit_graph_105.svg                 |   15 +-
 docs/doxygen/inherit_graph_106.svg                 |   12 +-
 docs/doxygen/inherit_graph_107.svg                 |   14 +-
 docs/doxygen/inherit_graph_108.svg                 |   12 +-
 docs/doxygen/inherit_graph_109.svg                 |   15 +-
 docs/doxygen/inherit_graph_110.svg                 |   12 +-
 docs/doxygen/inherit_graph_111.svg                 |   15 +-
 docs/doxygen/inherit_graph_112.svg                 |   16 +-
 docs/doxygen/inherit_graph_113.svg                 |   15 +-
 docs/doxygen/inherit_graph_114.svg                 |   17 +-
 docs/doxygen/inherit_graph_115.svg                 |   15 +-
 docs/doxygen/inherit_graph_116.svg                 |   14 +-
 docs/doxygen/inherit_graph_117.svg                 |   69 +-
 docs/doxygen/inherit_graph_118.svg                 |   69 +-
 docs/doxygen/inherit_graph_119.svg                 |   68 +-
 docs/doxygen/inherit_graph_120.svg                 |   72 +-
 docs/doxygen/inherit_graph_121.svg                 |   15 +-
 docs/doxygen/inherit_graph_122.svg                 |   18 +-
 docs/doxygen/inherit_graph_123.svg                 |   14 +-
 docs/doxygen/inherit_graph_124.svg                 |   28 +-
 docs/doxygen/inherit_graph_125.svg                 |   27 +-
 docs/doxygen/inherit_graph_126.svg                 |   28 +-
 docs/doxygen/inherit_graph_127.svg                 |   28 +-
 docs/doxygen/inherit_graph_128.svg                 |   12 +-
 docs/doxygen/inherit_graph_129.svg                 |   12 +-
 ...inherit_graph_128.svg => inherit_graph_130.svg} |    0
 ...inherit_graph_129.svg => inherit_graph_131.svg} |    0
 docs/doxygen/inherit_graph_5.svg                   | 3464 ++++++++++----------
 docs/doxygen/inherit_graph_73.svg                  |   15 +-
 docs/doxygen/inherit_graph_74.svg                  |   25 +-
 docs/doxygen/inherit_graph_75.svg                  |  173 +-
 docs/doxygen/inherit_graph_76.svg                  |  175 +-
 docs/doxygen/inherit_graph_77.svg                  |   12 +-
 docs/doxygen/inherit_graph_78.svg                  |   12 +-
 docs/doxygen/inherit_graph_79.svg                  |   15 +-
 docs/doxygen/inherit_graph_80.svg                  |  119 +-
 docs/doxygen/inherit_graph_81.svg                  |  119 +-
 docs/doxygen/inherit_graph_82.svg                  |   12 +-
 docs/doxygen/inherit_graph_83.svg                  |   12 +-
 docs/doxygen/inherit_graph_84.svg                  |   15 +-
 docs/doxygen/inherit_graph_85.svg                  |   16 +-
 docs/doxygen/inherit_graph_86.svg                  |   17 +-
 docs/doxygen/inherit_graph_87.svg                  |   12 +-
 docs/doxygen/inherit_graph_88.svg                  |   12 +-
 docs/doxygen/inherit_graph_89.svg                  |   17 +-
 docs/doxygen/inherit_graph_90.svg                  |   16 +-
 docs/doxygen/inherit_graph_91.svg                  |   16 +-
 docs/doxygen/inherit_graph_92.svg                  |   17 +-
 docs/doxygen/inherit_graph_93.svg                  |   14 +-
 docs/doxygen/inherit_graph_94.svg                  |   15 +-
 docs/doxygen/inherit_graph_95.svg                  |   12 +-
 docs/doxygen/inherit_graph_96.svg                  |   54 +-
 docs/doxygen/inherit_graph_97.svg                  |   58 +-
 docs/doxygen/inherit_graph_98.svg                  |   19 +-
 docs/doxygen/inherit_graph_99.svg                  |    4 +-
 docs/doxygen/inherits.html                         |  118 +-
 docs/doxygen/int__set_8h.html                      |    5 +-
 docs/doxygen/int__set_8h__dep__incl.svg            | 1129 ++++---
 docs/doxygen/int__set_8h_source.html               |    9 +-
 docs/doxygen/int__solver_8h_source.html            |    2 +-
 docs/doxygen/interpreter_8h.html                   |    2 +-
 docs/doxygen/interpreter_8h__incl.svg              | 1941 +++++------
 docs/doxygen/interpreter_8h_source.html            |    4 +-
 docs/doxygen/ir_2adt_8h.html                       |    2 +-
 docs/doxygen/ir_2adt_8h__dep__incl.svg             | 1146 ++++---
 docs/doxygen/ir_2adt_8h_source.html                |   14 +-
 docs/doxygen/ir_2attrs_8h.html                     |    4 +-
 docs/doxygen/ir_2attrs_8h__dep__incl.svg           | 1169 +++----
 docs/doxygen/ir_2attrs_8h_source.html              |   16 +-
 docs/doxygen/ir_2expr_8h.html                      |    2 +-
 docs/doxygen/ir_2expr_8h__dep__incl.svg            | 1325 ++++----
 docs/doxygen/ir_2expr_8h_source.html               |  125 +-
 docs/doxygen/ir_2function_8h.html                  |    2 +-
 docs/doxygen/ir_2function_8h__dep__incl.svg        | 1313 ++++----
 docs/doxygen/ir_2function_8h_source.html           |   20 +-
 docs/doxygen/ir_2module_8h.html                    |    2 +-
 docs/doxygen/ir_2module_8h__dep__incl.svg          | 1133 ++++---
 docs/doxygen/ir_2module_8h_source.html             |   10 +-
 docs/doxygen/ir_2op_8h.html                        |    2 +-
 docs/doxygen/ir_2op_8h_source.html                 |   10 +-
 docs/doxygen/ir_2type_8h.html                      |    2 +-
 docs/doxygen/ir_2type_8h__dep__incl.svg            | 1480 +++++----
 docs/doxygen/ir_2type_8h_source.html               |  139 +-
 docs/doxygen/ir__pass_8h.html                      |  199 --
 docs/doxygen/ir__pass_8h__dep__incl.svg            |  270 --
 docs/doxygen/ir__pass_8h__incl.svg                 | 1361 --------
 docs/doxygen/ir__pass_8h_source.html               |  118 -
 docs/doxygen/local__response__norm_8h_source.html  |    4 +-
 docs/doxygen/mapping_8h_source.html                |    2 +-
 docs/doxygen/namespacemembers.html                 |   19 +-
 docs/doxygen/namespacemembers_c.html               |   12 +-
 docs/doxygen/namespacemembers_d.html               |    2 +-
 docs/doxygen/namespacemembers_e.html               |    2 +-
 docs/doxygen/namespacemembers_enum.html            |    3 -
 docs/doxygen/namespacemembers_eval.html            |   18 -
 docs/doxygen/namespacemembers_func.html            |   19 +-
 docs/doxygen/namespacemembers_func_c.html          |   12 +-
 docs/doxygen/namespacemembers_func_d.html          |    2 +-
 docs/doxygen/namespacemembers_func_e.html          |    2 +-
 docs/doxygen/namespacemembers_func_h.html          |    5 +-
 docs/doxygen/namespacemembers_func_i.html          |    3 +-
 docs/doxygen/namespacemembers_func_l.html          |   10 +-
 docs/doxygen/namespacemembers_func_p.html          |    5 +-
 docs/doxygen/namespacemembers_func_s.html          |   10 +-
 docs/doxygen/namespacemembers_func_v.html          |   11 +-
 docs/doxygen/namespacemembers_h.html               |    5 +-
 docs/doxygen/namespacemembers_i.html               |    3 +-
 docs/doxygen/namespacemembers_k.html               |   16 -
 docs/doxygen/namespacemembers_l.html               |   10 +-
 docs/doxygen/namespacemembers_n.html               |    5 +-
 docs/doxygen/namespacemembers_p.html               |    8 +-
 docs/doxygen/namespacemembers_s.html               |   10 +-
 docs/doxygen/namespacemembers_t.html               |    3 -
 docs/doxygen/namespacemembers_v.html               |   11 +-
 docs/doxygen/namespacemembers_vars.html            |   11 +
 docs/doxygen/namespacetopi.html                    |  506 ++-
 docs/doxygen/namespacetvm.html                     |  419 ++-
 docs/doxygen/namespacetvm_1_1arith.html            |   28 +
 docs/doxygen/namespacetvm_1_1relay.html            |    3 +
 .../namespacetvm_1_1relay_1_1transform.html        |   28 -
 docs/doxygen/namespacetvm_1_1runtime.html          |   48 +-
 docs/doxygen/namespacetvm_1_1te.html               |  142 +-
 docs/doxygen/namespacetvm_1_1tir.html              |  597 +---
 docs/doxygen/namespacetvm_1_1tir_1_1attr.html      |   17 +
 docs/doxygen/namespacetvm_1_1tir_1_1transform.html |  115 +
 docs/doxygen/ndarray_8h.html                       |    2 +-
 docs/doxygen/ndarray_8h__dep__incl.svg             |  813 ++---
 docs/doxygen/ndarray_8h_source.html                |   22 +-
 docs/doxygen/nn_2bnn_8h.html                       |    4 +-
 docs/doxygen/nn_2bnn_8h__incl.svg                  | 2299 +++++++------
 docs/doxygen/nn_2bnn_8h_source.html                |   17 +-
 docs/doxygen/nn_2dense_8h_source.html              |    4 +-
 docs/doxygen/nn_2pooling_8h.html                   |    4 +-
 docs/doxygen/nn_2pooling_8h__incl.svg              | 2278 +++++++------
 docs/doxygen/nn_2pooling_8h_source.html            |   23 +-
 docs/doxygen/nn_2softmax_8h.html                   |    2 +-
 docs/doxygen/nn_2softmax_8h__incl.svg              | 2025 ++++++------
 docs/doxygen/nn_2softmax_8h_source.html            |   12 +-
 docs/doxygen/node_2container_8h.html               |    2 +-
 docs/doxygen/node_2container_8h__dep__incl.svg     | 1602 ++++-----
 docs/doxygen/node_2container_8h_source.html        |    4 +-
 docs/doxygen/node_8h.html                          |    2 +-
 docs/doxygen/node_8h__dep__incl.svg                | 1434 ++++----
 docs/doxygen/node_8h_source.html                   |    5 +-
 docs/doxygen/object_8h.html                        |   41 +-
 docs/doxygen/object_8h__dep__incl.svg              | 1344 ++++----
 docs/doxygen/object_8h_source.html                 |  155 +-
 docs/doxygen/op__attr__types_8h.html               |    2 +-
 docs/doxygen/op__attr__types_8h__incl.svg          | 1893 +++++------
 docs/doxygen/op__attr__types_8h_source.html        |    6 +-
 docs/doxygen/op__strategy_8h.html                  |    2 +-
 docs/doxygen/op__strategy_8h__incl.svg             | 1383 ++++----
 docs/doxygen/op__strategy_8h_source.html           |   10 +-
 docs/doxygen/operation_8h.html                     |    2 +-
 docs/doxygen/operation_8h__dep__incl.svg           |  916 +++---
 docs/doxygen/operation_8h_source.html              |   18 +-
 docs/doxygen/packed__func_8h.html                  |    2 +-
 docs/doxygen/packed__func_8h__dep__incl.svg        |  896 ++---
 docs/doxygen/packed__func_8h_source.html           |   22 +-
 docs/doxygen/pad__utils_8h_source.html             |    2 +-
 docs/doxygen/pattern__functor_8h_source.html       |    2 +-
 docs/doxygen/ravel__unravel_8h_source.html         |    2 +-
 docs/doxygen/reduction_8h.html                     |    2 +-
 docs/doxygen/reduction_8h__incl.svg                | 1213 ++++---
 docs/doxygen/reduction_8h_source.html              |   10 +-
 docs/doxygen/reflection_8h.html                    |    6 +-
 docs/doxygen/reflection_8h__dep__incl.svg          | 1239 ++++---
 docs/doxygen/reflection_8h_source.html             |    2 +-
 docs/doxygen/registry_8h.html                      |    2 +-
 docs/doxygen/relay_2adt_8h_source.html             |   10 +-
 docs/doxygen/relay_2expr_8h_source.html            |   25 +-
 docs/doxygen/relay_2expr__functor_8h_source.html   |    6 +-
 docs/doxygen/relay_2function_8h_source.html        |   16 +-
 docs/doxygen/relay_2type_8h_source.html            |   36 +-
 docs/doxygen/reorg_8h.html                         |    2 +-
 docs/doxygen/reorg_8h__incl.svg                    | 1243 ++++---
 docs/doxygen/reorg_8h_source.html                  |    2 +-
 docs/doxygen/repr__printer_8h.html                 |    2 +-
 docs/doxygen/repr__printer_8h__dep__incl.svg       | 1297 ++++----
 docs/doxygen/repr__printer_8h_source.html          |    4 +-
 docs/doxygen/rocm_2dense_8h_source.html            |    6 +-
 docs/doxygen/rocm_2injective_8h.html               |    2 +-
 docs/doxygen/rocm_2injective_8h__incl.svg          | 1742 +++++-----
 docs/doxygen/rocm_2injective_8h_source.html        |    2 +-
 docs/doxygen/rocm_2normalization_8h.html           |    2 +-
 docs/doxygen/rocm_2normalization_8h__incl.svg      | 2226 ++++++-------
 docs/doxygen/rocm_2pooling_8h.html                 |    2 +-
 docs/doxygen/rocm_2pooling_8h__incl.svg            | 1751 +++++-----
 docs/doxygen/rocm_2pooling_8h_source.html          |    2 +-
 docs/doxygen/rocm_2reduction_8h.html               |    2 +-
 docs/doxygen/rocm_2reduction_8h__incl.svg          | 1742 +++++-----
 docs/doxygen/rocm_2reduction_8h_source.html        |    2 +-
 docs/doxygen/rocm_2softmax_8h.html                 |    2 +-
 docs/doxygen/rocm_2softmax_8h__incl.svg            | 1742 +++++-----
 docs/doxygen/rocm_2softmax_8h_source.html          |    2 +-
 docs/doxygen/runtime_2container_8h.html            |   13 +-
 docs/doxygen/runtime_2container_8h__dep__incl.svg  | 1687 +++++-----
 docs/doxygen/runtime_2container_8h_source.html     |   65 +-
 docs/doxygen/runtime_2memory_8h.html               |    2 +-
 docs/doxygen/runtime_2memory_8h__dep__incl.svg     | 1660 +++++-----
 docs/doxygen/runtime_2memory_8h_source.html        |    6 +-
 docs/doxygen/runtime_2module_8h.html               |    2 +-
 docs/doxygen/runtime_2module_8h__dep__incl.svg     |  894 ++---
 docs/doxygen/runtime_2module_8h_source.html        |   16 +-
 docs/doxygen/schedule_8h.html                      |    2 +-
 docs/doxygen/schedule_8h__dep__incl.svg            | 1418 ++++----
 docs/doxygen/schedule_8h_source.html               |   14 +-
 docs/doxygen/schedule__pass_8h.html                |    3 +
 docs/doxygen/schedule__pass_8h_source.html         |    3 +-
 docs/doxygen/search/all_1.js                       |    2 +-
 docs/doxygen/search/all_10.js                      |    4 +-
 docs/doxygen/search/all_11.js                      |   13 +-
 docs/doxygen/search/all_14.js                      |   12 +-
 docs/doxygen/search/all_15.js                      |   34 +-
 docs/doxygen/search/all_17.js                      |   12 +-
 docs/doxygen/search/all_2.js                       |   24 +-
 docs/doxygen/search/all_3.js                       |    2 +-
 docs/doxygen/search/all_4.js                       |   14 +-
 docs/doxygen/search/all_5.js                       |    9 +-
 docs/doxygen/search/all_6.js                       |    4 +-
 docs/doxygen/search/all_8.js                       |    4 +-
 docs/doxygen/search/all_9.js                       |    9 +-
 docs/doxygen/search/all_a.js                       |   13 +-
 docs/doxygen/search/all_c.js                       |   15 +-
 docs/doxygen/search/all_d.js                       |    6 +-
 docs/doxygen/search/all_f.js                       |    6 +-
 docs/doxygen/search/classes_0.js                   |    1 +
 docs/doxygen/search/classes_11.js                  |    1 +
 docs/doxygen/search/classes_13.js                  |    4 +-
 docs/doxygen/search/classes_3.js                   |    1 +
 docs/doxygen/search/classes_4.js                   |    2 +-
 docs/doxygen/search/classes_7.js                   |    2 +-
 docs/doxygen/search/classes_b.js                   |    3 +-
 docs/doxygen/search/enums_9.js                     |    1 -
 docs/doxygen/search/enumvalues_6.js                |   14 +-
 docs/doxygen/search/files_7.js                     |    5 +-
 docs/doxygen/search/functions_1.js                 |    5 +
 docs/doxygen/search/functions_10.js                |    6 +-
 docs/doxygen/search/functions_12.js                |    8 +-
 docs/doxygen/search/functions_13.js                |    4 +-
 docs/doxygen/search/functions_15.js                |    8 +-
 docs/doxygen/search/functions_2.js                 |    2 +-
 docs/doxygen/search/functions_3.js                 |    6 +-
 docs/doxygen/search/functions_4.js                 |    2 +-
 docs/doxygen/search/functions_5.js                 |    2 +-
 docs/doxygen/search/functions_7.js                 |    2 +-
 docs/doxygen/search/functions_8.js                 |    3 +-
 docs/doxygen/search/functions_9.js                 |    4 +-
 docs/doxygen/search/functions_c.js                 |    4 +-
 docs/doxygen/search/functions_f.js                 |    4 +-
 docs/doxygen/search/variables_0.js                 |    2 +-
 docs/doxygen/search/variables_1.js                 |    8 +-
 docs/doxygen/search/variables_11.js                |    2 +-
 docs/doxygen/search/variables_7.js                 |    2 +-
 docs/doxygen/search/variables_9.js                 |    2 +-
 docs/doxygen/search/variables_b.js                 |    2 +-
 docs/doxygen/search/variables_d.js                 |    5 +-
 docs/doxygen/search/variables_f.js                 |    1 +
 docs/doxygen/serializer_8h.html                    |    2 +-
 docs/doxygen/serializer_8h__dep__incl.svg          |  811 ++---
 docs/doxygen/span_8h.html                          |    2 +-
 docs/doxygen/span_8h__dep__incl.svg                | 1464 +++++----
 docs/doxygen/span_8h_source.html                   |    6 +-
 docs/doxygen/stmt_8h.html                          |    5 +-
 docs/doxygen/stmt_8h__dep__incl.svg                | 1195 ++++---
 docs/doxygen/stmt_8h_source.html                   |  356 +-
 docs/doxygen/stmt__functor_8h.html                 |   30 +-
 docs/doxygen/stmt__functor_8h__incl.svg            | 1632 ++++-----
 docs/doxygen/stmt__functor_8h_source.html          |   89 +-
 .../structtvm_1_1relay_1_1DilateAttrs-members.html |  122 +
 .../doxygen/structtvm_1_1relay_1_1DilateAttrs.html |  231 ++
 ...ucttvm_1_1relay_1_1DilateAttrs__coll__graph.svg |  128 +
 ...tvm_1_1relay_1_1DilateAttrs__inherit__graph.svg |   86 +
 ...ml => structtvm_1_1runtime_1_1NullOptType.html} |   27 +-
 ...ttvm_1_1runtime_1_1NullOptType__coll__graph.svg |   22 +
 ...structtvm_1_1runtime_1_1TypeIndex-members.html} |   20 +-
 .../doxygen/structtvm_1_1runtime_1_1TypeIndex.html |  175 +
 ...ucttvm_1_1runtime_1_1TypeIndex__coll__graph.svg |   22 +
 ...vm_1_1runtime_1_1vm_1_1Instruction-members.html |   12 +-
 .../structtvm_1_1runtime_1_1vm_1_1Instruction.html |  340 +-
 .../structtvm_1_1tir_1_1LENode-members.html        |   27 +-
 docs/doxygen/structtvm_1_1tir_1_1LENode.html       |    8 +-
 .../structtvm_1_1tir_1_1LENode__coll__graph.svg    |   48 +-
 .../structtvm_1_1tir_1_1LENode__inherit__graph.svg |   62 +-
 docs/doxygen/structural__equal_8h_source.html      |    2 +-
 docs/doxygen/structural__hash_8h_source.html       |    2 +-
 docs/doxygen/target_8h.html                        |    3 +-
 docs/doxygen/target_8h__incl.svg                   | 1014 +++---
 docs/doxygen/target_8h_source.html                 |   47 +-
 docs/doxygen/target__info_8h_source.html           |    4 +-
 docs/doxygen/tensor_8h.html                        |    2 +-
 docs/doxygen/tensor_8h__dep__incl.svg              | 1160 +++----
 docs/doxygen/tensor_8h_source.html                 |    8 +-
 docs/doxygen/tensor__intrin_8h.html                |    2 +-
 docs/doxygen/tensor__intrin_8h__dep__incl.svg      | 1381 ++++----
 docs/doxygen/tensor__intrin_8h_source.html         |    4 +-
 docs/doxygen/tensor__type_8h_source.html           |   27 +-
 docs/doxygen/tensor__utils_8h_source.html          |    4 +-
 docs/doxygen/tir_2analysis_8h.html                 |   36 +-
 docs/doxygen/tir_2analysis_8h__incl.svg            | 1779 +++++-----
 docs/doxygen/tir_2analysis_8h_source.html          |   26 +-
 docs/doxygen/tir_2expr_8h.html                     |    2 +-
 docs/doxygen/tir_2expr_8h__dep__incl.svg           | 1168 +++----
 docs/doxygen/tir_2expr_8h_source.html              |   28 +-
 docs/doxygen/tir_2expr__functor_8h__dep__incl.svg  |    2 +-
 docs/doxygen/tir_2expr__functor_8h_source.html     |    8 +-
 docs/doxygen/tir_2function_8h.html                 |    2 +-
 docs/doxygen/tir_2function_8h__dep__incl.svg       |  415 +--
 docs/doxygen/tir_2function_8h_source.html          |   18 +-
 docs/doxygen/tir_2op_8h.html                       |   16 +-
 docs/doxygen/tir_2op_8h__dep__incl.svg             | 1055 +++---
 docs/doxygen/tir_2op_8h_source.html                |   69 +-
 docs/doxygen/topi_2include_2topi_2nn_8h.html       |    4 +-
 docs/doxygen/topi_2include_2topi_2nn_8h__incl.svg  | 1985 +++++------
 .../doxygen/topi_2include_2topi_2nn_8h_source.html |   25 +-
 .../doxygen/topi_2include_2topi_2transform_8h.html |    2 +-
 .../topi_2include_2topi_2transform_8h__incl.svg    | 1221 +++----
 .../topi_2include_2topi_2transform_8h_source.html  |   19 +-
 .../topi_2include_2topi_2util_8h_source.html       |    2 +-
 docs/doxygen/type__functor_8h_source.html          |   22 +-
 docs/doxygen/type__relation_8h_source.html         |   10 +-
 docs/doxygen/var_8h.html                           |    2 +-
 docs/doxygen/var_8h__dep__incl.svg                 | 1170 ++++---
 docs/doxygen/var_8h_source.html                    |   73 +-
 docs/doxygen/vision_8h_source.html                 |    2 +-
 docs/doxygen/vm_8h_source.html                     |   16 +-
 docs/doxygen/with_8h.html                          |    2 +-
 docs/doxygen/with_8h__dep__incl.svg                | 1400 ++++----
 docs/doxygen/with_8h_source.html                   |    2 +-
 docs/doxygen/x86_2bnn_8h.html                      |    2 +-
 docs/doxygen/x86_2bnn_8h__incl.svg                 | 1642 +++++-----
 docs/doxygen/x86_2bnn_8h_source.html               |    4 +-
 docs/doxygen/x86_2default_8h.html                  |    2 +-
 docs/doxygen/x86_2default_8h__incl.svg             | 1762 +++++-----
 docs/doxygen/x86_2default_8h_source.html           |    2 +-
 docs/doxygen/x86_2injective_8h.html                |    2 +-
 docs/doxygen/x86_2injective_8h__incl.svg           | 1642 +++++-----
 docs/doxygen/x86_2injective_8h_source.html         |    2 +-
 docs/genindex.html                                 |  787 ++++-
 docs/index.html                                    |    1 +
 docs/install/nnpack.html                           |   35 +-
 docs/jsdoc/index.html                              |    2 +-
 docs/jsdoc/tvm.GraphModule.html                    |    2 +-
 docs/jsdoc/tvm.NDArray.html                        |    2 +-
 docs/jsdoc/tvm.TVMConstant.html                    |    2 +-
 docs/jsdoc/tvm.TVMContext.html                     |    2 +-
 docs/jsdoc/tvm.TVMModule.html                      |    2 +-
 docs/jsdoc/tvm.TVMRuntime.html                     |    2 +-
 docs/jsdoc/tvm.html                                |    2 +-
 docs/jsdoc/tvm_runtime.html                        |    2 +-
 docs/jsdoc/tvm_runtime.js.html                     |    2 +-
 docs/objects.inv                                   |  Bin 13939 -> 14168 bytes
 docs/py-modindex.html                              |    5 +
 docs/searchindex.js                                |    2 +-
 docs/tutorials/autotvm/sg_execution_times.html     |   14 +-
 docs/tutorials/autotvm/tune_conv2d_cuda.html       |   42 +-
 docs/tutorials/autotvm/tune_simple_template.html   |   20 +-
 docs/tutorials/cross_compilation_and_rpc.html      |    2 +-
 docs/tutorials/dev/low_level_custom_pass.html      |   20 +-
 docs/tutorials/dev/sg_execution_times.html         |    6 +-
 docs/tutorials/frontend/build_gcn.html             |    4 +
 .../frontend/deploy_model_on_android.html          |    2 +-
 docs/tutorials/frontend/deploy_prequantized.html   |    2 +-
 docs/tutorials/frontend/deploy_ssd_gluoncv.html    |    2 +-
 docs/tutorials/frontend/from_coreml.html           |   15 -
 docs/tutorials/frontend/from_onnx.html             |    8 +-
 docs/tutorials/frontend/sg_execution_times.html    |   34 +-
 docs/tutorials/language/intrin_math.html           |   16 +-
 docs/tutorials/language/reduction.html             |   18 +-
 docs/tutorials/language/sg_execution_times.html    |   18 +-
 docs/tutorials/language/tensorize.html             |    2 +-
 docs/tutorials/optimize/opt_conv_cuda.html         |    2 +-
 docs/tutorials/optimize/opt_conv_tensorcore.html   |    2 +-
 docs/tutorials/optimize/opt_gemm.html              |   16 +-
 docs/tutorials/optimize/sg_execution_times.html    |   10 +-
 docs/tutorials/relay_quick_start.html              |  102 +-
 docs/tutorials/sg_execution_times.html             |    8 +-
 docs/tutorials/tensor_expr_get_started.html        |    4 +-
 docs/tutorials/topi/intro_topi.html                |    2 +-
 docs/tutorials/topi/sg_execution_times.html        |    4 +-
 docs/vta/install.html                              |  215 +-
 docs/vta/tutorials/autotvm/sg_execution_times.html |    4 +-
 docs/vta/tutorials/autotvm/tune_relay_vta.html     |  200 +-
 .../tutorials/frontend/deploy_classification.html  |   16 +-
 docs/vta/tutorials/frontend/deploy_detection.html  |    4 +-
 .../vta/tutorials/frontend/sg_execution_times.html |    6 +-
 .../vta/tutorials/optimize/sg_execution_times.html |    6 +-
 docs/vta/tutorials/sg_execution_times.html         |    6 +-
 1023 files changed, 81225 insertions(+), 78309 deletions(-)

diff --git a/docs/_downloads/9cf0213876be0a9cc4aaa52a1ebd9586/low_level_custom_pass.py b/docs/_downloads/9cf0213876be0a9cc4aaa52a1ebd9586/low_level_custom_pass.py
index d35913b..03eae1c 100644
--- a/docs/_downloads/9cf0213876be0a9cc4aaa52a1ebd9586/low_level_custom_pass.py
+++ b/docs/_downloads/9cf0213876be0a9cc4aaa52a1ebd9586/low_level_custom_pass.py
@@ -70,7 +70,7 @@ print(ir)
 #
 # IR Visitor
 # ~~~~~~~~~~
-# We can use ``tvm.tir.ir_pass.PostOrderVisit(stmt, func)`` to gather information from the Halide IR.
+# We can use ``tvm.tir.stmt_functor.post_order_visit(stmt, func)`` to gather information from the Halide IR.
 # ``func`` is a function callback. This function will be called before exiting the current IR node,
 # i.e. post-order visit. Then we leverage side effects to store the result of IR visit, because the
 # return value of ``func`` will be ignored.
@@ -111,25 +111,26 @@ def vectorize8(op):
         extent = op.extent.value
         name = op.loop_var.name
         lo, li = te.var(name + '.outer'), te.var(name + '.inner')
-        body = tvm.tir.ir_pass.Substitute(op.body, {op.loop_var: lo * 8 + li})
+        body = tvm.tir.stmt_functor.substitute(op.body, {op.loop_var: lo * 8 + li})
         body = tvm.tir.For(li, 0, 8, tvm.tir.For.Vectorized, 0, body)
         body = tvm.tir.For(lo, 0, extent // 8, tvm.tir.For.Serial, 0, body)
         return body
     return None
 
-def vectorize(stmt):
+@tvm.tir.transform.prim_func_pass(opt_level=0)
+def vectorize(f, mod, ctx):
     global loops
 
-    tvm.tir.ir_pass.PostOrderVisit(stmt, find_width8)
+    tvm.tir.stmt_functor.post_order_visit(f.body, find_width8)
 
     if not loops:
-        return stmt
+        return sf
 
     # The last list arugment indicates what kinds of nodes will be transformed.
     # Thus, in this case only `For` nodes will call `vectorize8`
-    stmt = tvm.tir.ir_pass.IRTransform(stmt, None, vectorize8, ['For'])
+    return f.with_body(
+        tvm.tir.stmt_functor.ir_transform(f.body, None, vectorize8, ['For']))
 
-    return stmt
 
 #####################################################################
 # Glue to Lowering
@@ -160,8 +161,8 @@ with tvm.target.build_config(add_lower_pass=[(1, vectorize)]) as cfg:
 # Quick View
 # ----------
 # This tutorial gives a quick view of writing a customized IR transformation pass:
-# - Use ``tvm.tir.ir_pass.PostOrderVisit`` to gather information on each IR nodes.
-# - Use ``tvm.tir.ir_pass.IRTransform`` to transform IR nodes.
+# - Use ``tvm.tir.stmt_functor.post_order_visit`` to gather information on each IR nodes.
+# - Use ``tvm.tir.stmt_functor.ir_transform`` to transform IR nodes.
 # - Wrap up two above to write an IR-transformation function.
 # - Use ``tvm.target.build_config`` to put this function to TVM lowering pass
 #
diff --git a/docs/_downloads/e87c21d127b0b825efcf978b9f8e2cd7/low_level_custom_pass.ipynb b/docs/_downloads/e87c21d127b0b825efcf978b9f8e2cd7/low_level_custom_pass.ipynb
index f86cc6c..991bc88 100644
--- a/docs/_downloads/e87c21d127b0b825efcf978b9f8e2cd7/low_level_custom_pass.ipynb
+++ b/docs/_downloads/e87c21d127b0b825efcf978b9f8e2cd7/low_level_custom_pass.ipynb
@@ -58,7 +58,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "TVM already provides two class for users to both analyze and transform IR.\n\nIR Visitor\n~~~~~~~~~~\nWe can use ``tvm.tir.ir_pass.PostOrderVisit(stmt, func)`` to gather information from the Halide IR.\n``func`` is a function callback. This function will be called before exiting the current IR node,\ni.e. post-order visit. Then we leverage side effects to store the result of IR visit, because the\nreturn value of ``func`` will be ignored.\n\n<div class=\"alert alert-info\"><h4>N [...]
+        "TVM already provides two class for users to both analyze and transform IR.\n\nIR Visitor\n~~~~~~~~~~\nWe can use ``tvm.tir.stmt_functor.post_order_visit(stmt, func)`` to gather information from the Halide IR.\n``func`` is a function callback. This function will be called before exiting the current IR node,\ni.e. post-order visit. Then we leverage side effects to store the result of IR visit, because the\nreturn value of ``func`` will be ignored.\n\n<div class=\"alert alert-info\ [...]
       ]
     },
     {
@@ -87,7 +87,7 @@
       },
       "outputs": [],
       "source": [
-        "def vectorize8(op):\n    \"\"\" Split can vectorize the loops found in `find_width8`. \"\"\"\n    if op in loops:\n        extent = op.extent.value\n        name = op.loop_var.name\n        lo, li = te.var(name + '.outer'), te.var(name + '.inner')\n        body = tvm.tir.ir_pass.Substitute(op.body, {op.loop_var: lo * 8 + li})\n        body = tvm.tir.For(li, 0, 8, tvm.tir.For.Vectorized, 0, body)\n        body = tvm.tir.For(lo, 0, extent // 8, tvm.tir.For.Serial, 0, body)\n       [...]
+        "def vectorize8(op):\n    \"\"\" Split can vectorize the loops found in `find_width8`. \"\"\"\n    if op in loops:\n        extent = op.extent.value\n        name = op.loop_var.name\n        lo, li = te.var(name + '.outer'), te.var(name + '.inner')\n        body = tvm.tir.stmt_functor.substitute(op.body, {op.loop_var: lo * 8 + li})\n        body = tvm.tir.For(li, 0, 8, tvm.tir.For.Vectorized, 0, body)\n        body = tvm.tir.For(lo, 0, extent // 8, tvm.tir.For.Serial, 0, body)\n  [...]
       ]
     },
     {
@@ -112,7 +112,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Quick View\n----------\nThis tutorial gives a quick view of writing a customized IR transformation pass:\n- Use ``tvm.tir.ir_pass.PostOrderVisit`` to gather information on each IR nodes.\n- Use ``tvm.tir.ir_pass.IRTransform`` to transform IR nodes.\n- Wrap up two above to write an IR-transformation function.\n- Use ``tvm.target.build_config`` to put this function to TVM lowering pass\n\n\n"
+        "Quick View\n----------\nThis tutorial gives a quick view of writing a customized IR transformation pass:\n- Use ``tvm.tir.stmt_functor.post_order_visit`` to gather information on each IR nodes.\n- Use ``tvm.tir.stmt_functor.ir_transform`` to transform IR nodes.\n- Wrap up two above to write an IR-transformation function.\n- Use ``tvm.target.build_config`` to put this function to TVM lowering pass\n\n\n"
       ]
     }
   ],
diff --git a/docs/_images/sphx_glr_deploy_classification_001.png b/docs/_images/sphx_glr_deploy_classification_001.png
index 93493ca..06c3d77 100644
Binary files a/docs/_images/sphx_glr_deploy_classification_001.png and b/docs/_images/sphx_glr_deploy_classification_001.png differ
diff --git a/docs/_images/sphx_glr_deploy_classification_thumb.png b/docs/_images/sphx_glr_deploy_classification_thumb.png
index a5dead5..5af4145 100644
Binary files a/docs/_images/sphx_glr_deploy_classification_thumb.png and b/docs/_images/sphx_glr_deploy_classification_thumb.png differ
diff --git a/docs/_images/sphx_glr_deploy_detection_001.png b/docs/_images/sphx_glr_deploy_detection_001.png
index c3643b5..4433e44 100644
Binary files a/docs/_images/sphx_glr_deploy_detection_001.png and b/docs/_images/sphx_glr_deploy_detection_001.png differ
diff --git a/docs/_images/sphx_glr_deploy_detection_thumb.png b/docs/_images/sphx_glr_deploy_detection_thumb.png
index befdc2a..7520e7a 100644
Binary files a/docs/_images/sphx_glr_deploy_detection_thumb.png and b/docs/_images/sphx_glr_deploy_detection_thumb.png differ
diff --git a/docs/_images/sphx_glr_deploy_ssd_gluoncv_001.png b/docs/_images/sphx_glr_deploy_ssd_gluoncv_001.png
index cc8fa6d..7667886 100644
Binary files a/docs/_images/sphx_glr_deploy_ssd_gluoncv_001.png and b/docs/_images/sphx_glr_deploy_ssd_gluoncv_001.png differ
diff --git a/docs/_images/sphx_glr_deploy_ssd_gluoncv_thumb.png b/docs/_images/sphx_glr_deploy_ssd_gluoncv_thumb.png
index b61e390..c6cacf0 100644
Binary files a/docs/_images/sphx_glr_deploy_ssd_gluoncv_thumb.png and b/docs/_images/sphx_glr_deploy_ssd_gluoncv_thumb.png differ
diff --git a/docs/_images/sphx_glr_from_caffe2_001.png b/docs/_images/sphx_glr_from_caffe2_001.png
index 93493ca..06c3d77 100644
Binary files a/docs/_images/sphx_glr_from_caffe2_001.png and b/docs/_images/sphx_glr_from_caffe2_001.png differ
diff --git a/docs/_images/sphx_glr_from_caffe2_thumb.png b/docs/_images/sphx_glr_from_caffe2_thumb.png
index a5dead5..5af4145 100644
Binary files a/docs/_images/sphx_glr_from_caffe2_thumb.png and b/docs/_images/sphx_glr_from_caffe2_thumb.png differ
diff --git a/docs/_images/sphx_glr_from_darknet_001.png b/docs/_images/sphx_glr_from_darknet_001.png
index 72f1dfe..2c1866c 100644
Binary files a/docs/_images/sphx_glr_from_darknet_001.png and b/docs/_images/sphx_glr_from_darknet_001.png differ
diff --git a/docs/_images/sphx_glr_from_darknet_thumb.png b/docs/_images/sphx_glr_from_darknet_thumb.png
index 0b7e8c9..5059f17 100644
Binary files a/docs/_images/sphx_glr_from_darknet_thumb.png and b/docs/_images/sphx_glr_from_darknet_thumb.png differ
diff --git a/docs/_images/sphx_glr_from_keras_001.png b/docs/_images/sphx_glr_from_keras_001.png
index 93493ca..06c3d77 100644
Binary files a/docs/_images/sphx_glr_from_keras_001.png and b/docs/_images/sphx_glr_from_keras_001.png differ
diff --git a/docs/_images/sphx_glr_from_keras_thumb.png b/docs/_images/sphx_glr_from_keras_thumb.png
index a5dead5..5af4145 100644
Binary files a/docs/_images/sphx_glr_from_keras_thumb.png and b/docs/_images/sphx_glr_from_keras_thumb.png differ
diff --git a/docs/_images/sphx_glr_from_mxnet_001.png b/docs/_images/sphx_glr_from_mxnet_001.png
index 93493ca..06c3d77 100644
Binary files a/docs/_images/sphx_glr_from_mxnet_001.png and b/docs/_images/sphx_glr_from_mxnet_001.png differ
diff --git a/docs/_images/sphx_glr_from_mxnet_thumb.png b/docs/_images/sphx_glr_from_mxnet_thumb.png
index a5dead5..5af4145 100644
Binary files a/docs/_images/sphx_glr_from_mxnet_thumb.png and b/docs/_images/sphx_glr_from_mxnet_thumb.png differ
diff --git a/docs/_images/sphx_glr_from_onnx_001.png b/docs/_images/sphx_glr_from_onnx_001.png
index fce91b7..1138eca 100644
Binary files a/docs/_images/sphx_glr_from_onnx_001.png and b/docs/_images/sphx_glr_from_onnx_001.png differ
diff --git a/docs/_images/sphx_glr_from_onnx_thumb.png b/docs/_images/sphx_glr_from_onnx_thumb.png
index c685b63..669223c 100644
Binary files a/docs/_images/sphx_glr_from_onnx_thumb.png and b/docs/_images/sphx_glr_from_onnx_thumb.png differ
diff --git a/docs/_images/sphx_glr_from_tflite_001.png b/docs/_images/sphx_glr_from_tflite_001.png
index 93493ca..06c3d77 100644
Binary files a/docs/_images/sphx_glr_from_tflite_001.png and b/docs/_images/sphx_glr_from_tflite_001.png differ
diff --git a/docs/_images/sphx_glr_from_tflite_thumb.png b/docs/_images/sphx_glr_from_tflite_thumb.png
index a5dead5..5af4145 100644
Binary files a/docs/_images/sphx_glr_from_tflite_thumb.png and b/docs/_images/sphx_glr_from_tflite_thumb.png differ
diff --git a/docs/_sources/api/python/runtime.rst.txt b/docs/_sources/api/python/runtime.rst.txt
index 30d1b98..c51a2d4 100644
--- a/docs/_sources/api/python/runtime.rst.txt
+++ b/docs/_sources/api/python/runtime.rst.txt
@@ -23,28 +23,3 @@ tvm.runtime
    :imported-members:
    :exclude-members: NDArray
    :autosummary:
-
-
-.. autoclass:: tvm.runtime.PackedFunc
-   :members:
-   :inherited-members:
-
-.. autofunction:: tvm.register_func
-
-.. autofunction:: tvm.get_global_func
-
-
-.. autoclass:: tvm.runtime.Module
-   :members:
-
-.. autofunction:: tvm.runtime.load_module
-
-.. autofunction:: tvm.runtime.system_lib
-
-.. autofunction:: tvm.runtime.enabled
-
-
-.. autoclass:: tvm.runtime.Object
-   :members:
-
-.. autofunction:: tvm.register_object
diff --git a/docs/_sources/api/python/tir.rst.txt b/docs/_sources/api/python/tir.rst.txt
index 8ef247a..9f2581b 100644
--- a/docs/_sources/api/python/tir.rst.txt
+++ b/docs/_sources/api/python/tir.rst.txt
@@ -38,3 +38,10 @@ tvm.tir.analysis
    :members:
    :imported-members:
    :autosummary:
+
+
+tvm.tir.stmt_functor
+--------------------
+.. automodule:: tvm.tir.stmt_functor
+   :members:
+   :autosummary:
diff --git a/docs/_sources/contribute/pull_request.rst.txt b/docs/_sources/contribute/pull_request.rst.txt
index 51626a1..25dc0da 100644
--- a/docs/_sources/contribute/pull_request.rst.txt
+++ b/docs/_sources/contribute/pull_request.rst.txt
@@ -118,3 +118,6 @@ If you want to run a single test:
   rm -rf python/tvm/*.pyc python/tvm/*/*.pyc python/tvm/*/*/*.pyc
 
   TVM_FFI=ctypes python -m pytest -v tests/python/unittest/test_pass_storage_rewrite.py
+
+  # Additionally if you want to run a single test, for example test_all_elemwise inside a file.
+  TVM_FFI=ctypes python -m pytest -v -k "test_all_elemwise" tests/python/frontend/tflite/test_forward.py
diff --git a/docs/_sources/deploy/android.md.txt b/docs/_sources/deploy/android.md.txt
deleted file mode 100644
index 788ab41..0000000
--- a/docs/_sources/deploy/android.md.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--- 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. -->
-
-# Deploy to Android
-
-
-## Build model for Android Target
-
-Relay compilation of model for android target could follow same approach like android_rpc.
-The code below will save the compilation output which is required on android target.
-
-```
-lib.export_library("deploy_lib.so", ndk.create_shared)
-with open("deploy_graph.json", "w") as fo:
-    fo.write(graph.json())
-with open("deploy_param.params", "wb") as fo:
-    fo.write(relay.save_param_dict(params))
-```
-
-deploy_lib.so, deploy_graph.json, deploy_param.params will go to android target.
-
-## TVM Runtime for Android Target
-
-Refer [here](https://github.com/apache/incubator-tvm/blob/master/apps/android_deploy/README.md#build-and-installation) to build CPU/OpenCL version flavor TVM runtime for android target.
-From android java TVM API to load model & execute can be referred at this [java](https://github.com/apache/incubator-tvm/blob/master/apps/android_deploy/app/src/main/java/org/apache/tvm/android/demo/MainActivity.java) sample source.
diff --git a/docs/_sources/deploy/android.rst.txt b/docs/_sources/deploy/android.rst.txt
new file mode 100644
index 0000000..c724eab
--- /dev/null
+++ b/docs/_sources/deploy/android.rst.txt
@@ -0,0 +1,42 @@
+..  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.
+
+Deploy to Android
+=================
+
+Build model for Android Target
+------------------------------
+
+Relay compilation of model for android target could follow same approach like android_rpc.
+The code below will save the compilation output which is required on android target.
+
+
+.. code:: python
+
+    lib.export_library("deploy_lib.so", ndk.create_shared)
+    with open("deploy_graph.json", "w") as fo:
+        fo.write(graph.json())
+    with open("deploy_param.params", "wb") as fo:
+        fo.write(relay.save_param_dict(params))
+
+deploy_lib.so, deploy_graph.json, deploy_param.params will go to android target.
+
+TVM Runtime for Android Target
+------------------------------
+
+Refer `here <https://github.com/apache/incubator-tvm/blob/master/apps/android_deploy/README.md#build-and-installation>`_ to build CPU/OpenCL version flavor TVM runtime for android target.
+From android java TVM API to load model & execute can be referred at this `java <https://github.com/apache/incubator-tvm/blob/master/apps/android_deploy/app/src/main/java/org/apache/tvm/android/demo/MainActivity.java>`_ sample source.
diff --git a/docs/_sources/deploy/aocl_fpga.md.txt b/docs/_sources/deploy/aocl_fpga.md.txt
deleted file mode 100644
index 24f8b65..0000000
--- a/docs/_sources/deploy/aocl_fpga.md.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-<!--- 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. -->
-
-AOCL Backend Example
-====================
-
-TVM supports Intel FPGA SDK for OpenCL also known as AOCL.  Here is a tutorial for how to use TVM with AOCL.
-
-***Note***: This feature is still experimental.  We cannot use AOCL to deploy an end to end neural networks for now.  In addition, we only tested compilation for emulation mode of AOCL.
-
-We use two python scripts for this tutorial.
-
-- build.py - a script to synthesize FPGA bitstream.
-```
-import tvm
-from tvm import te
-tgt_host="llvm"
-tgt="aocl_sw_emu"
-
-n = te.var("n")
-A = te.placeholder((n,), name='A')
-B = te.placeholder((n,), name='B')
-C = te.compute(A.shape, lambda i: A[i] + B[i], name="C")
-
-s = te.create_schedule(C.op)
-px, x = s[C].split(C.op.axis[0], nparts=1)
-
-s[C].bind(px, tvm.thread_axis("pipeline"))
-
-fadd = tvm.build(s, [A, B, C], tgt, target_host=tgt_host, name="myadd")
-
-fadd.save("myadd.o")
-fadd.imported_modules[0].save("myadd.aocx")
-
-tvm.contrib.cc.create_shared("myadd.so", ["myadd.o"])
-```
-
-- run.py - a script to use FPGA as an accelerator.
-```
-import tvm
-import numpy as np
-import os
-
-tgt="aocl_sw_emu"
-
-fadd = tvm.runtime.load("myadd.so")
-fadd_dev = tvm.runtime.load("myadd.aocx")
-fadd.import_module(fadd_dev)
-
-ctx = tvm.context(tgt, 0)
-
-n = 1024
-a = tvm.nd.array(np.random.uniform(size=n).astype("float32"), ctx)
-b = tvm.nd.array(np.random.uniform(size=n).astype("float32"), ctx)
-c = tvm.nd.array(np.zeros(n, dtype="float32"), ctx)
-
-fadd(a, b, c)
-tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
-```
-
-Setup
------
-
-- Install AOCL 17.1 on Ubuntu 16.04.4 LTS.
-- Install BSP for your FPGA device.
-- Install FPGA device driver.
-- Create an ICD file at /etc/OpenCL/vendors/Altera.icd so that the OpenCL platform can be found.
-```
-/opt/intelFPGA/17.1/hld/linux64/lib/libalteracl.so
-```
-- Create an FCD file for example at /opt/Intel/OpenCL/Boards/s5_ref.fcd so that your FPGA device can be found.
-```
-/opt/intelFPGA/17.1/hld/board/s5_ref/linux64/lib/libaltera_s5_ref_mmd.so
-```
-- Setup TVM with AOCL and OpenCL enabled.
-
-Emulation
----------
-
-- Run software emulation
-```
-export CL_CONTEXT_EMULATOR_DEVICE_INTELFPGA=1
-
-python build.py
-python run.py
-```
-
-- Run on FPGA devices (not tested)
-    - Change tgt value to "aocl -device=s5_ref" on build.py and run.py
-```
-unset CL_CONTEXT_EMULATOR_DEVICE_INTELFPGA
-
-python build.py
-python run.py
-```
diff --git a/docs/_sources/deploy/aws_fpga.md.txt b/docs/_sources/deploy/aws_fpga.md.txt
deleted file mode 100644
index 894585f..0000000
--- a/docs/_sources/deploy/aws_fpga.md.txt
+++ /dev/null
@@ -1,170 +0,0 @@
-<!--- 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. -->
-
-HLS Backend Example
-===================
-
-TVM supports Xilinx FPGA board with SDAccel.  Here is a tutorial for how to deploy TVM to AWS F1 FPGA instance.
-
-***Note***: This feature is still experimental.  We cannot use SDAccel to deploy an end to end neural networks for now.
-
-We use two python scripts for this tutorial.
-
-- build.py - a script to synthesize FPGA bitstream.
-```python
-import tvm
-from tvm import te
-
-tgt_host="llvm"
-tgt="sdaccel"
-
-n = te.var("n")
-A = te.placeholder((n,), name='A')
-B = te.placeholder((n,), name='B')
-C = te.compute(A.shape, lambda i: A[i] + B[i], name="C")
-
-s = te.create_schedule(C.op)
-px, x = s[C].split(C.op.axis[0], nparts=1)
-
-s[C].bind(px, tvm.thread_axis("pipeline"))
-
-fadd = tvm.build(s, [A, B, C], tgt, target_host=tgt_host, name="myadd")
-
-fadd.save("myadd.o")
-fadd.imported_modules[0].save("myadd.xclbin")
-
-tvm.contrib.cc.create_shared("myadd.so", ["myadd.o"])
-```
-
-- run.py - a script to use FPGA as an accelerator.
-```python
-import tvm
-import numpy as np
-import os
-
-tgt="sdaccel"
-
-fadd = tvm.runtime.load("myadd.so")
-if os.environ.get("XCL_EMULATION_MODE"):
-    fadd_dev = tvm.runtime.load("myadd.xclbin")
-else:
-    fadd_dev = tvm.runtime.load("myadd.awsxclbin")
-fadd.import_module(fadd_dev)
-
-ctx = tvm.context(tgt, 0)
-
-n = 1024
-a = tvm.nd.array(np.random.uniform(size=n).astype("float32"), ctx)
-b = tvm.nd.array(np.random.uniform(size=n).astype("float32"), ctx)
-c = tvm.nd.array(np.zeros(n, dtype="float32"), ctx)
-
-fadd(a, b, c)
-tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
-```
-
-Setup
------
-
-- Launch an instance using the FPGA Developer AMI.  We don't need an F1 instance for emulation and synthesis, so it is recommended to use a lower cost instance for them.
-
-- Setup AWS FPGA development kit.
-```bash
-git clone https://github.com/aws/aws-fpga.git
-cd aws-fpga
-source sdaccel_setup.sh
-source ${XILINX_SDX}/settings64.sh
-```
-
-- Setup TVM with OpenCL enabled.
-
-Emulation
----------
-
-- Create emconfig.json for emulation.
-```bash
-emconfigutil --platform ${AWS_PLATFORM} --nd 1
-```
-
-- Copy emconfig.json to the python binary directory.  It is because the current Xilinx toolkit assumes that both host binary and the emconfig.json file are in the same path.
-```bash
-cp emconfig.json $(dirname $(which python))
-```
-
-- Run software emulation
-```bash
-export XCL_EMULATION_MODE=1
-export XCL_TARGET=sw_emu
-
-python build.py
-python run.py
-```
-
-- Run hardware emulation
-```bash
-export XCL_EMULATION_MODE=1
-export XCL_TARGET=hw_emu
-
-python build.py
-python run.py
-```
-
-
-Synthesis
----------
-
-- Run synthesis with the following script.
-
-```bash
-unset XCL_EMULATION_MODE
-export XCL_TARGET=hw
-
-python build.py
-```
-
-- Create AWS FPGA image and upload it to AWS S3.
-```
-${SDACCEL_DIR}/tools/create_sdaccel_afi.sh -xclbin=myadd.xclbin -o=myadd \
-    -s3_bucket=<bucket-name> -s3_dcp_key=<dcp-folder-name> -s3_logs_key=<logs-folder-name>
-```
-This also generates an awsxclbin file, which is necessary to use the AWS FPGA image on F1 instances.
-
-Run
----
-
-- Launch Amazon EC2 F1 instance.
-
-- Copy `myadd.so`, `myadd.awsxclbin`, and `run.py` to the F1 instance.
-
-- Setup AWS FPGA development kit.
-```bash
-git clone https://github.com/aws/aws-fpga.git
-cd aws-fpga
-source sdaccel_setup.sh
-```
-
-- Setup TVM with OpenCL enabled.
-
-- Become root and setup environment variables.
-```bash
-sudo sh
-source ${INSTALL_ROOT}/setup.sh
-```
-
-- Run
-```bash
-python run.py
-```
diff --git a/docs/_sources/deploy/cpp_deploy.md.txt b/docs/_sources/deploy/cpp_deploy.md.txt
deleted file mode 100644
index 3a99846..0000000
--- a/docs/_sources/deploy/cpp_deploy.md.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--- 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. -->
-
-Deploy TVM Module using C++ API
-===============================
-
-We provide an example on how to deploy TVM modules in [apps/howto_deploy](https://github.com/apache/incubator-tvm/tree/master/apps/howto_deploy)
-
-To run the example, you can use the following command
-
-```bash
-cd apps/howto_deploy
-./run_example.sh
-```
-
-Get TVM Runtime Library
------------------------
-
-The only thing we need is to link to a TVM runtime in your target platform.
-TVM provides a minimum runtime, which costs around 300K to 600K depending on how much modules we use.
-In most cases, we can use ```libtvm_runtime.so``` that comes with the build.
-
-If somehow you find it is hard to build ```libtvm_runtime```, checkout [tvm_runtime_pack.cc](https://github.com/apache/incubator-tvm/tree/master/apps/howto_deploy/tvm_runtime_pack.cc).
-It is an example all in one file that gives you TVM runtime.
-You can compile this file using your build system and include this into your project.
-
-You can also checkout [apps](https://github.com/apache/incubator-tvm/tree/master/apps/) for example applications build with TVM on iOS, Android and others.
-
-Dynamic Library vs. System Module
----------------------------------
-TVM provides two ways to use the compiled library.
-You can checkout [prepare_test_libs.py](https://github.com/apache/incubator-tvm/tree/master/apps/howto_deploy/prepare_test_libs.py)
-on how to generate the library and [cpp_deploy.cc](https://github.com/apache/incubator-tvm/tree/master/apps/howto_deploy/cpp_deploy.cc) on how to use them.
-
-- Store library as a shared library and dynamically load the library into your project.
-- Bundle the compiled library into your project in system module mode.
-
-Dynamic loading is more flexible and can load new modules on the fly. System module is a more ```static``` approach.  We can use system module in places where dynamic library loading is banned.
diff --git a/docs/_sources/deploy/cpp_deploy.rst.txt b/docs/_sources/deploy/cpp_deploy.rst.txt
new file mode 100644
index 0000000..a298f95
--- /dev/null
+++ b/docs/_sources/deploy/cpp_deploy.rst.txt
@@ -0,0 +1,56 @@
+..  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.
+
+
+Deploy TVM Module using C++ API
+===============================
+
+We provide an example on how to deploy TVM modules in `apps/howto_deploy <https://github.com/apache/incubator-tvm/tree/master/apps/howto_deploy>`_
+
+To run the example, you can use the following command
+
+
+.. code:: bash
+
+    cd apps/howto_deploy
+    ./run_example.sh
+
+
+Get TVM Runtime Library
+-----------------------
+
+The only thing we need is to link to a TVM runtime in your target platform.
+TVM provides a minimum runtime, which costs around 300K to 600K depending on how much modules we use.
+In most cases, we can use ``libtvm_runtime.so`` that comes with the build.
+
+If somehow you find it is hard to build ``libtvm_runtime``, checkout
+`tvm_runtime_pack.cc <https://github.com/apache/incubator-tvm/tree/master/apps/howto_deploy/tvm_runtime_pack.cc>`_.
+It is an example all in one file that gives you TVM runtime.
+You can compile this file using your build system and include this into your project.
+
+You can also checkout `apps <https://github.com/apache/incubator-tvm/tree/master/apps/>`_ for example applications build with TVM on iOS, Android and others.
+
+Dynamic Library vs. System Module
+---------------------------------
+TVM provides two ways to use the compiled library.
+You can checkout `prepare_test_libs.py <https://github.com/apache/incubator-tvm/tree/master/apps/howto_deploy/prepare_test_libs.py>`_
+on how to generate the library and `cpp_deploy.cc <https://github.com/apache/incubator-tvm/tree/master/apps/howto_deploy/cpp_deploy.cc>`_ on how to use them.
+
+- Store library as a shared library and dynamically load the library into your project.
+- Bundle the compiled library into your project in system module mode.
+
+Dynamic loading is more flexible and can load new modules on the fly. System module is a more ``static`` approach.  We can use system module in places where dynamic library loading is banned.
diff --git a/docs/_sources/deploy/hls.rst.txt b/docs/_sources/deploy/hls.rst.txt
new file mode 100644
index 0000000..64717ed
--- /dev/null
+++ b/docs/_sources/deploy/hls.rst.txt
@@ -0,0 +1,183 @@
+..  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.
+
+
+HLS Backend Example
+===================
+
+TVM supports Xilinx FPGA board with SDAccel.  Here is a tutorial for how to deploy TVM to AWS F1 FPGA instance.
+
+.. note::
+
+    This feature is still experimental.  We cannot use SDAccel to deploy an end to end neural networks for now.
+
+We use two python scripts for this tutorial.
+
+- build.py - a script to synthesize FPGA bitstream.
+
+  .. code:: python
+
+      import tvm
+      from tvm import te
+
+      tgt_host="llvm"
+      tgt="sdaccel"
+
+      n = te.var("n")
+      A = te.placeholder((n,), name='A')
+      B = te.placeholder((n,), name='B')
+      C = te.compute(A.shape, lambda i: A[i] + B[i], name="C")
+
+      s = te.create_schedule(C.op)
+      px, x = s[C].split(C.op.axis[0], nparts=1)
+
+      s[C].bind(px, tvm.thread_axis("pipeline"))
+
+      fadd = tvm.build(s, [A, B, C], tgt, target_host=tgt_host, name="myadd")
+
+      fadd.save("myadd.o")
+      fadd.imported_modules[0].save("myadd.xclbin")
+
+      tvm.contrib.cc.create_shared("myadd.so", ["myadd.o"])
+
+- run.py - a script to use FPGA as an accelerator.
+
+  .. code:: python
+
+      import tvm
+      import numpy as np
+      import os
+
+      tgt="sdaccel"
+
+      fadd = tvm.runtime.load("myadd.so")
+      if os.environ.get("XCL_EMULATION_MODE"):
+          fadd_dev = tvm.runtime.load("myadd.xclbin")
+      else:
+          fadd_dev = tvm.runtime.load("myadd.awsxclbin")
+      fadd.import_module(fadd_dev)
+
+      ctx = tvm.context(tgt, 0)
+
+      n = 1024
+      a = tvm.nd.array(np.random.uniform(size=n).astype("float32"), ctx)
+      b = tvm.nd.array(np.random.uniform(size=n).astype("float32"), ctx)
+      c = tvm.nd.array(np.zeros(n, dtype="float32"), ctx)
+
+      fadd(a, b, c)
+      tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
+
+
+Setup
+-----
+
+- Launch an instance using the FPGA Developer AMI.  We don't need an F1 instance for emulation and synthesis, so it is recommended to use a lower cost instance for them.
+- Setup AWS FPGA development kit.
+
+  .. code:: bash
+
+      git clone https://github.com/aws/aws-fpga.git
+      cd aws-fpga
+      source sdaccel_setup.sh
+      source ${XILINX_SDX}/settings64.sh
+
+- Setup TVM with OpenCL enabled.
+
+Emulation
+---------
+
+- Create emconfig.json for emulation.
+
+  .. code:: bash
+
+      emconfigutil --platform ${AWS_PLATFORM} --nd 1
+
+- Copy emconfig.json to the python binary directory.  It is because the current Xilinx toolkit assumes that both host binary and the emconfig.json file are in the same path.
+
+  .. code:: bash
+
+      cp emconfig.json $(dirname $(which python))
+
+- Run software emulation
+
+  .. code:: bash
+
+      export XCL_EMULATION_MODE=1
+      export XCL_TARGET=sw_emu
+
+      python build.py
+      python run.py
+
+- Run hardware emulation
+
+  .. code:: bash
+
+      export XCL_EMULATION_MODE=1
+      export XCL_TARGET=hw_emu
+
+      python build.py
+      python run.py
+
+Synthesis
+---------
+
+- Run synthesis with the following script.
+
+  .. code:: bash
+
+      unset XCL_EMULATION_MODE
+      export XCL_TARGET=hw
+
+      python build.py
+
+- Create AWS FPGA image and upload it to AWS S3.
+
+  .. code:: bash
+
+      ${SDACCEL_DIR}/tools/create_sdaccel_afi.sh \
+          -xclbin=myadd.xclbin -o=myadd \
+          -s3_bucket=<bucket-name> -s3_dcp_key=<dcp-folder-name> \
+          -s3_logs_key=<logs-folder-name>
+
+  This also generates an awsxclbin file, which is necessary to use the AWS FPGA image on F1 instances.
+
+Run
+---
+
+- Launch Amazon EC2 F1 instance.
+- Copy ``myadd.so``, ``myadd.awsxclbin``, and ``run.py`` to the F1 instance.
+- Setup AWS FPGA development kit.
+
+  .. code:: bash
+
+      git clone https://github.com/aws/aws-fpga.git
+      cd aws-fpga
+      source sdaccel_setup.sh
+
+- Setup TVM with OpenCL enabled.
+- Become root and setup environment variables.
+
+  .. code:: bash
+
+      sudo sh
+      source ${INSTALL_ROOT}/setup.sh
+
+- Run
+
+  .. code:: bash
+
+      python run.py
diff --git a/docs/_sources/deploy/index.rst.txt b/docs/_sources/deploy/index.rst.txt
index db29386..53455ed 100644
--- a/docs/_sources/deploy/index.rst.txt
+++ b/docs/_sources/deploy/index.rst.txt
@@ -67,5 +67,4 @@ target device without relying on RPC. see the following resources on how to do s
    cpp_deploy
    android
    integrate
-   aocl_fpga
-   aws_fpga
+   hls
diff --git a/docs/_sources/deploy/integrate.md.txt b/docs/_sources/deploy/integrate.md.txt
deleted file mode 100644
index 4289614..0000000
--- a/docs/_sources/deploy/integrate.md.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--- 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. -->
-
-Integrate TVM into Your Project
-===============================
-
-TVM's runtime is designed to be lightweight and portable.
-There are several ways you can integrate TVM into your project.
-
-This article introduces possible ways to integrate TVM
-as a JIT compiler to generate functions on your system.
-
-
-## DLPack Support
-
-TVM's generated function follows the PackedFunc convention.
-It is a function that can take positional arguments including
-standard types such as float, integer, string.
-The PackedFunc takes DLTensor pointer in [dlpack](https://github.com/dmlc/dlpack) convention.
-So the only thing you need to solve is to create a corresponding DLTensor object.
-
-
-
-## Integrate User Defined C++ Array
-
-The only thing we have to do in C++ is to convert your array to DLTensor and pass in its address as
-```DLTensor*``` to the generated function.
-
-
-## Integrate User Defined Python Array
-
-Assume you have a python object ```MyArray```. There are three things that you need to do
-
-- Add ```_tvm_tcode``` field to your array which returns ```tvm.TypeCode.ARRAY_HANDLE```
-- Support ```_tvm_handle``` property in your object, which returns the address of DLTensor in python integer
-- Register this class by ```tvm.register_extension```
-
-```python
-# Example code
-import tvm
-
-class MyArray(object):
-    _tvm_tcode = tvm.TypeCode.ARRAY_HANDLE
-
-    @property
-    def _tvm_handle(self):
-        dltensor_addr = self.get_dltensor_addr()
-        return dltensor_addr
-
-# You can put registration step in a separate file mypkg.tvm.py
-# and only optionally import that if you only want optional dependency.
-tvm.register_extension(MyArray)
-```
diff --git a/docs/_sources/deploy/integrate.rst.txt b/docs/_sources/deploy/integrate.rst.txt
new file mode 100644
index 0000000..99c968f
--- /dev/null
+++ b/docs/_sources/deploy/integrate.rst.txt
@@ -0,0 +1,69 @@
+..  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.
+
+Integrate TVM into Your Project
+===============================
+
+TVM's runtime is designed to be lightweight and portable.
+There are several ways you can integrate TVM into your project.
+
+This article introduces possible ways to integrate TVM
+as a JIT compiler to generate functions on your system.
+
+
+DLPack Support
+--------------
+
+TVM's generated function follows the PackedFunc convention.
+It is a function that can take positional arguments including
+standard types such as float, integer, string.
+The PackedFunc takes DLTensor pointer in `DLPack <https://github.com/dmlc/dlpack>`_ convention.
+So the only thing you need to solve is to create a corresponding DLTensor object.
+
+
+
+Integrate User Defined C++ Array
+--------------------------------
+
+The only thing we have to do in C++ is to convert your array to DLTensor and pass in its address as
+``DLTensor*`` to the generated function.
+
+
+## Integrate User Defined Python Array
+
+Assume you have a python object ``MyArray``. There are three things that you need to do
+
+- Add ``_tvm_tcode`` field to your array which returns ``tvm.TypeCode.ARRAY_HANDLE``
+- Support ``_tvm_handle`` property in your object, which returns the address of DLTensor in python integer
+- Register this class by ``tvm.register_extension``
+
+.. code:: python
+
+   # Example code
+   import tvm
+
+   class MyArray(object):
+       _tvm_tcode = tvm.TypeCode.ARRAY_HANDLE
+
+       @property
+       def _tvm_handle(self):
+           dltensor_addr = self.get_dltensor_addr()
+           return dltensor_addr
+
+       # You can put registration step in a separate file mypkg.tvm.py
+       # and only optionally import that if you only want optional dependency.
+  tvm.register_extension(MyArray)
diff --git a/docs/_sources/install/nnpack.md.txt b/docs/_sources/install/nnpack.md.txt
deleted file mode 100644
index e1bcb70..0000000
--- a/docs/_sources/install/nnpack.md.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-<!--- 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. -->
-
-# NNPACK Contrib Installation
-
-[NNPACK](https://github.com/Maratyszcza/NNPACK) is an acceleration package
-for neural network computations, which can run on x86-64, ARMv7, or ARM64 architecture CPUs.
-Using NNPACK, higher-level libraries like _MXNet_ can speed up
-the execution on multi-core CPU computers, including laptops and mobile devices.
-
-***Note***: AS TVM already has natively tuned schedules, NNPACK is here mainly for reference and comparison purpose.
-For regular use prefer native tuned TVM implementation.
-
-_TVM_ supports NNPACK for forward propagation (inference only) in convolution, max-pooling, and fully-connected layers.
-In this document, we give a high level overview of how to use NNPACK with _TVM_.
-
-## Conditions
-The underlying implementation of NNPACK utilizes several acceleration methods,
-including [fft](https://arxiv.org/abs/1312.5851) and [winograd](https://arxiv.org/abs/1509.09308).
-These algorithms work better on some special `batch size`, `kernel size`, and `stride` settings than on other,
-so depending on the context, not all convolution, max-pooling, or fully-connected layers can be powered by NNPACK.
-When favorable conditions for running NNPACKS are not met,
-
-NNPACK only supports Linux and OS X systems. Windows is not supported at present.
-
-## Build/Install NNPACK
-
-If the trained model meets some conditions of using NNPACK,
-you can build TVM with NNPACK support.
-Follow these simple steps:
-* Build NNPACK shared library with the following commands. _TVM_ will link NNPACK dynamically.
-
-Note: The following NNPACK installation instructions have been tested on Ubuntu 16.04.
-
-### Build [Ninja](https://ninja-build.org/)
-
-NNPACK need a recent version of Ninja. So we need to install ninja from source.
-```bash
-git clone git://github.com/ninja-build/ninja.git
-cd ninja
-./configure.py --bootstrap
-```
-
-Set the environment variable PATH to tell bash where to find the ninja executable. For example, assume we cloned ninja on the home directory ~. then we can added the following line in ~/.bashrc.
-```bash
-export PATH="${PATH}:~/ninja"
-```
-
-### Build [NNPACK](https://github.com/Maratyszcza/NNPACK)
-
-The new CMAKE version of NNPACK download [Peach](https://github.com/Maratyszcza/PeachPy) and other dependencies alone
-
-Note: at least on OS X, running `ninja install` below will overwrite googletest libraries installed in `/usr/local/lib`. If you build googletest again to replace the nnpack copy, be sure to pass `-DBUILD_SHARED_LIBS=ON` to `cmake`.
-
-```bash
-git clone --recursive https://github.com/Maratyszcza/NNPACK.git
-cd NNPACK
-# Add PIC option in CFLAG and CXXFLAG to build NNPACK shared library
-sed -i "s|gnu99|gnu99 -fPIC|g" CMakeLists.txt
-sed -i "s|gnu++11|gnu++11 -fPIC|g" CMakeLists.txt
-mkdir build
-cd build
-# Generate ninja build rule and add shared library in configuration
-cmake -G Ninja -D BUILD_SHARED_LIBS=ON ..
-ninja
-sudo ninja install
-
-# Add NNPACK lib folder in your ldconfig
-echo "/usr/local/lib" > /etc/ld.so.conf.d/nnpack.conf
-sudo ldconfig
-```
-
-## Build TVM with NNPACK support
-
-```bash
-git clone --recursive https://github.com/apache/incubator-tvm tvm
-```
-
-* Set `set(USE_NNPACK ON)` in config.cmake.
-* Set `NNPACK_PATH` to the $(YOUR_NNPACK_INSTALL_PATH)
-
-after configuration use `make` to build TVM
-
-```bash
-make
-```
diff --git a/docs/_sources/install/nnpack.rst.txt b/docs/_sources/install/nnpack.rst.txt
new file mode 100644
index 0000000..10497ba
--- /dev/null
+++ b/docs/_sources/install/nnpack.rst.txt
@@ -0,0 +1,118 @@
+..  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.
+
+
+NNPACK Contrib Installation
+===========================
+
+`NNPACK <https://github.com/Maratyszcza/NNPACK>`_ is an acceleration package
+for neural network computations, which can run on x86-64, ARMv7, or ARM64 architecture CPUs.
+Using NNPACK, higher-level libraries like _MXNet_ can speed up
+the execution on multi-core CPU computers, including laptops and mobile devices.
+
+.. note::
+
+   AS TVM already has natively tuned schedules, NNPACK is here mainly for reference and comparison purpose.
+   For regular use prefer native tuned TVM implementation.
+
+TVM supports NNPACK for forward propagation (inference only) in convolution, max-pooling, and fully-connected layers.
+In this document, we give a high level overview of how to use NNPACK with TVM.
+
+Conditions
+----------
+
+The underlying implementation of NNPACK utilizes several acceleration methods,
+including fft and winograd.
+These algorithms work better on some special `batch size`, `kernel size`, and `stride` settings than on other,
+so depending on the context, not all convolution, max-pooling, or fully-connected layers can be powered by NNPACK.
+When favorable conditions for running NNPACKS are not met,
+
+NNPACK only supports Linux and OS X systems. Windows is not supported at present.
+
+Build/Install NNPACK
+--------------------
+
+If the trained model meets some conditions of using NNPACK,
+you can build TVM with NNPACK support.
+Follow these simple steps:
+
+uild NNPACK shared library with the following commands. TVM will link NNPACK dynamically.
+
+Note: The following NNPACK installation instructions have been tested on Ubuntu 16.04.
+
+Build Ninja
+~~~~~~~~~~~
+
+NNPACK need a recent version of Ninja. So we need to install ninja from source.
+
+.. code:: bash
+
+   git clone git://github.com/ninja-build/ninja.git
+   cd ninja
+   ./configure.py --bootstrap
+
+
+Set the environment variable PATH to tell bash where to find the ninja executable. For example, assume we cloned ninja on the home directory ~. then we can added the following line in ~/.bashrc.
+
+
+.. code:: bash
+
+   export PATH="${PATH}:~/ninja"
+
+
+Build NNPACK
+~~~~~~~~~~~~
+
+The new CMAKE version of NNPACK download `Peach <https://github.com/Maratyszcza/PeachPy>`_ and other dependencies alone
+
+Note: at least on OS X, running `ninja install` below will overwrite googletest libraries installed in `/usr/local/lib`. If you build googletest again to replace the nnpack copy, be sure to pass `-DBUILD_SHARED_LIBS=ON` to `cmake`.
+
+.. code:: bash
+
+   git clone --recursive https://github.com/Maratyszcza/NNPACK.git
+   cd NNPACK
+   # Add PIC option in CFLAG and CXXFLAG to build NNPACK shared library
+   sed -i "s|gnu99|gnu99 -fPIC|g" CMakeLists.txt
+   sed -i "s|gnu++11|gnu++11 -fPIC|g" CMakeLists.txt
+   mkdir build
+   cd build
+   # Generate ninja build rule and add shared library in configuration
+   cmake -G Ninja -D BUILD_SHARED_LIBS=ON ..
+   ninja
+   sudo ninja install
+
+   # Add NNPACK lib folder in your ldconfig
+   echo "/usr/local/lib" > /etc/ld.so.conf.d/nnpack.conf
+   sudo ldconfig
+
+
+Build TVM with NNPACK support
+-----------------------------
+
+.. code:: bash
+
+   git clone --recursive https://github.com/apache/incubator-tvm tvm
+
+- Set `set(USE_NNPACK ON)` in config.cmake.
+- Set `NNPACK_PATH` to the $(YOUR_NNPACK_INSTALL_PATH)
+
+after configuration use `make` to build TVM
+
+
+.. code:: bash
+
+   make
diff --git a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
index 18c87dc..27d7622 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.352** total execution time for **tutorials_autotvm** files:
-
-- **00:26.490**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
-- **00:21.203**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
-- **00:00.181**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
-- **00:00.159**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
-- **00:00.159**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
-- **00:00.159**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
+**00:52.017** total execution time for **tutorials_autotvm** files:
+
+- **00:27.259**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
+- **00:24.212**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:00.147**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.133**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+- **00:00.133**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
+- **00:00.133**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
diff --git a/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
index 683a73f..36c2227 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] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 6   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 7   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 8   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 9   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 10  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 11  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 12  GFLOPS: 58.21/58.21     result: MeasureResult(costs=(0.003977298038461538,), error_no=0, all_cost=1.471078634262085, timestamp=1587363156.3709424)      [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8533140
-    No: 13  GFLOPS: 0.00/58.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 14  GFLOPS: 0.00/58.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 15  GFLOPS: 0.00/58.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 16  GFLOPS: 0.00/58.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 17  GFLOPS: 0.00/58.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 18  GFLOPS: 0.00/58.21      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (4) /workspace/build/libtvm.so(+0x49a8ff) [0x7f897a2cd8ff]\n  [bt] (3) /workspace/build/libtvm.so(tvm::transform::Pass::operator()(tvm::IRModule) const+0x70) [0x7f897a2d0bd0]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::Pa [...]
-    No: 19  GFLOPS: 771.09/771.09   result: MeasureResult(costs=(0.000300224651214128,), error_no=0, all_cost=2.0936989784240723, timestamp=1587363160.1702943)     [('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.98/771.09     result: MeasureResult(costs=(0.03315011025,), error_no=0, all_cost=1.8245627880096436, timestamp=1587363161.2054307)    [('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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\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) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 12  GFLOPS: 57.93/57.93     result: MeasureResult(costs=(0.003995959576923077,), error_no=0, all_cost=2.0548136234283447, timestamp=1588296329.510231)      [('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/57.93      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 14  GFLOPS: 0.00/57.93      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 15  GFLOPS: 0.00/57.93      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 16  GFLOPS: 0.00/57.93      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 17  GFLOPS: 0.00/57.93      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 18  GFLOPS: 0.00/57.93      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ff84dca8c61]\n  [bt] (3) /workspace/build/libtvm.so(+0x4b628c) [0x7ff84d3b728c]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x2fd) [0x7ff84d3b5d2d]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 19  GFLOPS: 789.30/789.30   result: MeasureResult(costs=(0.00029330012114537447,), error_no=0, all_cost=2.554238796234131, timestamp=1588296334.2122595)    [('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/789.30     result: MeasureResult(costs=(0.03326839375,), error_no=0, all_cost=2.2470388412475586, timestamp=1588296335.6904595)    [('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.000358
+    Time cost of this operator: 0.000355
 
 
 
diff --git a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
index 15f2dae..dc6fbd8 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: 7.06/7.06       result: MeasureResult(costs=(0.0380279692,), error_no=0, all_cost=0.8919658660888672, timestamp=1587363126.3145273)     [('tile_y', [-1, 8]), ('tile_x', [-1, 8])],None,33
-    No: 2   GFLOPS: 2.30/7.06       result: MeasureResult(costs=(0.1165274164,), error_no=0, all_cost=2.136989116668701, timestamp=1587363128.4989433)      [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
-    No: 3   GFLOPS: 7.41/7.41       result: MeasureResult(costs=(0.036214165799999996,), error_no=0, all_cost=1.2049956321716309, timestamp=1587363129.400848)      [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
-    No: 4   GFLOPS: 4.44/7.41       result: MeasureResult(costs=(0.0604868886,), error_no=0, all_cost=1.3611621856689453, timestamp=1587363130.683009)      [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
-    No: 5   GFLOPS: 6.06/7.41       result: MeasureResult(costs=(0.0442902372,), error_no=0, all_cost=1.147874116897583, timestamp=1587363131.7490911)      [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
-    No: 6   GFLOPS: 6.40/7.41       result: MeasureResult(costs=(0.041963698199999996,), error_no=0, all_cost=1.095632791519165, timestamp=1587363132.7843227)      [('tile_y', [-1, 64]), ('tile_x', [-1, 8])],None,36
-    No: 7   GFLOPS: 25.96/25.96     result: MeasureResult(costs=(0.010339799600000001,), error_no=0, all_cost=0.6244151592254639, timestamp=1587363133.274794)      [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
-    No: 8   GFLOPS: 20.39/25.96     result: MeasureResult(costs=(0.0131632686,), error_no=0, all_cost=0.4899017810821533, timestamp=1587363133.7990336)     [('tile_y', [-1, 4]), ('tile_x', [-1, 512])],None,92
-    No: 9   GFLOPS: 0.83/25.96      result: MeasureResult(costs=(0.3225978646,), error_no=0, all_cost=5.420862436294556, timestamp=1587363139.2854187)      [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
-    No: 10  GFLOPS: 0.00/25.96      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  [bt] (3) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]\n  [bt] (2) /workspace/build/libtvm.so(std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::RPCModuleNode::WrapRemote(void*)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime:: [...]
+    No: 1   GFLOPS: 6.96/6.96       result: MeasureResult(costs=(0.0385797166,), error_no=0, all_cost=0.8728656768798828, timestamp=1588296295.960279)      [('tile_y', [-1, 8]), ('tile_x', [-1, 8])],None,33
+    No: 2   GFLOPS: 2.26/6.96       result: MeasureResult(costs=(0.11858004,), error_no=0, all_cost=2.1669492721557617, timestamp=1588296298.2292306)       [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
+    No: 3   GFLOPS: 7.30/7.30       result: MeasureResult(costs=(0.0367570304,), error_no=0, all_cost=1.125162124633789, timestamp=1588296299.196056)       [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
+    No: 4   GFLOPS: 4.41/7.30       result: MeasureResult(costs=(0.060877514,), error_no=0, all_cost=1.292130708694458, timestamp=1588296300.5514374)       [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
+    No: 5   GFLOPS: 6.12/7.30       result: MeasureResult(costs=(0.0438933678,), error_no=0, all_cost=0.9459524154663086, timestamp=1588296301.6312118)     [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
+    No: 6   GFLOPS: 6.52/7.30       result: MeasureResult(costs=(0.0411427822,), error_no=0, all_cost=1.0240263938903809, timestamp=1588296302.660769)      [('tile_y', [-1, 64]), ('tile_x', [-1, 8])],None,36
+    No: 7   GFLOPS: 26.27/26.27     result: MeasureResult(costs=(0.0102179166,), error_no=0, all_cost=0.4918959140777588, timestamp=1588296303.1997833)     [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
+    No: 8   GFLOPS: 20.88/26.27     result: MeasureResult(costs=(0.0128584314,), error_no=0, all_cost=0.5001192092895508, timestamp=1588296303.777795)      [('tile_y', [-1, 4]), ('tile_x', [-1, 512])],None,92
+    No: 9   GFLOPS: 0.82/26.27      result: MeasureResult(costs=(0.3262719522,), error_no=0, all_cost=5.464502334594727, timestamp=1588296309.3735292)      [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
+    No: 10  GFLOPS: 0.00/26.27      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  [bt] (3) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ff84dca8c61]\n  [bt] (2) /workspace/build/libtvm.so(std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::RPCModuleNode::WrapRemote(void*)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime:: [...]
 
 
 
diff --git a/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
index 662468e..e3f17e7 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.653e-07 secs/op
+    1.683e-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 3b18a9a..85cee67 100644
--- a/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt
+++ b/docs/_sources/tutorials/dev/low_level_custom_pass.rst.txt
@@ -92,7 +92,7 @@ TVM already provides two class for users to both analyze and transform IR.
 
 IR Visitor
 ~~~~~~~~~~
-We can use ``tvm.tir.ir_pass.PostOrderVisit(stmt, func)`` to gather information from the Halide IR.
+We can use ``tvm.tir.stmt_functor.post_order_visit(stmt, func)`` to gather information from the Halide IR.
 ``func`` is a function callback. This function will be called before exiting the current IR node,
 i.e. post-order visit. Then we leverage side effects to store the result of IR visit, because the
 return value of ``func`` will be ignored.
@@ -146,25 +146,26 @@ this value.
             extent = op.extent.value
             name = op.loop_var.name
             lo, li = te.var(name + '.outer'), te.var(name + '.inner')
-            body = tvm.tir.ir_pass.Substitute(op.body, {op.loop_var: lo * 8 + li})
+            body = tvm.tir.stmt_functor.substitute(op.body, {op.loop_var: lo * 8 + li})
             body = tvm.tir.For(li, 0, 8, tvm.tir.For.Vectorized, 0, body)
             body = tvm.tir.For(lo, 0, extent // 8, tvm.tir.For.Serial, 0, body)
             return body
         return None
 
-    def vectorize(stmt):
+    @tvm.tir.transform.prim_func_pass(opt_level=0)
+    def vectorize(f, mod, ctx):
         global loops
 
-        tvm.tir.ir_pass.PostOrderVisit(stmt, find_width8)
+        tvm.tir.stmt_functor.post_order_visit(f.body, find_width8)
 
         if not loops:
-            return stmt
+            return sf
 
         # The last list arugment indicates what kinds of nodes will be transformed.
         # Thus, in this case only `For` nodes will call `vectorize8`
-        stmt = tvm.tir.ir_pass.IRTransform(stmt, None, vectorize8, ['For'])
+        return f.with_body(
+            tvm.tir.stmt_functor.ir_transform(f.body, None, vectorize8, ['For']))
 
-        return stmt
 
 
 
@@ -223,8 +224,8 @@ Thus, a good place to put this transformation pass is just after Phase 1.
 Quick View
 ----------
 This tutorial gives a quick view of writing a customized IR transformation pass:
-- Use ``tvm.tir.ir_pass.PostOrderVisit`` to gather information on each IR nodes.
-- Use ``tvm.tir.ir_pass.IRTransform`` to transform IR nodes.
+- Use ``tvm.tir.stmt_functor.post_order_visit`` to gather information on each IR nodes.
+- Use ``tvm.tir.stmt_functor.ir_transform`` to transform IR nodes.
 - Wrap up two above to write an IR-transformation function.
 - Use ``tvm.target.build_config`` to put this function to TVM lowering pass
 
diff --git a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
index 0b8b0da..0ac3c8a 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.568** total execution time for **tutorials_dev** files:
+**00:00.457** total execution time for **tutorials_dev** files:
 
-- **00:00.407**: :ref:`sphx_glr_tutorials_dev_relay_pass_infra.py` (``relay_pass_infra.py``)
-- **00:00.160**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
+- **00:00.324**: :ref:`sphx_glr_tutorials_dev_relay_pass_infra.py` (``relay_pass_infra.py``)
+- **00:00.133**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
diff --git a/docs/_sources/tutorials/frontend/build_gcn.rst.txt b/docs/_sources/tutorials/frontend/build_gcn.rst.txt
index d4882fc..bbf29b0 100644
--- a/docs/_sources/tutorials/frontend/build_gcn.rst.txt
+++ b/docs/_sources/tutorials/frontend/build_gcn.rst.txt
@@ -69,6 +69,14 @@ This part reuses the code from the above example.
 
 
 
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+    Using backend: pytorch
+
 
 
 Define the functions to load dataset and evaluate accuracy
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 a7edc76..09f19aa 100644
--- a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
@@ -415,7 +415,7 @@ Execute on TVM
 
     TVM prediction top-1: tiger cat
     Evaluate inference time cost...
-    Mean inference time (std dev): 11.31 ms (2.34 ms)
+    Mean inference time (std dev): 3.14 ms (0.27 ms)
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
index 078b8b6..a72bfd3 100644
--- a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
@@ -352,7 +352,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
  .. code-block:: none
 
-    Elapsed average ms: 10.429512450000002
+    Elapsed average ms: 11.220273310000003
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
index 242a3ce..a724cb9 100644
--- a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
@@ -131,7 +131,7 @@ Convert and compile model for CPU.
 
  .. code-block:: none
 
-    /usr/local/lib/python3.6/dist-packages/mxnet/gluon/block.py:1159: UserWarning: Cannot decide type for the following arguments. Consider providing them as input:
+    /usr/local/lib/python3.6/dist-packages/mxnet/gluon/block.py:1389: UserWarning: Cannot decide type for the following arguments. Consider providing them as input:
             data: None
       input_sym_arg_type = in_param.infer_type()[0]
 
diff --git a/docs/_sources/tutorials/frontend/from_coreml.rst.txt b/docs/_sources/tutorials/frontend/from_coreml.rst.txt
index 2873f2b..5e005e0 100644
--- a/docs/_sources/tutorials/frontend/from_coreml.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_coreml.rst.txt
@@ -39,25 +39,6 @@ https://github.com/apple/coremltools
 
 
 
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
-      _np_qint8 = np.dtype([("qint8", np.int8, 1)])
-    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
-      _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
-    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:528: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
-      _np_qint16 = np.dtype([("qint16", np.int16, 1)])
-    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:529: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
-      _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
-    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:530: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
-      _np_qint32 = np.dtype([("qint32", np.int32, 1)])
-    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:535: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
-      np_resource = np.dtype([("resource", np.ubyte, 1)])
-
 
 
 Load pretrained CoreML model
diff --git a/docs/_sources/tutorials/frontend/from_onnx.rst.txt b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
index 0c24186..ced58d3 100644
--- a/docs/_sources/tutorials/frontend/from_onnx.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
@@ -125,7 +125,7 @@ Compile the model with relay
 
  .. code-block:: none
 
-    /workspace/docs/../python/tvm/relay/frontend/onnx.py:1885: UserWarning: Mismatched attribute type in ' : kernel_shape'
+    /workspace/docs/../python/tvm/relay/frontend/onnx.py:1947: UserWarning: Mismatched attribute type in ' : kernel_shape'
 
     ==> Context: Bad node spec: input: "1" input: "2" output: "11" op_type: "Conv" attribute { name: "kernel_shape" ints: 5 ints: 5 } attribute { name: "strides" ints: 1 ints: 1 } attribute { name: "pads" ints: 2 ints: 2 ints: 2 ints: 2 } attribute { name: "dilations" ints: 1 ints: 1 } attribute { name: "group" i: 1 }
       warnings.warn(str(e))
@@ -151,7 +151,7 @@ Execute on TVM
 
  .. code-block:: none
 
-
    ...47%, 0.01 MB, 25 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 51 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 77 KB/s, 0 seconds passed
+
    ...47%, 0.01 MB, 51 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 102 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 153 KB/s, 0 seconds passed
     Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 224, 224), 'float32'), ('TENSOR', (9, 32, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 224, 224), 'float32'), ('TENSOR', (32, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1, 224, 224), 'float32'), ('TENSOR', (64, 1, 5, 5), 'float32'), (1, 1), (2, 2, 2, 2), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
diff --git a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
index 3815cf1..f9340b3 100644
--- a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,21 +5,21 @@
 
 Computation times
 =================
-**03:22.641** total execution time for **tutorials_frontend** files:
+**03:14.518** total execution time for **tutorials_frontend** files:
 
-- **00:31.258**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized.py` (``deploy_prequantized.py``)
-- **00:25.665**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
-- **00:19.719**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
-- **00:17.782**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
-- **00:17.119**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
-- **00:16.379**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
-- **00:14.433**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
-- **00:13.210**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
-- **00:12.283**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
-- **00:09.090**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
-- **00:06.734**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
-- **00:06.368**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
-- **00:04.564**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
-- **00:04.419**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
-- **00:02.054**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
-- **00:01.564**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
+- **00:32.295**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized.py` (``deploy_prequantized.py``)
+- **00:26.674**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **00:19.755**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
+- **00:17.823**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
+- **00:17.595**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
+- **00:15.859**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
+- **00:11.209**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
+- **00:11.079**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
+- **00:08.838**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:08.215**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
+- **00:06.489**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:05.913**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
+- **00:04.606**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
+- **00:04.539**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
+- **00:02.177**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
+- **00:01.452**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
diff --git a/docs/_sources/tutorials/language/intrin_math.rst.txt b/docs/_sources/tutorials/language/intrin_math.rst.txt
index a5bf3d9..e5d0a82 100644
--- a/docs/_sources/tutorials/language/intrin_math.rst.txt
+++ b/docs/_sources/tutorials/language/intrin_math.rst.txt
@@ -71,10 +71,10 @@ In the following example, we use :any:`tvm.tir.call_pure_extern` to call
 
     extern "C" __global__ void myexp_kernel0(void* __restrict__ B, void* __restrict__ A, int n, int stride, int stride1) {
       if (((int)blockIdx.x) < (n >> 6)) {
-        (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = __expf((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
+        ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = __expf(((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
       } else {
         if (((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) < n) {
-          (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = __expf((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
+          ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = __expf(((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
         }
       }
     }
@@ -121,10 +121,10 @@ The following code use te.exp instead, which create an intrinsic call
 
     extern "C" __global__ void myexp_kernel0(void* __restrict__ B, void* __restrict__ A, int n, int stride, int stride1) {
       if (((int)blockIdx.x) < (n >> 6)) {
-        (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = __expf((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
+        ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = __expf(((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
       } else {
         if (((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) < n) {
-          (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = __expf((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
+          ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = __expf(((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
         }
       }
     }
@@ -227,10 +227,10 @@ fast math version :code:`__expf`.
 
     extern "C" __global__ void myexp_kernel0(void* __restrict__ B, void* __restrict__ A, int n, int stride, int stride1) {
       if (((int)blockIdx.x) < (n >> 6)) {
-        (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = expf((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
+        ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = expf(((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
       } else {
         if (((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) < n) {
-          (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = expf((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
+          ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = expf(((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
         }
       }
     }
@@ -291,10 +291,10 @@ The following example add an intrinsic :code:`mylog` to the system.
 
     extern "C" __global__ void mylog_kernel0(void* __restrict__ B, void* __restrict__ A, int n, int stride, int stride1) {
       if (((int)blockIdx.x) < (n >> 6)) {
-        (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = logf((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
+        ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = logf(((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
       } else {
         if (((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) < n) {
-          (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = logf((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
+          ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))] = logf(((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))]);
         }
       }
     }
diff --git a/docs/_sources/tutorials/language/reduction.rst.txt b/docs/_sources/tutorials/language/reduction.rst.txt
index a06043f..cc46cef 100644
--- a/docs/_sources/tutorials/language/reduction.rst.txt
+++ b/docs/_sources/tutorials/language/reduction.rst.txt
@@ -307,34 +307,34 @@ columns by threadIdx.x and finally do a cross thread reduction over threadIdx.x
  .. code-block:: none
 
     extern "C" __global__ void default_function_kernel0(void* __restrict__ A, void* __restrict__ B, int m, int n, int stride, int stride1, int stride2) {
-       float B_rf[1];
+      float B_rf[1];
       __shared__ float red_buf0[512];
       B_rf[(0)] = 0.000000e+00f;
       for (int k_outer = 0; k_outer < (m >> 4); ++k_outer) {
         if (((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) < n) {
-          B_rf[(0)] = (B_rf[(0)] + (( float*)A)[(((((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) * stride) + (((k_outer * 16) + ((int)threadIdx.x)) * stride1)))]);
+          B_rf[(0)] = (B_rf[(0)] + ((float*)A)[(((((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) * stride) + (((k_outer * 16) + ((int)threadIdx.x)) * stride1)))]);
         }
       }
       for (int k_outer1 = 0; k_outer1 < (((m & 15) + 15) >> 4); ++k_outer1) {
         if (((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) < n) {
           if (((((m >> 4) * 16) + (k_outer1 * 16)) + ((int)threadIdx.x)) < m) {
-            B_rf[(0)] = (B_rf[(0)] + (( float*)A)[(((((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) * stride) + (((((m >> 4) * 16) + (k_outer1 * 16)) + ((int)threadIdx.x)) * stride1)))]);
+            B_rf[(0)] = (B_rf[(0)] + ((float*)A)[(((((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) * stride) + (((((m >> 4) * 16) + (k_outer1 * 16)) + ((int)threadIdx.x)) * stride1)))]);
           }
         }
       }
       __syncthreads();
-      ((volatile  float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = ((((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) < n) ? B_rf[(0)] : 0.000000e+00f);
+      ((volatile float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = ((((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) < n) ? B_rf[(0)] : 0.000000e+00f);
       __syncthreads();
       if (((int)threadIdx.x) < 8) {
-        ((volatile  float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = (((volatile  float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] + ((volatile  float*)red_buf0)[((((((int)threadIdx.y) * 16) + ((int)threadIdx.x)) + 8))]);
-        ((volatile  float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = (((volatile  float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] + ((volatile  float*)red_buf0)[((((((int)threadIdx.y) * 16) + ((int)threadIdx.x)) + 4))]);
-        ((volatile  float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = (((volatile  float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] + ((volatile  float*)red_buf0)[((((((int)threadIdx.y) * 16) + ((int)threadIdx.x)) + 2))]);
-        ((volatile  float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = (((volatile  float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] + ((volatile  float*)red_buf0)[((((((int)threadIdx.y) * 16) + ((int)threadIdx.x)) + 1))]);
+        ((volatile float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = (((volatile float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] + ((volatile float*)red_buf0)[((((((int)threadIdx.y) * 16) + ((int)threadIdx.x)) + 8))]);
+        ((volatile float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = (((volatile float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] + ((volatile float*)red_buf0)[((((((int)threadIdx.y) * 16) + ((int)threadIdx.x)) + 4))]);
+        ((volatile float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = (((volatile float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] + ((volatile float*)red_buf0)[((((((int)threadIdx.y) * 16) + ((int)threadIdx.x)) + 2))]);
+        ((volatile float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] = (((volatile float*)red_buf0)[(((((int)threadIdx.y) * 16) + ((int)threadIdx.x)))] + ((volatile float*)red_buf0)[((((((int)threadIdx.y) * 16) + ((int)threadIdx.x)) + 1))]);
       }
       __syncthreads();
       if (((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) < n) {
         if (((int)threadIdx.x) == 0) {
-          (( float*)B)[((((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) * stride2))] = ((volatile  float*)red_buf0)[((((int)threadIdx.y) * 16))];
+          ((float*)B)[((((((int)blockIdx.x) * 32) + ((int)threadIdx.y)) * stride2))] = ((volatile float*)red_buf0)[((((int)threadIdx.y) * 16))];
         }
       }
     }
diff --git a/docs/_sources/tutorials/language/sg_execution_times.rst.txt b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
index f321260..0e199e0 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.515** total execution time for **tutorials_language** files:
+**00:03.665** total execution time for **tutorials_language** files:
 
-- **00:01.204**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
-- **00:00.628**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
-- **00:00.491**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
-- **00:00.463**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
-- **00:00.245**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
-- **00:00.172**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
-- **00:00.171**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
-- **00:00.143**: :ref:`sphx_glr_tutorials_language_tuple_inputs.py` (``tuple_inputs.py``)
+- **00:01.305**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
+- **00:00.670**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
+- **00:00.498**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
+- **00:00.450**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
+- **00:00.287**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
+- **00:00.167**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
+- **00:00.153**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.136**: :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 c31649d..56661d5 100644
--- a/docs/_sources/tutorials/language/tensorize.rst.txt
+++ b/docs/_sources/tutorials/language/tensorize.rst.txt
@@ -291,7 +291,7 @@ The importing needs to happen before the tensorized GEMV being executed.
  .. code-block:: none
 
     PrimFunc([A, B, C]) attrs={"tir.noalias": (bool)1, "global_symbol": "main"} {
-      // attr [iter_var(i, )] pragma_import_llvm = "; ModuleID = '/tmp/tmpjupdmfr2/input0.cc'\nsource_filename = \"/tmp/tmpjupdmfr2/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca float*, align 8\n  %8 = alloca float*, align 8\n  %9 = alloca float*, align 8\n  %10 = alloca i [...]
+      // attr [iter_var(i, )] pragma_import_llvm = "; ModuleID = '/tmp/tmpwfn404_d/input0.cc'\nsource_filename = \"/tmp/tmpwfn404_d/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca float*, align 8\n  %8 = alloca float*, align 8\n  %9 = alloca float*, align 8\n  %10 = alloca i [...]
       for (i, 0, 1024) {
         for (j.outer, 0, 32) {
           gemv_update(tvm_access_ptr(type_annotation(), C, ((i*512) + (j.outer*16)), 16, 2), tvm_access_ptr(type_annotation(), A, (i*64), 64, 1), tvm_access_ptr(type_annotation(), B, (j.outer*1024), 1024, 1), 16, 64, 64)
diff --git a/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
index 0a30fdc..3203b0f 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.530313 ms
+    Convolution: 19.551412 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
index 8602daf..c3a71a0 100644
--- a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
@@ -549,7 +549,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 6.288323 ms
+    conv2d with tensor core: 6.307512 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
index ec9f776..be88cfe 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.008158
-    Baseline: 5.951094
+    Numpy running time: 0.007315
+    Baseline: 5.920522
 
 
 
@@ -201,7 +201,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.110619
+    Opt1: 0.110557
 
 
 
@@ -290,7 +290,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.130606
+    Opt2: 0.126554
 
 
 
@@ -374,7 +374,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.060277
+    Opt3: 0.061485
 
 
 
@@ -477,7 +477,7 @@ the corresponding value from the packed array.
 
  .. code-block:: none
 
-    Opt4: 0.066516
+    Opt4: 0.072638
 
 
 
@@ -581,7 +581,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.061546
+    Opt5: 0.064131
 
 
 
@@ -691,7 +691,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
 
  .. code-block:: none
 
-    Opt6: 0.008298
+    Opt6: 0.013905
 
 
 
diff --git a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
index 7885a69..30c0408 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:26.942** total execution time for **tutorials_optimize** files:
+**00:26.970** total execution time for **tutorials_optimize** files:
 
-- **00:25.096**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
-- **00:00.925**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
-- **00:00.770**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
-- **00:00.152**: :ref:`sphx_glr_tutorials_optimize_opt_matmul_auto_tensorcore.py` (``opt_matmul_auto_tensorcore.py``)
+- **00:25.245**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
+- **00:00.902**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:00.675**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:00.148**: :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 cabe8be..939eaa7 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, 51 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 102 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 153 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 203 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 254 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 303 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 354 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 403 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 453 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 501 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 551 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 599 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 648 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 695 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 744 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 793 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 841 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 887 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 935 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 984 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 1032 KB/s, 0 seconds 
 passed
    ...43%, 0.17 MB, 1077 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 1125 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 1173 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 1221 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 1265 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 1313 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 1359 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 1407 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 1451 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 1499 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 1544 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 1592 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 1635 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 1682 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 1727 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 1774 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 1817 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 1864 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 1908 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 1955 KB/s, 0 seconds passed
    ...83%
 , 0.33 MB, 1997 KB/s, 0 seconds passed
    ...85%, 0.34 MB, 2043 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 2087 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 2133 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 2177 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 2223 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 2269 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 2315 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 2360 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 2405 KB/s, 0 seconds passed
+
    ...1%, 0.01 MB, 41 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 81 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 122 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 162 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 202 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 243 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 283 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 322 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 362 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 401 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 441 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 480 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 519 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 558 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 597 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 636 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 675 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 713 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 753 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 789 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 828 KB/s, 0 seconds pa
 ssed
    ...43%, 0.17 MB, 867 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 906 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 941 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 979 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 1018 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 1056 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 1094 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 1133 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 1169 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 1207 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 1241 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 1279 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 1317 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 1356 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 1394 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 1432 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 1466 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 1504 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 1541 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 1579 KB/s, 0 seconds passed
    ...83%, 0.33
  MB, 1612 KB/s, 0 seconds passed
    ...85%, 0.34 MB, 1649 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 1686 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 1724 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 1761 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 1798 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 1832 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 1869 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 1906 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 1943 KB/s, 0 seconds passed
     Cannot find config for target=cuda -model=unknown, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 56, 56), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=cuda -model=unknown, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 28, 28), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=cuda -model=unknown, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 14, 14), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
diff --git a/docs/_sources/tutorials/sg_execution_times.rst.txt b/docs/_sources/tutorials/sg_execution_times.rst.txt
index bc33262..3f23fab 100644
--- a/docs/_sources/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/sg_execution_times.rst.txt
@@ -5,8 +5,8 @@
 
 Computation times
 =================
-**00:09.438** total execution time for **tutorials** files:
+**00:10.456** total execution time for **tutorials** files:
 
-- **00:08.993**: :ref:`sphx_glr_tutorials_relay_quick_start.py` (``relay_quick_start.py``)
-- **00:00.330**: :ref:`sphx_glr_tutorials_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
-- **00:00.115**: :ref:`sphx_glr_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
+- **00:09.989**: :ref:`sphx_glr_tutorials_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:00.325**: :ref:`sphx_glr_tutorials_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:00.142**: :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 1aad4c2..b94b66d 100644
--- a/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
@@ -256,10 +256,10 @@ The following code fetches the device module and prints the content code.
     -----GPU code-----
     extern "C" __global__ void myadd_kernel0(void* __restrict__ C, void* __restrict__ A, void* __restrict__ B, int n, int stride, int stride1, int stride2) {
       if (((int)blockIdx.x) < (n >> 6)) {
-        (( float*)C)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride2))] = ((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))] + (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))]);
+        ((float*)C)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride2))] = (((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))] + ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))]);
       } else {
         if (((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) < n) {
-          (( float*)C)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride2))] = ((( float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))] + (( float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))]);
+          ((float*)C)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride2))] = (((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))] + ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))]);
         }
       }
     }
diff --git a/docs/_sources/tutorials/topi/intro_topi.rst.txt b/docs/_sources/tutorials/topi/intro_topi.rst.txt
index 5b5f7da..77d1219 100644
--- a/docs/_sources/tutorials/topi/intro_topi.rst.txt
+++ b/docs/_sources/tutorials/topi/intro_topi.rst.txt
@@ -219,7 +219,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, 0x11af95c90), stage(b, 0x10cb2e730), stage(T_add, 0x110120e00), stage(T_multiply, 0x1178fde20), stage(T_elemwise_sum, 0x10ca51780), stage(T_divide, 0x11aaebd90), stage(T_divide_red.rf, 0x11b0441b0), stage(T_divide_red, 0x11b040c00)]
+    [stage(a, 0x128bf87c0), stage(b, 0x15056c1b0), stage(T_add, 0x1310db130), stage(T_multiply, 0xbbaf8fc0), stage(T_elemwise_sum, 0x13110d5b0), stage(T_divide, 0x12d92eea0), stage(T_divide_red.rf, 0x128539d90), stage(T_divide_red, 0x12c4df270)]
 
 
 
diff --git a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
index a7fc5e9..79da3d0 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.546** total execution time for **tutorials_topi** files:
+**00:00.481** total execution time for **tutorials_topi** files:
 
-- **00:00.546**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
+- **00:00.481**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
diff --git a/docs/_sources/vta/install.md.txt b/docs/_sources/vta/install.rst.txt
similarity index 60%
rename from docs/_sources/vta/install.md.txt
rename to docs/_sources/vta/install.rst.txt
index a938a67..900a014 100644
--- a/docs/_sources/vta/install.md.txt
+++ b/docs/_sources/vta/install.rst.txt
@@ -1,69 +1,77 @@
-<!--- 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. -->
+..  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.
 
 VTA Installation Guide
 ======================
 
 We present three installation guides, each extending on the previous one:
-1. [Simulator installation](#vta-simulator-installation)
-2. [PYNQ-based test setup](#vta-pynq-based-test-setup)
-3. [Custom test setup for Intel FPGA](#vta-custom-test-setup-for-intel-fpga)
-4. [FPGA toolchain installation](#vta-fpga-toolchain-installation)
+1. ref:`VTA Simulator Installation`
+2. ref:`VTA Test Setup for Xilinx Pynq FPGA`
+3. ref:`VTA Test Setup for Intel FPGA`
+4. ref:`VTA FPGA Toolchain Installation`
 
-## VTA Simulator Installation
 
-You need [TVM installed](https://tvm.apache.org/docs/install/index.html) on your machine.
-For a quick and easy start, checkout the [Docker Guide](https://tvm.apache.org/docs/install/docker.html).
+.. _VTA Simulator Installation:
+
+VTA Simulator Installation
+--------------------------
+
+You need `TVM installed <https://tvm.apache.org/docs/install/index.html>`_ on your machine.
+For a quick and easy start, checkout the `Docker Guide <https://tvm.apache.org/docs/install/docker.html>`_.
 
 You'll need to set the following paths to use VTA:
-```bash
-export TVM_PATH=<path to TVM root>
-export VTA_HW_PATH=$TVM_PATH/3rdparty/vta-hw
-```
+
+.. code:: bash
+
+   export TVM_PATH=<path to TVM root>
+   export VTA_HW_PATH=$TVM_PATH/3rdparty/vta-hw
 
 The VTA functional simulation library needs to be enabled when building TVM.
-```bash
-cd <tvm-root>
-mkdir build
-cp cmake/config.cmake build/.
-echo 'set(USE_VTA_FSIM ON)' >> build/config.cmake
-cd build && cmake .. && make -j4
-```
+
+.. code:: bash
+
+   cd <tvm-root>
+   mkdir build
+   cp cmake/config.cmake build/.
+   echo 'set(USE_VTA_FSIM ON)' >> build/config.cmake
+   cd build && cmake .. && make -j4
 
 Add the VTA python library to your python path to run the VTA examples.
 
-```bash
-export PYTHONPATH=/path/to/vta/python:${PYTHONPATH}
-```
+.. code:: bash
 
-### Testing your VTA Simulation Setup
+   export PYTHONPATH=/path/to/vta/python:${PYTHONPATH}
+
+Testing your VTA Simulation Setup
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 To ensure that you've properly installed the VTA python package, run the following 2D convolution testbench.
 
-```bash
-python <tvm root>/vta/tests/python/integration/test_benchmark_topi_conv2d.py
-```
+.. code:: bash
+
+   python <tvm root>/vta/tests/python/integration/test_benchmark_topi_conv2d.py
 
 > Note: You'll notice that for every convolution layer, the throughput gets reported in GOPS. These numbers are actually the computational throughput that the simulator achieves, by evaluating the convolutions in software.
 
-You are invited to try out our [VTA programming tutorials](https://tvm.apache.org/docs/vta/tutorials/index.html).
+You are invited to try out our `VTA programming tutorials <https://tvm.apache.org/docs/vta/tutorials/index.html>`_.
 
 
-### Advanced Configuration (optional)
+Advanced Configuration (optional)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 VTA is a generic configurable deep learning accelerator.
 The configuration is specified by `vta_config.json` under `3rdparty/vta-hw/config`.
@@ -74,18 +82,22 @@ When `TARGET` is set to `sim`, all TVM workloads execute on the VTA simulator.
 You can modify the content of the configuration file to rebuild VTA to a different parameterization.
 To do so,
 
-```bash
-cd <tvm root>
-vim 3rdparty/vta-hw/config/vta_config.json
-# edit vta_config.json
-make
-```
+.. code:: bash
+
+   cd <tvm root>
+   vim 3rdparty/vta-hw/config/vta_config.json
+   # edit vta_config.json
+   make
 
-## VTA Pynq-Based Test Setup
+
+.. _VTA Test Setup for Xilinx Pynq FPGA:
+
+VTA Test Setup for Xilinx Pynq FPGA
+-----------------------------------
 
 This second guide extends the *VTA Simulator Installation* guide above to run FPGA hardware tests of the complete TVM and VTA software-hardware stack.
 In terms of hardware components you'll need:
-* The [Pynq](http://www.pynq.io/) FPGA development board which can be acquired for $200, or $150 for academics from [Digilent](https://store.digilentinc.com/pynq-z1-python-productivity-for-zynq/).
+* The `Pynq <http://www.pynq.io/>`_ FPGA development board which can be acquired for $200, or $150 for academics from `Digilent <https://store.digilentinc.com/pynq-z1-python-productivity-for-zynq/>`_.
 * An Ethernet-to-USB adapter to connect the Pynq board to your development machine.
 * An 8+GB micro SD card.
 * An AC to DC 12V 3A power adapter.
@@ -95,53 +107,57 @@ This guide covers the following themes:
 2. Pynq-side RPC server build and deployment.
 3. Revisiting the test examples from the *VTA Simulator Installation* guide, this time executing on the Pynq board.
 
-### Pynq Board Setup
+Pynq Board Setup
+^^^^^^^^^^^^^^^^
 
-Setup your Pynq board based on the [Pynq board getting started tutorial](http://pynq.readthedocs.io/en/latest/getting_started.html).
+Setup your Pynq board based on the `Pynq board getting started tutorial <http://pynq.readthedocs.io/en/latest/getting_started.html>`_.
 You should follow the instructions up to and including the *Turning On the PYNQ-Z1* step (no need to pursue the tutorial beyond this point).
-* Make sure that you've downloaded the latest Pynq image, [PYNQ-Z1 v2.4](http://www.pynq.io/board.html)(released February 22rd 2019), and have imaged your SD card with it (we recommend the free [Etcher](https://etcher.io/) program).
-* For this test setup, follow the ["Connect to a Computer"](http://pynq.readthedocs.io/en/latest/getting_started.html#connect-to-a-computer) Ethernet setup instructions. To be able to talk to the board, make sure to [assign your computer a static IP address](http://pynq.readthedocs.io/en/latest/appendix.html#assign-your-computer-a-static-ip)
+* Make sure that you've downloaded the latest Pynq image, `PYNQ-Z1 v2.4 <http://www.pynq.io/board.html>`_(released February 22rd 2019), and have imaged your SD card with it (we recommend the free `Etcher <https://etcher.io/>`_ program).
+* For this test setup, follow the `"Connect to a Computer" <http://pynq.readthedocs.io/en/latest/getting_started.html#connect-to-a-computer>`_ Ethernet setup instructions. To be able to talk to the board, make sure to `assign your computer a static IP address <http://pynq.readthedocs.io/en/latest/appendix.html#assign-your-computer-a-static-ip>`_
 
 Once the board is powered on and connected to your development machine, try connecting to it to make sure you've properly set up your Pynq board:
-```bash
-# To connect to the Pynq board use the [username, password] combo: [xilinx, xilinx]
-ssh xilinx@192.168.2.99
-```
 
-### Pynq-Side RPC Server Build & Deployment
+.. code:: bash
 
-Because the direct board-to-computer connection prevents the board from directly accessing the internet, we'll need to mount the Pynq's file system to your development machine's file system with [sshfs](https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh). Next we directly clone the TVM repository into the sshfs mountpoint on your development machine.
+   # To connect to the Pynq board use the <username, password> combo: <xilinx, xilinx>
+   ssh xilinx@192.168.2.99
 
-```bash
-# On the Host-side
-mkdir <mountpoint>
-sshfs xilinx@192.168.2.99:/home/xilinx <mountpoint>
-cd <mountpoint>
-git clone --recursive https://github.com/apache/incubator-tvm tvm
-# When finished, you can leave the moutpoint and unmount the directory
-cd ~
-sudo umount <mountpoint>
-```
+Pynq-Side RPC Server Build & Deployment
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Because the direct board-to-computer connection prevents the board from directly accessing the internet, we'll need to mount the Pynq's file system to your development machine's file system with `sshfs <https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh>`_. Next we directly clone the TVM repository into the sshfs mountpoint on your development machine.
+
+.. code:: bash
+
+   # On the Host-side
+   mkdir <mountpoint>
+   sshfs xilinx@192.168.2.99:/home/xilinx <mountpoint>
+   cd <mountpoint>
+   git clone --recursive https://github.com/apache/incubator-tvm tvm
+   # When finished, you can leave the moutpoint and unmount the directory
+   cd ~
+   sudo umount <mountpoint>
 
 Now that we've cloned the VTA repository in the Pynq's file system, we can ssh into it and launch the build of the TVM-based RPC server.
 The build process should take roughly 5 minutes.
 
-```bash
-ssh xilinx@192.168.2.99
-# Build TVM runtime library (takes 5 mins)
-cd /home/xilinx/tvm
-mkdir build
-cp cmake/config.cmake build/.
-echo 'set(USE_VTA_FPGA ON)' >> build/config.cmake
-# Copy pynq specific configuration
-cp 3rdparty/vta-hw/config/pynq_sample.json 3rdparty/vta-hw/config/vta_config.json
-cd build
-cmake ..
-make runtime vta -j2
-# Build VTA RPC server (takes 1 min)
-cd ..
-sudo ./apps/vta_rpc/start_rpc_server.sh # pw is 'xilinx'
-```
+.. code:: bash
+
+   ssh xilinx@192.168.2.99
+   # Build TVM runtime library (takes 5 mins)
+   cd /home/xilinx/tvm
+   mkdir build
+   cp cmake/config.cmake build/.
+   echo 'set(USE_VTA_FPGA ON)' >> build/config.cmake
+   # Copy pynq specific configuration
+   cp 3rdparty/vta-hw/config/pynq_sample.json 3rdparty/vta-hw/config/vta_config.json
+   cd build
+   cmake ..
+   make runtime vta -j2
+   # Build VTA RPC server (takes 1 min)
+   cd ..
+   sudo ./apps/vta_rpc/start_rpc_server.sh # pw is 'xilinx'
+
 
 You should see the following being displayed when starting the RPC server. In order to run the next examples, you'll need to leave the RPC server running in an `ssh` session.
 ```
@@ -153,53 +169,61 @@ Tips regarding the Pynq RPC Server:
 * To kill the RPC server, just send the `Ctrl + c` command. You can re-run it with `sudo ./apps/pynq_rpc/start_rpc_server.sh`.
 * If unresponsive, the board can be rebooted by power-cycling it with the physical power switch.
 
-### Testing your Pynq-based Hardware Setup
+Testing your Pynq-based Hardware Setup
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Before running the examples on your development machine, you'll need to configure your host environment as follows:
-```bash
-# On the Host-side
-export VTA_RPC_HOST=192.168.2.99
-export VTA_RPC_PORT=9091
-```
+
+.. code:: bash
+
+   # On the Host-side
+   export VTA_RPC_HOST=192.168.2.99
+   export VTA_RPC_PORT=9091
+
 
 In addition, you'll need to edit the `vta_config.json` file on the host to indicate that we are targeting the Pynq platform, by setting the `TARGET` field to `"pynq"`.
 > Note: in contrast to our simulation setup, there are no libraries to compile on the host side since the host offloads all of the computation to the Pynq board.
 
-```bash
-# On the Host-side
-cd <tvm root>
-cp 3rdparty/vta-hw/config/pynq_sample.json 3rdparty/vta-hw/config/vta_config.json
-```
+.. code:: bash
+
+   # On the Host-side
+   cd <tvm root>
+   cp 3rdparty/vta-hw/config/pynq_sample.json 3rdparty/vta-hw/config/vta_config.json
+
 
 This time again, we will run the 2D convolution testbench.
 Beforehand, we need to program the Pynq board FPGA with a VTA bitstream, and build the VTA runtime via RPC.
 The following `test_program_rpc.py` script will perform two operations:
-* FPGA programming, by downloading a pre-compiled bitstream from a [VTA bitstream repository](https://github.com/uwsaml/vta-distro) that matches the default `vta_config.json` configuration set by the host, and sending it over to the Pynq via RPC to program the Pynq's FPGA.
+* FPGA programming, by downloading a pre-compiled bitstream from a `VTA bitstream repository <https://github.com/uwsaml/vta-distro>`_ that matches the default `vta_config.json` configuration set by the host, and sending it over to the Pynq via RPC to program the Pynq's FPGA.
 * Runtime building on the Pynq, which needs to be run every time the `vta_config.json` configuration is modified. This ensures that the VTA software runtime that generates the accelerator's executable via just-in-time (JIT) compilation matches the specifications of the VTA design that is programmed on the FPGA. The build process takes about 30 seconds to complete so be patient!
 
-```bash
-# On the Host-side
-python <tvm root>/vta/tests/python/pynq/test_program_rpc.py
-```
+.. code:: bash
+
+   # On the Host-side
+   python <tvm root>/vta/tests/python/pynq/test_program_rpc.py
 
 > Tip: You can track progress of the FPGA programming and the runtime rebuilding steps by looking at the RPC server's logging messages in your Pynq `ssh` session.
 
 We are now ready to run the 2D convolution testbench in hardware.
 
-```bash
-# On the Host-side
-python <tvm root>/vta/tests/python/integration/test_benchmark_topi_conv2d.py
-```
+.. code:: bash
+
+   # On the Host-side
+   python <tvm root>/vta/tests/python/integration/test_benchmark_topi_conv2d.py
 
 The performance metrics measured on the Pynq board will be reported for each convolutional layer.
 
-You can also try out our [VTA programming tutorials](https://tvm.apache.org/docs/vta/tutorials/index.html).
+You can also try out our `VTA programming tutorials <https://tvm.apache.org/docs/vta/tutorials/index.html>`_.
+
 
-## VTA Custom Test Setup for Intel FPGA
+.. _VTA Test Setup for Intel FPGA:
+
+VTA Test Setup for Intel FPGA
+-----------------------------
 
 Similar to the PYNQ side setup steps, this third guide bring us the details on how can we setup up the Linux environment for Intel FPGA boards like DE10-Nano.
 
-In terms of hardware components, you would need the [DE10-Nano Development Kit](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1046), which can be acquired for $130, or $100 for academics from [Terasic](https://www.terasic.com.tw/). A microSD card would be delivered the kit. Power cables and USB cables would be included as well. However, an additional Ethernet cable would be needed to connect the board to LAN.
+In terms of hardware components, you would need the `DE10-Nano Development Kit <https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1046>`_, which can be acquired for $130, or $100 for academics from `Terasic <https://www.terasic.com.tw/>`_. A microSD card would be delivered the kit. Power cables and USB cables would be included as well. However, an additional Ethernet cable would be needed to connect the board to LAN.
 
 The rest part of this guide would provide the steps to
 
@@ -207,21 +231,23 @@ The rest part of this guide would provide the steps to
 * Cross compilation setup
 * Device-side RPC server setup and deployment
 
-### DE10-Nano Board Setup
+DE10-Nano Board Setup
+^^^^^^^^^^^^^^^^^^^^^
 
 Before powering up the device, we need to flash the microSD card image with latest Angstrom Linux image.
 
-#### Flash SD Card and Boot Angstrom Linux
+Flash SD Card and Boot Angstrom Linux
+"""""""""""""""""""""""""""""""""""""
 
-To flash SD card and boot Linux on DE10-Nano, it is recommended to navigate to the [Resource](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1046&PartNo=4) tab of the DE10-Nano product page from Terasic Inc.
+To flash SD card and boot Linux on DE10-Nano, it is recommended to navigate to the `Resource <https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1046&PartNo=4>`_ tab of the DE10-Nano product page from Terasic Inc.
 After registration and login on the webpage, the prebuilt Angstrom Linux image would be available for downloading and flashing.
 Specifically, to flash the downloaded Linux SD card image into your physical SD card:
 
 First, extract the gzipped archive file.
 
-``` bash
-tar xf de10-nano-image-Angstrom-v2016.12.socfpga-sdimg.2017.03.31.tgz
-```
+.. code:: bash
+
+   tar xf de10-nano-image-Angstrom-v2016.12.socfpga-sdimg.2017.03.31.tgz
 
 This would produce a single SD card image named `de10-nano-image-Angstrom-v2016.12.socfpga-sdimg` (approx. 2.4 GB), it contains all the file systems to boot Angstrom Linux.
 
@@ -229,69 +255,82 @@ Second, plugin a SD card that is ready to flash in your PC, and identify the dev
 
 Then, flash the disk image into your physical SD card with the following command:
 
-``` bash
-# NOTE: root privilege is typically required to run the following command.
-dd if=de10-nano-image-Angstrom-v2016.12.socfpga-sdimg of=/dev/sdb status=progress
-```
+.. code:: bash
+
+   # NOTE: root privilege is typically required to run the following command.
+   dd if=de10-nano-image-Angstrom-v2016.12.socfpga-sdimg of=/dev/sdb status=progress
+
 This would take a few minutes for your PC to write the whole file systems into the SD card.
 After this process completes, you are ready to unmount the SD card and insert it into your DE10-Nano board.
 Now you can connect the power cable and serial port to boot the Angstrom Linux.
 
 > Note: When boot up from the microSD card, you might notice the incompatibility of the linux kernel `zImage` in the microSD card.
-> In this case, you might need to build the `zImage` file of your own from [socfpga-4.9.78-ltsi](https://github.com/altera-opensource/linux-socfpga/tree/socfpga-4.9.78-ltsi) branch of the [linux-socfpga](https://github.com/altera-opensource/linux-socfpga) repository.
-> For a quick fix, you can also download a prebuilt version of the `zImage` file [here](https://raw.githubusercontent.com/liangfu/de10-nano-supplement/master/zImage).
+> In this case, you might need to build the `zImage` file of your own from `socfpga-4.9.78-ltsi <https://github.com/altera-opensource/linux-socfpga/tree/socfpga-4.9.78-ltsi>`_ branch of the `linux-socfpga <https://github.com/altera-opensource/linux-socfpga>`_ repository.
+> For a quick fix, you can also download a prebuilt version of the `zImage` file `from this link <https://raw.githubusercontent.com/liangfu/de10-nano-supplement/master/zImage>`_.
 
 After connecting the usb cables to the DE10-Nano board, power on the board by connecting the power cable. You may then connect to the serial port of the device by using `minicom` on your host PC:
 
-``` bash
-# NOTE: root privilege is typically required to run the following command.
-minicom -D /dev/ttyUSB0
-```
+.. code:: bash
+
+   # NOTE: root privilege is typically required to run the following command.
+   minicom -D /dev/ttyUSB0
 
 The default user name for the device would be `root`, and the password is empty for the default user.
 
 You may now start to install supporting Python3 packages (TVM has dropped the support for Python2), specifically, they are `numpy`, `attrs` and `decorator`.
 
 > Note: You might fail to install `numpy` by using `pip3` on the DE10-Nano device.
-> In that case, you have the option to either build your own filesystem image for the board from [meta-de10-nano](https://github.com/intel/meta-de10-nano) repository;
+> In that case, you have the option to either build your own filesystem image for the board from `meta-de10-nano <https://github.com/intel/meta-de10-nano>`_ repository;
 > an alternative option is to download prebuilt packages from existing Linux distributions, e.g. Debian.
-> For a quick fix, we have concatenated the supplementary binary files [here](https://raw.githubusercontent.com/liangfu/de10-nano-supplement/master/rootfs_supplement.tgz), and you can extract the files into the root filesystem.
+> For a quick fix, we have concatenated the supplementary binary files `here <https://raw.githubusercontent.com/liangfu/de10-nano-supplement/master/rootfs_supplement.tgz>`_, and you can extract the files into the root filesystem.
 
-#### Install Required Python Packages
+Install Required Python Packages
+""""""""""""""""""""""""""""""""
 
 After accessing bash terminal from the serial port, we need to install required Python packages before building and installing TVM and VTA programs.
 
-#### Build Additional Components to Use VTA Bitstream
+Build Additional Components to Use VTA Bitstream
+""""""""""""""""""""""""""""""""""""""""""""""""
 
 To use the above built bitstream on DE10-Nano hardware, several additional components need to be compiled for the system.
-Specifically, to compile application executables for the system, you need to download and install [SoCEDS](http://fpgasoftware.intel.com/soceds/18.1/?edition=standard&download_manager=dlm3&platform=linux) (recommended), or alternatively install the `g++-arm-linux-gnueabihf` package on your host machine. You would also need a `cma` kernel module to allocate contigous memory, and a driver for communicating with the VTA subsystem.
+Specifically, to compile application executables for the system, you need to download and install `SoCEDS <http://fpgasoftware.intel.com/soceds/18.1/?edition=standard&download_manager=dlm3&platform=linux>`_ (recommended), or alternatively install the `g++-arm-linux-gnueabihf` package on your host machine. You would also need a `cma` kernel module to allocate contigous memory, and a driver for communicating with the VTA subsystem.
 
-## VTA FPGA Toolchain Installation
+
+.. _VTA FPGA Toolchain Installation:
+
+VTA FPGA Toolchain Installation
+-------------------------------
 
 This last guide allows users to generate custom VTA bitstreams using free-to-use Xilinx or Intel compilation toolchains.
 
-### Xilinx Toolchain Installation
+Xilinx Toolchain Installation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 We recommend using `Vivado 2018.3` since our scripts have been tested to work on this version of the Xilinx toolchains.
 Our guide is written for Linux (Ubuntu) installation.
 
-You’ll need to install Xilinx’ FPGA compilation toolchain, [Vivado HL WebPACK 2018.3](https://www.xilinx.com/products/design-tools/vivado.html), which a license-free version of the Vivado HLx toolchain.
+You’ll need to install Xilinx’ FPGA compilation toolchain, `Vivado HL WebPACK 2018.3 <https://www.xilinx.com/products/design-tools/vivado.html>`_, which a license-free version of the Vivado HLx toolchain.
 
-#### Obtaining and Launching the Vivado GUI Installer
+Obtaining and Launching the Vivado GUI Installer
+""""""""""""""""""""""""""""""""""""""""""""""""
 
-1. Go to the [download webpage](https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/2018-3.html), and download the Linux Self Extracting Web Installer for Vivado HLx 2018.3: WebPACK and Editions.
+1. Go to the `download webpage <https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/2018-3.html>`_, and download the Linux Self Extracting Web Installer for Vivado HLx 2018.3: WebPACK and Editions.
 2. You’ll have to sign in with a Xilinx account. This requires a Xilinx account creation that will take 2 minutes.
 3. Complete the Name and Address Verification by clicking “Next”, and you will get the opportunity to download a binary file, called `Xilinx_Vivado_SDK_Web_2018.3_1207_2324_Lin64.bin`.
 4. Now that the file is downloaded, go to your `Downloads` directory, and change the file permissions so it can be executed:
-```bash
-chmod u+x Xilinx_Vivado_SDK_Web_2018.3_1207_2324_Lin64.bin
-```
+
+.. code:: bash
+
+   chmod u+x Xilinx_Vivado_SDK_Web_2018.3_1207_2324_Lin64.bin
+
 5. Now you can execute the binary:
-```bash
-./Xilinx_Vivado_SDK_Web_2018.3_1207_2324_Lin64.bin
-```
 
-#### Xilinx Vivado GUI Installer Steps
+.. code:: bash
+
+   ./Xilinx_Vivado_SDK_Web_2018.3_1207_2324_Lin64.bin
+
+Xilinx Vivado GUI Installer Steps
+"""""""""""""""""""""""""""""""""
 
 At this point you've launched the Vivado 2018.3 Installer GUI program.
 
@@ -311,48 +350,60 @@ At this point you've launched the Vivado 2018.3 Installer GUI program.
 11. A pop-up window will inform you that the installation completed successfully. Click "OK".
 12. Finally the *Vivado License Manager* will launch. Select "Get Free ISE WebPACK, ISE/Vivado IP or PetaLinux License" and click "Connect Now" to complete the license registration process.
 
-#### Environment Setup
+Environment Setup
+"""""""""""""""""
 
 The last step is to update your `~/.bashrc` with the following lines. This will include all of the Xilinx binary paths so you can launch compilation scripts from the command line.
-```bash
-# Xilinx Vivado 2018.3 environment
-export XILINX_VIVADO=${XILINX_PATH}/Vivado/2018.3
-export PATH=${XILINX_VIVADO}/bin:${PATH}
-```
 
-### Intel Toolchain Installation
+.. code:: bash
+
+   # Xilinx Vivado 2018.3 environment
+   export XILINX_VIVADO=${XILINX_PATH}/Vivado/2018.3
+   export PATH=${XILINX_VIVADO}/bin:${PATH}
+
+Intel Toolchain Installation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 It is recommended to use `Intel Quartus Prime 18.1`, since the test scripts contained in this document have been tested on this version.
 
-You would need to install Intel's FPGA compilation toolchain, [Quartus Prime Lite](http://fpgasoftware.intel.com/?edition=lite), which is a license-free version of the Intel Quartus Prime software.
+You would need to install Intel's FPGA compilation toolchain, `Quartus Prime Lite <http://fpgasoftware.intel.com/?edition=lite>`_, which is a license-free version of the Intel Quartus Prime software.
 
-#### Obtaining and Launching the Quartus GUI Installer
+Obtaining and Launching the Quartus GUI Installer
+"""""""""""""""""""""""""""""""""""""""""""""""""
 
-1. Go to the [download center](http://fpgasoftware.intel.com/?edition=lite), and download the linux version of `Quartus Prime (include Nios II EDS)` and `Cyclone V device support` files in the `Separate file` tab. This avoid downloading unused device support files.
+1. Go to the `download center <http://fpgasoftware.intel.com/?edition=lite>`_, and download the linux version of `Quartus Prime (include Nios II EDS)` and `Cyclone V device support` files in the `Separate file` tab. This avoid downloading unused device support files.
 2. Sign in the form if you have an account, or register on the right side of the web page to create an account.
 3. After signed in, you are able to download the installer and the device support files.
 4. Now that the files are downloaded, go to your `Downloads` directory, and change the file permissions:
-```bash
-chmod u+x QuartusLiteSetup-18.1.0.625-linux.run
-```
+
+.. code:: bash
+
+   chmod u+x QuartusLiteSetup-18.1.0.625-linux.run
+
 5. Now ensure both the installer and device support files are in the same directory, and you can run the install with:
-```bash
-./QuartusLiteSetup-18.1.0.625-linux.run
-```
+
+.. code:: bash
+
+   ./QuartusLiteSetup-18.1.0.625-linux.run
+
 6. Follow the instructions on the pop-up GUI form, and install all the content in the `/usr/local` directory. After installation, `/usr/local/intelFPGA_lite/18.1` would be created and the Quartus program along with other programs would be available in the folder.
 
-#### Environment Setup
+Environment Setup
+"""""""""""""""""
 
 Similar to what should be done for Xilinx toolchain, the following line should be added to your `~/.bashrc`.
-```bash
-# Intel Quartus 18.1 environment
-export QUARTUS_ROOTDIR="/usr/local/intelFPGA_lite/18.1/quartus"
-export PATH=${QUARTUS_ROOTDIR}/bin:${PATH}
-export PATH=${QUARTUS_ROOTDIR}/sopc_builder/bin:${PATH}
-```
+
+.. code:: bash
+
+   # Intel Quartus 18.1 environment
+   export QUARTUS_ROOTDIR="/usr/local/intelFPGA_lite/18.1/quartus"
+   export PATH=${QUARTUS_ROOTDIR}/bin:${PATH}
+   export PATH=${QUARTUS_ROOTDIR}/sopc_builder/bin:${PATH}
+
 This would add quartus binary path into your `PATH` environment variable, so you can launch compilation scripts from the command line.
 
-### HLS-based Custom VTA Bitstream Compilation for PYNQ
+HLS-based Custom VTA Bitstream Compilation for PYNQ
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 High-level hardware parameters are listed in the VTA configuration file and can be customized by the user.
 For this custom VTA bitstream compilation exercise, we'll change the frequency of our design, so it can be clocked a little faster.
@@ -362,58 +413,67 @@ For this custom VTA bitstream compilation exercise, we'll change the frequency o
 Bitstream generation is driven by a top-level `Makefile` under `<tvm root>/3rdparty/vta-hw/hardware/xilinx/`.
 
 If you just want to simulate the VTA design in software emulation to make sure that it is functional, enter:
-```bash
-cd <tvm root>/3rdparty/vta-hw/hardware/xilinx
-make ip MODE=sim
-```
+
+.. code:: bash
+
+   cd <tvm root>/3rdparty/vta-hw/hardware/xilinx
+   make ip MODE=sim
+
 
 If you just want to generate the HLS-based VTA IP cores without launching the entire design place and route, enter:
-```bash
-make ip
-```
+
+.. code:: bash
+
+   make ip
+
 You'll be able to view the HLS synthesis reports under `<tvm root>/3rdparty/vta-hw/build/hardware/xilinx/hls/` `<configuration>/<block>/solution0/syn/report/<block>_csynth.rpt`
 > Note: The `<configuration>` name is a string that summarizes the VTA configuration parameters listed in the `vta_config.json`. The `<block>` name refers to the specific module (or HLS function) that compose the high-level VTA pipeline.
 
 Finally to run the full hardware compilation and generate the VTA bitstream, run:
 
-```bash
-make
-```
+.. code:: bash
+
+   make
 
 This process is lengthy, and can take around up to an hour to complete depending on your machine's specs.
 We recommend setting the `VTA_HW_COMP_THREADS` variable in the Makefile to take full advantage of all the cores on your development machine.
 
 Once the compilation completes, the generated bitstream can be found under `<tvm root>/3rdparty/vta-hw/build/hardware/xilinx/vivado/<configuration>/export/vta.bit`.
 
-### Chisel-based Custom VTA Bitstream Compilation for DE10-Nano
+Chisel-based Custom VTA Bitstream Compilation for DE10-Nano
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-Similar to the HLS-based design, high-level hardware parameters in Chisel-based design are listed in the VTA configuration file [Configs.scala](https://github.com/apache/incubator-tvm/blob/master/3rdparty/vta-hw/hardware/chisel/src/main/scala/core/Configs.scala), and they can be customized by the user.
+Similar to the HLS-based design, high-level hardware parameters in Chisel-based design are listed in the VTA configuration file `Configs.scala <https://github.com/apache/incubator-tvm/blob/master/3rdparty/vta-hw/hardware/chisel/src/main/scala/core/Configs.scala>`_, and they can be customized by the user.
 
 For Intel FPGA, bitstream generation is driven by a top-level `Makefile` under `<tvm root>/3rdparty/vta-hw/hardware/intel`.
 
 If you just want to generate the Chisel-based VTA IP core for the DE10-Nano board without compiling the design for the FPGA hardware, enter:
-```bash
-cd <tvm root>/3rdparty/vta-hw/hardware/intel
-make ip
-```
+
+.. code:: bash
+
+   cd <tvm root>/3rdparty/vta-hw/hardware/intel
+   make ip
+
 Then you'll be able to locate the generated verilog file at `<tvm root>/3rdparty/vta-hw/build/hardware/intel/chisel/<configuration>/VTA.DefaultDe10Config.v`.
 
 If you would like to run the full hardware compilation for the `de10nano` board:
-```bash
-make
-```
+
+.. code:: bash
+
+   make
 
 This process might be a bit lengthy, and might take up to half an hour to complete depending on the performance of your PC. The Quartus Prime software would automatically detect the number of cores available on your PC and try to utilize all of them to perform such process.
 
 Once the compilation completes, the generated bistream can be found under `<tvm root>/3rdparty/vta-hw/build/hardware/intel/quartus/<configuration>/export/vta.rbf`. You can also open the Quartus project file (.qpf) available at `<tvm root>/3rdparty/vta-hw/build/hardware/intel/quartus/<configuration>/de10_nano_top.qpf` to look around the generated reports.
 
-### Use the Custom Bitstream
+Use the Custom Bitstream
+^^^^^^^^^^^^^^^^^^^^^^^^
 
 We can program the new VTA FPGA bitstream by setting the bitstream path of the `vta.program_fpga()` function in the tutorial examples, or in the `test_program_rpc.py` script.
 
-```python
-vta.program_fpga(remote, bitstream="<tvm root>/3rdparty/vta-hw/build/hardware/xilinx/vivado/<configuration>/export/vta.bit")
-```
+.. code:: python
+
+   vta.program_fpga(remote, bitstream="<tvm root>/3rdparty/vta-hw/build/hardware/xilinx/vivado/<configuration>/export/vta.bit")
 
 Instead of downloading a pre-built bitstream from the VTA bitstream repository, TVM will instead use the new bitstream you just generated, which is a VTA design clocked at a higher frequency.
 Do you observe a noticeable performance increase on the ImageNet classification example?
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 6fe438a..1620675 100644
--- a/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:04.202** total execution time for **vta_tutorials_autotvm** files:
+**00:03.386** total execution time for **vta_tutorials_autotvm** files:
 
-- **00:04.202**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:03.386**: :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 3ccb0c8..33456d3 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, 42 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 83 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 125 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 166 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 208 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 249 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 290 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 330 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 372 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 412 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 453 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 493 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 533 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 573 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 613 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 653 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 694 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 733 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 773 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 812 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 852 KB/s, 0 seconds passed
 
    ...23%, 0.17 MB, 890 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 931 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 970 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 1011 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 1046 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 1086 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 1125 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 1165 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 1202 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 1241 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 1281 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 1320 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 1356 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 1395 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 1434 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 1473 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 1507 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 1546 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 1585 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 1624 KB/s, 0 seconds passed
    ...45%, 0.33 MB
 , 1656 KB/s, 0 seconds passed
    ...46%, 0.34 MB, 1694 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 1731 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 1770 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 1805 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 1843 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 1880 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 1918 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 1952 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 1990 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 2028 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 2067 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 2102 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 2140 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 2174 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 2212 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 2247 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 2285 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 2322 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 2360 KB/s, 0 seconds passed
    ...67%, 0.48 MB, 2394 KB/s, 0 se
 conds passed
    ...68%, 0.49 MB, 2432 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 2467 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 2505 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 2542 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 2579 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 2612 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 2649 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 2681 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 2719 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 2753 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 2790 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 2827 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 2864 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 2898 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 2935 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 2969 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 3006 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 3042 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 3079 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 3115 KB/s, 0 seconds passed
    
 ...90%, 0.65 MB, 3152 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 3181 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 3218 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 3254 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 3291 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 3327 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 3363 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 3393 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 3430 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 3464 KB/s, 0 seconds passed
+
    ...1%, 0.01 MB, 50 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 100 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 150 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 199 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 248 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 297 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 347 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 395 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 444 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 490 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 539 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 587 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 636 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 681 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 730 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 778 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 826 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 870 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 918 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 962 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 1010 KB/s, 0 seconds pass
 ed
    ...23%, 0.17 MB, 1056 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 1104 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 1150 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 1197 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 1240 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 1287 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 1332 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 1379 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 1420 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 1466 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 1511 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 1558 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 1599 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 1645 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 1691 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 1737 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 1776 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 1821 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 1867 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 1912 KB/s, 0 seconds passed
    ...45%, 0.
 33 MB, 1956 KB/s, 0 seconds passed
    ...46%, 0.34 MB, 2002 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 2020 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 2065 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 2105 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 2149 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 2187 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 2232 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 2274 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 2318 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 2352 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 2396 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 2439 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 2483 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 2522 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 2566 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 2603 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 2647 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 2688 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 2731 KB/s, 0 seconds passed
    ...67%, 0.48 MB, 2774 KB/s,
  0 seconds passed
    ...68%, 0.49 MB, 2817 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 2854 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 2897 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 2937 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 2980 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 3022 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 3065 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 3101 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 3144 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 3180 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 3222 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 3264 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 3307 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 3338 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 3381 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 3422 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 3464 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 3506 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 3548 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 3583 KB/s, 0 seconds passed
 
    ...90%, 0.65 MB, 3625 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 3666 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 3708 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 3749 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 3791 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 3829 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 3870 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 3903 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 3944 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 3983 KB/s, 0 seconds passed
     Exception in thread Thread-9:
     Traceback (most recent call last):
       File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
@@ -492,16 +492,16 @@ Finally, we launch tuning jobs and evaluate the end-to-end performance.
         grc.codegen(mod["main"])
       File "/workspace/docs/../python/tvm/relay/backend/graph_runtime_codegen.py", line 88, in codegen
         arr = self._get_param_by_name(key)
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 312, in tvm._ffi._cy3.core.PackedFuncBase.__call__
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 247, in tvm._ffi._cy3.core.FuncCall
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 236, in tvm._ffi._cy3.core.FuncCall3
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 315, in tvm._ffi._cy3.core.PackedFuncBase.__call__
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 250, in tvm._ffi._cy3.core.FuncCall
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 239, in tvm._ffi._cy3.core.FuncCall3
       File "tvm/_ffi/_cython/./base.pxi", line 160, in tvm._ffi._cy3.core.CALL
     tvm._ffi.base.TVMError: Traceback (most recent call last):
-      [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f897ab62ce1]
-      [bt] (3) /workspace/build/libtvm.so(std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::relay::backend::GraphRuntimeCodegenModule::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#5}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)+0x17) [0x7f897 [...]
-      [bt] (2) /workspace/build/libtvm.so(tvm::relay::backend::GraphRuntimeCodegenModule::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#5}::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x58) [0x7f897aa05798]
-      [bt] (1) /workspace/build/libtvm.so(tvm::runtime::TVMArgValue::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const+0x13b) [0x7f897a24f4eb]
-      [bt] (0) /workspace/build/libtvm.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x32) [0x7f897a2396a2]
+      [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ff84dca8c61]
+      [bt] (3) /workspace/build/libtvm.so(std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::relay::backend::GraphRuntimeCodegenModule::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#5}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)+0x17) [0x7ff84 [...]
+      [bt] (2) /workspace/build/libtvm.so(tvm::relay::backend::GraphRuntimeCodegenModule::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#5}::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x58) [0x7ff84db3f668]
+      [bt] (1) /workspace/build/libtvm.so(tvm::runtime::TVMArgValue::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const+0x13b) [0x7ff84d33237b]
+      [bt] (0) /workspace/build/libtvm.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x32) [0x7ff84d31a7e2]
       File "/workspace/include/tvm/runtime/packed_func.h", line 507
     TVMError: Check failed: type_code_ == kTVMStr (8 vs. 11) : expected str but get Object
 
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
index f0f5288..6b75f5d 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, 44 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 88 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 132 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 175 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 219 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 262 KB/s, 0 seconds passed
    ...90%, 0.05 MB, 305 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 348 KB/s, 0 seconds passed
-    resnet18_v1 inference graph built in 4.79s!
+
    ...12%, 0.01 MB, 44 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 88 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 131 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 174 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 218 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 260 KB/s, 0 seconds passed
    ...90%, 0.05 MB, 304 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 347 KB/s, 0 seconds passed
+    resnet18_v1 inference graph built in 3.67s!
 
 
 
@@ -347,7 +347,7 @@ and an input test image.
             inp_load_nbytes :          5549568
             wgt_load_nbytes :         12763136
             acc_load_nbytes :            30720
-            uop_load_nbytes :             1540
+            uop_load_nbytes :            22832
             out_store_nbytes:          1680896
             gemm_counter    :          6623232
             alu_counter     :           572320
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
index 61e9bc4..9d2f9b2 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 6.09s!
+    yolov3-tiny inference graph built in 4.72s!
 
 
 
@@ -422,7 +422,7 @@ Download test image
             inp_load_nbytes :         25462784
             wgt_load_nbytes :         17558016
             acc_load_nbytes :            96128
-            uop_load_nbytes :              286
+            uop_load_nbytes :             5120
             out_store_nbytes:          3396224
             gemm_counter    :         10578048
             alu_counter     :          1061320
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 0721920..e178511 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:58.106** total execution time for **vta_tutorials_frontend** files:
+**00:49.003** total execution time for **vta_tutorials_frontend** files:
 
-- **00:34.005**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
-- **00:24.101**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
+- **00:29.319**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
+- **00:19.684**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
diff --git a/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
index bdd8817..4849591 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:03.308** total execution time for **vta_tutorials_optimize** files:
+**00:02.910** total execution time for **vta_tutorials_optimize** files:
 
-- **00:02.917**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
-- **00:00.391**: :ref:`sphx_glr_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
+- **00:02.543**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.367**: :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 221431e..ca5cb48 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.705** total execution time for **vta_tutorials** files:
+**00:00.674** total execution time for **vta_tutorials** files:
 
-- **00:00.358**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
-- **00:00.347**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.340**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.333**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js
index 47f9ec8..634215f 100644
--- a/docs/_static/documentation_options.js
+++ b/docs/_static/documentation_options.js
@@ -5,6 +5,7 @@ var DOCUMENTATION_OPTIONS = {
     COLLAPSE_INDEX: false,
     BUILDER: 'html',
     FILE_SUFFIX: '.html',
+    LINK_SUFFIX: '.html',
     HAS_SOURCE: true,
     SOURCELINK_SUFFIX: '.txt',
     NAVIGATION_WITH_KEYS: false
diff --git a/docs/_static/searchtools.js b/docs/_static/searchtools.js
index edef8ac..ab56499 100644
--- a/docs/_static/searchtools.js
+++ b/docs/_static/searchtools.js
@@ -63,6 +63,11 @@ var Search = {
       htmlElement.innerHTML = htmlString;
       $(htmlElement).find('.headerlink').remove();
       docContent = $(htmlElement).find('[role=main]')[0];
+      if(docContent === undefined) {
+          console.warn("Content block not found. Sphinx search tries to obtain it " +
+                       "via '[role=main]'. Could you check your theme or template.");
+          return "";
+      }
       return docContent.textContent || docContent.innerText;
   },
 
@@ -245,6 +250,8 @@ var Search = {
       if (results.length) {
         var item = results.pop();
         var listItem = $('<li style="display:none"></li>');
+        var requestUrl = "";
+        var linkUrl = "";
         if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
           // dirhtml builder
           var dirname = item[0] + '/';
@@ -253,15 +260,17 @@ var Search = {
           } else if (dirname == 'index/') {
             dirname = '';
           }
-          listItem.append($('<a/>').attr('href',
-            DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
-            highlightstring + item[2]).html(item[1]));
+          requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname;
+          linkUrl = requestUrl;
+
         } else {
           // normal html builders
-          listItem.append($('<a/>').attr('href',
-            item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
-            highlightstring + item[2]).html(item[1]));
+          requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX;
+          linkUrl = item[0] + DOCUMENTATION_OPTIONS.LINK_SUFFIX;
         }
+        listItem.append($('<a/>').attr('href',
+            linkUrl +
+            highlightstring + item[2]).html(item[1]));
         if (item[3]) {
           listItem.append($('<span> (' + item[3] + ')</span>'));
           Search.output.append(listItem);
@@ -269,7 +278,7 @@ var Search = {
             displayNextItem();
           });
         } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
-          $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX,
+          $.ajax({url: requestUrl,
                   dataType: "text",
                   complete: function(jqxhr, textstatus) {
                     var data = jqxhr.responseText;
diff --git a/docs/api/python/autotvm.html b/docs/api/python/autotvm.html
index c5c7ed3..9e5738f 100644
--- a/docs/api/python/autotvm.html
+++ b/docs/api/python/autotvm.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="driver.html">tvm.driver</a></li>
@@ -238,7 +239,7 @@ Each row of this file is an encoded record pair. Otherwise, it is an iterator.</
 <div class="section" id="module-tvm.autotvm.measure.measure">
 <span id="tvm-autotvm-measure"></span><h2>tvm.autotvm.measure<a class="headerlink" href="#module-tvm.autotvm.measure.measure" title="Permalink to this headline">¶</a></h2>
 <p>User facing API for specifying how to measure the generated code</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.measure.MeasureInput">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.measure.</code><code class="sig-name descname">MeasureInput</code><a class="headerlink" href="#tvm.autotvm.measure.MeasureInput" title="Permalink to this definition">¶</a></dt>
 <dd><p>Stores all the necessary inputs for a measurement.</p>
@@ -253,7 +254,7 @@ Each row of this file is an encoded record pair. Otherwise, it is an iterator.</
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.measure.MeasureResult">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.measure.</code><code class="sig-name descname">MeasureResult</code><a class="headerlink" href="#tvm.autotvm.measure.MeasureResult" title="Permalink to this definition">¶</a></dt>
 <dd><p>Stores all the results of a measurement</p>
@@ -270,9 +271,9 @@ If an error occurs during measurement, it is an array of the exception objection
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.measure.measure_option">
-<code class="sig-prename descclassname">tvm.autotvm.measure.</code><code class="sig-name descname">measure_option</code><span class="sig-paren">(</span><em class="sig-param">builder</em>, <em class="sig-param">runner</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.measure.measure_option" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.measure.</code><code class="sig-name descname">measure_option</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">builder</span></em>, <em class="sig-param"><span class="n">runner</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.measure.measure_option" title="Permalink to this definition">¶</a></dt>
 <dd><p>Set options for measure. To measure a config, we will build it and run it.
 So we have to set options for these two steps.
 They have their own options on timeout, parallel, etc.</p>
@@ -310,9 +311,9 @@ The typical value for NVIDIA GPU is 150 ms.</p>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.measure.create_measure_batch">
-<code class="sig-prename descclassname">tvm.autotvm.measure.</code><code class="sig-name descname">create_measure_batch</code><span class="sig-paren">(</span><em class="sig-param">task</em>, <em class="sig-param">option</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.measure.create_measure_batch" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.measure.</code><code class="sig-name descname">create_measure_batch</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task</span></em>, <em class="sig-param"><span class="n">option</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.measure.create_measure_batch" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get a standard measure_batch function.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -331,9 +332,9 @@ You should use the return value of function <a class="reference internal" href="
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.measure.measure_methods.LocalBuilder">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.measure.measure_methods.</code><code class="sig-name descname">LocalBuilder</code><span class="sig-paren">(</span><em class="sig-param">timeout=10</em>, <em class="sig-param">n_parallel=None</em>, <em class="sig-param">build_func='default'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.measure.measure_methods.LocalBuilder" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.measure.measure_methods.</code><code class="sig-name descname">LocalBuilder</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">timeout</span><span class="o">=</span><span class="default_value">10</span></em>, <em class="sig-param"><span class="n">n_parallel</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">build_func< [...]
 <dd><p>Run compilation on local machine</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -348,9 +349,9 @@ If is callable, use it as custom build function, expect lib_format field.</p></l
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.measure.measure_methods.RPCRunner">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.measure.measure_methods.</code><code class="sig-name descname">RPCRunner</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">host</em>, <em class="sig-param">port</em>, <em class="sig-param">priority=1</em>, <em class="sig-param">timeout=10</em>, <em class="sig-param">n_parallel=None</em>, <em class="sig-param">number=4</em>, <em class="sig-param">repeat=3</em>, <em [...]
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.measure.measure_methods.</code><code class="sig-name descname">RPCRunner</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">host</span></em>, <em class="sig-param"><span class="n">port</span></em>, <em class="sig-param"><span class="n">priority</span><span class="o">=</span><span class="default_value">1</span></em>, <em class= [...]
 <dd><p>Run generated code on remove devices.
 This function will ask a RPC Tracker to get device for measurement.</p>
 <dl class="field-list simple">
@@ -383,9 +384,9 @@ This can work for TOPI templates, but may not work for your custom template.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.measure.measure_methods.LocalRunner">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.measure.measure_methods.</code><code class="sig-name descname">LocalRunner</code><span class="sig-paren">(</span><em class="sig-param">timeout=10</em>, <em class="sig-param">number=4</em>, <em class="sig-param">repeat=3</em>, <em class="sig-param">min_repeat_ms=0</em>, <em class="sig-param">cooldown_interval=0.1</em>, <em class="sig-param">check_correctness=False</em><span class="sig-paren">)</span><a cla [...]
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.measure.measure_methods.</code><code class="sig-name descname">LocalRunner</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">timeout</span><span class="o">=</span><span class="default_value">10</span></em>, <em class="sig-param"><span class="n">number</span><span class="o">=</span><span class="default_value">4</span></em>, <em class="sig-param"><span class="n">repeat</span><span  [...]
 <dd><p>Run generated code on local devices.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -425,16 +426,16 @@ for the user. In this way we reuse timeout/isolation mechanism in RPC infrastruc
 in the <a class="reference internal" href="#tvm.autotvm.task.space.ConfigSpace" title="tvm.autotvm.task.space.ConfigSpace"><code class="xref any py py-class docutils literal notranslate"><span class="pre">ConfigSpace</span></code></a> and measure them on the real hardware. Then it
 proposed the next batch of <a class="reference internal" href="#tvm.autotvm.task.space.ConfigEntity" title="tvm.autotvm.task.space.ConfigEntity"><code class="xref any py py-class docutils literal notranslate"><span class="pre">ConfigEntity</span></code></a> according to the measure results.
 This tuning loop is repeated.</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.tuner.Tuner">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">Tuner</code><span class="sig-paren">(</span><em class="sig-param">task</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">Tuner</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base class for tuners</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><p><strong>task</strong> (<em>autotvm.task.Task</em>) – Tuning Task</p>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.Tuner.has_next">
 <code class="sig-name descname">has_next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner.has_next" title="Permalink to this definition">¶</a></dt>
 <dd><p>Whether has next untried config in the space</p>
@@ -448,9 +449,9 @@ This tuning loop is repeated.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.Tuner.next_batch">
-<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param">batch_size</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner.next_batch" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">batch_size</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner.next_batch" title="Permalink to this definition">¶</a></dt>
 <dd><p>get the next batch of configs to be measure on real hardware</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -465,9 +466,9 @@ This tuning loop is repeated.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.Tuner.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">inputs</em>, <em class="sig-param">results</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">results</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update parameters of the tuner according to measurement results</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -479,9 +480,9 @@ This tuning loop is repeated.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.Tuner.tune">
-<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param">n_trial</em>, <em class="sig-param">measure_option</em>, <em class="sig-param">early_stopping=None</em>, <em class="sig-param">callbacks=()</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner.tune" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">n_trial</span></em>, <em class="sig-param"><span class="n">measure_option</span></em>, <em class="sig-param"><span class="n">early_stopping</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">callbacks</span><span class="o">=</span><span class="default_value">()</span></em>, <em class="sig-param"><span class="n">si_ [...]
 <dd><p>Begin tuning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -494,20 +495,21 @@ You should use the return value ot autotvm.measure_option for this argument.</p>
 (Tuner, List of MeasureInput, List of MeasureResult)
 with no return value. These callback functions will be called on
 every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li>
+<li><p><strong>si_prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><em>str</em></a>) – One of tvm.autotvm.util.SI_PREFIXES. The SI prefix to use when reporting FLOPS.</p></li>
 </ul>
 </dd>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.Tuner.reset">
 <code class="sig-name descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner.reset" title="Permalink to this definition">¶</a></dt>
 <dd><p>reset the status of tuner</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.Tuner.load_history">
-<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param">data_set</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner.load_history" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data_set</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.Tuner.load_history" title="Permalink to this definition">¶</a></dt>
 <dd><p>load history data for transfer learning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -518,9 +520,9 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.tuner.RandomTuner">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">RandomTuner</code><span class="sig-paren">(</span><em class="sig-param">task</em>, <em class="sig-param">range_idx=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">RandomTuner</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task</span></em>, <em class="sig-param"><span class="n">range_idx</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner" title="Permalink to this definition">¶</a></dt>
 <dd><p>Enumerate the search space in a random order</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -530,7 +532,7 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </ul>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.RandomTuner.has_next">
 <code class="sig-name descname">has_next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner.has_next" title="Permalink to this definition">¶</a></dt>
 <dd><p>Whether has next untried config in the space</p>
@@ -544,9 +546,9 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.RandomTuner.load_history">
-<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param">data_set</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner.load_history" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data_set</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner.load_history" title="Permalink to this definition">¶</a></dt>
 <dd><p>load history data for transfer learning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -555,15 +557,15 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.RandomTuner.reset">
 <code class="sig-name descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner.reset" title="Permalink to this definition">¶</a></dt>
 <dd><p>reset the status of tuner</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.RandomTuner.tune">
-<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param">n_trial</em>, <em class="sig-param">measure_option</em>, <em class="sig-param">early_stopping=None</em>, <em class="sig-param">callbacks=()</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner.tune" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">n_trial</span></em>, <em class="sig-param"><span class="n">measure_option</span></em>, <em class="sig-param"><span class="n">early_stopping</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">callbacks</span><span class="o">=</span><span class="default_value">()</span></em>, <em class="sig-param"><span class="n">si_ [...]
 <dd><p>Begin tuning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -576,14 +578,15 @@ You should use the return value ot autotvm.measure_option for this argument.</p>
 (Tuner, List of MeasureInput, List of MeasureResult)
 with no return value. These callback functions will be called on
 every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li>
+<li><p><strong>si_prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><em>str</em></a>) – One of tvm.autotvm.util.SI_PREFIXES. The SI prefix to use when reporting FLOPS.</p></li>
 </ul>
 </dd>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.RandomTuner.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">inputs</em>, <em class="sig-param">results</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">results</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update parameters of the tuner according to measurement results</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -595,9 +598,9 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.RandomTuner.next_batch">
-<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param">batch_size</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner.next_batch" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">batch_size</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.RandomTuner.next_batch" title="Permalink to this definition">¶</a></dt>
 <dd><p>get the next batch of configs to be measure on real hardware</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -614,13 +617,13 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.tuner.GridSearchTuner">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">GridSearchTuner</code><span class="sig-paren">(</span><em class="sig-param">task</em>, <em class="sig-param">range_idx=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">GridSearchTuner</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task</span></em>, <em class="sig-param"><span class="n">range_idx</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner" title="Permalink to this definition [...]
 <dd><p>Enumerate the search space in a grid search order</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GridSearchTuner.next_batch">
-<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param">batch_size</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner.next_batch" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">batch_size</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner.next_batch" title="Permalink to this definition">¶</a></dt>
 <dd><p>get the next batch of configs to be measure on real hardware</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -635,7 +638,7 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GridSearchTuner.has_next">
 <code class="sig-name descname">has_next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner.has_next" title="Permalink to this definition">¶</a></dt>
 <dd><p>Whether has next untried config in the space</p>
@@ -649,9 +652,9 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GridSearchTuner.load_history">
-<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param">data_set</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner.load_history" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data_set</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner.load_history" title="Permalink to this definition">¶</a></dt>
 <dd><p>load history data for transfer learning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -660,15 +663,15 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GridSearchTuner.reset">
 <code class="sig-name descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner.reset" title="Permalink to this definition">¶</a></dt>
 <dd><p>reset the status of tuner</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GridSearchTuner.tune">
-<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param">n_trial</em>, <em class="sig-param">measure_option</em>, <em class="sig-param">early_stopping=None</em>, <em class="sig-param">callbacks=()</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner.tune" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">n_trial</span></em>, <em class="sig-param"><span class="n">measure_option</span></em>, <em class="sig-param"><span class="n">early_stopping</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">callbacks</span><span class="o">=</span><span class="default_value">()</span></em>, <em class="sig-param"><span class="n">si_ [...]
 <dd><p>Begin tuning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -681,14 +684,15 @@ You should use the return value ot autotvm.measure_option for this argument.</p>
 (Tuner, List of MeasureInput, List of MeasureResult)
 with no return value. These callback functions will be called on
 every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li>
+<li><p><strong>si_prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><em>str</em></a>) – One of tvm.autotvm.util.SI_PREFIXES. The SI prefix to use when reporting FLOPS.</p></li>
 </ul>
 </dd>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GridSearchTuner.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">inputs</em>, <em class="sig-param">results</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">results</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GridSearchTuner.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update parameters of the tuner according to measurement results</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -702,9 +706,9 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.tuner.GATuner">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">GATuner</code><span class="sig-paren">(</span><em class="sig-param">task</em>, <em class="sig-param">pop_size=100</em>, <em class="sig-param">elite_num=3</em>, <em class="sig-param">mutation_prob=0.1</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">GATuner</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task</span></em>, <em class="sig-param"><span class="n">pop_size</span><span class="o">=</span><span class="default_value">100</span></em>, <em class="sig-param"><span class="n">elite_num</span><span class="o">=</span><span class="default_value">3</span></em>, <em class="sig-par [...]
 <dd><p>Tuner with genetic algorithm.
 This tuner does not have a cost model so it always run measurement on real machines.
 This tuner expands the <code class="code docutils literal notranslate"><span class="pre">ConfigEntity</span></code> as gene.</p>
@@ -717,9 +721,9 @@ This tuner expands the <code class="code docutils literal notranslate"><span cla
 </ul>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GATuner.next_batch">
-<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param">batch_size</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner.next_batch" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">batch_size</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner.next_batch" title="Permalink to this definition">¶</a></dt>
 <dd><p>get the next batch of configs to be measure on real hardware</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -734,9 +738,9 @@ This tuner expands the <code class="code docutils literal notranslate"><span cla
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GATuner.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">inputs</em>, <em class="sig-param">results</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">results</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update parameters of the tuner according to measurement results</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -748,7 +752,7 @@ This tuner expands the <code class="code docutils literal notranslate"><span cla
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GATuner.has_next">
 <code class="sig-name descname">has_next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner.has_next" title="Permalink to this definition">¶</a></dt>
 <dd><p>Whether has next untried config in the space</p>
@@ -762,15 +766,15 @@ This tuner expands the <code class="code docutils literal notranslate"><span cla
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GATuner.reset">
 <code class="sig-name descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner.reset" title="Permalink to this definition">¶</a></dt>
 <dd><p>reset the status of tuner</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GATuner.tune">
-<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param">n_trial</em>, <em class="sig-param">measure_option</em>, <em class="sig-param">early_stopping=None</em>, <em class="sig-param">callbacks=()</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner.tune" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">n_trial</span></em>, <em class="sig-param"><span class="n">measure_option</span></em>, <em class="sig-param"><span class="n">early_stopping</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">callbacks</span><span class="o">=</span><span class="default_value">()</span></em>, <em class="sig-param"><span class="n">si_ [...]
 <dd><p>Begin tuning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -783,14 +787,15 @@ You should use the return value ot autotvm.measure_option for this argument.</p>
 (Tuner, List of MeasureInput, List of MeasureResult)
 with no return value. These callback functions will be called on
 every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li>
+<li><p><strong>si_prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><em>str</em></a>) – One of tvm.autotvm.util.SI_PREFIXES. The SI prefix to use when reporting FLOPS.</p></li>
 </ul>
 </dd>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.GATuner.load_history">
-<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param">data_set</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner.load_history" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data_set</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.GATuner.load_history" title="Permalink to this definition">¶</a></dt>
 <dd><p>load history data for transfer learning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -801,9 +806,9 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.tuner.XGBTuner">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">XGBTuner</code><span class="sig-paren">(</span><em class="sig-param">task</em>, <em class="sig-param">plan_size=64</em>, <em class="sig-param">feature_type='itervar'</em>, <em class="sig-param">loss_type='rank'</em>, <em class="sig-param">num_threads=None</em>, <em class="sig-param">optimizer='sa'</em>, <em class="sig-param">diversity_filter_ratio=None</em>, <e [...]
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.</code><code class="sig-name descname">XGBTuner</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task</span></em>, <em class="sig-param"><span class="n">plan_size</span><span class="o">=</span><span class="default_value">64</span></em>, <em class="sig-param"><span class="n">feature_type</span><span class="o">=</span><span class="default_value">'itervar'</span></em>, <em cl [...]
 <dd><p>Tuner that uses xgboost as cost model</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -841,9 +846,9 @@ Otherwise, output debug information every <cite>verbose</cite> iterations.</p></
 </ul>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.XGBTuner.tune">
-<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.tune" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">tune</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.tune" title="Permalink to this definition">¶</a></dt>
 <dd><p>Begin tuning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -856,12 +861,13 @@ You should use the return value ot autotvm.measure_option for this argument.</p>
 (Tuner, List of MeasureInput, List of MeasureResult)
 with no return value. These callback functions will be called on
 every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li>
+<li><p><strong>si_prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><em>str</em></a>) – One of tvm.autotvm.util.SI_PREFIXES. The SI prefix to use when reporting FLOPS.</p></li>
 </ul>
 </dd>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.XGBTuner.has_next">
 <code class="sig-name descname">has_next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.has_next" title="Permalink to this definition">¶</a></dt>
 <dd><p>Whether has next untried config in the space</p>
@@ -875,9 +881,9 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.XGBTuner.load_history">
-<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param">data_set</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.load_history" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">load_history</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data_set</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.load_history" title="Permalink to this definition">¶</a></dt>
 <dd><p>load history data for transfer learning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -886,9 +892,9 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.XGBTuner.next_batch">
-<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param">batch_size</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.next_batch" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">next_batch</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">batch_size</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.next_batch" title="Permalink to this definition">¶</a></dt>
 <dd><p>get the next batch of configs to be measure on real hardware</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -903,15 +909,15 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.XGBTuner.reset">
 <code class="sig-name descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.reset" title="Permalink to this definition">¶</a></dt>
 <dd><p>reset the status of tuner</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.XGBTuner.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">inputs</em>, <em class="sig-param">results</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">results</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.XGBTuner.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update parameters of the tuner according to measurement results</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -926,9 +932,9 @@ every measurement pair. See autotvm/tuner/callback.py for some examples.</p></li
 </dd></dl>
 
 <span class="target" id="module-tvm.autotvm.tuner.callback"></span><p>Namespace of callback utilities of AutoTVM</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.tuner.callback.log_to_file">
-<code class="sig-prename descclassname">tvm.autotvm.tuner.callback.</code><code class="sig-name descname">log_to_file</code><span class="sig-paren">(</span><em class="sig-param">file_out</em>, <em class="sig-param">protocol='json'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.callback.log_to_file" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.tuner.callback.</code><code class="sig-name descname">log_to_file</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file_out</span></em>, <em class="sig-param"><span class="n">protocol</span><span class="o">=</span><span class="default_value">'json'</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.callback.log_to_file" title="Permalink to this definition">¶</a></dt>
 <dd><p>Log the tuning records into file.
 The rows of the log are stored in the format of autotvm.record.encode.</p>
 <dl class="field-list simple">
@@ -947,9 +953,9 @@ The rows of the log are stored in the format of autotvm.record.encode.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.tuner.callback.log_to_database">
-<code class="sig-prename descclassname">tvm.autotvm.tuner.callback.</code><code class="sig-name descname">log_to_database</code><span class="sig-paren">(</span><em class="sig-param">db</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.callback.log_to_database" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.tuner.callback.</code><code class="sig-name descname">log_to_database</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">db</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.callback.log_to_database" title="Permalink to this definition">¶</a></dt>
 <dd><p>Save the tuning records to a database object.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -958,17 +964,17 @@ The rows of the log are stored in the format of autotvm.record.encode.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.tuner.callback.Monitor">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.tuner.callback.</code><code class="sig-name descname">Monitor</code><a class="headerlink" href="#tvm.autotvm.tuner.callback.Monitor" title="Permalink to this definition">¶</a></dt>
 <dd><p>A monitor to collect statistic during tuning</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.callback.Monitor.trial_scores">
 <code class="sig-name descname">trial_scores</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.callback.Monitor.trial_scores" title="Permalink to this definition">¶</a></dt>
 <dd><p>get scores (currently is flops) of all trials</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.tuner.callback.Monitor.trial_timestamps">
 <code class="sig-name descname">trial_timestamps</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.callback.Monitor.trial_timestamps" title="Permalink to this definition">¶</a></dt>
 <dd><p>get wall clock time stamp of all trials</p>
@@ -976,15 +982,16 @@ The rows of the log are stored in the format of autotvm.record.encode.</p>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.tuner.callback.progress_bar">
-<code class="sig-prename descclassname">tvm.autotvm.tuner.callback.</code><code class="sig-name descname">progress_bar</code><span class="sig-paren">(</span><em class="sig-param">total</em>, <em class="sig-param">prefix=''</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.tuner.callback.progress_bar" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.tuner.callback.</code><code class="sig-name descname">progress_bar</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">total</span></em>, <em class="sig-param"><span class="n">prefix</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">si_prefix</span><span class="o">=</span><span class="default_value">'G'</span></em><span class="sig-paren">)</span><a cla [...]
 <dd><p>Display progress bar for tuning</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>total</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.8)"><em>int</em></a>) – The total number of trials</p></li>
 <li><p><strong>prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><em>str</em></a>) – The prefix of output message</p></li>
+<li><p><strong>si_prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><em>str</em></a>) – SI prefix for flops</p></li>
 </ul>
 </dd>
 </dl>
@@ -1002,9 +1009,9 @@ of typical tasks of interest.</p>
 <p>Task can be constructed from tuple of func, args, and kwargs.
 func is a state-less function, or a string that
 registers the standard task.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.task.serialize_args">
-<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">serialize_args</code><span class="sig-paren">(</span><em class="sig-param">args</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.serialize_args" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">serialize_args</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">args</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.serialize_args" title="Permalink to this definition">¶</a></dt>
 <dd><p>serialize arguments of a topi function to a hashable tuple.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1013,9 +1020,9 @@ registers the standard task.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.task.deserialize_args">
-<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">deserialize_args</code><span class="sig-paren">(</span><em class="sig-param">args</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.deserialize_args" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">deserialize_args</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">args</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.deserialize_args" title="Permalink to this definition">¶</a></dt>
 <dd><p>The inverse function of <code class="code docutils literal notranslate"><span class="pre">serialize_args</span></code>.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1024,9 +1031,9 @@ registers the standard task.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.task.args_to_workload">
-<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">args_to_workload</code><span class="sig-paren">(</span><em class="sig-param">args</em>, <em class="sig-param">task_name=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.args_to_workload" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">args_to_workload</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">args</span></em>, <em class="sig-param"><span class="n">task_name</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.args_to_workload" title="Permalink to this definition">¶</a></dt>
 <dd><p>Convert argument list to hashable workload tuple.
 This function will convert list to tuple, tvm node to python value and
 flatten te.tensor.Tensor to a tuple</p>
@@ -1046,9 +1053,9 @@ flatten te.tensor.Tensor to a tuple</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.task.Task">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">Task</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">args</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.Task" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">Task</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">args</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.Task" title="Permalink to this definition">¶</a></dt>
 <dd><p>A Tunable Task</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1058,9 +1065,9 @@ flatten te.tensor.Tensor to a tuple</p>
 </ul>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.task.Task.instantiate">
-<code class="sig-name descname">instantiate</code><span class="sig-paren">(</span><em class="sig-param">config</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.Task.instantiate" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">instantiate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">config</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.Task.instantiate" title="Permalink to this definition">¶</a></dt>
 <dd><p>Instantiate this task function (template) with a config.
 Returns corresponding schedule.</p>
 <dl class="field-list simple">
@@ -1079,7 +1086,7 @@ Returns corresponding schedule.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.task.TaskTemplate">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">TaskTemplate</code><a class="headerlink" href="#tvm.autotvm.task.task.TaskTemplate" title="Permalink to this definition">¶</a></dt>
 <dd><p>Task template is used to creates a tunable AutoTVM task.</p>
@@ -1091,9 +1098,9 @@ or by a customized task creation function that is more flexible using
 will be ignored</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.task.template">
-<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">template</code><span class="sig-paren">(</span><em class="sig-param">task_name</em>, <em class="sig-param">func=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.template" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">template</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task_name</span></em>, <em class="sig-param"><span class="n">func</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.template" title="Permalink to this definition">¶</a></dt>
 <dd><p>Decorate a function as a tunable schedule template.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1143,9 +1150,9 @@ If is callable, decorate this function.</p></li>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.task.create">
-<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param">task_name</em>, <em class="sig-param">args</em>, <em class="sig-param">target</em>, <em class="sig-param">target_host=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.create" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task_name</span></em>, <em class="sig-param"><span class="n">args</span></em>, <em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="n">target_host</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="heade [...]
 <dd><p>Create a tuning task and initialize its search space</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1165,7 +1172,7 @@ If is callable, decorate this function.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.task.get_config">
 <code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">get_config</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.get_config" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get current config object</p>
@@ -1179,15 +1186,15 @@ If is callable, decorate this function.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="exception">
+<dl class="py exception">
 <dt id="tvm.autotvm.task.task.FlopCalculationError">
 <em class="property">exception </em><code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">FlopCalculationError</code><a class="headerlink" href="#tvm.autotvm.task.task.FlopCalculationError" title="Permalink to this definition">¶</a></dt>
 <dd><p>Error happens when estimating FLOP for a compute op</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.task.compute_flop">
-<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">compute_flop</code><span class="sig-paren">(</span><em class="sig-param">sch</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.compute_flop" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.task.</code><code class="sig-name descname">compute_flop</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sch</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.task.compute_flop" title="Permalink to this definition">¶</a></dt>
 <dd><p>Calculate number of FLOP (floating number operations) of the compute ops in a schedule</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1207,16 +1214,16 @@ If is callable, decorate this function.</p></li>
 The space is declared when we invoke the template function with ConfigSpace.
 During evaluation, we pass in a ConfigEntity, which contains a specific
 entity in the space. This entity contains deterministic parameters.</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.Axis">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">Axis</code><span class="sig-paren">(</span><em class="sig-param">space</em>, <em class="sig-param">index</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.Axis" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="method">
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">Axis</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">space</span></em>, <em class="sig-param"><span class="n">index</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.Axis" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="py method">
 <dt id="tvm.autotvm.task.space.Axis.index">
 <em class="property">property </em><code class="sig-name descname">index</code><a class="headerlink" href="#tvm.autotvm.task.space.Axis.index" title="Permalink to this definition">¶</a></dt>
 <dd><p>Alias for field number 1</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.Axis.space">
 <em class="property">property </em><code class="sig-name descname">space</code><a class="headerlink" href="#tvm.autotvm.task.space.Axis.space" title="Permalink to this definition">¶</a></dt>
 <dd><p>Alias for field number 0</p>
@@ -1224,7 +1231,7 @@ entity in the space. This entity contains deterministic parameters.</p>
 
 </dd></dl>
 
-<dl class="exception">
+<dl class="py exception">
 <dt id="tvm.autotvm.task.space.InstantiationError">
 <em class="property">exception </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">InstantiationError</code><a class="headerlink" href="#tvm.autotvm.task.space.InstantiationError" title="Permalink to this definition">¶</a></dt>
 <dd><p>Actively detected error in instantiating a template with a config,
@@ -1232,7 +1239,7 @@ raised by cfg.raise_error
 e.g. too many unrolling, too many threads in a block</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.TransformSpace">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">TransformSpace</code><a class="headerlink" href="#tvm.autotvm.task.space.TransformSpace" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base class for transform space
@@ -1249,7 +1256,7 @@ Then the tuning process is just to find good parameters of these op.</p>
 <p>Naming convention:
 We call the set of all possible values as XXXSpace. (XXX can be Split, Reorder, Config …)
 We call a specific entity in a space as XXXEntity.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.TransformSpace.get_num_output">
 <em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.TransformSpace.get_num_output" title="Permalink to this definition">¶</a></dt>
 <dd><p>get number of output axes after this transform</p>
@@ -1265,9 +1272,9 @@ We call a specific entity in a space as XXXEntity.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.VirtualAxis">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">VirtualAxis</code><span class="sig-paren">(</span><em class="sig-param">var</em>, <em class="sig-param">name=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.VirtualAxis" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">VirtualAxis</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em>, <em class="sig-param"><span class="n">name</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.VirtualAxis" title="Permalink to this definition">¶< [...]
 <dd><p>Axis placeholder in template</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1279,9 +1286,9 @@ the IterVar’s extent domain.</p></li>
 </ul>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.VirtualAxis.get_num_output">
-<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param">var</em>, <em class="sig-param">name=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.VirtualAxis.get_num_output" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em>, <em class="sig-param"><span class="n">name</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.VirtualAxis.get_num_output" title="Permalink to this definition">¶</a></dt>
 <dd><p>get number of output axes after this transform</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -1295,9 +1302,9 @@ the IterVar’s extent domain.</p></li>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.space.get_factors">
-<code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">get_factors</code><span class="sig-paren">(</span><em class="sig-param">n</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.get_factors" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">get_factors</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">n</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.get_factors" title="Permalink to this definition">¶</a></dt>
 <dd><p>return all factors of an integer</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1312,9 +1319,9 @@ the IterVar’s extent domain.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.space.get_pow2s">
-<code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">get_pow2s</code><span class="sig-paren">(</span><em class="sig-param">n</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.get_pow2s" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">get_pow2s</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">n</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.get_pow2s" title="Permalink to this definition">¶</a></dt>
 <dd><p>return all power-of-two numbers that are less or equal than the integer</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1329,13 +1336,13 @@ the IterVar’s extent domain.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.SplitSpace">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">SplitSpace</code><span class="sig-paren">(</span><em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.SplitSpace" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">SplitSpace</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.SplitSpace" title="Permalink t [...]
 <dd><p>Split an axis for several times</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.SplitSpace.get_num_output">
-<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.SplitSpace.get_num_output" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.SplitSpace.get_num_output" title="Permalink to this definition">¶</a></dt>
 <dd><p>get number of output axes after this transform</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -1349,9 +1356,9 @@ the IterVar’s extent domain.</p></li>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.SplitEntity">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">SplitEntity</code><span class="sig-paren">(</span><em class="sig-param">size</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.SplitEntity" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">SplitEntity</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">size</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.SplitEntity" title="Permalink to this definition">¶</a></dt>
 <dd><p>A split operation with detailed parameters
 that can apply to an axis</p>
 <dl class="field-list simple">
@@ -1361,9 +1368,9 @@ e.g. an axis of extent 128, we split it into 3 axes, a possible
 size is [4, 4, 8] (4x4x8 = 128).</p>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.SplitEntity.apply">
-<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">sch</em>, <em class="sig-param">op</em>, <em class="sig-param">axis</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.SplitEntity.apply" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sch</span></em>, <em class="sig-param"><span class="n">op</span></em>, <em class="sig-param"><span class="n">axis</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.SplitEntity.apply" title="Permalink to this definition">¶</a></dt>
 <dd><p>Apply split to an axis</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1384,13 +1391,13 @@ size is [4, 4, 8] (4x4x8 = 128).</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.ReorderSpace">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">ReorderSpace</code><span class="sig-paren">(</span><em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ReorderSpace" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">ReorderSpace</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ReorderSpace" title="Permali [...]
 <dd><p>The parameter space for ordering an array of axes</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ReorderSpace.get_num_output">
-<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ReorderSpace.get_num_output" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ReorderSpace.get_num_output" title="Permalink to this definition">¶</a></dt>
 <dd><p>get number of output axes after this transform</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -1404,18 +1411,18 @@ size is [4, 4, 8] (4x4x8 = 128).</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.ReorderEntity">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">ReorderEntity</code><span class="sig-paren">(</span><em class="sig-param">perm</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ReorderEntity" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">ReorderEntity</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">perm</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ReorderEntity" title="Permalink to this definition">¶</a></dt>
 <dd><p>A reorder operation with detailed parameters that can apply to axes</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><p><strong>perm</strong> (<em>Array of int</em>) – define the permutation</p>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ReorderEntity.apply">
-<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">sch</em>, <em class="sig-param">op</em>, <em class="sig-param">axes</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ReorderEntity.apply" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sch</span></em>, <em class="sig-param"><span class="n">op</span></em>, <em class="sig-param"><span class="n">axes</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ReorderEntity.apply" title="Permalink to this definition">¶</a></dt>
 <dd><p>Apply reorder to an array of axes</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1436,13 +1443,13 @@ size is [4, 4, 8] (4x4x8 = 128).</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.AnnotateSpace">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">AnnotateSpace</code><span class="sig-paren">(</span><em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.AnnotateSpace" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">AnnotateSpace</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.AnnotateSpace" title="Perma [...]
 <dd><p>The parameter space for annotating an array of axes</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.AnnotateSpace.get_num_output">
-<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.AnnotateSpace.get_num_output" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.AnnotateSpace.get_num_output" title="Permalink to this definition">¶</a></dt>
 <dd><p>get number of output axes after this transform</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -1456,18 +1463,18 @@ size is [4, 4, 8] (4x4x8 = 128).</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.AnnotateEntity">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">AnnotateEntity</code><span class="sig-paren">(</span><em class="sig-param">anns</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.AnnotateEntity" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">AnnotateEntity</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">anns</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.AnnotateEntity" title="Permalink to this definition">¶</a></dt>
 <dd><p>An annotation operation with detailed parameters that can apply to axes</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><p><strong>anns</strong> (<em>Array of string</em>) – The annotations of axes</p>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.AnnotateEntity.apply">
-<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">sch</em>, <em class="sig-param">op</em>, <em class="sig-param">axes</em>, <em class="sig-param">axis_lens=None</em>, <em class="sig-param">max_unroll=None</em>, <em class="sig-param">vec_size=None</em>, <em class="sig-param">cfg=None</em>, <em class="sig-param">source=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.AnnotateEntity.apply" title="Per [...]
+<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sch</span></em>, <em class="sig-param"><span class="n">op</span></em>, <em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">axis_lens</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">max_unroll</span><span class="o">=</span><span class="default_value">None</span></em>, <e [...]
 <dd><p>Apply annotation to an array of axes</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1493,13 +1500,13 @@ size is [4, 4, 8] (4x4x8 = 128).</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.OtherOptionSpace">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">OtherOptionSpace</code><span class="sig-paren">(</span><em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.OtherOptionSpace" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">OtherOptionSpace</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.OtherOptionSpace" title= [...]
 <dd><p>The parameter space for general option</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.OtherOptionSpace.get_num_output">
-<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.OtherOptionSpace.get_num_output" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">get_num_output</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.OtherOptionSpace.get_num_output" title="Permalink to this definition">¶</a></dt>
 <dd><p>get number of output axes after this transform</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -1513,20 +1520,20 @@ size is [4, 4, 8] (4x4x8 = 128).</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.OtherOptionEntity">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">OtherOptionEntity</code><span class="sig-paren">(</span><em class="sig-param">val</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.OtherOptionEntity" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">OtherOptionEntity</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">val</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.OtherOptionEntity" title="Permalink to this definition">¶</a></dt>
 <dd><p>The parameter entity for general option, with a detailed value</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.ConfigSpace">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">ConfigSpace</code><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace" title="Permalink to this definition">¶</a></dt>
 <dd><p>The configuration space of a schedule. Pass it as config in template to
 collect transformation space and build transform graph of axes</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.axis">
-<em class="property">static </em><code class="sig-name descname">axis</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.axis" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">axis</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.axis" title="Permalink to this definition">¶</a></dt>
 <dd><p>get a virtual axis (axis placeholder)</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1537,9 +1544,9 @@ IterVar’s extent domain.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.reduce_axis">
-<em class="property">static </em><code class="sig-name descname">reduce_axis</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.reduce_axis" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">reduce_axis</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.reduce_axis" title="Permalink to this definition">¶</a></dt>
 <dd><p>get a virtual axis (axis placeholder)</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1550,9 +1557,9 @@ IterVar’s extent domain.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.define_split">
-<code class="sig-name descname">define_split</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">axis</em>, <em class="sig-param">policy='factors'</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.define_split" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">define_split</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">axis</span></em>, <em class="sig-param"><span class="n">policy</span><span class="o">=</span><span class="default_value">'factors'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.Config [...]
 <dd><p>Define a new tunable knob which splits an axis into a list of axes</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1592,9 +1599,9 @@ If is ‘candidate’, try given candidates.</p></li>
 </div>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.define_reorder">
-<code class="sig-name descname">define_reorder</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.define_reorder" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">define_reorder</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.define_reorder" title="Permalink to this definition">¶</a></dt>
 <dd><p>Define a new tunable knob which reorders a list of axes</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1613,9 +1620,9 @@ If is ‘interleave’, interleave chains of spatial axes and chains of reductio
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.define_annotate">
-<code class="sig-name descname">define_annotate</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">axes</em>, <em class="sig-param">policy</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.define_annotate" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">define_annotate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">axes</span></em>, <em class="sig-param"><span class="n">policy</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.define_annotate" title="Permalink to this definition">¶</a></dt>
 <dd><p>Define a new tunable knob which annotates a list of axes</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1634,9 +1641,9 @@ If is ‘locate_cache’, choose n axes to attach shared/local cache.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.define_knob">
-<code class="sig-name descname">define_knob</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">candidate</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.define_knob" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">define_knob</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">candidate</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.define_knob" title="Permalink to this definition">¶</a></dt>
 <dd><p>Define a tunable knob with a list of candidates</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1648,9 +1655,9 @@ If is ‘locate_cache’, choose n axes to attach shared/local cache.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.add_flop">
-<code class="sig-name descname">add_flop</code><span class="sig-paren">(</span><em class="sig-param">flop</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.add_flop" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">add_flop</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">flop</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.add_flop" title="Permalink to this definition">¶</a></dt>
 <dd><p>Add float operation statistics for this tuning task</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1659,9 +1666,9 @@ If is ‘locate_cache’, choose n axes to attach shared/local cache.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.raise_error">
-<code class="sig-name descname">raise_error</code><span class="sig-paren">(</span><em class="sig-param">msg</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.raise_error" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">raise_error</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.raise_error" title="Permalink to this definition">¶</a></dt>
 <dd><p>register error in config
 Using this to actively detect error when scheudling.
 Otherwise these error will occur during runtime, which
@@ -1673,7 +1680,7 @@ will cost more time.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.valid">
 <code class="sig-name descname">valid</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.valid" title="Permalink to this definition">¶</a></dt>
 <dd><p>Check whether the config meets all the constraints</p>
@@ -1692,9 +1699,9 @@ because the ConfigEntity/ConfigSpace collects errors during instantiation</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigSpace.get">
-<code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param">index</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.get" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">index</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigSpace.get" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get a config entity with detailed parameters from this space</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1705,9 +1712,9 @@ because the ConfigEntity/ConfigSpace collects errors during instantiation</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.ConfigEntity">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">ConfigEntity</code><span class="sig-paren">(</span><em class="sig-param">index</em>, <em class="sig-param">code_hash</em>, <em class="sig-param">entity_map</em>, <em class="sig-param">constraints</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigEntity" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">ConfigEntity</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">index</span></em>, <em class="sig-param"><span class="n">code_hash</span></em>, <em class="sig-param"><span class="n">entity_map</span></em>, <em class="sig-param"><span class="n">constraints</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.a [...]
 <dd><p>A configuration with detailed parameters</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1719,7 +1726,7 @@ because the ConfigEntity/ConfigSpace collects errors during instantiation</p>
 </ul>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigEntity.get_flatten_feature">
 <code class="sig-name descname">get_flatten_feature</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigEntity.get_flatten_feature" title="Permalink to this definition">¶</a></dt>
 <dd><p>flatten entities to a numerical one-dimensional feature vector</p>
@@ -1733,7 +1740,7 @@ because the ConfigEntity/ConfigSpace collects errors during instantiation</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigEntity.get_other_option">
 <code class="sig-name descname">get_other_option</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigEntity.get_other_option" title="Permalink to this definition">¶</a></dt>
 <dd><dl class="field-list simple">
@@ -1746,7 +1753,7 @@ because the ConfigEntity/ConfigSpace collects errors during instantiation</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigEntity.to_json_dict">
 <code class="sig-name descname">to_json_dict</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigEntity.to_json_dict" title="Permalink to this definition">¶</a></dt>
 <dd><p>convert to a json serializable dictionary</p>
@@ -1760,9 +1767,9 @@ because the ConfigEntity/ConfigSpace collects errors during instantiation</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.ConfigEntity.from_json_dict">
-<em class="property">static </em><code class="sig-name descname">from_json_dict</code><span class="sig-paren">(</span><em class="sig-param">json_dict</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigEntity.from_json_dict" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">from_json_dict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">json_dict</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.ConfigEntity.from_json_dict" title="Permalink to this definition">¶</a></dt>
 <dd><p>Build a ConfigEntity from json serializable dictionary</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1780,13 +1787,13 @@ of <a class="reference internal" href="#tvm.autotvm.task.space.ConfigEntity.to_j
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.space.FallbackConfigEntity">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.space.</code><code class="sig-name descname">FallbackConfigEntity</code><a class="headerlink" href="#tvm.autotvm.task.space.FallbackConfigEntity" title="Permalink to this definition">¶</a></dt>
 <dd><p>The config entity created to support fallback</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.FallbackConfigEntity.fallback_split">
-<code class="sig-name descname">fallback_split</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">constraints</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.FallbackConfigEntity.fallback_split" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">fallback_split</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">constraints</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.FallbackConfigEntity.fallback_split" title="Permalink to this definition">¶</a></dt>
 <dd><p>Fallback a split knob</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1803,9 +1810,9 @@ Then cfg.fallback_split(‘tile_0’, [-1, 8, 4]) will give you cfg[‘tile_0’
 Then cfg.fallback_split(‘tile_0’, [-1, 8, 4]) will give you cfg[‘tile_0’].size = [7, 7, 1]</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.space.FallbackConfigEntity.fallback_with_reference_log">
-<code class="sig-name descname">fallback_with_reference_log</code><span class="sig-paren">(</span><em class="sig-param">ref_log</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.FallbackConfigEntity.fallback_with_reference_log" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">fallback_with_reference_log</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ref_log</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.space.FallbackConfigEntity.fallback_with_reference_log" title="Permalink to this definition">¶</a></dt>
 <dd><p>A data driven fallback mechanism.
 We use tuned parameters from TopHub as reference data.
 For an unseen shape, we find the most similar tuned one from TopHub and
@@ -1831,15 +1838,15 @@ of the DispatchContext base class.</p>
 <li><p>During search, we can use it to pass the current proposal from tuner.</p></li>
 <li><p>During evaluation, we can use it to set pick the best policy.</p></li>
 </ul>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.dispatcher.DispatchContext">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">DispatchContext</code><a class="headerlink" href="#tvm.autotvm.task.dispatcher.DispatchContext" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base class of dispatch context.</p>
 <p>DispatchContext enables the target and workload
 specific dispatch mechanism for templates.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.dispatcher.DispatchContext.query">
-<code class="sig-name descname">query</code><span class="sig-paren">(</span><em class="sig-param">target</em>, <em class="sig-param">workload</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.DispatchContext.query" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">query</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="n">workload</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.DispatchContext.query" title="Permalink to this definition">¶</a></dt>
 <dd><p>Query the context to get the specific config for a template.
 If cannot find the result inside this context, this function will query it
 from the upper contexts.</p>
@@ -1859,9 +1866,9 @@ from the upper contexts.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.dispatcher.DispatchContext.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">target</em>, <em class="sig-param">workload</em>, <em class="sig-param">cfg</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.DispatchContext.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="n">workload</span></em>, <em class="sig-param"><span class="n">cfg</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.DispatchContext.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update context with a specific config.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1906,26 +1913,26 @@ One can construct a new <cite>ConfigEntity</cite> if this is not the case.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.dispatcher.ApplyConfig">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">ApplyConfig</code><span class="sig-paren">(</span><em class="sig-param">config</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyConfig" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">ApplyConfig</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">config</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyConfig" title="Permalink to this definition">¶</a></dt>
 <dd><p>Apply a deterministic config entity for all queries.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><p><strong>config</strong> (<a class="reference internal" href="#tvm.autotvm.task.space.ConfigSpace" title="tvm.autotvm.task.space.ConfigSpace"><em>ConfigSpace</em></a><em> or </em><a class="reference internal" href="#tvm.autotvm.task.space.ConfigEntity" title="tvm.autotvm.task.space.ConfigEntity"><em>ConfigEntity</em></a>) – The specific configuration we care about.</p>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.dispatcher.ApplyConfig.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">target</em>, <em class="sig-param">workload</em>, <em class="sig-param">cfg</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyConfig.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="n">workload</span></em>, <em class="sig-param"><span class="n">cfg</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyConfig.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Override update</p>
 </dd></dl>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.dispatcher.ApplyHistoryBest">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">ApplyHistoryBest</code><span class="sig-paren">(</span><em class="sig-param">records</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyHistoryBest" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">ApplyHistoryBest</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">records</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyHistoryBest" title="Permalink to this definition">¶</a></dt>
 <dd><p>Apply the history best config</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1934,9 +1941,9 @@ If is str, then it should be the filename of a records log file.
 Each row of this file is an encoded record pair. Otherwise, it is an iterator.</p>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.dispatcher.ApplyHistoryBest.load">
-<code class="sig-name descname">load</code><span class="sig-paren">(</span><em class="sig-param">records</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyHistoryBest.load" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">load</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">records</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyHistoryBest.load" title="Permalink to this definition">¶</a></dt>
 <dd><p>Load records to this dispatch context</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1947,9 +1954,9 @@ Each row of this file is an encoded record pair. Otherwise, it is an iterator.</
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.dispatcher.ApplyHistoryBest.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">target</em>, <em class="sig-param">workload</em>, <em class="sig-param">cfg</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyHistoryBest.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="n">workload</span></em>, <em class="sig-param"><span class="n">cfg</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyHistoryBest.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update context with a specific config.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1994,15 +2001,15 @@ One can construct a new <cite>ConfigEntity</cite> if this is not the case.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.dispatcher.FallbackContext">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">FallbackContext</code><a class="headerlink" href="#tvm.autotvm.task.dispatcher.FallbackContext" title="Permalink to this definition">¶</a></dt>
 <dd><p>A fallback dispatch context.</p>
 <p>Any tunable template can be called under this context.
 This is the root context.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.dispatcher.FallbackContext.clear_cache">
-<code class="sig-name descname">clear_cache</code><span class="sig-paren">(</span><em class="sig-param">target</em>, <em class="sig-param">workload</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.FallbackContext.clear_cache" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">clear_cache</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="n">workload</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.FallbackContext.clear_cache" title="Permalink to this definition">¶</a></dt>
 <dd><p>Clear fallback cache. Pass the same argument as _query_inside to this function
 to clean the cache.</p>
 <dl class="field-list simple">
@@ -2015,9 +2022,9 @@ to clean the cache.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.dispatcher.FallbackContext.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">target</em>, <em class="sig-param">workload</em>, <em class="sig-param">cfg</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.FallbackContext.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="n">workload</span></em>, <em class="sig-param"><span class="n">cfg</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.FallbackContext.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update context with a specific config.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2062,9 +2069,9 @@ One can construct a new <cite>ConfigEntity</cite> if this is not the case.</p>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.dispatcher.clear_fallback_cache">
-<code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">clear_fallback_cache</code><span class="sig-paren">(</span><em class="sig-param">target</em>, <em class="sig-param">workload</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.clear_fallback_cache" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">clear_fallback_cache</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="n">workload</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.clear_fallback_cache" title="Permalink to this definition">¶</a></dt>
 <dd><p>Clear fallback cache. Pass the same argument as _query_inside to this function
 to clean the cache.</p>
 <dl class="field-list simple">
@@ -2081,18 +2088,18 @@ to clean the cache.</p>
 </div>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.dispatcher.ApplyGraphBest">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">ApplyGraphBest</code><span class="sig-paren">(</span><em class="sig-param">records</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyGraphBest" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.dispatcher.</code><code class="sig-name descname">ApplyGraphBest</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">records</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyGraphBest" title="Permalink to this definition">¶</a></dt>
 <dd><p>Load the graph level tuning optimal schedules.</p>
 <p>The input records should be in the ascending order of
 node index for target operator. Usually this can be obtained
 with graph tuner.</p>
 <p>This context maintains an internal counter to indicate the current
 node index.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.dispatcher.ApplyGraphBest.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">target</em>, <em class="sig-param">workload</em>, <em class="sig-param">cfg</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyGraphBest.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="n">workload</span></em>, <em class="sig-param"><span class="n">cfg</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.dispatcher.ApplyGraphBest.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update context with a specific config.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2144,13 +2151,13 @@ Here we directly use all arguments to the TOPI call as “workload”, so make s
 (except tvm.te.Tensor) in you calls are hashable. For tvm.te.Tensor,
 we will serialize it to a hashable tuple.</p>
 <p>See tvm/topi/python/topi/arm_cpu/depthwise_conv2d.py for example usage.</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.autotvm.task.topi_integration.TaskExtractEnv">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.topi_integration.</code><code class="sig-name descname">TaskExtractEnv</code><span class="sig-paren">(</span><em class="sig-param">allow_duplicate=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.TaskExtractEnv" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.autotvm.task.topi_integration.</code><code class="sig-name descname">TaskExtractEnv</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">allow_duplicate</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.TaskExtractEnv" title="Permalink to this definition">¶</a></dt>
 <dd><p>Global environment for extracting tuning tasks from graph</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.topi_integration.TaskExtractEnv.reset">
-<code class="sig-name descname">reset</code><span class="sig-paren">(</span><em class="sig-param">wanted_relay_ops=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.TaskExtractEnv.reset" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">reset</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">wanted_relay_ops</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.TaskExtractEnv.reset" title="Permalink to this definition">¶</a></dt>
 <dd><p>Reset task collections</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2159,9 +2166,9 @@ we will serialize it to a hashable tuple.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.topi_integration.TaskExtractEnv.add_task">
-<code class="sig-name descname">add_task</code><span class="sig-paren">(</span><em class="sig-param">task_name</em>, <em class="sig-param">args</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.TaskExtractEnv.add_task" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">add_task</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task_name</span></em>, <em class="sig-param"><span class="n">args</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.TaskExtractEnv.add_task" title="Permalink to this definition">¶</a></dt>
 <dd><p>Add AutoTVM task</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2173,7 +2180,7 @@ we will serialize it to a hashable tuple.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.topi_integration.TaskExtractEnv.get_tasks">
 <code class="sig-name descname">get_tasks</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.TaskExtractEnv.get_tasks" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get collected tasks</p>
@@ -2187,9 +2194,9 @@ we will serialize it to a hashable tuple.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.autotvm.task.topi_integration.TaskExtractEnv.get">
-<em class="property">static </em><code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param">allow_duplicate=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.TaskExtractEnv.get" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">allow_duplicate</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.TaskExtractEnv.get" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the single instance of TaskExtractEnv</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2208,9 +2215,9 @@ useful for graph tuning.</p>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.topi_integration.register_topi_compute">
-<code class="sig-prename descclassname">tvm.autotvm.task.topi_integration.</code><code class="sig-name descname">register_topi_compute</code><span class="sig-paren">(</span><em class="sig-param">task_name</em>, <em class="sig-param">func=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.register_topi_compute" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.topi_integration.</code><code class="sig-name descname">register_topi_compute</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task_name</span></em>, <em class="sig-param"><span class="n">func</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.register_topi_compute" title="Permalink to thi [...]
 <dd><p>Register a tunable template for a topi compute function.</p>
 <p>The registration will wrap this topi compute to take <cite>cfg</cite> as the first argument,
 followed by the original argument list. It uses all its argument as workload and
@@ -2235,9 +2242,9 @@ If is callable, decorate this function.</p></li>
 <p>See tvm/topi/python/topi/arm_cpu/depthwise_conv2d.py for example usage.</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.topi_integration.register_topi_schedule">
-<code class="sig-prename descclassname">tvm.autotvm.task.topi_integration.</code><code class="sig-name descname">register_topi_schedule</code><span class="sig-paren">(</span><em class="sig-param">task_name</em>, <em class="sig-param">func=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.register_topi_schedule" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.topi_integration.</code><code class="sig-name descname">register_topi_schedule</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task_name</span></em>, <em class="sig-param"><span class="n">func</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.register_topi_schedule" title="Permalink to t [...]
 <dd><p>Register a tunable template for a topi schedule function.</p>
 <p>The registration will wrap this topi schedule to take <cite>cfg</cite> as the first argument,
 followed by the original argument list.</p>
@@ -2263,9 +2270,9 @@ If is callable, decorate this function.</p></li>
 <p>See tvm/topi/python/topi/arm_cpu/depthwise_conv2d.py for example usage.</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.task.topi_integration.get_workload">
-<code class="sig-prename descclassname">tvm.autotvm.task.topi_integration.</code><code class="sig-name descname">get_workload</code><span class="sig-paren">(</span><em class="sig-param">outs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.get_workload" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.task.topi_integration.</code><code class="sig-name descname">get_workload</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">outs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.task.topi_integration.get_workload" title="Permalink to this definition">¶</a></dt>
 <dd><p>Retrieve the workload from outputs</p>
 </dd></dl>
 
@@ -2273,9 +2280,9 @@ If is callable, decorate this function.</p></li>
 <div class="section" id="module-tvm.autotvm.record">
 <span id="tvm-autotvm-record"></span><h2>tvm.autotvm.record<a class="headerlink" href="#module-tvm.autotvm.record" title="Permalink to this headline">¶</a></h2>
 <p>Tuning record and serialization format</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.record.measure_str_key">
-<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">measure_str_key</code><span class="sig-paren">(</span><em class="sig-param">inp</em>, <em class="sig-param">include_config=True</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.measure_str_key" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">measure_str_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inp</span></em>, <em class="sig-param"><span class="n">include_config</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.measure_str_key" title="Permalink to this definition">¶</a></dt>
 <dd><p>get unique str key for MeasureInput</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2293,9 +2300,9 @@ If is callable, decorate this function.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.record.encode">
-<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">encode</code><span class="sig-paren">(</span><em class="sig-param">inp</em>, <em class="sig-param">result</em>, <em class="sig-param">protocol='json'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.encode" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">encode</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inp</span></em>, <em class="sig-param"><span class="n">result</span></em>, <em class="sig-param"><span class="n">protocol</span><span class="o">=</span><span class="default_value">'json'</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.encode" title="Permalink to this  [...]
 <dd><p>encode (MeasureInput, MeasureResult) pair to a string</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2314,9 +2321,9 @@ If is callable, decorate this function.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.record.decode">
-<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">decode</code><span class="sig-paren">(</span><em class="sig-param">row</em>, <em class="sig-param">protocol='json'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.decode" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">decode</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">row</span></em>, <em class="sig-param"><span class="n">protocol</span><span class="o">=</span><span class="default_value">'json'</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.decode" title="Permalink to this definition">¶</a></dt>
 <dd><p>Decode encoded record string to python object</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2334,9 +2341,9 @@ If is callable, decorate this function.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.record.load_from_file">
-<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">load_from_file</code><span class="sig-paren">(</span><em class="sig-param">filename</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.load_from_file" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">load_from_file</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.load_from_file" title="Permalink to this definition">¶</a></dt>
 <dd><p>Generator: load records from file.
 This is a generator that yields the records.</p>
 <dl class="field-list simple">
@@ -2352,9 +2359,9 @@ This is a generator that yields the records.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.record.split_workload">
-<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">split_workload</code><span class="sig-paren">(</span><em class="sig-param">in_file</em>, <em class="sig-param">clean=True</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.split_workload" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">split_workload</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">in_file</span></em>, <em class="sig-param"><span class="n">clean</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.split_workload" title="Permalink to this definition">¶</a></dt>
 <dd><p>Split a log file into separate files, each of which contains only a single workload
 This function can also delete duplicated records in log file</p>
 <dl class="field-list simple">
@@ -2367,9 +2374,9 @@ This function can also delete duplicated records in log file</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.autotvm.record.pick_best">
-<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">pick_best</code><span class="sig-paren">(</span><em class="sig-param">in_file</em>, <em class="sig-param">out_file</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.pick_best" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.autotvm.record.</code><code class="sig-name descname">pick_best</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">in_file</span></em>, <em class="sig-param"><span class="n">out_file</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.autotvm.record.pick_best" title="Permalink to this definition">¶</a></dt>
 <dd><p>Pick best entries from a file and store it to another file.
 This distill the useful log entries from a large log file.
 If out_file already exists, the best entries from both
diff --git a/docs/api/python/contrib.html b/docs/api/python/contrib.html
index d926a3c..b7d195f 100644
--- a/docs/api/python/contrib.html
+++ b/docs/api/python/contrib.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="driver.html">tvm.driver</a></li>
@@ -239,9 +240,9 @@ thirdparty libraries and tools.</p>
 <div class="section" id="module-tvm.contrib.cblas">
 <span id="tvm-contrib-cblas"></span><h2>tvm.contrib.cblas<a class="headerlink" href="#module-tvm.contrib.cblas" title="Permalink to this headline">¶</a></h2>
 <p>External function interface to BLAS libraries.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.cblas.matmul">
-<code class="sig-prename descclassname">tvm.contrib.cblas.</code><code class="sig-name descname">matmul</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em>, <em class="sig-param">transa=False</em>, <em class="sig-param">transb=False</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.cblas.matmul" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.cblas.</code><code class="sig-name descname">matmul</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em>, <em class="sig-param"><span class="n">transa</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">transb</span><span class="o">=</span><span class="default_value">False</span></e [...]
 <dd><p>Create an extern op that compute matrix mult of A and rhs with CrhsLAS
 This function serves as an example on how to call external libraries.</p>
 <dl class="field-list simple">
@@ -262,9 +263,9 @@ This function serves as an example on how to call external libraries.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.cblas.batch_matmul">
-<code class="sig-prename descclassname">tvm.contrib.cblas.</code><code class="sig-name descname">batch_matmul</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em>, <em class="sig-param">transa=False</em>, <em class="sig-param">transb=False</em>, <em class="sig-param">iterative=False</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.cblas.batch_matmul" title="Permalink to this d [...]
+<code class="sig-prename descclassname">tvm.contrib.cblas.</code><code class="sig-name descname">batch_matmul</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em>, <em class="sig-param"><span class="n">transa</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">transb</span><span class="o">=</span><span class="default_value">False</sp [...]
 <dd><p>Create an extern op that compute batched matrix mult of A and rhs with CBLAS
 This function serves as an example on how to call external libraries.</p>
 <dl class="field-list simple">
@@ -289,9 +290,9 @@ This function serves as an example on how to call external libraries.</p>
 <div class="section" id="module-tvm.contrib.clang">
 <span id="tvm-contrib-clang"></span><h2>tvm.contrib.clang<a class="headerlink" href="#module-tvm.contrib.clang" title="Permalink to this headline">¶</a></h2>
 <p>Util to invoke clang in the system.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.clang.find_clang">
-<code class="sig-prename descclassname">tvm.contrib.clang.</code><code class="sig-name descname">find_clang</code><span class="sig-paren">(</span><em class="sig-param">required=True</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.clang.find_clang" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.clang.</code><code class="sig-name descname">find_clang</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">required</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.clang.find_clang" title="Permalink to this definition">¶</a></dt>
 <dd><p>Find clang in system.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -312,9 +313,9 @@ matches the major llvm version that built with tvm</p>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.clang.create_llvm">
-<code class="sig-prename descclassname">tvm.contrib.clang.</code><code class="sig-name descname">create_llvm</code><span class="sig-paren">(</span><em class="sig-param">inputs</em>, <em class="sig-param">output=None</em>, <em class="sig-param">options=None</em>, <em class="sig-param">cc=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.clang.create_llvm" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.clang.</code><code class="sig-name descname">create_llvm</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">output</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">options</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">cc</sp [...]
 <dd><p>Create llvm text ir.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -340,9 +341,9 @@ we will try to guess the matched clang version.</p></li>
 <div class="section" id="module-tvm.contrib.cc">
 <span id="tvm-contrib-cc"></span><h2>tvm.contrib.cc<a class="headerlink" href="#module-tvm.contrib.cc" title="Permalink to this headline">¶</a></h2>
 <p>Util to invoke C/C++ compilers in the system.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.cc.create_shared">
-<code class="sig-prename descclassname">tvm.contrib.cc.</code><code class="sig-name descname">create_shared</code><span class="sig-paren">(</span><em class="sig-param">output</em>, <em class="sig-param">objects</em>, <em class="sig-param">options=None</em>, <em class="sig-param">cc='g++'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.cc.create_shared" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.cc.</code><code class="sig-name descname">create_shared</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">output</span></em>, <em class="sig-param"><span class="n">objects</span></em>, <em class="sig-param"><span class="n">options</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">cc</span><span class="o">=</span><span class="default_value">'g++'</s [...]
 <dd><p>Create shared library.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -356,9 +357,9 @@ we will try to guess the matched clang version.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.cc.get_target_by_dump_machine">
-<code class="sig-prename descclassname">tvm.contrib.cc.</code><code class="sig-name descname">get_target_by_dump_machine</code><span class="sig-paren">(</span><em class="sig-param">compiler</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.cc.get_target_by_dump_machine" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.cc.</code><code class="sig-name descname">get_target_by_dump_machine</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">compiler</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.cc.get_target_by_dump_machine" title="Permalink to this definition">¶</a></dt>
 <dd><p>Functor of get_target_triple that can get the target triple using compiler.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -373,9 +374,9 @@ we will try to guess the matched clang version.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.cc.cross_compiler">
-<code class="sig-prename descclassname">tvm.contrib.cc.</code><code class="sig-name descname">cross_compiler</code><span class="sig-paren">(</span><em class="sig-param">compile_func</em>, <em class="sig-param">options=None</em>, <em class="sig-param">output_format=None</em>, <em class="sig-param">get_target_triple=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.cc.cross_compiler" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.cc.</code><code class="sig-name descname">cross_compiler</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">compile_func</span></em>, <em class="sig-param"><span class="n">options</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">output_format</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span cla [...]
 <dd><p>Create a cross compiler function by specializing compile_func with options.</p>
 <p>This function can be used to construct compile functions that
 can be passed to AutoTVM measure or export_library.</p>
@@ -414,9 +415,9 @@ can be passed to AutoTVM measure or export_library.</p>
 <div class="section" id="module-tvm.contrib.cublas">
 <span id="tvm-contrib-cublas"></span><h2>tvm.contrib.cublas<a class="headerlink" href="#module-tvm.contrib.cublas" title="Permalink to this headline">¶</a></h2>
 <p>External function interface to cuBLAS libraries.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.cublas.matmul">
-<code class="sig-prename descclassname">tvm.contrib.cublas.</code><code class="sig-name descname">matmul</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em>, <em class="sig-param">transa=False</em>, <em class="sig-param">transb=False</em>, <em class="sig-param">dtype=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.cublas.matmul" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.cublas.</code><code class="sig-name descname">matmul</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em>, <em class="sig-param"><span class="n">transa</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">transb</span><span class="o">=</span><span class="default_value">False</span></ [...]
 <dd><p>Create an extern op that compute matrix mult of A and rhs with cuBLAS</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -436,9 +437,9 @@ can be passed to AutoTVM measure or export_library.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.cublas.batch_matmul">
-<code class="sig-prename descclassname">tvm.contrib.cublas.</code><code class="sig-name descname">batch_matmul</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em>, <em class="sig-param">transa=False</em>, <em class="sig-param">transb=False</em>, <em class="sig-param">dtype=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.cublas.batch_matmul" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.cublas.</code><code class="sig-name descname">batch_matmul</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em>, <em class="sig-param"><span class="n">transa</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">transb</span><span class="o">=</span><span class="default_value">False</s [...]
 <dd><p>Create an extern op that compute batch matrix mult of A and rhs with cuBLAS</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -462,9 +463,9 @@ can be passed to AutoTVM measure or export_library.</p>
 <div class="section" id="module-tvm.contrib.dlpack">
 <span id="tvm-contrib-dlpack"></span><h2>tvm.contrib.dlpack<a class="headerlink" href="#module-tvm.contrib.dlpack" title="Permalink to this headline">¶</a></h2>
 <p>Wrapping functions to bridge frameworks with DLPack support to TVM</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.dlpack.convert_func">
-<code class="sig-prename descclassname">tvm.contrib.dlpack.</code><code class="sig-name descname">convert_func</code><span class="sig-paren">(</span><em class="sig-param">tvm_func</em>, <em class="sig-param">tensor_type</em>, <em class="sig-param">to_dlpack_func</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.dlpack.convert_func" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.dlpack.</code><code class="sig-name descname">convert_func</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">tvm_func</span></em>, <em class="sig-param"><span class="n">tensor_type</span></em>, <em class="sig-param"><span class="n">to_dlpack_func</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.dlpack.convert_func" title="Permalink to this definition">¶</a></dt>
 <dd><dl class="simple">
 <dt>Convert a tvm function into one that accepts a tensor from another</dt><dd><p>framework, provided the other framework supports DLPACK</p>
 </dd>
@@ -480,9 +481,9 @@ can be passed to AutoTVM measure or export_library.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.dlpack.to_pytorch_func">
-<code class="sig-prename descclassname">tvm.contrib.dlpack.</code><code class="sig-name descname">to_pytorch_func</code><span class="sig-paren">(</span><em class="sig-param">tvm_func</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.dlpack.to_pytorch_func" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.dlpack.</code><code class="sig-name descname">to_pytorch_func</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">tvm_func</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.dlpack.to_pytorch_func" title="Permalink to this definition">¶</a></dt>
 <dd><p>Convert a tvm function into one that accepts PyTorch tensors</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -501,9 +502,9 @@ can be passed to AutoTVM measure or export_library.</p>
 <div class="section" id="module-tvm.contrib.emscripten">
 <span id="tvm-contrib-emscripten"></span><h2>tvm.contrib.emscripten<a class="headerlink" href="#module-tvm.contrib.emscripten" title="Permalink to this headline">¶</a></h2>
 <p>Util to invoke emscripten compilers in the system.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.emscripten.create_js">
-<code class="sig-prename descclassname">tvm.contrib.emscripten.</code><code class="sig-name descname">create_js</code><span class="sig-paren">(</span><em class="sig-param">output</em>, <em class="sig-param">objects</em>, <em class="sig-param">options=None</em>, <em class="sig-param">side_module=False</em>, <em class="sig-param">cc='emcc'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.emscripten.create_js" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.emscripten.</code><code class="sig-name descname">create_js</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">output</span></em>, <em class="sig-param"><span class="n">objects</span></em>, <em class="sig-param"><span class="n">options</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">side_module</span><span class="o">=</span><span class="default_va [...]
 <dd><p>Create emscripten javascript library.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -521,9 +522,9 @@ can be passed to AutoTVM measure or export_library.</p>
 <div class="section" id="module-tvm.contrib.miopen">
 <span id="tvm-contrib-miopen"></span><h2>tvm.contrib.miopen<a class="headerlink" href="#module-tvm.contrib.miopen" title="Permalink to this headline">¶</a></h2>
 <p>External function interface to MIOpen library.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.miopen.conv2d_forward">
-<code class="sig-prename descclassname">tvm.contrib.miopen.</code><code class="sig-name descname">conv2d_forward</code><span class="sig-paren">(</span><em class="sig-param">x</em>, <em class="sig-param">w</em>, <em class="sig-param">stride_h=1</em>, <em class="sig-param">stride_w=1</em>, <em class="sig-param">pad_h=0</em>, <em class="sig-param">pad_w=0</em>, <em class="sig-param">dilation_h=1</em>, <em class="sig-param">dilation_w=1</em>, <em class="sig-param">conv_mode=0</em>, <em class [...]
+<code class="sig-prename descclassname">tvm.contrib.miopen.</code><code class="sig-name descname">conv2d_forward</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x</span></em>, <em class="sig-param"><span class="n">w</span></em>, <em class="sig-param"><span class="n">stride_h</span><span class="o">=</span><span class="default_value">1</span></em>, <em class="sig-param"><span class="n">stride_w</span><span class="o">=</span><span class="default_value">1</span></ [...]
 <dd><p>Create an extern op that compute 2D convolution with MIOpen</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -556,9 +557,9 @@ can be passed to AutoTVM measure or export_library.</p>
 <div class="section" id="module-tvm.contrib.mxnet">
 <span id="tvm-contrib-mxnet"></span><h2>tvm.contrib.mxnet<a class="headerlink" href="#module-tvm.contrib.mxnet" title="Permalink to this headline">¶</a></h2>
 <p>MXNet bridge wrap Function MXNet’s async function.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.mxnet.to_mxnet_func">
-<code class="sig-prename descclassname">tvm.contrib.mxnet.</code><code class="sig-name descname">to_mxnet_func</code><span class="sig-paren">(</span><em class="sig-param">func</em>, <em class="sig-param">const_loc=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.mxnet.to_mxnet_func" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.mxnet.</code><code class="sig-name descname">to_mxnet_func</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">func</span></em>, <em class="sig-param"><span class="n">const_loc</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.mxnet.to_mxnet_func" title="Permalink to this definition">¶</a></dt>
 <dd><p>Wrap a TVM function as MXNet function</p>
 <p>MXNet function runs asynchrously via its engine.</p>
 <dl class="field-list simple">
@@ -586,9 +587,9 @@ Run asynchrously in MXNet’s async engine.</p>
 <div class="section" id="module-tvm.contrib.ndk">
 <span id="tvm-contrib-ndk"></span><h2>tvm.contrib.ndk<a class="headerlink" href="#module-tvm.contrib.ndk" title="Permalink to this headline">¶</a></h2>
 <p>Util to invoke NDK compiler toolchain.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.ndk.create_shared">
-<code class="sig-prename descclassname">tvm.contrib.ndk.</code><code class="sig-name descname">create_shared</code><span class="sig-paren">(</span><em class="sig-param">output</em>, <em class="sig-param">objects</em>, <em class="sig-param">options=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.ndk.create_shared" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.ndk.</code><code class="sig-name descname">create_shared</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">output</span></em>, <em class="sig-param"><span class="n">objects</span></em>, <em class="sig-param"><span class="n">options</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.ndk.create_shared" title="Permalink [...]
 <dd><p>Create shared library.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -605,16 +606,16 @@ Run asynchrously in MXNet’s async engine.</p>
 <div class="section" id="module-tvm.contrib.nnpack">
 <span id="tvm-contrib-nnpack"></span><h2>tvm.contrib.nnpack<a class="headerlink" href="#module-tvm.contrib.nnpack" title="Permalink to this headline">¶</a></h2>
 <p>External function interface to NNPACK libraries.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nnpack.is_available">
 <code class="sig-prename descclassname">tvm.contrib.nnpack.</code><code class="sig-name descname">is_available</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nnpack.is_available" title="Permalink to this definition">¶</a></dt>
 <dd><p>Check whether NNPACK is available, that is, <cite>nnp_initialize()</cite>
 returns <cite>nnp_status_success</cite>.</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nnpack.fully_connected_inference">
-<code class="sig-prename descclassname">tvm.contrib.nnpack.</code><code class="sig-name descname">fully_connected_inference</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em>, <em class="sig-param">nthreads=1</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nnpack.fully_connected_inference" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.nnpack.</code><code class="sig-name descname">fully_connected_inference</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em>, <em class="sig-param"><span class="n">nthreads</span><span class="o">=</span><span class="default_value">1</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nnpack.fully_connected_infere [...]
 <dd><p>Create an extern op that compute fully connected of 1D tensor lhs and
 2D tensor rhs with nnpack.</p>
 <dl class="field-list simple">
@@ -633,9 +634,9 @@ returns <cite>nnp_status_success</cite>.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nnpack.convolution_inference">
-<code class="sig-prename descclassname">tvm.contrib.nnpack.</code><code class="sig-name descname">convolution_inference</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">kernel</em>, <em class="sig-param">bias</em>, <em class="sig-param">padding</em>, <em class="sig-param">stride</em>, <em class="sig-param">nthreads=1</em>, <em class="sig-param">algorithm=0</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nnpack.convo [...]
+<code class="sig-prename descclassname">tvm.contrib.nnpack.</code><code class="sig-name descname">convolution_inference</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">kernel</span></em>, <em class="sig-param"><span class="n">bias</span></em>, <em class="sig-param"><span class="n">padding</span></em>, <em class="sig-param"><span class="n">stride</span></em>, <em class="sig-param"><span class="n">nthreads< [...]
 <dd><p>Create an extern op to do inference convolution of 4D tensor data and
 4D tensor kernel and 1D tensor bias with nnpack.</p>
 <dl class="field-list simple">
@@ -663,9 +664,9 @@ of FP32 elements.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nnpack.convolution_inference_without_weight_transform">
-<code class="sig-prename descclassname">tvm.contrib.nnpack.</code><code class="sig-name descname">convolution_inference_without_weight_transform</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">transformed_kernel</em>, <em class="sig-param">bias</em>, <em class="sig-param">padding</em>, <em class="sig-param">stride</em>, <em class="sig-param">nthreads=1</em>, <em class="sig-param">algorithm=0</em><span class="sig-paren">)</span><a class="header [...]
+<code class="sig-prename descclassname">tvm.contrib.nnpack.</code><code class="sig-name descname">convolution_inference_without_weight_transform</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">transformed_kernel</span></em>, <em class="sig-param"><span class="n">bias</span></em>, <em class="sig-param"><span class="n">padding</span></em>, <em class="sig-param"><span class="n">stride</span></em>, <em class= [...]
 <dd><p>Create an extern op to do inference convolution of 4D tensor data and
 4D pre-transformed tensor kernel and 1D tensor bias with nnpack.</p>
 <dl class="field-list simple">
@@ -693,9 +694,9 @@ of FP32 elements.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nnpack.convolution_inference_weight_transform">
-<code class="sig-prename descclassname">tvm.contrib.nnpack.</code><code class="sig-name descname">convolution_inference_weight_transform</code><span class="sig-paren">(</span><em class="sig-param">kernel</em>, <em class="sig-param">nthreads=1</em>, <em class="sig-param">algorithm=0</em>, <em class="sig-param">dtype='float32'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nnpack.convolution_inference_weight_transform" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.nnpack.</code><code class="sig-name descname">convolution_inference_weight_transform</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">kernel</span></em>, <em class="sig-param"><span class="n">nthreads</span><span class="o">=</span><span class="default_value">1</span></em>, <em class="sig-param"><span class="n">algorithm</span><span class="o">=</span><span class="default_value">0</span></em>, <em class="sig-par [...]
 <dd><p>Create an extern op to do inference convolution of 3D tensor data and
 4D tensor kernel and 1D tensor bias with nnpack.</p>
 <dl class="field-list simple">
@@ -717,9 +718,9 @@ of FP32 elements.</p>
 <div class="section" id="module-tvm.contrib.nvcc">
 <span id="tvm-contrib-nvcc"></span><h2>tvm.contrib.nvcc<a class="headerlink" href="#module-tvm.contrib.nvcc" title="Permalink to this headline">¶</a></h2>
 <p>Utility to invoke nvcc compiler in the system</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nvcc.compile_cuda">
-<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">compile_cuda</code><span class="sig-paren">(</span><em class="sig-param">code</em>, <em class="sig-param">target='ptx'</em>, <em class="sig-param">arch=None</em>, <em class="sig-param">options=None</em>, <em class="sig-param">path_target=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.compile_cuda" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">compile_cuda</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">code</span></em>, <em class="sig-param"><span class="n">target</span><span class="o">=</span><span class="default_value">'ptx'</span></em>, <em class="sig-param"><span class="n">arch</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">options</s [...]
 <dd><p>Compile cuda code with NVCC from env.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -740,7 +741,7 @@ of FP32 elements.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nvcc.find_cuda_path">
 <code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">find_cuda_path</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.find_cuda_path" title="Permalink to this definition">¶</a></dt>
 <dd><p>Utility function to find cuda path</p>
@@ -754,9 +755,9 @@ of FP32 elements.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nvcc.get_cuda_version">
-<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">get_cuda_version</code><span class="sig-paren">(</span><em class="sig-param">cuda_path</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.get_cuda_version" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">get_cuda_version</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cuda_path</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.get_cuda_version" title="Permalink to this definition">¶</a></dt>
 <dd><p>Utility function to get cuda version</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -771,9 +772,9 @@ of FP32 elements.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nvcc.parse_compute_version">
-<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">parse_compute_version</code><span class="sig-paren">(</span><em class="sig-param">compute_version</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.parse_compute_version" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">parse_compute_version</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">compute_version</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.parse_compute_version" title="Permalink to this definition">¶</a></dt>
 <dd><p>Parse compute capability string to divide major and minor version</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -789,9 +790,9 @@ of FP32 elements.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nvcc.have_fp16">
-<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">have_fp16</code><span class="sig-paren">(</span><em class="sig-param">compute_version</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.have_fp16" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">have_fp16</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">compute_version</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.have_fp16" title="Permalink to this definition">¶</a></dt>
 <dd><p>Either fp16 support is provided in the compute capability or not</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -800,9 +801,9 @@ of FP32 elements.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nvcc.have_int8">
-<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">have_int8</code><span class="sig-paren">(</span><em class="sig-param">compute_version</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.have_int8" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">have_int8</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">compute_version</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.have_int8" title="Permalink to this definition">¶</a></dt>
 <dd><p>Either int8 support is provided in the compute capability or not</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -811,9 +812,9 @@ of FP32 elements.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.nvcc.have_tensorcore">
-<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">have_tensorcore</code><span class="sig-paren">(</span><em class="sig-param">compute_version</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.have_tensorcore" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.nvcc.</code><code class="sig-name descname">have_tensorcore</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">compute_version</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.nvcc.have_tensorcore" title="Permalink to this definition">¶</a></dt>
 <dd><p>Either TensorCore support is provided in the compute capability or not</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -826,9 +827,9 @@ of FP32 elements.</p>
 <div class="section" id="module-tvm.contrib.pickle_memoize">
 <span id="tvm-contrib-pickle-memoize"></span><h2>tvm.contrib.pickle_memoize<a class="headerlink" href="#module-tvm.contrib.pickle_memoize" title="Permalink to this headline">¶</a></h2>
 <p>Memoize result of function via pickle, used for cache testcases.</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.contrib.pickle_memoize.Cache">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.pickle_memoize.</code><code class="sig-name descname">Cache</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">save_at_exit</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.pickle_memoize.Cache" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.pickle_memoize.</code><code class="sig-name descname">Cache</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">save_at_exit</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.pickle_memoize.Cache" title="Permalink to this definition">¶</a></dt>
 <dd><p>A cache object for result cache.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -840,9 +841,9 @@ of FP32 elements.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.pickle_memoize.memoize">
-<code class="sig-prename descclassname">tvm.contrib.pickle_memoize.</code><code class="sig-name descname">memoize</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">save_at_exit=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.pickle_memoize.memoize" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.pickle_memoize.</code><code class="sig-name descname">memoize</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">save_at_exit</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.pickle_memoize.memoize" title="Permalink to this definition">¶</a></dt>
 <dd><p>Memoize the result of function and reuse multiple times.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -864,9 +865,9 @@ of FP32 elements.</p>
 <div class="section" id="module-tvm.contrib.random">
 <span id="tvm-contrib-random"></span><h2>tvm.contrib.random<a class="headerlink" href="#module-tvm.contrib.random" title="Permalink to this headline">¶</a></h2>
 <p>External function interface to random library.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.random.randint">
-<code class="sig-prename descclassname">tvm.contrib.random.</code><code class="sig-name descname">randint</code><span class="sig-paren">(</span><em class="sig-param">low</em>, <em class="sig-param">high</em>, <em class="sig-param">size</em>, <em class="sig-param">dtype='int32'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.random.randint" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.random.</code><code class="sig-name descname">randint</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">low</span></em>, <em class="sig-param"><span class="n">high</span></em>, <em class="sig-param"><span class="n">size</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">'int32'</span></em><span class="sig-paren">)</span><a class="headerlink" href=" [...]
 <dd><p>Return random integers from low (inclusive) to high (exclusive).
 Return random integers from the “discrete uniform” distribution of the
 specified dtype in the “half-open” interval [low, high).</p>
@@ -886,9 +887,9 @@ specified dtype in the “half-open” interval [low, high).</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.random.uniform">
-<code class="sig-prename descclassname">tvm.contrib.random.</code><code class="sig-name descname">uniform</code><span class="sig-paren">(</span><em class="sig-param">low</em>, <em class="sig-param">high</em>, <em class="sig-param">size</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.random.uniform" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.random.</code><code class="sig-name descname">uniform</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">low</span></em>, <em class="sig-param"><span class="n">high</span></em>, <em class="sig-param"><span class="n">size</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.random.uniform" title="Permalink to this definition">¶</a></dt>
 <dd><p>Draw samples from a uniform distribution.</p>
 <p>Samples are uniformly distributed over the half-open interval [low, high)
 (includes low, but excludes high). In other words, any value within the
@@ -913,9 +914,9 @@ samples are drawn.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.random.normal">
-<code class="sig-prename descclassname">tvm.contrib.random.</code><code class="sig-name descname">normal</code><span class="sig-paren">(</span><em class="sig-param">loc</em>, <em class="sig-param">scale</em>, <em class="sig-param">size</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.random.normal" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.random.</code><code class="sig-name descname">normal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">loc</span></em>, <em class="sig-param"><span class="n">scale</span></em>, <em class="sig-param"><span class="n">size</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.random.normal" title="Permalink to this definition">¶</a></dt>
 <dd><p>Draw samples from a normal distribution.</p>
 <p>Return random samples from a normal distribution.</p>
 <dl class="field-list simple">
@@ -940,9 +941,9 @@ samples are drawn.</p></li>
 <div class="section" id="module-tvm.contrib.rocblas">
 <span id="tvm-contrib-rocblas"></span><h2>tvm.contrib.rocblas<a class="headerlink" href="#module-tvm.contrib.rocblas" title="Permalink to this headline">¶</a></h2>
 <p>External function interface to rocBLAS libraries.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.rocblas.matmul">
-<code class="sig-prename descclassname">tvm.contrib.rocblas.</code><code class="sig-name descname">matmul</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em>, <em class="sig-param">transa=False</em>, <em class="sig-param">transb=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.rocblas.matmul" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.rocblas.</code><code class="sig-name descname">matmul</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em>, <em class="sig-param"><span class="n">transa</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">transb</span><span class="o">=</span><span class="default_value">False</span>< [...]
 <dd><p>Create an extern op that compute matrix mult of A and rhs with rocBLAS</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -966,9 +967,9 @@ samples are drawn.</p></li>
 <div class="section" id="module-tvm.contrib.rocm">
 <span id="tvm-contrib-rocm"></span><h2>tvm.contrib.rocm<a class="headerlink" href="#module-tvm.contrib.rocm" title="Permalink to this headline">¶</a></h2>
 <p>Utility for ROCm backend</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.rocm.find_lld">
-<code class="sig-prename descclassname">tvm.contrib.rocm.</code><code class="sig-name descname">find_lld</code><span class="sig-paren">(</span><em class="sig-param">required=True</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.rocm.find_lld" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.rocm.</code><code class="sig-name descname">find_lld</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">required</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.rocm.find_lld" title="Permalink to this definition">¶</a></dt>
 <dd><p>Find ld.lld in system.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -989,9 +990,9 @@ matches the major llvm version that built with tvm</p>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.rocm.rocm_link">
-<code class="sig-prename descclassname">tvm.contrib.rocm.</code><code class="sig-name descname">rocm_link</code><span class="sig-paren">(</span><em class="sig-param">in_file</em>, <em class="sig-param">out_file</em>, <em class="sig-param">lld=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.rocm.rocm_link" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.rocm.</code><code class="sig-name descname">rocm_link</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">in_file</span></em>, <em class="sig-param"><span class="n">out_file</span></em>, <em class="sig-param"><span class="n">lld</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.rocm.rocm_link" title="Permalink to this [...]
 <dd><p>Link relocatable ELF object to shared ELF object using lld</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1009,11 +1010,11 @@ we will try to guess the matched clang version.</p></li>
 <div class="section" id="module-tvm.contrib.sparse">
 <span id="tvm-contrib-sparse"></span><h2>tvm.contrib.sparse<a class="headerlink" href="#module-tvm.contrib.sparse" title="Permalink to this headline">¶</a></h2>
 <p>Tensor and Operation class for computation declaration.</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.contrib.sparse.CSRNDArray">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">CSRNDArray</code><span class="sig-paren">(</span><em class="sig-param">arg1</em>, <em class="sig-param">ctx=None</em>, <em class="sig-param">shape=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.sparse.CSRNDArray" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">CSRNDArray</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">arg1</span></em>, <em class="sig-param"><span class="n">ctx</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-pare [...]
 <dd><p>Sparse tensor object in CSR format.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.sparse.CSRNDArray.asnumpy">
 <code class="sig-name descname">asnumpy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.sparse.CSRNDArray.asnumpy" title="Permalink to this definition">¶</a></dt>
 <dd><p>Construct a full matrix and convert it to numpy array.</p>
@@ -1021,27 +1022,27 @@ we will try to guess the matched clang version.</p></li>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.sparse.array">
-<code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">array</code><span class="sig-paren">(</span><em class="sig-param">source_array</em>, <em class="sig-param">ctx=None</em>, <em class="sig-param">shape=None</em>, <em class="sig-param">stype='csr'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.sparse.array" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">array</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_array</span></em>, <em class="sig-param"><span class="n">ctx</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">stype</spa [...]
 <dd><p>Construct a sparse NDArray from numpy.ndarray</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.contrib.sparse.SparsePlaceholderOp">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">SparsePlaceholderOp</code><span class="sig-paren">(</span><em class="sig-param">shape</em>, <em class="sig-param">nonzeros</em>, <em class="sig-param">dtype</em>, <em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.sparse.SparsePlaceholderOp" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">SparsePlaceholderOp</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">shape</span></em>, <em class="sig-param"><span class="n">nonzeros</span></em>, <em class="sig-param"><span class="n">dtype</span></em>, <em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.spa [...]
 <dd><p>Placeholder class for sparse tensor representations.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.contrib.sparse.CSRPlaceholderOp">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">CSRPlaceholderOp</code><span class="sig-paren">(</span><em class="sig-param">shape</em>, <em class="sig-param">nonzeros</em>, <em class="sig-param">dtype</em>, <em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.sparse.CSRPlaceholderOp" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">CSRPlaceholderOp</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">shape</span></em>, <em class="sig-param"><span class="n">nonzeros</span></em>, <em class="sig-param"><span class="n">dtype</span></em>, <em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.sparse [...]
 <dd><p>Placeholder class for CSR based sparse tensor representation.</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.sparse.placeholder">
-<code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">placeholder</code><span class="sig-paren">(</span><em class="sig-param">shape</em>, <em class="sig-param">nonzeros=None</em>, <em class="sig-param">dtype=None</em>, <em class="sig-param">name='placeholder'</em>, <em class="sig-param">stype=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.sparse.placeholder" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.sparse.</code><code class="sig-name descname">placeholder</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">shape</span></em>, <em class="sig-param"><span class="n">nonzeros</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">name</ [...]
 <dd><p>Construct an empty sparse tensor object.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1066,9 +1067,9 @@ we will try to guess the matched clang version.</p></li>
 <div class="section" id="module-tvm.contrib.spirv">
 <span id="tvm-contrib-spirv"></span><h2>tvm.contrib.spirv<a class="headerlink" href="#module-tvm.contrib.spirv" title="Permalink to this headline">¶</a></h2>
 <p>Utility for Interacting with SPIRV Tools</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.spirv.optimize">
-<code class="sig-prename descclassname">tvm.contrib.spirv.</code><code class="sig-name descname">optimize</code><span class="sig-paren">(</span><em class="sig-param">spv_bin</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.spirv.optimize" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.spirv.</code><code class="sig-name descname">optimize</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">spv_bin</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.spirv.optimize" title="Permalink to this definition">¶</a></dt>
 <dd><p>Optimize SPIRV using spirv-opt via CLI</p>
 <p>Note that the spirv-opt is still experimental.</p>
 <dl class="field-list simple">
@@ -1088,9 +1089,9 @@ we will try to guess the matched clang version.</p></li>
 <div class="section" id="module-tvm.contrib.tar">
 <span id="tvm-contrib-tar"></span><h2>tvm.contrib.tar<a class="headerlink" href="#module-tvm.contrib.tar" title="Permalink to this headline">¶</a></h2>
 <p>Util to invoke tarball in the system.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.tar.tar">
-<code class="sig-prename descclassname">tvm.contrib.tar.</code><code class="sig-name descname">tar</code><span class="sig-paren">(</span><em class="sig-param">output</em>, <em class="sig-param">files</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.tar.tar" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.tar.</code><code class="sig-name descname">tar</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">output</span></em>, <em class="sig-param"><span class="n">files</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.tar.tar" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create tarball containing all files in root.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1102,9 +1103,9 @@ we will try to guess the matched clang version.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.tar.untar">
-<code class="sig-prename descclassname">tvm.contrib.tar.</code><code class="sig-name descname">untar</code><span class="sig-paren">(</span><em class="sig-param">tar_file</em>, <em class="sig-param">directory</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.tar.untar" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.tar.</code><code class="sig-name descname">untar</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">tar_file</span></em>, <em class="sig-param"><span class="n">directory</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.tar.untar" title="Permalink to this definition">¶</a></dt>
 <dd><p>Unpack all tar files into the directory</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1120,20 +1121,20 @@ we will try to guess the matched clang version.</p></li>
 <div class="section" id="module-tvm.contrib.util">
 <span id="tvm-contrib-util"></span><h2>tvm.contrib.util<a class="headerlink" href="#module-tvm.contrib.util" title="Permalink to this headline">¶</a></h2>
 <p>Common system utilities</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.contrib.util.TempDirectory">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">TempDirectory</code><span class="sig-paren">(</span><em class="sig-param">custom_path=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.TempDirectory" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">TempDirectory</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">custom_path</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.TempDirectory" title="Permalink to this definition">¶</a></dt>
 <dd><p>Helper object to manage temp directory during testing.</p>
 <p>Automatically removes the directory when it went out of scope.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.util.TempDirectory.remove">
 <code class="sig-name descname">remove</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.TempDirectory.remove" title="Permalink to this definition">¶</a></dt>
 <dd><p>Remote the tmp dir</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.util.TempDirectory.relpath">
-<code class="sig-name descname">relpath</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.TempDirectory.relpath" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">relpath</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.TempDirectory.relpath" title="Permalink to this definition">¶</a></dt>
 <dd><p>Relative path in temp dir</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1148,7 +1149,7 @@ we will try to guess the matched clang version.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.util.TempDirectory.listdir">
 <code class="sig-name descname">listdir</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.TempDirectory.listdir" title="Permalink to this definition">¶</a></dt>
 <dd><p>List contents in the dir.</p>
@@ -1164,9 +1165,9 @@ we will try to guess the matched clang version.</p></li>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.util.tempdir">
-<code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">tempdir</code><span class="sig-paren">(</span><em class="sig-param">custom_path=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.tempdir" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">tempdir</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">custom_path</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.tempdir" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create temp dir which deletes the contents when exit.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1181,16 +1182,16 @@ we will try to guess the matched clang version.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.contrib.util.FileLock">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">FileLock</code><span class="sig-paren">(</span><em class="sig-param">path</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.FileLock" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">FileLock</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">path</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.FileLock" title="Permalink to this definition">¶</a></dt>
 <dd><p>File lock object</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><p><strong>path</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><em>str</em></a>) – The path to the lock</p>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.util.FileLock.release">
 <code class="sig-name descname">release</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.FileLock.release" title="Permalink to this definition">¶</a></dt>
 <dd><p>Release the lock</p>
@@ -1198,9 +1199,9 @@ we will try to guess the matched clang version.</p></li>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.util.filelock">
-<code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">filelock</code><span class="sig-paren">(</span><em class="sig-param">path</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.filelock" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">filelock</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">path</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.filelock" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create a file lock which locks on path</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1215,9 +1216,9 @@ we will try to guess the matched clang version.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.util.is_source_path">
-<code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">is_source_path</code><span class="sig-paren">(</span><em class="sig-param">path</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.is_source_path" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">is_source_path</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">path</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.is_source_path" title="Permalink to this definition">¶</a></dt>
 <dd><p>Check if path is source code path.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1232,9 +1233,9 @@ we will try to guess the matched clang version.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.util.which">
-<code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">which</code><span class="sig-paren">(</span><em class="sig-param">exec_name</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.which" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.util.</code><code class="sig-name descname">which</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">exec_name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.util.which" title="Permalink to this definition">¶</a></dt>
 <dd><p>Try to find full path of exec_name</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1253,9 +1254,9 @@ we will try to guess the matched clang version.</p></li>
 <div class="section" id="module-tvm.contrib.xcode">
 <span id="tvm-contrib-xcode"></span><h2>tvm.contrib.xcode<a class="headerlink" href="#module-tvm.contrib.xcode" title="Permalink to this headline">¶</a></h2>
 <p>Utility to invoke Xcode compiler toolchain</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.xcode.xcrun">
-<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">xcrun</code><span class="sig-paren">(</span><em class="sig-param">cmd</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.xcrun" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">xcrun</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmd</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.xcrun" title="Permalink to this definition">¶</a></dt>
 <dd><p>Run xcrun and return the output.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1270,9 +1271,9 @@ we will try to guess the matched clang version.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.xcode.codesign">
-<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">codesign</code><span class="sig-paren">(</span><em class="sig-param">lib</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.codesign" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">codesign</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lib</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.codesign" title="Permalink to this definition">¶</a></dt>
 <dd><p>Codesign the shared libary</p>
 <p>This is an required step for library to be loaded in
 the app.</p>
@@ -1283,9 +1284,9 @@ the app.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.xcode.create_dylib">
-<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">create_dylib</code><span class="sig-paren">(</span><em class="sig-param">output</em>, <em class="sig-param">objects</em>, <em class="sig-param">arch</em>, <em class="sig-param">sdk='macosx'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.create_dylib" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">create_dylib</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">output</span></em>, <em class="sig-param"><span class="n">objects</span></em>, <em class="sig-param"><span class="n">arch</span></em>, <em class="sig-param"><span class="n">sdk</span><span class="o">=</span><span class="default_value">'macosx'</span></em><span class="sig-paren">)</span><a class="headerlin [...]
 <dd><p>Create dynamic library.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1300,9 +1301,9 @@ the app.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.xcode.compile_metal">
-<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">compile_metal</code><span class="sig-paren">(</span><em class="sig-param">code</em>, <em class="sig-param">path_target=None</em>, <em class="sig-param">sdk='macosx'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.compile_metal" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">compile_metal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">code</span></em>, <em class="sig-param"><span class="n">path_target</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">sdk</span><span class="o">=</span><span class="default_value">'macosx'</span></em><span class="sig-paren">)</span><a class= [...]
 <dd><p>Compile metal with CLI tool from env.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1321,9 +1322,15 @@ the app.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py function">
+<dt id="tvm.contrib.xcode.compile_coreml">
+<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">compile_coreml</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">model</span></em>, <em class="sig-param"><span class="n">out_dir</span><span class="o">=</span><span class="default_value">'.'</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.compile_coreml" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compile coreml model and return the compiled model path.</p>
+</dd></dl>
+
+<dl class="py class">
 <dt id="tvm.contrib.xcode.XCodeRPCServer">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">XCodeRPCServer</code><span class="sig-paren">(</span><em class="sig-param">cmd</em>, <em class="sig-param">lock</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.XCodeRPCServer" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">XCodeRPCServer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmd</span></em>, <em class="sig-param"><span class="n">lock</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.XCodeRPCServer" title="Permalink to this definition">¶</a></dt>
 <dd><p>Wrapper for RPC server</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1333,7 +1340,7 @@ the app.</p>
 </ul>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.xcode.XCodeRPCServer.join">
 <code class="sig-name descname">join</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.XCodeRPCServer.join" title="Permalink to this definition">¶</a></dt>
 <dd><p>Wait server to finish and release its resource</p>
@@ -1341,9 +1348,9 @@ the app.</p>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.xcode.popen_test_rpc">
-<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">popen_test_rpc</code><span class="sig-paren">(</span><em class="sig-param">host</em>, <em class="sig-param">port</em>, <em class="sig-param">key</em>, <em class="sig-param">destination</em>, <em class="sig-param">libs=None</em>, <em class="sig-param">options=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.xcode.popen_test_rpc" title="Permalink to this definit [...]
+<code class="sig-prename descclassname">tvm.contrib.xcode.</code><code class="sig-name descname">popen_test_rpc</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">host</span></em>, <em class="sig-param"><span class="n">port</span></em>, <em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">destination</span></em>, <em class="sig-param"><span class="n">libs</span><span class="o">=</span><span class="default_value">None</span> [...]
 <dd><p>Launch rpc server via xcodebuild test through another process.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
diff --git a/docs/api/python/driver.html b/docs/api/python/driver.html
index c14211e..9558ce7 100644
--- a/docs/api/python/driver.html
+++ b/docs/api/python/driver.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">tvm.driver</a></li>
@@ -211,9 +212,9 @@
   <div class="section" id="module-tvm.driver">
 <span id="tvm-driver"></span><h1>tvm.driver<a class="headerlink" href="#module-tvm.driver" title="Permalink to this headline">¶</a></h1>
 <p>Namespace for driver APIs</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.lower">
-<code class="sig-prename descclassname">tvm.</code><code class="sig-name descname">lower</code><span class="sig-paren">(</span><em class="sig-param">sch</em>, <em class="sig-param">args</em>, <em class="sig-param">name='main'</em>, <em class="sig-param">binds=None</em>, <em class="sig-param">simple_mode=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.lower" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.</code><code class="sig-name descname">lower</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sch</span></em>, <em class="sig-param"><span class="n">args</span></em>, <em class="sig-param"><span class="n">name</span><span class="o">=</span><span class="default_value">'main'</span></em>, <em class="sig-param"><span class="n">binds</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="si [...]
 <dd><p>Lowering step before build into target.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -238,9 +239,9 @@ Then the Stmt before make api is returned.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.build">
-<code class="sig-prename descclassname">tvm.</code><code class="sig-name descname">build</code><span class="sig-paren">(</span><em class="sig-param">inputs</em>, <em class="sig-param">args=None</em>, <em class="sig-param">target=None</em>, <em class="sig-param">target_host=None</em>, <em class="sig-param">name='default_function'</em>, <em class="sig-param">binds=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.build" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.</code><code class="sig-name descname">build</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">args</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">target</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">target_host</span><span class [...]
 <dd><p>Build a function with arguments as signature. Code will be generated
 for devices coupled with target information.</p>
 <dl class="field-list simple">
diff --git a/docs/api/python/error.html b/docs/api/python/error.html
index 9370821..fced61f 100644
--- a/docs/api/python/error.html
+++ b/docs/api/python/error.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="driver.html">tvm.driver</a></li>
@@ -261,9 +262,9 @@ copy the examples and raise errors with the same message convention.</p>
 </tr>
 </tbody>
 </table>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.error.register_error">
-<code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">register_error</code><span class="sig-paren">(</span><em class="sig-param">func_name=None</em>, <em class="sig-param">cls=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.error.register_error" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">register_error</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">func_name</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">cls</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.error.register_error" title="Permalink to thi [...]
 <dd><p>Register an error class so it can be recognized by the ffi error handler.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -290,16 +291,16 @@ copy the examples and raise errors with the same message convention.</p>
 </div>
 </dd></dl>
 
-<dl class="exception">
+<dl class="py exception">
 <dt id="tvm.error.TVMError">
 <em class="property">exception </em><code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">TVMError</code><a class="headerlink" href="#tvm.error.TVMError" title="Permalink to this definition">¶</a></dt>
 <dd><p>Default error thrown by TVM functions.</p>
 <p>TVMError will be raised if you do not give any error type specification,</p>
 </dd></dl>
 
-<dl class="exception">
+<dl class="py exception">
 <dt id="tvm.error.InternalError">
-<em class="property">exception </em><code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">InternalError</code><span class="sig-paren">(</span><em class="sig-param">msg</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.error.InternalError" title="Permalink to this definition">¶</a></dt>
+<em class="property">exception </em><code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">InternalError</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.error.InternalError" title="Permalink to this definition">¶</a></dt>
 <dd><p>Internal error in the system.</p>
 <p class="rubric">Examples</p>
 <div class="highlight-c++ notranslate"><div class="highlight"><pre><span class="c1">// Example code C++</span>
@@ -312,13 +313,13 @@ copy the examples and raise errors with the same message convention.</p>
 </div>
 </dd></dl>
 
-<dl class="exception">
+<dl class="py exception">
 <dt id="tvm.error.OpError">
 <em class="property">exception </em><code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">OpError</code><a class="headerlink" href="#tvm.error.OpError" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base class of all operator errors in frontends.</p>
 </dd></dl>
 
-<dl class="exception">
+<dl class="py exception">
 <dt id="tvm.error.OpNotImplemented">
 <em class="property">exception </em><code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">OpNotImplemented</code><a class="headerlink" href="#tvm.error.OpNotImplemented" title="Permalink to this definition">¶</a></dt>
 <dd><p>Operator is not implemented.</p>
@@ -330,7 +331,7 @@ copy the examples and raise errors with the same message convention.</p>
 </div>
 </dd></dl>
 
-<dl class="exception">
+<dl class="py exception">
 <dt id="tvm.error.OpAttributeRequired">
 <em class="property">exception </em><code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">OpAttributeRequired</code><a class="headerlink" href="#tvm.error.OpAttributeRequired" title="Permalink to this definition">¶</a></dt>
 <dd><p>Required attribute is not found.</p>
@@ -342,7 +343,7 @@ copy the examples and raise errors with the same message convention.</p>
 </div>
 </dd></dl>
 
-<dl class="exception">
+<dl class="py exception">
 <dt id="tvm.error.OpAttributeInvalid">
 <em class="property">exception </em><code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">OpAttributeInvalid</code><a class="headerlink" href="#tvm.error.OpAttributeInvalid" title="Permalink to this definition">¶</a></dt>
 <dd><p>Attribute value is invalid when taking in a frontend operator.</p>
@@ -354,7 +355,7 @@ copy the examples and raise errors with the same message convention.</p>
 </div>
 </dd></dl>
 
-<dl class="exception">
+<dl class="py exception">
 <dt id="tvm.error.OpAttributeUnImplemented">
 <em class="property">exception </em><code class="sig-prename descclassname">tvm.error.</code><code class="sig-name descname">OpAttributeUnImplemented</code><a class="headerlink" href="#tvm.error.OpAttributeUnImplemented" title="Permalink to this definition">¶</a></dt>
 <dd><p>Attribute is not supported in a certain frontend.</p>
diff --git a/docs/api/python/graph_runtime.html b/docs/api/python/graph_runtime.html
index d0875de..b1756e9 100644
--- a/docs/api/python/graph_runtime.html
+++ b/docs/api/python/graph_runtime.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="driver.html">tvm.driver</a></li>
@@ -211,9 +212,9 @@
   <div class="section" id="module-tvm.contrib.graph_runtime">
 <span id="tvm-contrib-graph-runtime"></span><h1>tvm.contrib.graph_runtime<a class="headerlink" href="#module-tvm.contrib.graph_runtime" title="Permalink to this headline">¶</a></h1>
 <p>Minimum graph runtime that executes graph containing TVM PackedFunc.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.graph_runtime.create">
-<code class="sig-prename descclassname">tvm.contrib.graph_runtime.</code><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param">graph_json_str</em>, <em class="sig-param">libmod</em>, <em class="sig-param">ctx</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.create" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.graph_runtime.</code><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">graph_json_str</span></em>, <em class="sig-param"><span class="n">libmod</span></em>, <em class="sig-param"><span class="n">ctx</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.create" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create a runtime executor module given a graph and module.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -237,9 +238,9 @@ execution.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.contrib.graph_runtime.get_device_ctx">
-<code class="sig-prename descclassname">tvm.contrib.graph_runtime.</code><code class="sig-name descname">get_device_ctx</code><span class="sig-paren">(</span><em class="sig-param">libmod</em>, <em class="sig-param">ctx</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.get_device_ctx" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.contrib.graph_runtime.</code><code class="sig-name descname">get_device_ctx</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">libmod</span></em>, <em class="sig-param"><span class="n">ctx</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.get_device_ctx" title="Permalink to this definition">¶</a></dt>
 <dd><p>Parse and validate all the device context(s).</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -259,9 +260,9 @@ execution.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.contrib.graph_runtime.GraphModule">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.graph_runtime.</code><code class="sig-name descname">GraphModule</code><span class="sig-paren">(</span><em class="sig-param">module</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.contrib.graph_runtime.</code><code class="sig-name descname">GraphModule</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">module</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule" title="Permalink to this definition">¶</a></dt>
 <dd><p>Wrapper runtime module.</p>
 <p>This is a thin wrapper of the underlying TVM module.
 you can also directly call set_input, run, and get_output
@@ -271,7 +272,7 @@ of underlying module functions</p>
 <dd class="field-odd"><p><strong>module</strong> (<a class="reference internal" href="runtime.html#tvm.runtime.Module" title="tvm.runtime.Module"><em>tvm.runtime.Module</em></a>) – The internal tvm module that holds the actual graph functions.</p>
 </dd>
 </dl>
-<dl class="attribute">
+<dl class="py attribute">
 <dt id="tvm.contrib.graph_runtime.GraphModule.module">
 <code class="sig-name descname">module</code><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.module" title="Permalink to this definition">¶</a></dt>
 <dd><p>The internal tvm module that holds the actual graph functions.</p>
@@ -282,9 +283,9 @@ of underlying module functions</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.graph_runtime.GraphModule.set_input">
-<code class="sig-name descname">set_input</code><span class="sig-paren">(</span><em class="sig-param">key=None</em>, <em class="sig-param">value=None</em>, <em class="sig-param">**params</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.set_input" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">set_input</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">value</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">params</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphM [...]
 <dd><p>Set inputs to the module via kwargs</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -297,9 +298,9 @@ of underlying module functions</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.graph_runtime.GraphModule.run">
-<code class="sig-name descname">run</code><span class="sig-paren">(</span><em class="sig-param">**input_dict</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.run" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">run</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">input_dict</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.run" title="Permalink to this definition">¶</a></dt>
 <dd><p>Run forward execution of the graph</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -308,7 +309,7 @@ of underlying module functions</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.graph_runtime.GraphModule.get_num_outputs">
 <code class="sig-name descname">get_num_outputs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.get_num_outputs" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the number of outputs from the graph</p>
@@ -322,9 +323,9 @@ of underlying module functions</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.graph_runtime.GraphModule.get_input">
-<code class="sig-name descname">get_input</code><span class="sig-paren">(</span><em class="sig-param">index</em>, <em class="sig-param">out=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.get_input" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_input</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">index</span></em>, <em class="sig-param"><span class="n">out</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.get_input" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get index-th input to out</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -336,9 +337,9 @@ of underlying module functions</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.graph_runtime.GraphModule.get_output">
-<code class="sig-name descname">get_output</code><span class="sig-paren">(</span><em class="sig-param">index</em>, <em class="sig-param">out=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.get_output" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_output</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">index</span></em>, <em class="sig-param"><span class="n">out</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.get_output" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get index-th output to out</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -350,9 +351,9 @@ of underlying module functions</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.graph_runtime.GraphModule.debug_get_output">
-<code class="sig-name descname">debug_get_output</code><span class="sig-paren">(</span><em class="sig-param">node</em>, <em class="sig-param">out</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.debug_get_output" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">debug_get_output</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">node</span></em>, <em class="sig-param"><span class="n">out</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.debug_get_output" title="Permalink to this definition">¶</a></dt>
 <dd><p>Run graph up to node and get the output to out</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -364,9 +365,9 @@ of underlying module functions</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.graph_runtime.GraphModule.load_params">
-<code class="sig-name descname">load_params</code><span class="sig-paren">(</span><em class="sig-param">params_bytes</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.load_params" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">load_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">params_bytes</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.load_params" title="Permalink to this definition">¶</a></dt>
 <dd><p>Load parameters from serialized byte array of parameter dict.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -375,9 +376,9 @@ of underlying module functions</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.contrib.graph_runtime.GraphModule.share_params">
-<code class="sig-name descname">share_params</code><span class="sig-paren">(</span><em class="sig-param">other</em>, <em class="sig-param">params_bytes</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.share_params" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">share_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">other</span></em>, <em class="sig-param"><span class="n">params_bytes</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.contrib.graph_runtime.GraphModule.share_params" title="Permalink to this definition">¶</a></dt>
 <dd><p>Share parameters from pre-existing GraphRuntime instance.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
diff --git a/docs/api/python/index.html b/docs/api/python/index.html
index e0566c4..9474299 100644
--- a/docs/api/python/index.html
+++ b/docs/api/python/index.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="driver.html">tvm.driver</a></li>
@@ -219,6 +220,7 @@
 <li class="toctree-l1"><a class="reference internal" href="tir.html">tvm.tir</a></li>
 <li class="toctree-l1"><a class="reference internal" href="tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l1"><a class="reference internal" href="tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l1"><a class="reference internal" href="te.html">tvm.te</a></li>
 <li class="toctree-l1"><a class="reference internal" href="te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l1"><a class="reference internal" href="driver.html">tvm.driver</a></li>
diff --git a/docs/api/python/ir.html b/docs/api/python/ir.html
index 40a719c..9476999 100644
--- a/docs/api/python/ir.html
+++ b/docs/api/python/ir.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="driver.html">tvm.driver</a></li>
@@ -343,9 +344,9 @@
 </tr>
 </tbody>
 </table>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.SourceName">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">SourceName</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.SourceName" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">SourceName</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.SourceName" title="Permalink to this definition">¶</a></dt>
 <dd><p>A identifier for a source location.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -354,9 +355,9 @@
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.Span">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Span</code><span class="sig-paren">(</span><em class="sig-param">source</em>, <em class="sig-param">lineno</em>, <em class="sig-param">col_offset</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Span" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Span</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source</span></em>, <em class="sig-param"><span class="n">lineno</span></em>, <em class="sig-param"><span class="n">col_offset</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Span" title="Permalink to this definition">¶</a></dt>
 <dd><p>Specifies a location in a source program.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -369,7 +370,7 @@
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.Node">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Node</code><a class="headerlink" href="#tvm.ir.Node" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base class of all IR Nodes, implements astext function.</p>
@@ -385,9 +386,9 @@
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.Node.astext">
-<code class="sig-name descname">astext</code><span class="sig-paren">(</span><em class="sig-param">show_meta_data=True</em>, <em class="sig-param">annotate=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Node.astext" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">astext</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">show_meta_data</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">annotate</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Node.astext" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the text format of the expression.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -413,7 +414,7 @@ so it can be helpful to skip printing the meta data section.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.EnvFunc">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">EnvFunc</code><a class="headerlink" href="#tvm.ir.EnvFunc" title="Permalink to this definition">¶</a></dt>
 <dd><p>Environment function.</p>
@@ -430,9 +431,9 @@ so it can be helpful to skip printing the meta data section.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.EnvFunc.get">
-<em class="property">static </em><code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.EnvFunc.get" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.EnvFunc.get" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get a static env function</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -443,9 +444,9 @@ so it can be helpful to skip printing the meta data section.</p>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.ir.load_json">
-<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">load_json</code><span class="sig-paren">(</span><em class="sig-param">json_str</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.load_json" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">load_json</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">json_str</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.load_json" title="Permalink to this definition">¶</a></dt>
 <dd><p>Load tvm object from json_str.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -460,9 +461,9 @@ so it can be helpful to skip printing the meta data section.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.ir.save_json">
-<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">save_json</code><span class="sig-paren">(</span><em class="sig-param">node</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.save_json" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">save_json</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">node</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.save_json" title="Permalink to this definition">¶</a></dt>
 <dd><p>Save tvm object as json string.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -477,9 +478,9 @@ so it can be helpful to skip printing the meta data section.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.ir.structural_equal">
-<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">structural_equal</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em>, <em class="sig-param">map_free_vars=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.structural_equal" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">structural_equal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em>, <em class="sig-param"><span class="n">map_free_vars</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.structural_equal" title="Permalink to this def [...]
 <dd><p>Check structural equality of lhs and rhs.</p>
 <p>The structural equality is recursively defined in the DAG of IRNodes.
 There are two kinds of nodes:</p>
@@ -523,9 +524,9 @@ not bound to any definitions as equal to each other.</p></li>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.ir.assert_structural_equal">
-<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">assert_structural_equal</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em>, <em class="sig-param">map_free_vars=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.assert_structural_equal" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">assert_structural_equal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em>, <em class="sig-param"><span class="n">map_free_vars</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.assert_structural_equal" title="Permali [...]
 <dd><p>Assert lhs and rhs are structurally equal to each other.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -544,9 +545,9 @@ not bound to any definitions as equal to each other.</p></li>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.ir.structural_hash">
-<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">structural_hash</code><span class="sig-paren">(</span><em class="sig-param">node</em>, <em class="sig-param">map_free_vars=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.structural_hash" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">structural_hash</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">node</span></em>, <em class="sig-param"><span class="n">map_free_vars</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.structural_hash" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute structural hash of node</p>
 <p>The structural hash value is recursively defined in the DAG of IRNodes.
 There are two kinds of nodes:</p>
@@ -585,7 +586,7 @@ their in-memory pointer address.</p></li>
 </div>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.Type">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Type</code><a class="headerlink" href="#tvm.ir.Type" title="Permalink to this definition">¶</a></dt>
 <dd><p>The base class of all types.</p>
@@ -601,23 +602,23 @@ their in-memory pointer address.</p></li>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.Type.same_as">
-<code class="sig-name descname">same_as</code><span class="sig-paren">(</span><em class="sig-param">other</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Type.same_as" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">same_as</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">other</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Type.same_as" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compares two Relay types by referential equality.</p>
 </dd></dl>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.TypeKind">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TypeKind</code><a class="headerlink" href="#tvm.ir.TypeKind" title="Permalink to this definition">¶</a></dt>
 <dd><p>Possible kinds of TypeVars.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.PrimType">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">PrimType</code><span class="sig-paren">(</span><em class="sig-param">dtype</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.PrimType" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">PrimType</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dtype</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.PrimType" title="Permalink to this definition">¶</a></dt>
 <dd><p>Primitive data type in the low level IR</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -626,9 +627,9 @@ their in-memory pointer address.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.PointerType">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">PointerType</code><span class="sig-paren">(</span><em class="sig-param">element_type</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.PointerType" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">PointerType</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">element_type</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.PointerType" title="Permalink to this definition">¶</a></dt>
 <dd><p>PointerType used in the low-level TIR.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -637,7 +638,7 @@ their in-memory pointer address.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.TypeVar">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TypeVar</code><span class="sig-paren">(</span><em class="sig-param">name_hint</em>, <em class="sig-param">kind=&lt;TypeKind.Type: 0&gt;</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TypeVar" title="Permalink to this definition">¶</a></dt>
 <dd><p>Type parameter in functions.</p>
@@ -655,7 +656,7 @@ is not used for equality.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.GlobalTypeVar">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">GlobalTypeVar</code><span class="sig-paren">(</span><em class="sig-param">name_hint</em>, <em class="sig-param">kind=&lt;TypeKind.AdtHandle: 5&gt;</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.GlobalTypeVar" title="Permalink to this definition">¶</a></dt>
 <dd><p>A global type variable that is used for defining new types or type aliases.</p>
@@ -670,9 +671,9 @@ is not used for equality.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.TupleType">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TupleType</code><span class="sig-paren">(</span><em class="sig-param">fields</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TupleType" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TupleType</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">fields</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TupleType" title="Permalink to this definition">¶</a></dt>
 <dd><p>The type of tuple values.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -681,15 +682,15 @@ is not used for equality.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.TypeConstraint">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TypeConstraint</code><a class="headerlink" href="#tvm.ir.TypeConstraint" title="Permalink to this definition">¶</a></dt>
 <dd><p>Abstract class representing a type constraint.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.FuncType">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">FuncType</code><span class="sig-paren">(</span><em class="sig-param">arg_types</em>, <em class="sig-param">ret_type</em>, <em class="sig-param">type_params=None</em>, <em class="sig-param">type_constraints=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.FuncType" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">FuncType</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">arg_types</span></em>, <em class="sig-param"><span class="n">ret_type</span></em>, <em class="sig-param"><span class="n">type_params</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">type_constraints</span><span class="o">=</ [...]
 <dd><p>Function type.</p>
 <p>A function type consists of a list of type parameters to enable
 the definition of generic functions,
@@ -709,7 +710,7 @@ a sequence of argument types, and a return type.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.IncompleteType">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">IncompleteType</code><span class="sig-paren">(</span><em class="sig-param">kind=&lt;TypeKind.Type: 0&gt;</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IncompleteType" title="Permalink to this definition">¶</a></dt>
 <dd><p>Incomplete type during type inference.</p>
@@ -719,9 +720,9 @@ a sequence of argument types, and a return type.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.RelayRefType">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">RelayRefType</code><span class="sig-paren">(</span><em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.RelayRefType" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">RelayRefType</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">value</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.RelayRefType" title="Permalink to this definition">¶</a></dt>
 <dd><p>Reference Type in relay.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -730,9 +731,9 @@ a sequence of argument types, and a return type.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.TensorType">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TensorType</code><span class="sig-paren">(</span><em class="sig-param">shape</em>, <em class="sig-param">dtype='float32'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TensorType" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TensorType</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">shape</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">'float32'</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TensorType" title="Permalink to this definition">¶</a></dt>
 <dd><p>A concrete TensorType in Relay.</p>
 <p>This is the type assigned to tensors with a known dtype and shape.
 For example, a tensor of <cite>float32</cite> and <cite>(5, 5)</cite>.</p>
@@ -756,7 +757,7 @@ For example, a tensor of <cite>float32</cite> and <cite>(5, 5)</cite>.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.TensorType.concrete_shape">
 <em class="property">property </em><code class="sig-name descname">concrete_shape</code><a class="headerlink" href="#tvm.ir.TensorType.concrete_shape" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get shape of the type as concrete tuple of int.</p>
@@ -773,9 +774,9 @@ For example, a tensor of <cite>float32</cite> and <cite>(5, 5)</cite>.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.TypeCall">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TypeCall</code><span class="sig-paren">(</span><em class="sig-param">func</em>, <em class="sig-param">args</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TypeCall" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TypeCall</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">func</span></em>, <em class="sig-param"><span class="n">args</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TypeCall" title="Permalink to this definition">¶</a></dt>
 <dd><p>Type function application.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -793,9 +794,9 @@ For example, a tensor of <cite>float32</cite> and <cite>(5, 5)</cite>.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.TypeRelation">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TypeRelation</code><span class="sig-paren">(</span><em class="sig-param">func</em>, <em class="sig-param">args</em>, <em class="sig-param">num_inputs</em>, <em class="sig-param">attrs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TypeRelation" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TypeRelation</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">func</span></em>, <em class="sig-param"><span class="n">args</span></em>, <em class="sig-param"><span class="n">num_inputs</span></em>, <em class="sig-param"><span class="n">attrs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TypeRelation" title="Perma [...]
 <dd><p>User defined type relation, it is an input-output relation on types.</p>
 <dl class="simple">
 <dt>TypeRelation is more generalized than TypeCall as it allows inference</dt><dd><p>of both inputs and outputs.</p>
@@ -820,13 +821,13 @@ this act as a hint for type inference.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.BaseExpr">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">BaseExpr</code><a class="headerlink" href="#tvm.ir.BaseExpr" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base class of all the expressions.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.PrimExpr">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">PrimExpr</code><a class="headerlink" href="#tvm.ir.PrimExpr" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base class of all primitive expressions.</p>
@@ -834,7 +835,7 @@ this act as a hint for type inference.</p></li>
 optimizations and integer analysis.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.RelayExpr">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">RelayExpr</code><a class="headerlink" href="#tvm.ir.RelayExpr" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base class of all non-primitive expressions.</p>
@@ -850,7 +851,7 @@ optimizations and integer analysis.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.RelayExpr.checked_type">
 <em class="property">property </em><code class="sig-name descname">checked_type</code><a class="headerlink" href="#tvm.ir.RelayExpr.checked_type" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the checked type of tvm.relay.Expr.</p>
@@ -866,9 +867,9 @@ optimizations and integer analysis.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.GlobalVar">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">GlobalVar</code><span class="sig-paren">(</span><em class="sig-param">name_hint</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.GlobalVar" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">GlobalVar</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name_hint</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.GlobalVar" title="Permalink to this definition">¶</a></dt>
 <dd><p>A global variable in the IR.</p>
 <p>GlobalVar is used to refer to the global functions
 stored in the IRModule.</p>
@@ -879,9 +880,9 @@ stored in the IRModule.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.Range">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Range</code><span class="sig-paren">(</span><em class="sig-param">begin</em>, <em class="sig-param">end=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Range" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Range</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">begin</span></em>, <em class="sig-param"><span class="n">end</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Range" title="Permalink to this definition">¶</a></dt>
 <dd><p>Represent a range in TVM.</p>
 <p>You do not need to create a Range explicitly.
 Python lists and tuples will be converted automatically to a Range in API functions.</p>
@@ -911,9 +912,9 @@ Otherwise it is the length of the range.</p></li>
 <p>The constructor creates the range <cite>[begin, end)</cite>
 if the end argument is not None. Otherwise, it creates <cite>[0, begin)</cite>.</p>
 </div>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.Range.make_by_min_extent">
-<em class="property">static </em><code class="sig-name descname">make_by_min_extent</code><span class="sig-paren">(</span><em class="sig-param">min_value</em>, <em class="sig-param">extent</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Range.make_by_min_extent" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">make_by_min_extent</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">min_value</span></em>, <em class="sig-param"><span class="n">extent</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Range.make_by_min_extent" title="Permalink to this definition">¶</a></dt>
 <dd><p>Construct a Range by min and extent.</p>
 <p>This constructs a range in [min_value, min_value + extent)</p>
 <dl class="field-list simple">
@@ -934,13 +935,13 @@ if the end argument is not None. Otherwise, it creates <cite>[0, begin)</cite>.<
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.CallingConv">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">CallingConv</code><a class="headerlink" href="#tvm.ir.CallingConv" title="Permalink to this definition">¶</a></dt>
 <dd><p>Possible kinds of calling conventions.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.BaseFunc">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">BaseFunc</code><a class="headerlink" href="#tvm.ir.BaseFunc" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base class of all functions.</p>
@@ -968,15 +969,15 @@ if the end argument is not None. Otherwise, it creates <cite>[0, begin)</cite>.<
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.BaseFunc.attrs">
 <em class="property">property </em><code class="sig-name descname">attrs</code><a class="headerlink" href="#tvm.ir.BaseFunc.attrs" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return the attrs member of the function.</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.BaseFunc.with_attr">
-<code class="sig-name descname">with_attr</code><span class="sig-paren">(</span><em class="sig-param">attr_key_or_dict</em>, <em class="sig-param">attr_value=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.BaseFunc.with_attr" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">with_attr</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">attr_key_or_dict</span></em>, <em class="sig-param"><span class="n">attr_value</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.BaseFunc.with_attr" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create a new copy of the function and update the attribute.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -996,9 +997,9 @@ if the end argument is not None. Otherwise, it creates <cite>[0, begin)</cite>.<
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.Constructor">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Constructor</code><span class="sig-paren">(</span><em class="sig-param">name_hint</em>, <em class="sig-param">inputs</em>, <em class="sig-param">belong_to</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Constructor" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Constructor</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name_hint</span></em>, <em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">belong_to</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Constructor" title="Permalink to this definition">¶</a></dt>
 <dd><p>Relay ADT constructor.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1011,9 +1012,9 @@ if the end argument is not None. Otherwise, it creates <cite>[0, begin)</cite>.<
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.TypeData">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TypeData</code><span class="sig-paren">(</span><em class="sig-param">header</em>, <em class="sig-param">type_vars</em>, <em class="sig-param">constructors</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TypeData" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">TypeData</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">header</span></em>, <em class="sig-param"><span class="n">type_vars</span></em>, <em class="sig-param"><span class="n">constructors</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.TypeData" title="Permalink to this definition">¶</a></dt>
 <dd><p>Stores the definition for an Algebraic Data Type (ADT) in Relay.</p>
 <p>Note that ADT definitions are treated as type-level functions because
 the type parameters need to be given for an instance of the ADT. Thus,
@@ -1032,9 +1033,9 @@ treated as different types.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.IRModule">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">IRModule</code><span class="sig-paren">(</span><em class="sig-param">functions=None</em>, <em class="sig-param">type_definitions=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">IRModule</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">functions</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">type_definitions</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModu [...]
 <dd><p>IRModule that holds functions and type definitions.</p>
 <p>IRModule is the basic unit for all IR transformations across the stack.</p>
 <dl class="field-list simple">
@@ -1072,9 +1073,9 @@ treated as different types.</p></li>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.IRModule.update">
-<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param">other</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.update" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">other</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.update" title="Permalink to this definition">¶</a></dt>
 <dd><p>Insert functions in another Module to current one.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1083,9 +1084,9 @@ treated as different types.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.IRModule.get_global_var">
-<code class="sig-name descname">get_global_var</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.get_global_var" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_global_var</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.get_global_var" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get a global variable in the function by name.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1103,7 +1104,7 @@ treated as different types.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.IRModule.get_global_vars">
 <code class="sig-name descname">get_global_vars</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.get_global_vars" title="Permalink to this definition">¶</a></dt>
 <dd><p>Collect all global vars defined in this module.</p>
@@ -1117,7 +1118,7 @@ treated as different types.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.IRModule.get_global_type_vars">
 <code class="sig-name descname">get_global_type_vars</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.get_global_type_vars" title="Permalink to this definition">¶</a></dt>
 <dd><p>Collect all global type vars defined in this module.</p>
@@ -1131,9 +1132,9 @@ treated as different types.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.IRModule.get_global_type_var">
-<code class="sig-name descname">get_global_type_var</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.get_global_type_var" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_global_type_var</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.get_global_type_var" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get a global type variable in the function by name.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1151,9 +1152,9 @@ treated as different types.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.IRModule.get_constructor">
-<code class="sig-name descname">get_constructor</code><span class="sig-paren">(</span><em class="sig-param">tag</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.get_constructor" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_constructor</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">tag</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.get_constructor" title="Permalink to this definition">¶</a></dt>
 <dd><p>Look up an ADT constructor by tag.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1171,9 +1172,9 @@ treated as different types.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.IRModule.from_expr">
-<em class="property">static </em><code class="sig-name descname">from_expr</code><span class="sig-paren">(</span><em class="sig-param">expr</em>, <em class="sig-param">functions=None</em>, <em class="sig-param">type_defs=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule.from_expr" title="Permalink to this definition">¶</a></dt>
+<em class="property">static </em><code class="sig-name descname">from_expr</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em>, <em class="sig-param"><span class="n">functions</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">type_defs</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.IRModule. [...]
 <dd><p>Construct a module from a standalone expression.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1196,7 +1197,7 @@ where expr is set as the entry point
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.Attrs">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Attrs</code><a class="headerlink" href="#tvm.ir.Attrs" title="Permalink to this definition">¶</a></dt>
 <dd><p>Attribute node, which is mainly use for defining attributes of relay operators.</p>
@@ -1226,7 +1227,7 @@ Attrs is passed as the first argument to these functions.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.Attrs.list_field_info">
 <code class="sig-name descname">list_field_info</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Attrs.list_field_info" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get fields information</p>
@@ -1240,7 +1241,7 @@ Attrs is passed as the first argument to these functions.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.Attrs.keys">
 <code class="sig-name descname">keys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Attrs.keys" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get list of names in the attribute.</p>
@@ -1254,9 +1255,9 @@ Attrs is passed as the first argument to these functions.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.Attrs.get_int_tuple">
-<code class="sig-name descname">get_int_tuple</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Attrs.get_int_tuple" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_int_tuple</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Attrs.get_int_tuple" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get a python int tuple of a key</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1271,9 +1272,9 @@ Attrs is passed as the first argument to these functions.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.Attrs.get_int">
-<code class="sig-name descname">get_int</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Attrs.get_int" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_int</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Attrs.get_int" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get a python int value of a key</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1288,9 +1289,9 @@ Attrs is passed as the first argument to these functions.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.Attrs.get_str">
-<code class="sig-name descname">get_str</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Attrs.get_str" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_str</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Attrs.get_str" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get a python int value of a key</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1307,7 +1308,7 @@ Attrs is passed as the first argument to these functions.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.DictAttrs">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">DictAttrs</code><a class="headerlink" href="#tvm.ir.DictAttrs" title="Permalink to this definition">¶</a></dt>
 <dd><p>Dictionary attributes.</p>
@@ -1326,7 +1327,7 @@ Attrs is passed as the first argument to these functions.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.DictAttrs.keys">
 <code class="sig-name descname">keys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.DictAttrs.keys" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get list of names in the attribute.</p>
@@ -1340,7 +1341,7 @@ Attrs is passed as the first argument to these functions.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.DictAttrs.items">
 <code class="sig-name descname">items</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.DictAttrs.items" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get items from the map.</p>
@@ -1348,9 +1349,9 @@ Attrs is passed as the first argument to these functions.</p>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.ir.make_node">
-<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">make_node</code><span class="sig-paren">(</span><em class="sig-param">type_key</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.make_node" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">make_node</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">type_key</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.make_node" title="Permalink to this definition">¶</a></dt>
 <dd><p>Make a new IR node by its type key and fields</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1381,7 +1382,7 @@ default value setup as supported by Attrs.</p>
 </div>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.Array">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Array</code><a class="headerlink" href="#tvm.ir.Array" title="Permalink to this definition">¶</a></dt>
 <dd><p>Array container of TVM.</p>
@@ -1391,7 +1392,7 @@ to Array during tvm function call.
 You may get Array in return values of TVM function call.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.ir.Map">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.ir.</code><code class="sig-name descname">Map</code><a class="headerlink" href="#tvm.ir.Map" title="Permalink to this definition">¶</a></dt>
 <dd><p>Map container of TVM.</p>
@@ -1410,7 +1411,7 @@ You can use convert to create a dict[Object-&gt; Object] into a Map</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.ir.Map.items">
 <code class="sig-name descname">items</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.ir.Map.items" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the items from the map</p>
@@ -1461,7 +1462,7 @@ You can use convert to create a dict[Object-&gt; Object] into a Map</p>
 </tr>
 </tbody>
 </table>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.transform.ModulePass">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">ModulePass</code><a class="headerlink" href="#tvm.transform.ModulePass" title="Permalink to this definition">¶</a></dt>
 <dd><p>A pass that works on tvm.IRModule. Users don’t need to interact with
@@ -1472,7 +1473,7 @@ addition, all members of a module pass can be accessed from the base class.
 The same rule applies to FunctionPass as well.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.transform.Pass">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">Pass</code><a class="headerlink" href="#tvm.transform.Pass" title="Permalink to this definition">¶</a></dt>
 <dd><p>The base class of all passes. All methods here are just simple wrappers
@@ -1490,7 +1491,7 @@ conveniently interact with the base class.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.transform.Pass.info">
 <em class="property">property </em><code class="sig-name descname">info</code><a class="headerlink" href="#tvm.transform.Pass.info" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the pass meta.</p>
@@ -1498,9 +1499,9 @@ conveniently interact with the base class.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.transform.PassContext">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">PassContext</code><span class="sig-paren">(</span><em class="sig-param">opt_level=2</em>, <em class="sig-param">fallback_device=cpu(0)</em>, <em class="sig-param">required_pass=None</em>, <em class="sig-param">disabled_pass=None</em>, <em class="sig-param">trace=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.transform.PassContext" title=" [...]
+<em class="property">class </em><code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">PassContext</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">opt_level</span><span class="o">=</span><span class="default_value">2</span></em>, <em class="sig-param"><span class="n">fallback_device</span><span class="o">=</span><span class="default_value">cpu(0)</span></em>, <em class="sig-param"><span class="n">required_pass</span><span  [...]
 <dd><p>The basis where a Relay optimization/analysis runs on.
 Each pass context contains a number of auxiliary information that is used
 to help an optimization pass. Such information includes the error reporter
@@ -1528,7 +1529,7 @@ operators that are not annotated during heterogeneous execution.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.transform.PassContext.current">
 <em class="property">static </em><code class="sig-name descname">current</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.transform.PassContext.current" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return the current pass context.</p>
@@ -1536,9 +1537,9 @@ operators that are not annotated during heterogeneous execution.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.transform.PassInfo">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">PassInfo</code><span class="sig-paren">(</span><em class="sig-param">opt_level</em>, <em class="sig-param">name</em>, <em class="sig-param">required=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.transform.PassInfo" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">PassInfo</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">opt_level</span></em>, <em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">required</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.transform.PassInf [...]
 <dd><p>The class contains the meta data required by a pass. It is the
 container of information needed by running an optimization or analysis.
 This class can be extended by adding new members when more meta data is
@@ -1554,9 +1555,9 @@ needed.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.transform.PrintIR">
-<code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">PrintIR</code><span class="sig-paren">(</span><em class="sig-param">header=''</em>, <em class="sig-param">show_meta_data=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.transform.PrintIR" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">PrintIR</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">header</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">show_meta_data</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.transform.PrintIR" title="Permalink to th [...]
 <dd><p>A special trace pass that prints the header and IR.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1574,9 +1575,9 @@ needed.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.transform.Sequential">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">Sequential</code><span class="sig-paren">(</span><em class="sig-param">passes=None</em>, <em class="sig-param">opt_level=2</em>, <em class="sig-param">name='sequential'</em>, <em class="sig-param">required=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.transform.Sequential" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">Sequential</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">passes</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">opt_level</span><span class="o">=</span><span class="default_value">2</span></em>, <em class="sig-param"><span class="n">name</span><span class="o">=</span><sp [...]
 <dd><p>A pass that works on a sequence of pass objects. Multiple passes can be
 executed sequentially using this class.</p>
 <p>Note that users can also provide a series of passes that they don’t want to
@@ -1597,9 +1598,9 @@ if their opt_level is higher than the provided opt_level.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.transform.module_pass">
-<code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">module_pass</code><span class="sig-paren">(</span><em class="sig-param">pass_func=None</em>, <em class="sig-param">opt_level=None</em>, <em class="sig-param">name=None</em>, <em class="sig-param">required=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.transform.module_pass" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.transform.</code><code class="sig-name descname">module_pass</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pass_func</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">opt_level</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">name</span><span class="o">=</span><span class="default_value"> [...]
 <dd><p>Decorate a module pass.</p>
 <p>This function returns a callback when pass_func is provided.
 Otherwise, it serves a decorator function.</p>
diff --git a/docs/api/python/ndarray.html b/docs/api/python/ndarray.html
index 849b902..c55efa8 100644
--- a/docs/api/python/ndarray.html
+++ b/docs/api/python/ndarray.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="driver.html">tvm.driver</a></li>
@@ -211,7 +212,7 @@
   <div class="section" id="module-tvm.runtime.ndarray">
 <span id="tvm-runtime-ndarray"></span><h1>tvm.runtime.ndarray<a class="headerlink" href="#module-tvm.runtime.ndarray" title="Permalink to this headline">¶</a></h1>
 <p>Runtime NDArray API</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.nd.NDArray">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.nd.</code><code class="sig-name descname">NDArray</code><a class="headerlink" href="#tvm.nd.NDArray" title="Permalink to this definition">¶</a></dt>
 <dd><p>Lightweight NDArray class of TVM runtime.</p>
@@ -221,27 +222,27 @@ All operations are performed by TVM functions.</p>
 <p>The goal is not to re-build yet another array library.
 Instead, this is a minimal data structure to demonstrate
 how can we use TVM in existing project which might have their own array containers.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.nd.NDArray.dtype">
 <em class="property">property </em><code class="sig-name descname">dtype</code><a class="headerlink" href="#tvm.nd.NDArray.dtype" title="Permalink to this definition">¶</a></dt>
 <dd><p>Type of this array</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.nd.NDArray.ctx">
 <em class="property">property </em><code class="sig-name descname">ctx</code><a class="headerlink" href="#tvm.nd.NDArray.ctx" title="Permalink to this definition">¶</a></dt>
 <dd><p>context of this array</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.nd.NDArray.context">
 <em class="property">property </em><code class="sig-name descname">context</code><a class="headerlink" href="#tvm.nd.NDArray.context" title="Permalink to this definition">¶</a></dt>
 <dd><p>context of this array</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.nd.NDArray.same_as">
-<code class="sig-name descname">same_as</code><span class="sig-paren">(</span><em class="sig-param">other</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.NDArray.same_as" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">same_as</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">other</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.NDArray.same_as" title="Permalink to this definition">¶</a></dt>
 <dd><p>Check object identity equality</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -256,9 +257,9 @@ how can we use TVM in existing project which might have their own array containe
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.nd.NDArray.copyfrom">
-<code class="sig-name descname">copyfrom</code><span class="sig-paren">(</span><em class="sig-param">source_array</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.NDArray.copyfrom" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">copyfrom</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_array</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.NDArray.copyfrom" title="Permalink to this definition">¶</a></dt>
 <dd><p>Peform an synchronize copy from the array.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -273,7 +274,7 @@ how can we use TVM in existing project which might have their own array containe
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.nd.NDArray.asnumpy">
 <code class="sig-name descname">asnumpy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.NDArray.asnumpy" title="Permalink to this definition">¶</a></dt>
 <dd><p>Convert this array to numpy array</p>
@@ -287,9 +288,9 @@ how can we use TVM in existing project which might have their own array containe
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.nd.NDArray.copyto">
-<code class="sig-name descname">copyto</code><span class="sig-paren">(</span><em class="sig-param">target</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.NDArray.copyto" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">copyto</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.NDArray.copyto" title="Permalink to this definition">¶</a></dt>
 <dd><p>Copy array to target</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -298,13 +299,13 @@ how can we use TVM in existing project which might have their own array containe
 </dl>
 </dd></dl>
 
-<dl class="attribute">
+<dl class="py attribute">
 <dt id="tvm.nd.NDArray.shape">
 <code class="sig-name descname">shape</code><a class="headerlink" href="#tvm.nd.NDArray.shape" title="Permalink to this definition">¶</a></dt>
 <dd><p>Shape of this array</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.nd.NDArray.to_dlpack">
 <code class="sig-name descname">to_dlpack</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.NDArray.to_dlpack" title="Permalink to this definition">¶</a></dt>
 <dd><p>Produce an array from a DLPack Tensor without copying memory</p>
@@ -320,9 +321,9 @@ how can we use TVM in existing project which might have their own array containe
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.nd.array">
-<code class="sig-prename descclassname">tvm.nd.</code><code class="sig-name descname">array</code><span class="sig-paren">(</span><em class="sig-param">arr</em>, <em class="sig-param">ctx=cpu(0)</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.array" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.nd.</code><code class="sig-name descname">array</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">arr</span></em>, <em class="sig-param"><span class="n">ctx</span><span class="o">=</span><span class="default_value">cpu(0)</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.array" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create an array from source arr.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -340,9 +341,9 @@ how can we use TVM in existing project which might have their own array containe
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.nd.empty">
-<code class="sig-prename descclassname">tvm.nd.</code><code class="sig-name descname">empty</code><span class="sig-paren">(</span><em class="sig-param">shape</em>, <em class="sig-param">dtype='float32'</em>, <em class="sig-param">ctx=cpu(0)</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.nd.empty" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.nd.</code><code class="sig-name descname">empty</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">shape</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">'float32'</span></em>, <em class="sig-param"><span class="n">ctx</span><span class="o">=</span><span class="default_value">cpu(0)</span></em><span class="sig-paren">)</span><a class="headerlink" href="#t [...]
 <dd><p>Create an empty array given shape and device</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
diff --git a/docs/api/python/relay/analysis.html b/docs/api/python/relay/analysis.html
index 596ea4f..2624873 100644
--- a/docs/api/python/relay/analysis.html
+++ b/docs/api/python/relay/analysis.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="../tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../driver.html">tvm.driver</a></li>
@@ -289,9 +290,9 @@
 </tr>
 </tbody>
 </table>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.analysis.AnnotatedRegionSet">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">AnnotatedRegionSet</code><span class="sig-paren">(</span><em class="sig-param">expr</em>, <em class="sig-param">region_begin_op</em>, <em class="sig-param">region_end_op</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.AnnotatedRegionSet" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">AnnotatedRegionSet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em>, <em class="sig-param"><span class="n">region_begin_op</span></em>, <em class="sig-param"><span class="n">region_end_op</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.AnnotatedRegionSet" title="Permalink to [...]
 <dd><p>Class to represent a relay expression split into regions.</p>
 <p><strong>Methods</strong></p>
 <table class="longtable docutils align-default">
@@ -305,9 +306,9 @@
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.analysis.AnnotatedRegionSet.get_region">
-<code class="sig-name descname">get_region</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.AnnotatedRegionSet.get_region" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_region</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.AnnotatedRegionSet.get_region" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the region an expression belongs to.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -325,9 +326,9 @@ None if not found.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.analysis.CallGraph">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">CallGraph</code><span class="sig-paren">(</span><em class="sig-param">module</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">CallGraph</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">module</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph" title="Permalink to this definition">¶</a></dt>
 <dd><p>Class to represent a call graph.</p>
 <p><strong>Methods</strong></p>
 <table class="longtable docutils align-default">
@@ -362,7 +363,7 @@ None if not found.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.analysis.CallGraph.module">
 <em class="property">property </em><code class="sig-name descname">module</code><a class="headerlink" href="#tvm.relay.analysis.CallGraph.module" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return the contained Relay IR module.</p>
@@ -379,9 +380,9 @@ None if not found.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.analysis.CallGraph.ref_count">
-<code class="sig-name descname">ref_count</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph.ref_count" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">ref_count</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph.ref_count" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return the number of references to the global var</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -396,9 +397,9 @@ None if not found.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.analysis.CallGraph.global_call_count">
-<code class="sig-name descname">global_call_count</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph.global_call_count" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">global_call_count</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph.global_call_count" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return the number of global function calls from a given global var.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -413,9 +414,9 @@ None if not found.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.analysis.CallGraph.is_recursive">
-<code class="sig-name descname">is_recursive</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph.is_recursive" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">is_recursive</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph.is_recursive" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return if the function corresponding to a var is a recursive
 function.</p>
 <dl class="field-list simple">
@@ -431,9 +432,9 @@ function.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.analysis.CallGraph.print_var">
-<code class="sig-name descname">print_var</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph.print_var" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">print_var</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.CallGraph.print_var" title="Permalink to this definition">¶</a></dt>
 <dd><p>Print a call graph of a global function by name or by variable.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -450,7 +451,7 @@ function.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.analysis.Feature">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">Feature</code><a class="headerlink" href="#tvm.relay.analysis.Feature" title="Permalink to this definition">¶</a></dt>
 <dd><p>The features a program might contain.</p>
@@ -469,13 +470,13 @@ function.</p>
 </tr>
 </tbody>
 </table>
-<dl class="attribute">
+<dl class="py attribute">
 <dt id="tvm.relay.analysis.Feature.fMatch">
 <code class="sig-name descname">fMatch</code><em class="property"> = 14</em><a class="headerlink" href="#tvm.relay.analysis.Feature.fMatch" title="Permalink to this definition">¶</a></dt>
 <dd><p>Whether any non-atom fragment of the program is shared, making the program a graph.</p>
 </dd></dl>
 
-<dl class="attribute">
+<dl class="py attribute">
 <dt id="tvm.relay.analysis.Feature.fGraph">
 <code class="sig-name descname">fGraph</code><em class="property"> = 15</em><a class="headerlink" href="#tvm.relay.analysis.Feature.fGraph" title="Permalink to this definition">¶</a></dt>
 <dd><p>Whether there is local fixpoint in the program.</p>
@@ -483,9 +484,9 @@ function.</p>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.all_type_vars">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">all_type_vars</code><span class="sig-paren">(</span><em class="sig-param">expr</em>, <em class="sig-param">mod=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.all_type_vars" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">all_type_vars</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em>, <em class="sig-param"><span class="n">mod</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.all_type_vars" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get all type variables from expression/type e</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -503,9 +504,9 @@ function.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.all_vars">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">all_vars</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.all_vars" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">all_vars</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.all_vars" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get all vars from expression expr in post-DFS order.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -520,9 +521,9 @@ function.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.bound_type_vars">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">bound_type_vars</code><span class="sig-paren">(</span><em class="sig-param">expr</em>, <em class="sig-param">mod=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.bound_type_vars" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">bound_type_vars</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em>, <em class="sig-param"><span class="n">mod</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.bound_type_vars" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get bound type variables from expression/type e</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -540,9 +541,9 @@ function.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.bound_vars">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">bound_vars</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.bound_vars" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">bound_vars</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.bound_vars" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get bound vars from expression expr in post-DFS order.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -557,9 +558,9 @@ function.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.check_constant">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">check_constant</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.check_constant" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">check_constant</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.check_constant" title="Permalink to this definition">¶</a></dt>
 <dd><p>Check whether an expression is constant</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -574,9 +575,9 @@ function.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.check_kind">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">check_kind</code><span class="sig-paren">(</span><em class="sig-param">t</em>, <em class="sig-param">mod=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.check_kind" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">check_kind</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">t</span></em>, <em class="sig-param"><span class="n">mod</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.check_kind" title="Permalink to this definition">¶</a></dt>
 <dd><p>Check that the type is well kinded and return the kind.
 For example, this mean type cannot has tensor of tensor, or is a tuple type
 of 2 shapes.</p>
@@ -601,9 +602,9 @@ of 2 shapes.</p>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.collect_device_annotation_ops">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">collect_device_annotation_ops</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.collect_device_annotation_ops" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">collect_device_annotation_ops</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.collect_device_annotation_ops" title="Permalink to this definition">¶</a></dt>
 <dd><p>Collect the device annotation ops for the given expression.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -619,9 +620,9 @@ annotation expressions.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.collect_device_info">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">collect_device_info</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.collect_device_info" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">collect_device_info</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.collect_device_info" title="Permalink to this definition">¶</a></dt>
 <dd><p>Collect the device allocation map for the given expression. The device
 ids are propagated from the <cite>device_copy</cite> operators.</p>
 <dl class="field-list simple">
@@ -637,9 +638,9 @@ ids are propagated from the <cite>device_copy</cite> operators.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.detect_feature">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">detect_feature</code><span class="sig-paren">(</span><em class="sig-param">a</em>, <em class="sig-param">b=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.detect_feature" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">detect_feature</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">a</span></em>, <em class="sig-param"><span class="n">b</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.detect_feature" title="Permalink to this definition">¶</a></dt>
 <dd><p>Detect the feature used in a relay program.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -658,9 +659,9 @@ The two arguments cannot both be expression or module.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.extract_fused_functions">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">extract_fused_functions</code><span class="sig-paren">(</span><em class="sig-param">mod</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.extract_fused_functions" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">extract_fused_functions</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.extract_fused_functions" title="Permalink to this definition">¶</a></dt>
 <dd><p>Pass to extract IRModule of only fused primitive functions.</p>
 <p>The ExtractFusedFunctions pass invokes SimplifyInference, FuseOps(3),
 and ExtractFusedFunctions in that order</p>
@@ -677,9 +678,9 @@ and ExtractFusedFunctions in that order</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.free_type_vars">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">free_type_vars</code><span class="sig-paren">(</span><em class="sig-param">expr</em>, <em class="sig-param">mod=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.free_type_vars" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">free_type_vars</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em>, <em class="sig-param"><span class="n">mod</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.free_type_vars" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get free type variables from expression/type e</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -697,9 +698,9 @@ and ExtractFusedFunctions in that order</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.free_vars">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">free_vars</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.free_vars" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">free_vars</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.free_vars" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get free Vars from expression expr in Post DFS order.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -720,9 +721,9 @@ are ordered first.</p>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.get_total_mac_number">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">get_total_mac_number</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.get_total_mac_number" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">get_total_mac_number</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.get_total_mac_number" title="Permalink to this definition">¶</a></dt>
 <dd><p>Count the number of MACs (multiply-accumulate) of a model</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -737,9 +738,9 @@ are ordered first.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.post_order_visit">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">post_order_visit</code><span class="sig-paren">(</span><em class="sig-param">expr</em>, <em class="sig-param">fvisit</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.post_order_visit" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">post_order_visit</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em>, <em class="sig-param"><span class="n">fvisit</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.post_order_visit" title="Permalink to this definition">¶</a></dt>
 <dd><p>Recursively visit the ir in post DFS order node,
 apply fvisit. Each node is guaranteed to be visited
 only once.</p>
@@ -753,9 +754,9 @@ only once.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.search_fc_transpose">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">search_fc_transpose</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.search_fc_transpose" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">search_fc_transpose</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.search_fc_transpose" title="Permalink to this definition">¶</a></dt>
 <dd><p>Search fc weight name in the patten: y = nn.dense(x, transpose(w, [1, 0]))</p>
 <p>This function is used in the data_dep_optimization.simplify_fc_transpose method</p>
 <dl class="field-list simple">
@@ -771,9 +772,9 @@ only once.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.unmatched_cases">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">unmatched_cases</code><span class="sig-paren">(</span><em class="sig-param">match</em>, <em class="sig-param">mod=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.unmatched_cases" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">unmatched_cases</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">match</span></em>, <em class="sig-param"><span class="n">mod</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.unmatched_cases" title="Permalink to this definition">¶</a></dt>
 <dd><p>Finds cases that the match expression does not catch, if any.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -791,9 +792,9 @@ only once.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.analysis.well_formed">
-<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">well_formed</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.well_formed" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.analysis.</code><code class="sig-name descname">well_formed</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.analysis.well_formed" title="Permalink to this definition">¶</a></dt>
 <dd><p>Check that each Var is only bound once (well formed).</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
diff --git a/docs/api/python/relay/backend.html b/docs/api/python/relay/backend.html
index 829b6bf..f358467 100644
--- a/docs/api/python/relay/backend.html
+++ b/docs/api/python/relay/backend.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="../tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../driver.html">tvm.driver</a></li>
@@ -212,23 +213,23 @@
 <span id="tvm-relay-backend"></span><h1>tvm.relay.backend<a class="headerlink" href="#module-tvm.relay.backend" title="Permalink to this headline">¶</a></h1>
 <p>Backend codegen modules for relay.</p>
 <span class="target" id="module-tvm.relay.backend.interpreter"></span><p>The Python interface to the Relay reference interpreter.</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.interpreter.ConstructorValue">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.interpreter.</code><code class="sig-name descname">ConstructorValue</code><span class="sig-paren">(</span><em class="sig-param">tag</em>, <em class="sig-param">fields</em>, <em class="sig-param">constructor</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.interpreter.ConstructorValue" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.interpreter.</code><code class="sig-name descname">ConstructorValue</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">tag</span></em>, <em class="sig-param"><span class="n">fields</span></em>, <em class="sig-param"><span class="n">constructor</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.interpreter.ConstructorValue" title="Permal [...]
 <dd></dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.interpreter.RefValue">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.interpreter.</code><code class="sig-name descname">RefValue</code><span class="sig-paren">(</span><em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.interpreter.RefValue" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.interpreter.</code><code class="sig-name descname">RefValue</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">value</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.interpreter.RefValue" title="Permalink to this definition">¶</a></dt>
 <dd></dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.interpreter.Executor">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.interpreter.</code><code class="sig-name descname">Executor</code><a class="headerlink" href="#tvm.relay.backend.interpreter.Executor" title="Permalink to this definition">¶</a></dt>
 <dd><p>An abstract interface for executing Relay programs.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.interpreter.Executor.evaluate">
-<code class="sig-name descname">evaluate</code><span class="sig-paren">(</span><em class="sig-param">expr=None</em>, <em class="sig-param">binds=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.interpreter.Executor.evaluate" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">evaluate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">binds</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.interpreter.Executor.evaluate" title="Permalink to this definition">¶</a></dt>
 <dd><p>Evaluate a Relay expression on the executor.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -248,9 +249,9 @@
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.interpreter.Interpreter">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.interpreter.</code><code class="sig-name descname">Interpreter</code><span class="sig-paren">(</span><em class="sig-param">mod</em>, <em class="sig-param">ctx</em>, <em class="sig-param">target</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.interpreter.Interpreter" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.interpreter.</code><code class="sig-name descname">Interpreter</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span></em>, <em class="sig-param"><span class="n">ctx</span></em>, <em class="sig-param"><span class="n">target</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.interpreter.Interpreter" title="Permalink to this defini [...]
 <dd><p>Simple interpreter interface.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -261,7 +262,7 @@
 </ul>
 </dd>
 </dl>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.interpreter.Interpreter.optimize">
 <code class="sig-name descname">optimize</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.interpreter.Interpreter.optimize" title="Permalink to this definition">¶</a></dt>
 <dd><p>Optimize functions in a module.</p>
@@ -278,15 +279,15 @@
 </dd></dl>
 
 <span class="target" id="module-tvm.relay.backend.compile_engine"></span><p>Backend code generation engine.</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.compile_engine.LoweredOutput">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">LoweredOutput</code><span class="sig-paren">(</span><em class="sig-param">outputs</em>, <em class="sig-param">implement</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.LoweredOutput" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">LoweredOutput</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">outputs</span></em>, <em class="sig-param"><span class="n">implement</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.LoweredOutput" title="Permalink to this definition">¶</a></dt>
 <dd><p>Lowered output</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.compile_engine.CCacheKey">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">CCacheKey</code><span class="sig-paren">(</span><em class="sig-param">source_func</em>, <em class="sig-param">target</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.CCacheKey" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">CCacheKey</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_func</span></em>, <em class="sig-param"><span class="n">target</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.CCacheKey" title="Permalink to this definition">¶</a></dt>
 <dd><p>Key in the CompileEngine.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -298,21 +299,21 @@
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.compile_engine.CCacheValue">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">CCacheValue</code><a class="headerlink" href="#tvm.relay.backend.compile_engine.CCacheValue" title="Permalink to this definition">¶</a></dt>
 <dd><p>Value in the CompileEngine, including usage statistics.</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.backend.compile_engine.get_shape">
-<code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">get_shape</code><span class="sig-paren">(</span><em class="sig-param">shape</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.get_shape" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">get_shape</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">shape</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.get_shape" title="Permalink to this definition">¶</a></dt>
 <dd><p>Convert the shape to correct dtype and vars.</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.backend.compile_engine.get_valid_implementations">
-<code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">get_valid_implementations</code><span class="sig-paren">(</span><em class="sig-param">op</em>, <em class="sig-param">attrs</em>, <em class="sig-param">inputs</em>, <em class="sig-param">out_type</em>, <em class="sig-param">target</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.get_valid_implementations" title="Permalink to this  [...]
+<code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">get_valid_implementations</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">op</span></em>, <em class="sig-param"><span class="n">attrs</span></em>, <em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">out_type</span></em>, <em class="sig-param"><span class="n">target</span></em><span class="sig-paren">)</span [...]
 <dd><p>Get all valid implementations from the op strategy.</p>
 <p>Note that this function doesn’t support op with symbolic input shapes.</p>
 <dl class="field-list simple">
@@ -334,9 +335,9 @@
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.backend.compile_engine.select_implementation">
-<code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">select_implementation</code><span class="sig-paren">(</span><em class="sig-param">op</em>, <em class="sig-param">attrs</em>, <em class="sig-param">inputs</em>, <em class="sig-param">out_type</em>, <em class="sig-param">target</em>, <em class="sig-param">use_autotvm=True</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.select_impl [...]
+<code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">select_implementation</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">op</span></em>, <em class="sig-param"><span class="n">attrs</span></em>, <em class="sig-param"><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">out_type</span></em>, <em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class [...]
 <dd><p>Select the best implementation from the op strategy.</p>
 <p>If use_autotvm is True, it’ll first try to find the best implementation
 based on AutoTVM profile results. If no AutoTVM profile result is found,
@@ -364,13 +365,13 @@ highest plevel.</p>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.compile_engine.CompileEngine">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">CompileEngine</code><a class="headerlink" href="#tvm.relay.backend.compile_engine.CompileEngine" title="Permalink to this definition">¶</a></dt>
 <dd><p>CompileEngine to get lowered code.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.compile_engine.CompileEngine.lower">
-<code class="sig-name descname">lower</code><span class="sig-paren">(</span><em class="sig-param">source_func</em>, <em class="sig-param">target=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.CompileEngine.lower" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">lower</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_func</span></em>, <em class="sig-param"><span class="n">target</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.CompileEngine.lower" title="Permalink to this definition">¶</a></dt>
 <dd><p>Lower a source_func to a CachedFunc.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -388,9 +389,9 @@ highest plevel.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.compile_engine.CompileEngine.jit">
-<code class="sig-name descname">jit</code><span class="sig-paren">(</span><em class="sig-param">source_func</em>, <em class="sig-param">target=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.CompileEngine.jit" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">jit</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_func</span></em>, <em class="sig-param"><span class="n">target</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.CompileEngine.jit" title="Permalink to this definition">¶</a></dt>
 <dd><p>JIT a source_func to a tvm.runtime.PackedFunc.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -408,13 +409,13 @@ highest plevel.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.compile_engine.CompileEngine.clear">
 <code class="sig-name descname">clear</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.CompileEngine.clear" title="Permalink to this definition">¶</a></dt>
 <dd><p>clear the existing cached functions</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.compile_engine.CompileEngine.items">
 <code class="sig-name descname">items</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.CompileEngine.items" title="Permalink to this definition">¶</a></dt>
 <dd><p>List items in the cache.</p>
@@ -428,7 +429,7 @@ highest plevel.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.compile_engine.CompileEngine.dump">
 <code class="sig-name descname">dump</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.CompileEngine.dump" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return a string representation of engine dump.</p>
@@ -444,7 +445,7 @@ highest plevel.</p>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.backend.compile_engine.get">
 <code class="sig-prename descclassname">tvm.relay.backend.compile_engine.</code><code class="sig-name descname">get</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.compile_engine.get" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the global compile engine.</p>
@@ -471,13 +472,13 @@ This “little language” represents programs in TVM’s graph format.</p>
 <p>To connect to the graph runtime, we use a printer that converts our graph format
 into TVM’s JSON format. The resulting string can be loaded by
 contrib.graph_runtime or any other TVM runtime compatible systems.</p>
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.graph_runtime_codegen.GraphRuntimeCodegen">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.graph_runtime_codegen.</code><code class="sig-name descname">GraphRuntimeCodegen</code><span class="sig-paren">(</span><em class="sig-param">mod</em>, <em class="sig-param">target</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.graph_runtime_codegen.GraphRuntimeCodegen" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.graph_runtime_codegen.</code><code class="sig-name descname">GraphRuntimeCodegen</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span></em>, <em class="sig-param"><span class="n">target</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.graph_runtime_codegen.GraphRuntimeCodegen" title="Permalink to this definition">¶</a></dt>
 <dd><p>The compiler from Relay to the TVM runtime system.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.graph_runtime_codegen.GraphRuntimeCodegen.codegen">
-<code class="sig-name descname">codegen</code><span class="sig-paren">(</span><em class="sig-param">func</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.graph_runtime_codegen.GraphRuntimeCodegen.codegen" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">codegen</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">func</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.graph_runtime_codegen.GraphRuntimeCodegen.codegen" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compile a single function into a graph.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -498,9 +499,9 @@ contrib.graph_runtime or any other TVM runtime compatible systems.</p>
 
 <span class="target" id="module-tvm.relay.backend.vm"></span><p>The Relay Virtual Machine.</p>
 <p>Implements a Python interface to compiling and executing on the Relay VM.</p>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.backend.vm.compile">
-<code class="sig-prename descclassname">tvm.relay.backend.vm.</code><code class="sig-name descname">compile</code><span class="sig-paren">(</span><em class="sig-param">mod</em>, <em class="sig-param">target=None</em>, <em class="sig-param">target_host=None</em>, <em class="sig-param">params=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.compile" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.backend.vm.</code><code class="sig-name descname">compile</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span></em>, <em class="sig-param"><span class="n">target</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">target_host</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">params [...]
 <dd><p>Compile the module to VM executable. A helper function for VMCompiler.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -529,13 +530,13 @@ during inference time. Used for constant folding.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.vm.VMCompiler">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.vm.</code><code class="sig-name descname">VMCompiler</code><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compiler that compiles Relay module to VM executable.</p>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.vm.VMCompiler.set_params">
-<code class="sig-name descname">set_params</code><span class="sig-paren">(</span><em class="sig-param">params</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler.set_params" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">set_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">params</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler.set_params" title="Permalink to this definition">¶</a></dt>
 <dd><p>Set constant parameters for the model.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -545,15 +546,15 @@ during inference time. Used for constant folding.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.vm.VMCompiler.get_params">
 <code class="sig-name descname">get_params</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler.get_params" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return the updated weights.</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.vm.VMCompiler.lower">
-<code class="sig-name descname">lower</code><span class="sig-paren">(</span><em class="sig-param">mod</em>, <em class="sig-param">target=None</em>, <em class="sig-param">target_host=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler.lower" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">lower</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span></em>, <em class="sig-param"><span class="n">target</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">target_host</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler.lower" title="Permalink [...]
 <dd><p>Lower the module to VM bytecode.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -574,15 +575,15 @@ otherwise a stackvm intepreter is used.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.vm.VMCompiler.codegen">
 <code class="sig-name descname">codegen</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler.codegen" title="Permalink to this definition">¶</a></dt>
 <dd><p>Generate the kernel library.</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.vm.VMCompiler.optimize">
-<code class="sig-name descname">optimize</code><span class="sig-paren">(</span><em class="sig-param">mod</em>, <em class="sig-param">target=None</em>, <em class="sig-param">params=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler.optimize" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">optimize</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span></em>, <em class="sig-param"><span class="n">target</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">params</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler.optimize" title="Permalin [...]
 <dd><p>Helper method that optimizes a Relay module via VM.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -603,7 +604,7 @@ during inference time. Used for constant folding.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.backend.vm.VMCompiler.get_exec">
 <code class="sig-name descname">get_exec</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMCompiler.get_exec" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the VM executable.</p>
@@ -619,9 +620,9 @@ during inference time. Used for constant folding.</p></li>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.backend.vm.VMExecutor">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.vm.</code><code class="sig-name descname">VMExecutor</code><span class="sig-paren">(</span><em class="sig-param">mod</em>, <em class="sig-param">ctx</em>, <em class="sig-param">target</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMExecutor" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.backend.vm.</code><code class="sig-name descname">VMExecutor</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span></em>, <em class="sig-param"><span class="n">ctx</span></em>, <em class="sig-param"><span class="n">target</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.backend.vm.VMExecutor" title="Permalink to this definition">¶</a></dt>
 <dd><p>An implementation of the executor interface for
 the Relay VM.</p>
 <p>Useful interface for experimentation and debugging
diff --git a/docs/api/python/relay/frontend.html b/docs/api/python/relay/frontend.html
index 7a06382..7785574 100644
--- a/docs/api/python/relay/frontend.html
+++ b/docs/api/python/relay/frontend.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="../tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../driver.html">tvm.driver</a></li>
@@ -249,9 +250,9 @@ for Relay.</p>
 </tr>
 </tbody>
 </table>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.frontend.from_mxnet">
-<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_mxnet</code><span class="sig-paren">(</span><em class="sig-param">symbol</em>, <em class="sig-param">shape=None</em>, <em class="sig-param">dtype='float32'</em>, <em class="sig-param">arg_params=None</em>, <em class="sig-param">aux_params=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_mxnet" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_mxnet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">symbol</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">'float32'</span></em>, <em class="sig-param"><span class="n">arg_ [...]
 <dd><p>Convert from MXNet”s model into compatible relay Function.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -273,9 +274,9 @@ for Relay.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.frontend.from_keras">
-<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_keras</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">shape=None</em>, <em class="sig-param">layout='NCHW'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_keras" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_keras</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">model</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">layout</span><span class="o">=</span><span class="default_value">'NCHW'</span></em><span class="sig-paren">)</span><a class="heade [...]
 <dd><p>Convert keras model to relay Function.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -297,9 +298,9 @@ performs better across TVM.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.frontend.from_onnx">
-<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_onnx</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">shape=None</em>, <em class="sig-param">dtype='float32'</em>, <em class="sig-param">opset=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_onnx" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_onnx</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">model</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">'float32'</span></em>, <em class="sig-param"><span class="n">opset< [...]
 <dd><p>Convert a ONNX model into an equivalent Relay Function.</p>
 <p>ONNX graphs are represented as Python Protobuf objects.
 The companion parameters will be handled automatically.
@@ -327,9 +328,9 @@ This can be helpful for some testing.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.frontend.from_tflite">
-<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_tflite</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">shape_dict</em>, <em class="sig-param">dtype_dict</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_tflite" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_tflite</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">model</span></em>, <em class="sig-param"><span class="n">shape_dict</span></em>, <em class="sig-param"><span class="n">dtype_dict</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_tflite" title="Permalink to this definition">¶</a></dt>
 <dd><p>Convert from tflite model into compatible relay Function.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -349,9 +350,9 @@ This can be helpful for some testing.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.frontend.from_coreml">
-<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_coreml</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">shape=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_coreml" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_coreml</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">model</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_coreml" title="Permalink to this definition">¶</a></dt>
 <dd><p>Convert from coreml model into Relay Function.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -370,9 +371,9 @@ This can be helpful for some testing.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.frontend.from_caffe2">
-<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_caffe2</code><span class="sig-paren">(</span><em class="sig-param">init_net</em>, <em class="sig-param">predict_net</em>, <em class="sig-param">shape=None</em>, <em class="sig-param">dtype='float32'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_caffe2" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_caffe2</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">init_net</span></em>, <em class="sig-param"><span class="n">predict_net</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value" [...]
 <dd><p>Load caffe2 graph which contains init_net and predict_net into Relay Function.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -393,9 +394,9 @@ This can be helpful for some testing.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.frontend.from_tensorflow">
-<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_tensorflow</code><span class="sig-paren">(</span><em class="sig-param">graph</em>, <em class="sig-param">layout='NHWC'</em>, <em class="sig-param">shape=None</em>, <em class="sig-param">outputs=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_tensorflow" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_tensorflow</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">graph</span></em>, <em class="sig-param"><span class="n">layout</span><span class="o">=</span><span class="default_value">'NHWC'</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">ou [...]
 <dd><p>Load tensorflow graph which is a python tensorflow graph object into relay.
 The companion parameters will be handled automatically.</p>
 <dl class="field-list simple">
@@ -417,9 +418,9 @@ The companion parameters will be handled automatically.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.frontend.from_darknet">
-<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_darknet</code><span class="sig-paren">(</span><em class="sig-param">net</em>, <em class="sig-param">shape=None</em>, <em class="sig-param">dtype='float32'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_darknet" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_darknet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">net</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">'float32'</span></em><span class="sig-paren">)</span><a class="hea [...]
 <dd><p>Convert from Darknet’s model into compatible relay Function.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -439,9 +440,9 @@ The companion parameters will be handled automatically.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.frontend.from_pytorch">
-<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_pytorch</code><span class="sig-paren">(</span><em class="sig-param">script_module</em>, <em class="sig-param">input_shapes</em>, <em class="sig-param">custom_convert_map=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.from_pytorch" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.frontend.</code><code class="sig-name descname">from_pytorch</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">script_module</span></em>, <em class="sig-param"><span class="n">input_shapes</span></em>, <em class="sig-param"><span class="n">custom_convert_map</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.frontend.fro [...]
 <dd><p>Load PyTorch model in the form of a scripted PyTorch model and convert into relay.
 The companion parameters will be handled automatically.</p>
 <dl class="field-list simple">
diff --git a/docs/api/python/relay/image.html b/docs/api/python/relay/image.html
index 6b50e69..ad27190 100644
--- a/docs/api/python/relay/image.html
+++ b/docs/api/python/relay/image.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="../tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../driver.html">tvm.driver</a></li>
@@ -229,9 +230,9 @@
 </tr>
 </tbody>
 </table>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.image.crop_and_resize">
-<code class="sig-prename descclassname">tvm.relay.image.</code><code class="sig-name descname">crop_and_resize</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">boxes</em>, <em class="sig-param">box_indices</em>, <em class="sig-param">crop_size</em>, <em class="sig-param">layout</em>, <em class="sig-param">method='bilinear'</em>, <em class="sig-param">extrapolation_value=0</em>, <em class="sig-param">out_dtype=None</em><span class="sig-paren">)< [...]
+<code class="sig-prename descclassname">tvm.relay.image.</code><code class="sig-name descname">crop_and_resize</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">boxes</span></em>, <em class="sig-param"><span class="n">box_indices</span></em>, <em class="sig-param"><span class="n">crop_size</span></em>, <em class="sig-param"><span class="n">layout</span></em>, <em class="sig-param"><span class="n">method</sp [...]
 <dd><p>Crop input images and resize them.</p>
 <p>method indicates the algorithm to be used while calculating the out value
 and method can be either “bilinear” or “nearest_neighbor”.</p>
@@ -259,9 +260,9 @@ the i-th box refers to.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.image.dilation2d">
-<code class="sig-prename descclassname">tvm.relay.image.</code><code class="sig-name descname">dilation2d</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">weight</em>, <em class="sig-param">strides=(1</em>, <em class="sig-param">1)</em>, <em class="sig-param">padding=(0</em>, <em class="sig-param">0)</em>, <em class="sig-param">dilations=(1</em>, <em class="sig-param">1)</em>, <em class="sig-param">data_layout='NCHW'</em>, <em class="sig-param" [...]
+<code class="sig-prename descclassname">tvm.relay.image.</code><code class="sig-name descname">dilation2d</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">weight</span></em>, <em class="sig-param"><span class="n">strides</span><span class="o">=</span><span class="default_value">1, 1</span></em>, <em class="sig-param"><span class="n">padding</span><span class="o">=</span><span class="default_value">0, 0</sp [...]
 <dd><p>Morphological Dilation 2D.
 This operator takes the weight as the dilation kernel and dilates it with
 data to produce an output. In the default case, where the data_layout is <cite>NCHW</cite>
@@ -303,9 +304,9 @@ will convert the layout to the canonical layout
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.image.resize">
-<code class="sig-prename descclassname">tvm.relay.image.</code><code class="sig-name descname">resize</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">size</em>, <em class="sig-param">layout='NCHW'</em>, <em class="sig-param">method='bilinear'</em>, <em class="sig-param">coordinate_transformation_mode='half_pixel'</em>, <em class="sig-param">out_dtype=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.image.resize"  [...]
+<code class="sig-prename descclassname">tvm.relay.image.</code><code class="sig-name descname">resize</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">size</span></em>, <em class="sig-param"><span class="n">layout</span><span class="o">=</span><span class="default_value">'NCHW'</span></em>, <em class="sig-param"><span class="n">method</span><span class="o">=</span><span class="default_value">'bilinear'</sp [...]
 <dd><p>Image resize operator.</p>
 <p>This operator takes data as input and does 2D scaling to the given scale factor.
 In the default case, where the data_layout is <cite>NCHW</cite>
diff --git a/docs/api/python/relay/index.html b/docs/api/python/relay/index.html
index e8d75a3..d56e8fd 100644
--- a/docs/api/python/relay/index.html
+++ b/docs/api/python/relay/index.html
@@ -112,6 +112,7 @@
 <li class="toctree-l2"><a class="reference internal" href="../tir.html">tvm.tir</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.transform">tvm.tir.transform</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.analysis">tvm.tir.analysis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../tir.html#module-tvm.tir.stmt_functor">tvm.tir.stmt_functor</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html">tvm.te</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../te.html#module-tvm.te.hybrid">tvm.te.hybrid</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../driver.html">tvm.driver</a></li>
@@ -401,195 +402,207 @@
 <tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.cos" title="tvm.relay.cos"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cos</span></code></a>(data)</p></td>
 <td><p>Compute elementwise cos of data.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.create_executor" title="tvm.relay.create_executor"><code class="xref py py-obj docutils literal notranslate"><span class="pre">create_executor</span></code></a>([kind, mod, ctx, target])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.cosh" title="tvm.relay.cosh"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cosh</span></code></a>(data)</p></td>
+<td><p>Compute elementwise cosh of data.</p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.create_executor" title="tvm.relay.create_executor"><code class="xref py py-obj docutils literal notranslate"><span class="pre">create_executor</span></code></a>([kind, mod, ctx, target])</p></td>
 <td><p>Factory function to create an executor.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.device_copy" title="tvm.relay.device_copy"><code class="xref py py-obj docutils literal notranslate"><span class="pre">device_copy</span></code></a>(data, src_dev, dst_dev)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.device_copy" title="tvm.relay.device_copy"><code class="xref py py-obj docutils literal notranslate"><span class="pre">device_copy</span></code></a>(data, src_dev, dst_dev)</p></td>
 <td><p>Copy data from the source device to the destination device.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.divide" title="tvm.relay.divide"><code class="xref py py-obj docutils literal notranslate"><span class="pre">divide</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.divide" title="tvm.relay.divide"><code class="xref py py-obj docutils literal notranslate"><span class="pre">divide</span></code></a>(lhs, rhs)</p></td>
 <td><p>Division with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.equal" title="tvm.relay.equal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">equal</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.equal" title="tvm.relay.equal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">equal</span></code></a>(lhs, rhs)</p></td>
 <td><p>Broadcasted elementwise test for (lhs == rhs).</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.erf" title="tvm.relay.erf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">erf</span></code></a>(data)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.erf" title="tvm.relay.erf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">erf</span></code></a>(data)</p></td>
 <td><p>Compute elementwise error function of data.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.exp" title="tvm.relay.exp"><code class="xref py py-obj docutils literal notranslate"><span class="pre">exp</span></code></a>(data)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.exp" title="tvm.relay.exp"><code class="xref py py-obj docutils literal notranslate"><span class="pre">exp</span></code></a>(data)</p></td>
 <td><p>Compute elementwise exp of data.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.expand_dims" title="tvm.relay.expand_dims"><code class="xref py py-obj docutils literal notranslate"><span class="pre">expand_dims</span></code></a>(data, axis[, num_newaxis])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.expand_dims" title="tvm.relay.expand_dims"><code class="xref py py-obj docutils literal notranslate"><span class="pre">expand_dims</span></code></a>(data, axis[, num_newaxis])</p></td>
 <td><p>Insert <cite>num_newaxis</cite> axises at the position given by <cite>axis</cite>.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.floor" title="tvm.relay.floor"><code class="xref py py-obj docutils literal notranslate"><span class="pre">floor</span></code></a>(data)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.floor" title="tvm.relay.floor"><code class="xref py py-obj docutils literal notranslate"><span class="pre">floor</span></code></a>(data)</p></td>
 <td><p>Compute element-wise floor of data.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.floor_divide" title="tvm.relay.floor_divide"><code class="xref py py-obj docutils literal notranslate"><span class="pre">floor_divide</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.floor_divide" title="tvm.relay.floor_divide"><code class="xref py py-obj docutils literal notranslate"><span class="pre">floor_divide</span></code></a>(lhs, rhs)</p></td>
 <td><p>Floor division with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.floor_mod" title="tvm.relay.floor_mod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">floor_mod</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.floor_mod" title="tvm.relay.floor_mod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">floor_mod</span></code></a>(lhs, rhs)</p></td>
 <td><p>Floor mod with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.full" title="tvm.relay.full"><code class="xref py py-obj docutils literal notranslate"><span class="pre">full</span></code></a>(fill_value[, shape, dtype])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.full" title="tvm.relay.full"><code class="xref py py-obj docutils literal notranslate"><span class="pre">full</span></code></a>(fill_value[, shape, dtype])</p></td>
 <td><p>Fill array with scalar value.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.full_like" title="tvm.relay.full_like"><code class="xref py py-obj docutils literal notranslate"><span class="pre">full_like</span></code></a>(data, fill_value)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.full_like" title="tvm.relay.full_like"><code class="xref py py-obj docutils literal notranslate"><span class="pre">full_like</span></code></a>(data, fill_value)</p></td>
 <td><p>Return a scalar value array with the same shape and type as the input array.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.gather_nd" title="tvm.relay.gather_nd"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gather_nd</span></code></a>(data, indices)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.gather_nd" title="tvm.relay.gather_nd"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gather_nd</span></code></a>(data, indices)</p></td>
 <td><p>Gather elements or slices from data and store to a tensor whose shape is defined by indices.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.greater" title="tvm.relay.greater"><code class="xref py py-obj docutils literal notranslate"><span class="pre">greater</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.greater" title="tvm.relay.greater"><code class="xref py py-obj docutils literal notranslate"><span class="pre">greater</span></code></a>(lhs, rhs)</p></td>
 <td><p>Broadcasted elementwise test for (lhs &gt; rhs).</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.greater_equal" title="tvm.relay.greater_equal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">greater_equal</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.greater_equal" title="tvm.relay.greater_equal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">greater_equal</span></code></a>(lhs, rhs)</p></td>
 <td><p>Broadcasted elementwise test for (lhs &gt;= rhs).</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.isfinite" title="tvm.relay.isfinite"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isfinite</span></code></a>(data)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.isfinite" title="tvm.relay.isfinite"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isfinite</span></code></a>(data)</p></td>
 <td><p>Compute element-wise finiteness of data.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.isinf" title="tvm.relay.isinf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isinf</span></code></a>(data)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.isinf" title="tvm.relay.isinf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isinf</span></code></a>(data)</p></td>
 <td><p>Compute element-wise infiniteness of data.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.isnan" title="tvm.relay.isnan"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isnan</span></code></a>(data)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.isnan" title="tvm.relay.isnan"><code class="xref py py-obj docutils literal notranslate"><span class="pre">isnan</span></code></a>(data)</p></td>
 <td><p>Check nan in input data element-wise.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.layout_transform" title="tvm.relay.layout_transform"><code class="xref py py-obj docutils literal notranslate"><span class="pre">layout_transform</span></code></a>(data, src_layout, dst_layout)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.layout_transform" title="tvm.relay.layout_transform"><code class="xref py py-obj docutils literal notranslate"><span class="pre">layout_transform</span></code></a>(data, src_layout, dst_layout)</p></td>
 <td><p>Transform the layout of a tensor</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.left_shift" title="tvm.relay.left_shift"><code class="xref py py-obj docutils literal notranslate"><span class="pre">left_shift</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.left_shift" title="tvm.relay.left_shift"><code class="xref py py-obj docutils literal notranslate"><span class="pre">left_shift</span></code></a>(lhs, rhs)</p></td>
 <td><p>Left shift with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.less" title="tvm.relay.less"><code class="xref py py-obj docutils literal notranslate"><span class="pre">less</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.less" title="tvm.relay.less"><code class="xref py py-obj docutils literal notranslate"><span class="pre">less</span></code></a>(lhs, rhs)</p></td>
 <td><p>Broadcasted elementwise test for (lhs &lt; rhs).</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.less_equal" title="tvm.relay.less_equal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">less_equal</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.less_equal" title="tvm.relay.less_equal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">less_equal</span></code></a>(lhs, rhs)</p></td>
 <td><p>Broadcasted elementwise test for (lhs &lt;= rhs).</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.load_param_dict" title="tvm.relay.load_param_dict"><code class="xref py py-obj docutils literal notranslate"><span class="pre">load_param_dict</span></code></a>(param_bytes)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.load_param_dict" title="tvm.relay.load_param_dict"><code class="xref py py-obj docutils literal notranslate"><span class="pre">load_param_dict</span></code></a>(param_bytes)</p></td>
 <td><p>Load parameter dictionary to binary bytes.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.log" title="tvm.relay.log"><code class="xref py py-obj docutils literal notranslate"><span class="pre">log</span></code></a>(data)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.log" title="tvm.relay.log"><code class="xref py py-obj docutils literal notranslate"><span class="pre">log</span></code></a>(data)</p></td>
 <td><p>Compute elementwise log of data.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.logical_and" title="tvm.relay.logical_and"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logical_and</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.log10" title="tvm.relay.log10"><code class="xref py py-obj docutils literal notranslate"><span class="pre">log10</span></code></a>(data)</p></td>
+<td><p>Compute elementwise log to the base 10 of data.</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.log2" title="tvm.relay.log2"><code class="xref py py-obj docutils literal notranslate"><span class="pre">log2</span></code></a>(data)</p></td>
+<td><p>Compute elementwise log to the base 2 of data.</p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.logical_and" title="tvm.relay.logical_and"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logical_and</span></code></a>(lhs, rhs)</p></td>
 <td><p>logical AND with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.logical_not" title="tvm.relay.logical_not"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logical_not</span></code></a>(data)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.logical_not" title="tvm.relay.logical_not"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logical_not</span></code></a>(data)</p></td>
 <td><p>Compute element-wise logical not of data.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.logical_or" title="tvm.relay.logical_or"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logical_or</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.logical_or" title="tvm.relay.logical_or"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logical_or</span></code></a>(lhs, rhs)</p></td>
 <td><p>logical OR with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.logical_xor" title="tvm.relay.logical_xor"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logical_xor</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.logical_xor" title="tvm.relay.logical_xor"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logical_xor</span></code></a>(lhs, rhs)</p></td>
 <td><p>logical XOR with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.max" title="tvm.relay.max"><code class="xref py py-obj docutils literal notranslate"><span class="pre">max</span></code></a>(data[, axis, keepdims, exclude])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.max" title="tvm.relay.max"><code class="xref py py-obj docutils literal notranslate"><span class="pre">max</span></code></a>(data[, axis, keepdims, exclude])</p></td>
 <td><p>Computes the max of array elements over given axes.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.maximum" title="tvm.relay.maximum"><code class="xref py py-obj docutils literal notranslate"><span class="pre">maximum</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.maximum" title="tvm.relay.maximum"><code class="xref py py-obj docutils literal notranslate"><span class="pre">maximum</span></code></a>(lhs, rhs)</p></td>
 <td><p>Maximum with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.mean" title="tvm.relay.mean"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mean</span></code></a>(data[, axis, keepdims, exclude])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.mean" title="tvm.relay.mean"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mean</span></code></a>(data[, axis, keepdims, exclude])</p></td>
 <td><p>Computes the mean of array elements over given axes.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.mean_std" title="tvm.relay.mean_std"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mean_std</span></code></a>(data[, axis, keepdims, exclude])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.mean_std" title="tvm.relay.mean_std"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mean_std</span></code></a>(data[, axis, keepdims, exclude])</p></td>
 <td><p>Computes the mean and standard deviation of data over given axes.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.mean_variance" title="tvm.relay.mean_variance"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mean_variance</span></code></a>(data[, axis, keepdims, exclude])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.mean_variance" title="tvm.relay.mean_variance"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mean_variance</span></code></a>(data[, axis, keepdims, exclude])</p></td>
 <td><p>Computes the mean and variance of data over given axes.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.min" title="tvm.relay.min"><code class="xref py py-obj docutils literal notranslate"><span class="pre">min</span></code></a>(data[, axis, keepdims, exclude])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.min" title="tvm.relay.min"><code class="xref py py-obj docutils literal notranslate"><span class="pre">min</span></code></a>(data[, axis, keepdims, exclude])</p></td>
 <td><p>Computes the min of array elements over given axes.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.minimum" title="tvm.relay.minimum"><code class="xref py py-obj docutils literal notranslate"><span class="pre">minimum</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.minimum" title="tvm.relay.minimum"><code class="xref py py-obj docutils literal notranslate"><span class="pre">minimum</span></code></a>(lhs, rhs)</p></td>
 <td><p>Minimum with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.mod" title="tvm.relay.mod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mod</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.mod" title="tvm.relay.mod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mod</span></code></a>(lhs, rhs)</p></td>
 <td><p>Mod with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.multiply" title="tvm.relay.multiply"><code class="xref py py-obj docutils literal notranslate"><span class="pre">multiply</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.multiply" title="tvm.relay.multiply"><code class="xref py py-obj docutils literal notranslate"><span class="pre">multiply</span></code></a>(lhs, rhs)</p></td>
 <td><p>Multiplication with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.ndarray_size" title="tvm.relay.ndarray_size"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ndarray_size</span></code></a>(data[, dtype])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.ndarray_size" title="tvm.relay.ndarray_size"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ndarray_size</span></code></a>(data[, dtype])</p></td>
 <td><p>Get number of elements of input tensor.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.negative" title="tvm.relay.negative"><code class="xref py py-obj docutils literal notranslate"><span class="pre">negative</span></code></a>(data)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.negative" title="tvm.relay.negative"><code class="xref py py-obj docutils literal notranslate"><span class="pre">negative</span></code></a>(data)</p></td>
 <td><p>Compute element-wise negative of data.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.not_equal" title="tvm.relay.not_equal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">not_equal</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.not_equal" title="tvm.relay.not_equal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">not_equal</span></code></a>(lhs, rhs)</p></td>
 <td><p>Broadcasted elementwise test for (lhs != rhs).</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.one_hot" title="tvm.relay.one_hot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">one_hot</span></code></a>(indices, on_value, off_value, depth, …)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.one_hot" title="tvm.relay.one_hot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">one_hot</span></code></a>(indices, on_value, off_value, depth, …)</p></td>
 <td><p>Returns a one-hot tensor where the locations repsented by indices take value on_value, other locations take value off_value.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.ones" title="tvm.relay.ones"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ones</span></code></a>(shape, dtype)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.ones" title="tvm.relay.ones"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ones</span></code></a>(shape, dtype)</p></td>
 <td><p>Fill array with ones.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.ones_like" title="tvm.relay.ones_like"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ones_like</span></code></a>(data)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.ones_like" title="tvm.relay.ones_like"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ones_like</span></code></a>(data)</p></td>
 <td><p>Returns an array of ones, with same type and shape as the input.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.optimize" title="tvm.relay.optimize"><code class="xref py py-obj docutils literal notranslate"><span class="pre">optimize</span></code></a>(mod[, target, params])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.optimize" title="tvm.relay.optimize"><code class="xref py py-obj docutils literal notranslate"><span class="pre">optimize</span></code></a>(mod[, target, params])</p></td>
 <td><p>Helper function that optimizes a Relay module.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.power" title="tvm.relay.power"><code class="xref py py-obj docutils literal notranslate"><span class="pre">power</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.power" title="tvm.relay.power"><code class="xref py py-obj docutils literal notranslate"><span class="pre">power</span></code></a>(lhs, rhs)</p></td>
 <td><p>Power with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.prod" title="tvm.relay.prod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">prod</span></code></a>(data[, axis, keepdims, exclude])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.prod" title="tvm.relay.prod"><code class="xref py py-obj docutils literal notranslate"><span class="pre">prod</span></code></a>(data[, axis, keepdims, exclude])</p></td>
 <td><p>Computes the products of array elements over given axes.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.reinterpret" title="tvm.relay.reinterpret"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reinterpret</span></code></a>(data, dtype)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.reinterpret" title="tvm.relay.reinterpret"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reinterpret</span></code></a>(data, dtype)</p></td>
 <td><p>Reinterpret input tensor to data type.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.repeat" title="tvm.relay.repeat"><code class="xref py py-obj docutils literal notranslate"><span class="pre">repeat</span></code></a>(data, repeats, axis)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.repeat" title="tvm.relay.repeat"><code class="xref py py-obj docutils literal notranslate"><span class="pre">repeat</span></code></a>(data, repeats, axis)</p></td>
 <td><p>Repeats elements of an array.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.reshape" title="tvm.relay.reshape"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reshape</span></code></a>(data, newshape)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.reshape" title="tvm.relay.reshape"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reshape</span></code></a>(data, newshape)</p></td>
 <td><p>Reshape the input array.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.reshape_like" title="tvm.relay.reshape_like"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reshape_like</span></code></a>(data, shape_like)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.reshape_like" title="tvm.relay.reshape_like"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reshape_like</span></code></a>(data, shape_like)</p></td>
 <td><p>Reshapes the input array by the size of another array.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.reverse" title="tvm.relay.reverse"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reverse</span></code></a>(data, axis)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.reverse" title="tvm.relay.reverse"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reverse</span></code></a>(data, axis)</p></td>
 <td><p>Reverses the order of elements along given axis while preserving array shape.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.reverse_reshape" title="tvm.relay.reverse_reshape"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reverse_reshape</span></code></a>(data, newshape)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.reverse_reshape" title="tvm.relay.reverse_reshape"><code class="xref py py-obj docutils literal notranslate"><span class="pre">reverse_reshape</span></code></a>(data, newshape)</p></td>
 <td><p>Reshapes the input array where the special values are inferred from right to left.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.right_shift" title="tvm.relay.right_shift"><code class="xref py py-obj docutils literal notranslate"><span class="pre">right_shift</span></code></a>(lhs, rhs)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.right_shift" title="tvm.relay.right_shift"><code class="xref py py-obj docutils literal notranslate"><span class="pre">right_shift</span></code></a>(lhs, rhs)</p></td>
 <td><p>Right shift with numpy-style broadcasting.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.round" title="tvm.relay.round"><code class="xref py py-obj docutils literal notranslate"><span class="pre">round</span></code></a>(data)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.round" title="tvm.relay.round"><code class="xref py py-obj docutils literal notranslate"><span class="pre">round</span></code></a>(data)</p></td>
 <td><p>Compute element-wise round of data.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.rsqrt" title="tvm.relay.rsqrt"><code class="xref py py-obj docutils literal notranslate"><span class="pre">rsqrt</span></code></a>(data)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.rsqrt" title="tvm.relay.rsqrt"><code class="xref py py-obj docutils literal notranslate"><span class="pre">rsqrt</span></code></a>(data)</p></td>
 <td><p>Compute elementwise rsqrt of data.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.save_param_dict" title="tvm.relay.save_param_dict"><code class="xref py py-obj docutils literal notranslate"><span class="pre">save_param_dict</span></code></a>(params)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.save_param_dict" title="tvm.relay.save_param_dict"><code class="xref py py-obj docutils literal notranslate"><span class="pre">save_param_dict</span></code></a>(params)</p></td>
 <td><p>Save parameter dictionary to binary bytes.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.scalar_type" title="tvm.relay.scalar_type"><code class="xref py py-obj docutils literal notranslate"><span class="pre">scalar_type</span></code></a>(dtype)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.scalar_type" title="tvm.relay.scalar_type"><code class="xref py py-obj docutils literal notranslate"><span class="pre">scalar_type</span></code></a>(dtype)</p></td>
 <td><p>Creates a scalar type.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.sequence_mask" title="tvm.relay.sequence_mask"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sequence_mask</span></code></a>(data, valid_length[, …])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.sequence_mask" title="tvm.relay.sequence_mask"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sequence_mask</span></code></a>(data, valid_length[, …])</p></td>
 <td><p>Sets all elements outside the expected length of the sequence to a constant value.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.setrecursionlimit" title="tvm.relay.setrecursionlimit"><code class="xref py py-obj docutils literal notranslate"><span class="pre">setrecursionlimit</span></code></a>(n)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.setrecursionlimit" title="tvm.relay.setrecursionlimit"><code class="xref py py-obj docutils literal notranslate"><span class="pre">setrecursionlimit</span></code></a>(n)</p></td>
 <td><p>Set the maximum depth of the Python interpreter stack to n.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.shape_of" title="tvm.relay.shape_of"><code class="xref py py-obj docutils literal notranslate"><span class="pre">shape_of</span></code></a>(data[, dtype])</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.shape_of" title="tvm.relay.shape_of"><code class="xref py py-obj docutils literal notranslate"><span class="pre">shape_of</span></code></a>(data[, dtype])</p></td>
 <td><p>Get shape of a tensor.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.sigmoid" title="tvm.relay.sigmoid"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sigmoid</span></code></a>(data)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.sigmoid" title="tvm.relay.sigmoid"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sigmoid</span></code></a>(data)</p></td>
 <td><p>Compute elementwise sigmoid of data.</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.sign" title="tvm.relay.sign"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sign</span></code></a>(data)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.sign" title="tvm.relay.sign"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sign</span></code></a>(data)</p></td>
 <td><p>Compute element-wise absolute of data.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.sin" title="tvm.relay.sin"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sin</span></code></a>(data)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.sin" title="tvm.relay.sin"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sin</span></code></a>(data)</p></td>
 <td><p>Compute elementwise sin of data.</p></td>
 </tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#tvm.relay.sinh" title="tvm.relay.sinh"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sinh</span></code></a>(data)</p></td>
+<td><p>Compute elementwise sinh of data.</p></td>
+</tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="#tvm.relay.slice_like" title="tvm.relay.slice_like"><code class="xref py py-obj docutils literal notranslate"><span class="pre">slice_like</span></code></a>(data, shape_like[, axes])</p></td>
 <td><p>Slice the first input with respect to the second input.</p></td>
 </tr>
@@ -661,18 +674,18 @@
 </tr>
 </tbody>
 </table>
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.setrecursionlimit">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">setrecursionlimit</code><span class="sig-paren">(</span><em class="sig-param">n</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.setrecursionlimit" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">setrecursionlimit</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">n</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.setrecursionlimit" title="Permalink to this definition">¶</a></dt>
 <dd><p>Set the maximum depth of the Python interpreter stack to n.  This
 limit prevents infinite recursion from causing an overflow of the C
 stack and crashing Python.  The highest possible limit is platform-
 dependent.</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.build">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">build</code><span class="sig-paren">(</span><em class="sig-param">mod</em>, <em class="sig-param">target=None</em>, <em class="sig-param">target_host=None</em>, <em class="sig-param">params=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.build" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">build</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span></em>, <em class="sig-param"><span class="n">target</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">target_host</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">params</span><span  [...]
 <dd><p>Helper function that builds a Relay function to run on TVM graph
 runtime.</p>
 <dl class="field-list simple">
@@ -704,9 +717,9 @@ during inference time. Used for constant folding.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.create_executor">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">create_executor</code><span class="sig-paren">(</span><em class="sig-param">kind='debug'</em>, <em class="sig-param">mod=None</em>, <em class="sig-param">ctx=None</em>, <em class="sig-param">target='llvm'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.create_executor" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">create_executor</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">kind</span><span class="o">=</span><span class="default_value">'debug'</span></em>, <em class="sig-param"><span class="n">mod</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">ctx</span><span class="o">=</span><span class="default_value">None</spa [...]
 <dd><p>Factory function to create an executor.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -720,9 +733,9 @@ during inference time. Used for constant folding.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.optimize">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">optimize</code><span class="sig-paren">(</span><em class="sig-param">mod</em>, <em class="sig-param">target=None</em>, <em class="sig-param">params=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.optimize" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">optimize</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span></em>, <em class="sig-param"><span class="n">target</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">params</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="# [...]
 <dd><p>Helper function that optimizes a Relay module.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -745,9 +758,9 @@ during inference time. Used for constant folding.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.build_config">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">build_config</code><span class="sig-paren">(</span><em class="sig-param">opt_level=2</em>, <em class="sig-param">fallback_device=cpu(0)</em>, <em class="sig-param">required_pass=None</em>, <em class="sig-param">disabled_pass=None</em>, <em class="sig-param">trace=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.build_config" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">build_config</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">opt_level</span><span class="o">=</span><span class="default_value">2</span></em>, <em class="sig-param"><span class="n">fallback_device</span><span class="o">=</span><span class="default_value">cpu(0)</span></em>, <em class="sig-param"><span class="n">required_pass</span><span class="o">=</span><span class="defa [...]
 <dd><p>Configure the build behavior by setting config variables.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -786,9 +799,9 @@ operators without specified device during heterogeneous execution.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.ShapeVar">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ShapeVar</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ShapeVar" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ShapeVar</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ShapeVar" title="Permalink to this definition">¶</a></dt>
 <dd><p>A helper which constructs a type var of which the shape kind.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -803,9 +816,9 @@ operators without specified device during heterogeneous execution.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.scalar_type">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">scalar_type</code><span class="sig-paren">(</span><em class="sig-param">dtype</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.scalar_type" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">scalar_type</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dtype</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.scalar_type" title="Permalink to this definition">¶</a></dt>
 <dd><p>Creates a scalar type.</p>
 <p>This function returns TensorType((), dtype)</p>
 <dl class="field-list simple">
@@ -821,13 +834,13 @@ operators without specified device during heterogeneous execution.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="attribute">
+<dl class="py attribute">
 <dt id="tvm.relay.RefType">
 <code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">RefType</code><a class="headerlink" href="#tvm.relay.RefType" title="Permalink to this definition">¶</a></dt>
 <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">tvm.ir.type.RelayRefType</span></code></p>
 </dd></dl>
 
-<dl class="attribute">
+<dl class="py attribute">
 <dt id="tvm.relay.Expr">
 <code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Expr</code><a class="headerlink" href="#tvm.relay.Expr" title="Permalink to this definition">¶</a></dt>
 <table class="longtable docutils align-default">
@@ -845,9 +858,9 @@ operators without specified device during heterogeneous execution.</p></li>
 <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">tvm.ir.expr.RelayExpr</span></code></p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.Constant">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Constant</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Constant" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Constant</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Constant" title="Permalink to this definition">¶</a></dt>
 <dd><p>A constant expression in Relay.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -856,9 +869,9 @@ operators without specified device during heterogeneous execution.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.Tuple">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Tuple</code><span class="sig-paren">(</span><em class="sig-param">fields</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Tuple" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Tuple</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">fields</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Tuple" title="Permalink to this definition">¶</a></dt>
 <dd><p>Tuple expression that groups several fields together.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -877,9 +890,9 @@ operators without specified device during heterogeneous execution.</p></li>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.Tuple.astype">
-<code class="sig-name descname">astype</code><span class="sig-paren">(</span><em class="sig-param">_</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Tuple.astype" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">astype</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">_</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Tuple.astype" title="Permalink to this definition">¶</a></dt>
 <dd><p>Cast the content type of the current data to dtype.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -902,9 +915,9 @@ operators without specified device during heterogeneous execution.</p></li>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.Function">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Function</code><span class="sig-paren">(</span><em class="sig-param">params</em>, <em class="sig-param">body</em>, <em class="sig-param">ret_type=None</em>, <em class="sig-param">type_params=None</em>, <em class="sig-param">attrs=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Function" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Function</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">params</span></em>, <em class="sig-param"><span class="n">body</span></em>, <em class="sig-param"><span class="n">ret_type</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">type_params</span><span class="o">=</span><span c [...]
 <dd><p>A function declaration expression.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -919,9 +932,9 @@ used in advanced usecase of template functions.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.Call">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Call</code><span class="sig-paren">(</span><em class="sig-param">op</em>, <em class="sig-param">args</em>, <em class="sig-param">attrs=None</em>, <em class="sig-param">type_args=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Call" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Call</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">op</span></em>, <em class="sig-param"><span class="n">args</span></em>, <em class="sig-param"><span class="n">attrs</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">type_args</span><span class="o">=</span><span class="default [...]
 <dd><p>Function call node in Relay.</p>
 <p>Call node corresponds the operator application node
 in computational graph terminology.</p>
@@ -938,9 +951,9 @@ used in advanced usecase of template functions.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.Let">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Let</code><span class="sig-paren">(</span><em class="sig-param">variable</em>, <em class="sig-param">value</em>, <em class="sig-param">body</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Let" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Let</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">variable</span></em>, <em class="sig-param"><span class="n">value</span></em>, <em class="sig-param"><span class="n">body</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Let" title="Permalink to this definition">¶</a></dt>
 <dd><p>Let variable binding expression.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -953,9 +966,9 @@ used in advanced usecase of template functions.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.If">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">If</code><span class="sig-paren">(</span><em class="sig-param">cond</em>, <em class="sig-param">true_branch</em>, <em class="sig-param">false_branch</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.If" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">If</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cond</span></em>, <em class="sig-param"><span class="n">true_branch</span></em>, <em class="sig-param"><span class="n">false_branch</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.If" title="Permalink to this definition">¶</a></dt>
 <dd><p>A conditional expression in Relay.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -968,9 +981,9 @@ used in advanced usecase of template functions.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.TupleGetItem">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">TupleGetItem</code><span class="sig-paren">(</span><em class="sig-param">tuple_value</em>, <em class="sig-param">index</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TupleGetItem" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">TupleGetItem</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">tuple_value</span></em>, <em class="sig-param"><span class="n">index</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TupleGetItem" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get index-th item from a tuple.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -982,25 +995,25 @@ used in advanced usecase of template functions.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.RefCreate">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">RefCreate</code><span class="sig-paren">(</span><em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.RefCreate" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">RefCreate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">value</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.RefCreate" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create a new reference from initial value.
 :param value: The initial value.
 :type value: tvm.relay.Expr</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.RefRead">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">RefRead</code><span class="sig-paren">(</span><em class="sig-param">ref</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.RefRead" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">RefRead</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ref</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.RefRead" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the value inside the reference.
 :param ref: The reference.
 :type ref: tvm.relay.Expr</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.RefWrite">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">RefWrite</code><span class="sig-paren">(</span><em class="sig-param">ref</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.RefWrite" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">RefWrite</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ref</span></em>, <em class="sig-param"><span class="n">value</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.RefWrite" title="Permalink to this definition">¶</a></dt>
 <dd><p>Update the value inside the reference.
 The whole expression will evaluate to an empty tuple.
 :param ref: The reference.
@@ -1009,39 +1022,39 @@ The whole expression will evaluate to an empty tuple.
 :type value: tvm.relay.Expr</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.Pattern">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Pattern</code><a class="headerlink" href="#tvm.relay.Pattern" title="Permalink to this definition">¶</a></dt>
 <dd><p>Base type for pattern matching constructs.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.PatternWildcard">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">PatternWildcard</code><a class="headerlink" href="#tvm.relay.PatternWildcard" title="Permalink to this definition">¶</a></dt>
 <dd><p>Wildcard pattern in Relay: Matches any ADT and binds nothing.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.PatternVar">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">PatternVar</code><span class="sig-paren">(</span><em class="sig-param">var</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.PatternVar" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">PatternVar</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.PatternVar" title="Permalink to this definition">¶</a></dt>
 <dd><p>Variable pattern in Relay: Matches anything and binds it to the variable.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.PatternConstructor">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">PatternConstructor</code><span class="sig-paren">(</span><em class="sig-param">constructor</em>, <em class="sig-param">patterns=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.PatternConstructor" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">PatternConstructor</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">constructor</span></em>, <em class="sig-param"><span class="n">patterns</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.PatternConstructor" title="Permalink to this definition">¶< [...]
 <dd><p>Constructor pattern in Relay: Matches an ADT of the given constructor, binds recursively.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.PatternTuple">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">PatternTuple</code><span class="sig-paren">(</span><em class="sig-param">patterns=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.PatternTuple" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">PatternTuple</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">patterns</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.PatternTuple" title="Permalink to this definition">¶</a></dt>
 <dd><p>Constructor pattern in Relay: Matches a tuple, binds recursively.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.TypeData">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">TypeData</code><span class="sig-paren">(</span><em class="sig-param">header</em>, <em class="sig-param">type_vars</em>, <em class="sig-param">constructors</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TypeData" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">TypeData</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">header</span></em>, <em class="sig-param"><span class="n">type_vars</span></em>, <em class="sig-param"><span class="n">constructors</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TypeData" title="Permalink to this definition">¶</a></dt>
 <dd><p>Stores the definition for an Algebraic Data Type (ADT) in Relay.</p>
 <p>Note that ADT definitions are treated as type-level functions because
 the type parameters need to be given for an instance of the ADT. Thus,
@@ -1061,21 +1074,21 @@ treated as different types.</p></li>
 <p class="rubric">Alias of <a class="reference internal" href="../ir.html#tvm.ir.TypeData" title="tvm.ir.TypeData"><code class="xref py py-func docutils literal notranslate"><span class="pre">tvm.ir.TypeData()</span></code></a></p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.Clause">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Clause</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Clause" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Clause</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Clause" title="Permalink to this definition">¶</a></dt>
 <dd><p>Clause for pattern matching in Relay.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.Match">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Match</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">clauses</em>, <em class="sig-param">complete=True</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Match" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Match</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">clauses</span></em>, <em class="sig-param"><span class="n">complete</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Match" title="Permal [...]
 <dd><p>Pattern matching expression in Relay.</p>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.var">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">var</code><span class="sig-paren">(</span><em class="sig-param">name_hint</em>, <em class="sig-param">type_annotation=None</em>, <em class="sig-param">shape=None</em>, <em class="sig-param">dtype='float32'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.var" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">var</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name_hint</span></em>, <em class="sig-param"><span class="n">type_annotation</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dtype</span> [...]
 <dd><p>Create a new tvm.relay.Var.</p>
 <p>This is a simple wrapper function that allows specify
 shape and dtype directly.</p>
@@ -1106,9 +1119,9 @@ When type_annotation is a str, we will create a scalar variable.</p></li>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.const">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">const</code><span class="sig-paren">(</span><em class="sig-param">value</em>, <em class="sig-param">dtype=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.const" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">const</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">value</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.const" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create a constant value.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1130,9 +1143,9 @@ When type_annotation is a str, we will create a scalar variable.</p></li>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.bind">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bind</code><span class="sig-paren">(</span><em class="sig-param">expr</em>, <em class="sig-param">binds</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bind" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bind</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em>, <em class="sig-param"><span class="n">binds</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bind" title="Permalink to this definition">¶</a></dt>
 <dd><p>Bind an free variables in expr or function arguments.</p>
 <p>We can bind parameters expr if it is a function.</p>
 <dl class="field-list simple">
@@ -1151,7 +1164,7 @@ When type_annotation is a str, we will create a scalar variable.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.TypeFunctor">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">TypeFunctor</code><a class="headerlink" href="#tvm.relay.TypeFunctor" title="Permalink to this definition">¶</a></dt>
 <dd><p>An abstract visitor defined over Type.</p>
@@ -1168,22 +1181,22 @@ When type_annotation is a str, we will create a scalar variable.</p></li>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.TypeFunctor.visit">
-<code class="sig-name descname">visit</code><span class="sig-paren">(</span><em class="sig-param">typ</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TypeFunctor.visit" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">visit</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">typ</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TypeFunctor.visit" title="Permalink to this definition">¶</a></dt>
 <dd><p>Apply the visitor to a type.</p>
 </dd></dl>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.TypeVisitor">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">TypeVisitor</code><a class="headerlink" href="#tvm.relay.TypeVisitor" title="Permalink to this definition">¶</a></dt>
 <dd><p>A visitor over Type.</p>
 <p>The default behavior recursively traverses the AST.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.TypeMutator">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">TypeMutator</code><a class="headerlink" href="#tvm.relay.TypeMutator" title="Permalink to this definition">¶</a></dt>
 <dd><p>A functional visitor over Type.</p>
@@ -1191,7 +1204,7 @@ When type_annotation is a str, we will create a scalar variable.</p></li>
 and reconstructs the AST.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.ExprFunctor">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ExprFunctor</code><a class="headerlink" href="#tvm.relay.ExprFunctor" title="Permalink to this definition">¶</a></dt>
 <dd><p>An abstract visitor defined over Expr.</p>
@@ -1209,22 +1222,22 @@ implements memoization.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.ExprFunctor.visit">
-<code class="sig-name descname">visit</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ExprFunctor.visit" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">visit</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ExprFunctor.visit" title="Permalink to this definition">¶</a></dt>
 <dd><p>Apply the visitor to an expression.</p>
 </dd></dl>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.ExprVisitor">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ExprVisitor</code><a class="headerlink" href="#tvm.relay.ExprVisitor" title="Permalink to this definition">¶</a></dt>
 <dd><p>A visitor over Expr.</p>
 <p>The default behavior recursively traverses the AST.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.ExprMutator">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ExprMutator</code><a class="headerlink" href="#tvm.relay.ExprMutator" title="Permalink to this definition">¶</a></dt>
 <dd><p>A functional visitor over Expr.</p>
@@ -1232,9 +1245,9 @@ implements memoization.</p>
 and reconstructs the AST.</p>
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.Prelude">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Prelude</code><span class="sig-paren">(</span><em class="sig-param">mod=None</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">Prelude</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mod</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude" title="Permalink to this definition">¶</a></dt>
 <dd><p>Contains standard definitions.</p>
 <p><strong>Methods</strong></p>
 <table class="longtable docutils align-default">
@@ -1260,31 +1273,31 @@ and reconstructs the AST.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.Prelude.get_name">
-<code class="sig-name descname">get_name</code><span class="sig-paren">(</span><em class="sig-param">canonical</em>, <em class="sig-param">dtype</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude.get_name" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">canonical</span></em>, <em class="sig-param"><span class="n">dtype</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude.get_name" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get name corresponding to the canonical name</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.Prelude.get_var">
-<code class="sig-name descname">get_var</code><span class="sig-paren">(</span><em class="sig-param">canonical</em>, <em class="sig-param">dtype</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude.get_var" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_var</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">canonical</span></em>, <em class="sig-param"><span class="n">dtype</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude.get_var" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get var corresponding to the canonical name</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.Prelude.get_name_static">
-<code class="sig-name descname">get_name_static</code><span class="sig-paren">(</span><em class="sig-param">canonical</em>, <em class="sig-param">dtype</em>, <em class="sig-param">shape</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude.get_name_static" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_name_static</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">canonical</span></em>, <em class="sig-param"><span class="n">dtype</span></em>, <em class="sig-param"><span class="n">shape</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude.get_name_static" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get name corresponding to the canonical name</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.Prelude.get_var_static">
-<code class="sig-name descname">get_var_static</code><span class="sig-paren">(</span><em class="sig-param">canonical</em>, <em class="sig-param">dtype</em>, <em class="sig-param">shape</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude.get_var_static" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_var_static</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">canonical</span></em>, <em class="sig-param"><span class="n">dtype</span></em>, <em class="sig-param"><span class="n">shape</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude.get_var_static" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get var corresponding to the canonical name</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.Prelude.load_prelude">
 <code class="sig-name descname">load_prelude</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.Prelude.load_prelude" title="Permalink to this definition">¶</a></dt>
 <dd><p>Parses the Prelude from Relay’s text format into a module.</p>
@@ -1292,7 +1305,7 @@ and reconstructs the AST.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.ScopeBuilder">
 <em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ScopeBuilder</code><a class="headerlink" href="#tvm.relay.ScopeBuilder" title="Permalink to this definition">¶</a></dt>
 <dd><p>Scope builder class.</p>
@@ -1326,9 +1339,9 @@ scope(let, if) expression easily.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.ScopeBuilder.let">
-<code class="sig-name descname">let</code><span class="sig-paren">(</span><em class="sig-param">var</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.let" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">let</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">var</span></em>, <em class="sig-param"><span class="n">value</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.let" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create a new let binding.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1340,9 +1353,9 @@ scope(let, if) expression easily.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.ScopeBuilder.if_scope">
-<code class="sig-name descname">if_scope</code><span class="sig-paren">(</span><em class="sig-param">cond</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.if_scope" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">if_scope</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cond</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.if_scope" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create a new if scope.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1361,7 +1374,7 @@ scope(let, if) expression easily.</p>
 </div>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.ScopeBuilder.else_scope">
 <code class="sig-name descname">else_scope</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.else_scope" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create a new else scope.</p>
@@ -1375,9 +1388,9 @@ scope(let, if) expression easily.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.ScopeBuilder.type_of">
-<code class="sig-name descname">type_of</code><span class="sig-paren">(</span><em class="sig-param">expr</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.type_of" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">type_of</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expr</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.type_of" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute the type of an expression.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1386,9 +1399,9 @@ scope(let, if) expression easily.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.ScopeBuilder.ret">
-<code class="sig-name descname">ret</code><span class="sig-paren">(</span><em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.ret" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">ret</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">value</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.ret" title="Permalink to this definition">¶</a></dt>
 <dd><p>Set the return value of this scope.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1397,7 +1410,7 @@ scope(let, if) expression easily.</p>
 </dl>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.ScopeBuilder.get">
 <code class="sig-name descname">get</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ScopeBuilder.get" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the generated result.</p>
@@ -1413,9 +1426,9 @@ scope(let, if) expression easily.</p>
 
 </dd></dl>
 
-<dl class="class">
+<dl class="py class">
 <dt id="tvm.relay.TupleWrapper">
-<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">TupleWrapper</code><span class="sig-paren">(</span><em class="sig-param">tuple_value</em>, <em class="sig-param">size</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TupleWrapper" title="Permalink to this definition">¶</a></dt>
+<em class="property">class </em><code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">TupleWrapper</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">tuple_value</span></em>, <em class="sig-param"><span class="n">size</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TupleWrapper" title="Permalink to this definition">¶</a></dt>
 <dd><p>TupleWrapper.</p>
 <p>This class is a Python wrapper for a Relay tuple of known size.
 It allows for accessing the fields of the Relay tuple as though
@@ -1443,14 +1456,14 @@ it were a Python tuple.</p>
 </tr>
 </tbody>
 </table>
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.TupleWrapper.astuple">
 <code class="sig-name descname">astuple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TupleWrapper.astuple" title="Permalink to this definition">¶</a></dt>
 <dd><p>Returns the underlying Relay tuple if this wrapper is passed
 as an argument to an FFI function.</p>
 </dd></dl>
 
-<dl class="method">
+<dl class="py method">
 <dt id="tvm.relay.TupleWrapper.astext">
 <code class="sig-name descname">astext</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.TupleWrapper.astext" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the text format of the tuple expression.</p>
@@ -1466,9 +1479,9 @@ as an argument to an FFI function.</p>
 
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.abs">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">abs</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.abs" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">abs</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.abs" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute element-wise absolute of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1483,9 +1496,9 @@ as an argument to an FFI function.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.add">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.add" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.add" title="Permalink to this definition">¶</a></dt>
 <dd><p>Addition with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1509,9 +1522,9 @@ as an argument to an FFI function.</p>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.all">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">all</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.all" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">all</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span><span clas [...]
 <dd><p>Computes the logical AND of boolean array elements over given axes.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1554,9 +1567,9 @@ NOT in axis instead.</p></li>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.any">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">any</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.any" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">any</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span><span clas [...]
 <dd><p>Computes the logical OR of boolean array elements over given axes.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1599,9 +1612,9 @@ NOT in axis instead.</p></li>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.arange">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">arange</code><span class="sig-paren">(</span><em class="sig-param">start</em>, <em class="sig-param">stop=None</em>, <em class="sig-param">step=None</em>, <em class="sig-param">dtype='float32'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.arange" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">arange</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">start</span></em>, <em class="sig-param"><span class="n">stop</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">step</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dtype</span><span class=" [...]
 <dd><p>Return evenly spaced values within a given interval.</p>
 <div class="admonition note">
 <p class="admonition-title">Note</p>
@@ -1635,9 +1648,9 @@ value is 0.</p></li>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.argmax">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">argmax</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.argmax" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">argmax</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span><span c [...]
 <dd><p>Returns the indices of the maximum values along an axis.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1662,9 +1675,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.argmin">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">argmin</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.argmin" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">argmin</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span><span c [...]
 <dd><p>Returns the indices of the minimum values along an axis.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1689,9 +1702,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.argsort">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">argsort</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=-1</em>, <em class="sig-param">is_ascend=1</em>, <em class="sig-param">dtype='int32'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.argsort" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">argsort</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">- 1</span></em>, <em class="sig-param"><span class="n">is_ascend</span><span class="o">=</span><span class="default_value">1</span></em>, <em class="sig-param"><span class="n">dtype</span><span class= [...]
 <dd><p>Performs sorting along the given axis and returns an array of indicies
 having same shape as an input array that index data in sorted order.</p>
 <dl class="field-list simple">
@@ -1713,9 +1726,9 @@ having same shape as an input array that index data in sorted order.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.argwhere">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">argwhere</code><span class="sig-paren">(</span><em class="sig-param">condition</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.argwhere" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">argwhere</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">condition</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.argwhere" title="Permalink to this definition">¶</a></dt>
 <dd><p>Find the indices of elements of a tensor that are
 non-zero.</p>
 <dl class="field-list simple">
@@ -1736,9 +1749,9 @@ non-zero.</p>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.atan">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">atan</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.atan" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">atan</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.atan" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute elementwise atan of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1753,9 +1766,9 @@ non-zero.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.bitwise_and">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bitwise_and</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bitwise_and" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bitwise_and</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bitwise_and" title="Permalink to this definition">¶</a></dt>
 <dd><p>bitwise AND with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1773,9 +1786,9 @@ non-zero.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.bitwise_not">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bitwise_not</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bitwise_not" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bitwise_not</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bitwise_not" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute element-wise bitwise not of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1790,9 +1803,9 @@ non-zero.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.bitwise_or">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bitwise_or</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bitwise_or" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bitwise_or</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bitwise_or" title="Permalink to this definition">¶</a></dt>
 <dd><p>bitwise OR with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1810,9 +1823,9 @@ non-zero.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.bitwise_xor">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bitwise_xor</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bitwise_xor" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">bitwise_xor</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.bitwise_xor" title="Permalink to this definition">¶</a></dt>
 <dd><p>bitwise XOR with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1830,9 +1843,9 @@ non-zero.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.broadcast_to">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">broadcast_to</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">shape</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.broadcast_to" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">broadcast_to</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">shape</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.broadcast_to" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return a scalar value array with the same type, broadcast to
 the provided shape.</p>
 <dl class="field-list simple">
@@ -1851,9 +1864,9 @@ the provided shape.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.broadcast_to_like">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">broadcast_to_like</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">broadcast_type</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.broadcast_to_like" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">broadcast_to_like</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">broadcast_type</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.broadcast_to_like" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return a scalar value array with the same shape and type as the input array.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1871,9 +1884,9 @@ the provided shape.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.cast">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">cast</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">dtype</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.cast" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">cast</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">dtype</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.cast" title="Permalink to this definition">¶</a></dt>
 <dd><p>Cast input tensor to data type.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1891,9 +1904,9 @@ the provided shape.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.cast_like">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">cast_like</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">dtype_like</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.cast_like" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">cast_like</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">dtype_like</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.cast_like" title="Permalink to this definition">¶</a></dt>
 <dd><p>Cast input tensor to data type of another tensor.
 :param data: The input data to the operator.
 :type data: relay.Expr
@@ -1909,9 +1922,9 @@ the provided shape.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.ceil">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ceil</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ceil" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ceil</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ceil" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute element-wise ceil of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1926,9 +1939,9 @@ the provided shape.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.clip">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">clip</code><span class="sig-paren">(</span><em class="sig-param">a</em>, <em class="sig-param">a_min</em>, <em class="sig-param">a_max</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.clip" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">clip</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">a</span></em>, <em class="sig-param"><span class="n">a_min</span></em>, <em class="sig-param"><span class="n">a_max</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.clip" title="Permalink to this definition">¶</a></dt>
 <dd><p>Clip the elements in <cite>a</cite> between <cite>a_min</cite> and <cite>a_max</cite>.
 <cite>a_min</cite> and <cite>a_max</cite> are cast to <cite>a</cite>’s dtype.</p>
 <dl class="field-list simple">
@@ -1954,9 +1967,9 @@ the provided shape.</p>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.collapse_sum_like">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">collapse_sum_like</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">collapse_type</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.collapse_sum_like" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">collapse_sum_like</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">collapse_type</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.collapse_sum_like" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return a scalar value array with the same shape and type as the input array.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1974,9 +1987,9 @@ the provided shape.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.concatenate">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">concatenate</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.concatenate" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">concatenate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.concatenate" title="Permalink to this definition">¶</a></dt>
 <dd><p>Concatenate the input tensors along the given axis.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1994,9 +2007,9 @@ the provided shape.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.copy">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">copy</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.copy" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">copy</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.copy" title="Permalink to this definition">¶</a></dt>
 <dd><p>Copy a tensor.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2011,9 +2024,9 @@ the provided shape.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.cos">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">cos</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.cos" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">cos</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.cos" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute elementwise cos of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2028,9 +2041,26 @@ the provided shape.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
+<dt id="tvm.relay.cosh">
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">cosh</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.cosh" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compute elementwise cosh of data.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>data</strong> (<em>relay.Expr</em>) – The input data</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p><strong>result</strong> – The computed result.</p>
+</dd>
+<dt class="field-odd">Return type</dt>
+<dd class="field-odd"><p>relay.Expr</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
 <dt id="tvm.relay.device_copy">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">device_copy</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">src_dev</em>, <em class="sig-param">dst_dev</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.device_copy" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">device_copy</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">src_dev</span></em>, <em class="sig-param"><span class="n">dst_dev</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.device_copy" title="Permalink to this definition">¶</a></dt>
 <dd><p>Copy data from the source device to the destination device. This
 operator helps data transferring between difference contexts for
 heterogeneous execution.</p>
@@ -2051,9 +2081,9 @@ heterogeneous execution.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.divide">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">divide</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.divide" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">divide</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.divide" title="Permalink to this definition">¶</a></dt>
 <dd><p>Division with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2071,9 +2101,9 @@ heterogeneous execution.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.equal">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">equal</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.equal" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">equal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.equal" title="Permalink to this definition">¶</a></dt>
 <dd><p>Broadcasted elementwise test for (lhs == rhs).</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2091,9 +2121,9 @@ heterogeneous execution.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.erf">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">erf</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.erf" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">erf</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.erf" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute elementwise error function of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2108,9 +2138,9 @@ heterogeneous execution.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.exp">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">exp</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.exp" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">exp</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.exp" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute elementwise exp of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2125,9 +2155,9 @@ heterogeneous execution.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.expand_dims">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">expand_dims</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis</em>, <em class="sig-param">num_newaxis=1</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.expand_dims" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">expand_dims</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span></em>, <em class="sig-param"><span class="n">num_newaxis</span><span class="o">=</span><span class="default_value">1</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.expand_dims" title="Permalink to this definition" [...]
 <dd><p>Insert <cite>num_newaxis</cite> axises at the position given by <cite>axis</cite>.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2149,9 +2179,9 @@ If <cite>axis &gt;= 0</cite>, it is the last axis inserted in Python’s negativ
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.floor">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">floor</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.floor" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">floor</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.floor" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute element-wise floor of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2166,9 +2196,9 @@ If <cite>axis &gt;= 0</cite>, it is the last axis inserted in Python’s negativ
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.floor_divide">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">floor_divide</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.floor_divide" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">floor_divide</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.floor_divide" title="Permalink to this definition">¶</a></dt>
 <dd><p>Floor division with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2186,9 +2216,9 @@ If <cite>axis &gt;= 0</cite>, it is the last axis inserted in Python’s negativ
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.floor_mod">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">floor_mod</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.floor_mod" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">floor_mod</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.floor_mod" title="Permalink to this definition">¶</a></dt>
 <dd><p>Floor mod with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2206,9 +2236,9 @@ If <cite>axis &gt;= 0</cite>, it is the last axis inserted in Python’s negativ
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.full">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">full</code><span class="sig-paren">(</span><em class="sig-param">fill_value</em>, <em class="sig-param">shape=()</em>, <em class="sig-param">dtype=''</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.full" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">full</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">fill_value</span></em>, <em class="sig-param"><span class="n">shape</span><span class="o">=</span><span class="default_value">()</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">''</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm [...]
 <dd><p>Fill array with scalar value.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2227,9 +2257,9 @@ If <cite>axis &gt;= 0</cite>, it is the last axis inserted in Python’s negativ
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.full_like">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">full_like</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">fill_value</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.full_like" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">full_like</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">fill_value</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.full_like" title="Permalink to this definition">¶</a></dt>
 <dd><p>Return a scalar value array with the same shape and type as the input array.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2247,9 +2277,9 @@ If <cite>axis &gt;= 0</cite>, it is the last axis inserted in Python’s negativ
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.gather_nd">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">gather_nd</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">indices</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.gather_nd" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">gather_nd</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">indices</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.gather_nd" title="Permalink to this definition">¶</a></dt>
 <dd><p>Gather elements or slices from data and store to a tensor whose shape is
 defined by indices.</p>
 <dl class="field-list simple">
@@ -2278,9 +2308,9 @@ defined by indices.</p>
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.greater">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">greater</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.greater" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">greater</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.greater" title="Permalink to this definition">¶</a></dt>
 <dd><p>Broadcasted elementwise test for (lhs &gt; rhs).</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2298,9 +2328,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.greater_equal">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">greater_equal</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.greater_equal" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">greater_equal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.greater_equal" title="Permalink to this definition">¶</a></dt>
 <dd><p>Broadcasted elementwise test for (lhs &gt;= rhs).</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2318,9 +2348,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.isfinite">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">isfinite</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.isfinite" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">isfinite</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.isfinite" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute element-wise finiteness of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2335,9 +2365,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.isinf">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">isinf</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.isinf" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">isinf</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.isinf" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute element-wise infiniteness of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2352,9 +2382,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.isnan">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">isnan</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.isnan" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">isnan</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.isnan" title="Permalink to this definition">¶</a></dt>
 <dd><p>Check nan in input data element-wise.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2369,9 +2399,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.layout_transform">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">layout_transform</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">src_layout</em>, <em class="sig-param">dst_layout</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.layout_transform" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">layout_transform</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">src_layout</span></em>, <em class="sig-param"><span class="n">dst_layout</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.layout_transform" title="Permalink to this definition">¶</a></dt>
 <dd><p>Transform the layout of a tensor</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2390,9 +2420,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.left_shift">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">left_shift</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.left_shift" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">left_shift</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.left_shift" title="Permalink to this definition">¶</a></dt>
 <dd><p>Left shift with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2410,9 +2440,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.less">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">less</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.less" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">less</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.less" title="Permalink to this definition">¶</a></dt>
 <dd><p>Broadcasted elementwise test for (lhs &lt; rhs).</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2430,9 +2460,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.less_equal">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">less_equal</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.less_equal" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">less_equal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.less_equal" title="Permalink to this definition">¶</a></dt>
 <dd><p>Broadcasted elementwise test for (lhs &lt;= rhs).</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2450,9 +2480,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.log">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">log</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.log" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">log</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.log" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute elementwise log of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2467,9 +2497,43 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
+<dt id="tvm.relay.log10">
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">log10</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.log10" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compute elementwise log to the base 10 of data.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>data</strong> (<em>relay.Expr</em>) – The input data</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p><strong>result</strong> – The computed result.</p>
+</dd>
+<dt class="field-odd">Return type</dt>
+<dd class="field-odd"><p>relay.Expr</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="tvm.relay.log2">
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">log2</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.log2" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compute elementwise log to the base 2 of data.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>data</strong> (<em>relay.Expr</em>) – The input data</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p><strong>result</strong> – The computed result.</p>
+</dd>
+<dt class="field-odd">Return type</dt>
+<dd class="field-odd"><p>relay.Expr</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
 <dt id="tvm.relay.logical_and">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">logical_and</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.logical_and" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">logical_and</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.logical_and" title="Permalink to this definition">¶</a></dt>
 <dd><p>logical AND with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2487,9 +2551,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.logical_not">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">logical_not</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.logical_not" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">logical_not</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.logical_not" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute element-wise logical not of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2504,9 +2568,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.logical_or">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">logical_or</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.logical_or" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">logical_or</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.logical_or" title="Permalink to this definition">¶</a></dt>
 <dd><p>logical OR with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2524,9 +2588,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.logical_xor">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">logical_xor</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.logical_xor" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">logical_xor</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.logical_xor" title="Permalink to this definition">¶</a></dt>
 <dd><p>logical XOR with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2544,9 +2608,9 @@ defined by indices.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.max">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">max</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.max" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">max</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span><span clas [...]
 <dd><p>Computes the max of array elements over given axes.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2571,9 +2635,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.maximum">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">maximum</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.maximum" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">maximum</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.maximum" title="Permalink to this definition">¶</a></dt>
 <dd><p>Maximum with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2591,9 +2655,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.mean">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">mean</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.mean" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">mean</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span><span cla [...]
 <dd><p>Computes the mean of array elements over given axes.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2618,9 +2682,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.mean_std">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">mean_std</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.mean_std" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">mean_std</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span><span [...]
 <dd><p>Computes the mean and standard deviation of data over given axes.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2645,9 +2709,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.mean_variance">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">mean_variance</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.mean_variance" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">mean_variance</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span> [...]
 <dd><p>Computes the mean and variance of data over given axes.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2672,9 +2736,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.min">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">min</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.min" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">min</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span><span clas [...]
 <dd><p>Computes the min of array elements over given axes.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2700,9 +2764,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.minimum">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">minimum</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.minimum" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">minimum</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.minimum" title="Permalink to this definition">¶</a></dt>
 <dd><p>Minimum with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2720,9 +2784,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.mod">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">mod</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.mod" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">mod</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.mod" title="Permalink to this definition">¶</a></dt>
 <dd><p>Mod with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2740,9 +2804,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.multiply">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">multiply</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.multiply" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">multiply</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.multiply" title="Permalink to this definition">¶</a></dt>
 <dd><p>Multiplication with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2760,9 +2824,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.ndarray_size">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ndarray_size</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">dtype='int32'</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ndarray_size" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ndarray_size</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">dtype</span><span class="o">=</span><span class="default_value">'int32'</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ndarray_size" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get number of elements of input tensor.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2780,9 +2844,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.negative">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">negative</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.negative" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">negative</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.negative" title="Permalink to this definition">¶</a></dt>
 <dd><p>Compute element-wise negative of data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2797,9 +2861,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.not_equal">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">not_equal</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.not_equal" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">not_equal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.not_equal" title="Permalink to this definition">¶</a></dt>
 <dd><p>Broadcasted elementwise test for (lhs != rhs).</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2817,9 +2881,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.one_hot">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">one_hot</code><span class="sig-paren">(</span><em class="sig-param">indices</em>, <em class="sig-param">on_value</em>, <em class="sig-param">off_value</em>, <em class="sig-param">depth</em>, <em class="sig-param">axis</em>, <em class="sig-param">dtype</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.one_hot" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">one_hot</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">indices</span></em>, <em class="sig-param"><span class="n">on_value</span></em>, <em class="sig-param"><span class="n">off_value</span></em>, <em class="sig-param"><span class="n">depth</span></em>, <em class="sig-param"><span class="n">axis</span></em>, <em class="sig-param"><span class="n">dtype</span></em><span cla [...]
 <dd><p>Returns a one-hot tensor where the locations repsented by indices take value on_value,
 other locations take value off_value.
 Final dimension is &lt;indices outer dimensions&gt; x depth x &lt;indices inner dimensions&gt;.</p>
@@ -2852,9 +2916,9 @@ Final dimension is &lt;indices outer dimensions&gt; x depth x &lt;indices inner
 </div>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.ones">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ones</code><span class="sig-paren">(</span><em class="sig-param">shape</em>, <em class="sig-param">dtype</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ones" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ones</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">shape</span></em>, <em class="sig-param"><span class="n">dtype</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ones" title="Permalink to this definition">¶</a></dt>
 <dd><p>Fill array with ones.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2872,9 +2936,9 @@ Final dimension is &lt;indices outer dimensions&gt; x depth x &lt;indices inner
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.ones_like">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ones_like</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ones_like" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">ones_like</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.ones_like" title="Permalink to this definition">¶</a></dt>
 <dd><p>Returns an array of ones, with same type and shape as the input.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2889,9 +2953,9 @@ Final dimension is &lt;indices outer dimensions&gt; x depth x &lt;indices inner
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.power">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">power</code><span class="sig-paren">(</span><em class="sig-param">lhs</em>, <em class="sig-param">rhs</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.power" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">power</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lhs</span></em>, <em class="sig-param"><span class="n">rhs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.power" title="Permalink to this definition">¶</a></dt>
 <dd><p>Power with numpy-style broadcasting.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2909,9 +2973,9 @@ Final dimension is &lt;indices outer dimensions&gt; x depth x &lt;indices inner
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.prod">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">prod</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">axis=None</em>, <em class="sig-param">keepdims=False</em>, <em class="sig-param">exclude=False</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.prod" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">prod</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">axis</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keepdims</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exclude</span><span cla [...]
 <dd><p>Computes the products of array elements over given axes.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2936,9 +3000,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.reinterpret">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">reinterpret</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">dtype</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.reinterpret" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">reinterpret</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">dtype</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.reinterpret" title="Permalink to this definition">¶</a></dt>
 <dd><p>Reinterpret input tensor to data type.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -2956,9 +3020,9 @@ NOT in axis instead.</p></li>
 </dl>
 </dd></dl>
 
-<dl class="function">
+<dl class="py function">
 <dt id="tvm.relay.repeat">
-<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">repeat</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">repeats</em>, <em class="sig-param">axis</em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.repeat" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">tvm.relay.</code><code class="sig-name descname">repeat</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="n">repeats</span></em>, <em class="sig-param"><span class="n">axis</span></em><span class="sig-paren">)</span><a class="headerlink" href="#tvm.relay.repeat" title="Permalink to this definition">¶</a></dt>
 <dd><p>Repeats elements of an array.
 By default, repeat flattens the input array into 1-D and then repeats the elements.</p>
 <dl class="simple">
@@ -2987,9 +3051,9 @@ return a flat output array.</p>
... 224284 lines suppressed ...


Mime
View raw message