You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by tq...@apache.org on 2022/11/30 00:41:14 UTC

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

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

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


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

commit 24aea0fd0a4c86b47b4137c2cce5609e99fced27
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Wed Nov 30 00:41:06 2022 +0000

    deploying docs (apache/tvm@b587e33027ced167cd66ae26646e8dc5b3293120)
---
 docs/_images/sphx_glr_micro_train_001.png          | Bin 322817 -> 331617 bytes
 docs/_images/sphx_glr_micro_train_thumb.png        | Bin 23407 -> 23864 bytes
 .../how_to/compile_models/from_darknet.rst.txt     |   2 +-
 .../how_to/compile_models/from_keras.rst.txt       |   2 +-
 .../how_to/compile_models/from_mxnet.rst.txt       |   2 +-
 .../how_to/compile_models/from_oneflow.rst.txt     |   2 +-
 .../how_to/compile_models/from_pytorch.rst.txt     |   2 +-
 .../how_to/compile_models/from_tensorflow.rst.txt  |   2 +-
 .../compile_models/sg_execution_times.rst.txt      |  22 +-
 .../deploy_models/deploy_model_on_adreno.rst.txt   |   7 +-
 .../deploy_models/deploy_model_on_android.rst.txt  |   2 +-
 .../deploy_object_detection_pytorch.rst.txt        |   4 +-
 .../deploy_models/deploy_prequantized.rst.txt      |   6 +-
 .../deploy_prequantized_tflite.rst.txt             |   4 +-
 .../how_to/deploy_models/deploy_quantized.rst.txt  |   2 +-
 .../deploy_models/deploy_ssd_gluoncv.rst.txt       |   4 +-
 .../deploy_models/sg_execution_times.rst.txt       |  20 +-
 .../extend_tvm/bring_your_own_datatypes.rst.txt    |   2 +-
 .../how_to/extend_tvm/sg_execution_times.rst.txt   |  10 +-
 .../how_to/extend_tvm/use_pass_instrument.rst.txt  |  16 +-
 .../optimize_operators/opt_conv_cuda.rst.txt       |   2 +-
 .../optimize_operators/opt_conv_tensorcore.rst.txt |   2 +-
 .../how_to/optimize_operators/opt_gemm.rst.txt     |  16 +-
 .../optimize_operators/sg_execution_times.rst.txt  |   8 +-
 .../sg_execution_times.rst.txt                     |  14 +-
 .../tune_conv2d_layer_cuda.rst.txt                 |   4 +-
 .../tune_network_cuda.rst.txt                      |   4 +-
 .../tune_network_x86.rst.txt                       |   4 +-
 .../tune_sparse_x86.rst.txt                        |  82 ++-
 .../tune_with_autotvm/sg_execution_times.rst.txt   |  12 +-
 .../tune_with_autotvm/tune_conv2d_cuda.rst.txt     | 436 ++++++++------
 .../work_with_microtvm/micro_autotune.rst.txt      |  16 +-
 .../work_with_microtvm/micro_pytorch.rst.txt       |   4 +-
 .../how_to/work_with_microtvm/micro_train.rst.txt  |  18 +-
 .../work_with_microtvm/sg_execution_times.rst.txt  |  12 +-
 .../work_with_relay/sg_execution_times.rst.txt     |   8 +-
 .../how_to/work_with_schedules/intrin_math.rst.txt |   2 +-
 .../work_with_schedules/sg_execution_times.rst.txt |  18 +-
 .../how_to/work_with_schedules/tensorize.rst.txt   |   2 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |   6 +-
 .../frontend/deploy_classification.rst.txt         |   2 +-
 .../tutorials/frontend/deploy_detection.rst.txt    |   2 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |   6 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |   6 +-
 .../topic/vta/tutorials/sg_execution_times.rst.txt |   6 +-
 .../tutorial/auto_scheduler_matmul_x86.rst.txt     |  11 +-
 docs/_sources/tutorial/autotvm_matmul_x86.rst.txt  |  20 +-
 docs/_sources/tutorial/autotvm_relay_x86.rst.txt   |  59 +-
 .../tutorial/cross_compilation_and_rpc.rst.txt     |   2 +-
 docs/_sources/tutorial/intro_topi.rst.txt          |   2 +-
 docs/_sources/tutorial/sg_execution_times.rst.txt  |  26 +-
 .../tutorial/tensor_expr_get_started.rst.txt       |  47 +-
 docs/commit_hash                                   |   2 +-
 docs/how_to/compile_models/from_darknet.html       |   2 +-
 docs/how_to/compile_models/from_keras.html         |   2 +-
 docs/how_to/compile_models/from_mxnet.html         |   2 +-
 docs/how_to/compile_models/from_oneflow.html       |  12 +-
 docs/how_to/compile_models/from_pytorch.html       |   9 +-
 docs/how_to/compile_models/from_tensorflow.html    |   2 +-
 docs/how_to/compile_models/sg_execution_times.html |  26 +-
 .../deploy_models/deploy_model_on_adreno.html      |   3 +-
 .../deploy_models/deploy_model_on_android.html     |   2 +-
 .../deploy_object_detection_pytorch.html           |  38 +-
 docs/how_to/deploy_models/deploy_prequantized.html |  10 +-
 .../deploy_models/deploy_prequantized_tflite.html  |   4 +-
 docs/how_to/deploy_models/deploy_quantized.html    |   2 +-
 docs/how_to/deploy_models/deploy_ssd_gluoncv.html  |  36 +-
 docs/how_to/deploy_models/sg_execution_times.html  |  20 +-
 .../extend_tvm/bring_your_own_datatypes.html       |   2 +-
 docs/how_to/extend_tvm/sg_execution_times.html     |  10 +-
 docs/how_to/extend_tvm/use_pass_instrument.html    |  16 +-
 docs/how_to/optimize_operators/opt_conv_cuda.html  |   2 +-
 .../optimize_operators/opt_conv_tensorcore.html    |   2 +-
 docs/how_to/optimize_operators/opt_gemm.html       |  16 +-
 .../optimize_operators/sg_execution_times.html     |   8 +-
 .../sg_execution_times.html                        |  14 +-
 .../tune_conv2d_layer_cuda.html                    |   4 +-
 .../tune_with_autoscheduler/tune_network_cuda.html |   4 +-
 .../tune_with_autoscheduler/tune_network_x86.html  |   4 +-
 .../tune_with_autoscheduler/tune_sparse_x86.html   |  82 ++-
 .../tune_with_autotvm/sg_execution_times.html      |  12 +-
 .../how_to/tune_with_autotvm/tune_conv2d_cuda.html | 436 ++++++++------
 docs/how_to/work_with_microtvm/micro_autotune.html |  16 +-
 docs/how_to/work_with_microtvm/micro_pytorch.html  |   4 +-
 docs/how_to/work_with_microtvm/micro_train.html    |  16 +-
 .../work_with_microtvm/sg_execution_times.html     |  12 +-
 .../how_to/work_with_relay/sg_execution_times.html |   8 +-
 docs/how_to/work_with_schedules/intrin_math.html   |   2 +-
 .../work_with_schedules/sg_execution_times.html    |  18 +-
 docs/how_to/work_with_schedules/tensorize.html     |   2 +-
 docs/install/nnpack.html                           |  12 +-
 docs/reference/api/doxygen/analyzer_8h_source.html |   2 +-
 .../api/doxygen/c__backend__api_8h_source.html     |   4 +-
 .../api/doxygen/c__runtime__api_8h_source.html     |   4 +-
 .../classtvm_1_1BaseExpr__inherit__graph.svg       | 644 +++++++++-----------
 .../api/doxygen/classtvm_1_1Bool-members.html      |  11 +-
 docs/reference/api/doxygen/classtvm_1_1Bool.html   |   6 +-
 .../api/doxygen/classtvm_1_1Bool__coll__graph.svg  | 148 +++--
 .../doxygen/classtvm_1_1Bool__inherit__graph.svg   | 118 ++--
 .../api/doxygen/classtvm_1_1FloatImm-members.html  |  11 +-
 .../api/doxygen/classtvm_1_1FloatImm.html          |  24 +-
 .../doxygen/classtvm_1_1FloatImm__coll__graph.svg  | 144 +++--
 .../classtvm_1_1FloatImm__inherit__graph.svg       | 114 ++--
 .../api/doxygen/classtvm_1_1IntImm-members.html    |  11 +-
 docs/reference/api/doxygen/classtvm_1_1IntImm.html |  24 +-
 .../doxygen/classtvm_1_1IntImm__coll__graph.svg    | 144 +++--
 .../doxygen/classtvm_1_1IntImm__inherit__graph.svg | 122 ++--
 .../api/doxygen/classtvm_1_1Integer-members.html   |  11 +-
 .../reference/api/doxygen/classtvm_1_1Integer.html |   6 +-
 .../doxygen/classtvm_1_1Integer__coll__graph.svg   | 148 +++--
 .../classtvm_1_1Integer__inherit__graph.svg        | 118 ++--
 .../classtvm_1_1PrimExpr__inherit__graph.svg       | 652 ++++++++++-----------
 .../doxygen/classtvm_1_1tir_1_1Add-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Add.html        |  24 +-
 .../classtvm_1_1tir_1_1Add__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1Add__inherit__graph.svg     | 114 ++--
 .../classtvm_1_1tir_1_1AllocateConst-members.html  |   9 +-
 .../doxygen/classtvm_1_1tir_1_1AllocateConst.html  |  24 +-
 ...asstvm_1_1tir_1_1AllocateConst__coll__graph.svg | 120 ++--
 ...tvm_1_1tir_1_1AllocateConst__inherit__graph.svg |  90 ++-
 .../doxygen/classtvm_1_1tir_1_1And-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1And.html        |  24 +-
 .../classtvm_1_1tir_1_1And__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1And__inherit__graph.svg     | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Any-members.html    |   9 +-
 .../api/doxygen/classtvm_1_1tir_1_1Any.html        |  24 +-
 .../classtvm_1_1tir_1_1Any__coll__graph.svg        | 146 +++--
 .../classtvm_1_1tir_1_1Any__inherit__graph.svg     | 116 ++--
 .../classtvm_1_1tir_1_1AssertStmt-members.html     |   9 +-
 .../api/doxygen/classtvm_1_1tir_1_1AssertStmt.html |  24 +-
 .../classtvm_1_1tir_1_1AssertStmt__coll__graph.svg | 120 ++--
 ...asstvm_1_1tir_1_1AssertStmt__inherit__graph.svg |  90 ++-
 .../classtvm_1_1tir_1_1AttrStmt-members.html       |   9 +-
 .../api/doxygen/classtvm_1_1tir_1_1AttrStmt.html   |  24 +-
 .../classtvm_1_1tir_1_1AttrStmt__coll__graph.svg   | 120 ++--
 ...classtvm_1_1tir_1_1AttrStmt__inherit__graph.svg |  90 ++-
 .../classtvm_1_1tir_1_1Broadcast-members.html      |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Broadcast.html  |  24 +-
 .../classtvm_1_1tir_1_1Broadcast__coll__graph.svg  | 144 +++--
 ...lasstvm_1_1tir_1_1Broadcast__inherit__graph.svg | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Call-members.html   |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Call.html       |  24 +-
 .../classtvm_1_1tir_1_1Call__coll__graph.svg       | 144 +++--
 .../classtvm_1_1tir_1_1Call__inherit__graph.svg    | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Cast-members.html   |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Cast.html       |  24 +-
 .../classtvm_1_1tir_1_1Cast__coll__graph.svg       | 144 +++--
 .../classtvm_1_1tir_1_1Cast__inherit__graph.svg    | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Div-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Div.html        |  24 +-
 .../classtvm_1_1tir_1_1Div__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1Div__inherit__graph.svg     | 114 ++--
 .../api/doxygen/classtvm_1_1tir_1_1EQ-members.html |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1EQ.html         |  24 +-
 .../doxygen/classtvm_1_1tir_1_1EQ__coll__graph.svg | 144 +++--
 .../classtvm_1_1tir_1_1EQ__inherit__graph.svg      | 114 ++--
 .../classtvm_1_1tir_1_1Evaluate-members.html       |   9 +-
 .../api/doxygen/classtvm_1_1tir_1_1Evaluate.html   |  24 +-
 .../classtvm_1_1tir_1_1Evaluate__coll__graph.svg   | 122 ++--
 ...classtvm_1_1tir_1_1Evaluate__inherit__graph.svg |  92 ++-
 .../classtvm_1_1tir_1_1FloorDiv-members.html       |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1FloorDiv.html   |  24 +-
 .../classtvm_1_1tir_1_1FloorDiv__coll__graph.svg   | 144 +++--
 ...classtvm_1_1tir_1_1FloorDiv__inherit__graph.svg | 114 ++--
 .../classtvm_1_1tir_1_1FloorMod-members.html       |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1FloorMod.html   |  24 +-
 .../classtvm_1_1tir_1_1FloorMod__coll__graph.svg   | 144 +++--
 ...classtvm_1_1tir_1_1FloorMod__inherit__graph.svg | 114 ++--
 .../api/doxygen/classtvm_1_1tir_1_1GE-members.html |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1GE.html         |  24 +-
 .../doxygen/classtvm_1_1tir_1_1GE__coll__graph.svg | 144 +++--
 .../classtvm_1_1tir_1_1GE__inherit__graph.svg      | 114 ++--
 .../api/doxygen/classtvm_1_1tir_1_1GT-members.html |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1GT.html         |  24 +-
 .../doxygen/classtvm_1_1tir_1_1GT__coll__graph.svg | 144 +++--
 .../classtvm_1_1tir_1_1GT__inherit__graph.svg      | 114 ++--
 .../api/doxygen/classtvm_1_1tir_1_1LE-members.html |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1LE.html         |  24 +-
 .../doxygen/classtvm_1_1tir_1_1LE__coll__graph.svg | 144 +++--
 .../classtvm_1_1tir_1_1LE__inherit__graph.svg      | 114 ++--
 .../api/doxygen/classtvm_1_1tir_1_1LT-members.html |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1LT.html         |  24 +-
 .../doxygen/classtvm_1_1tir_1_1LT__coll__graph.svg | 144 +++--
 .../classtvm_1_1tir_1_1LT__inherit__graph.svg      | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Let-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Let.html        |  24 +-
 .../classtvm_1_1tir_1_1LetStmt-members.html        |   9 +-
 .../api/doxygen/classtvm_1_1tir_1_1LetStmt.html    |  24 +-
 .../classtvm_1_1tir_1_1LetStmt__coll__graph.svg    | 120 ++--
 .../classtvm_1_1tir_1_1LetStmt__inherit__graph.svg |  90 ++-
 .../classtvm_1_1tir_1_1Let__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1Let__inherit__graph.svg     | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Load-members.html   |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Load.html       |  24 +-
 .../classtvm_1_1tir_1_1Load__coll__graph.svg       | 144 +++--
 .../classtvm_1_1tir_1_1Load__inherit__graph.svg    | 114 ++--
 ...asstvm_1_1tir_1_1MatchBufferRegion-members.html |   7 +-
 .../classtvm_1_1tir_1_1MatchBufferRegion.html      |  24 +-
 ...vm_1_1tir_1_1MatchBufferRegion__coll__graph.svg | 102 ++--
 ...1_1tir_1_1MatchBufferRegion__inherit__graph.svg |  72 ++-
 .../doxygen/classtvm_1_1tir_1_1Max-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Max.html        |  24 +-
 .../classtvm_1_1tir_1_1Max__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1Max__inherit__graph.svg     | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Min-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Min.html        |  24 +-
 .../classtvm_1_1tir_1_1Min__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1Min__inherit__graph.svg     | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Mod-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Mod.html        |  24 +-
 .../classtvm_1_1tir_1_1Mod__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1Mod__inherit__graph.svg     | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Mul-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Mul.html        |  24 +-
 .../classtvm_1_1tir_1_1Mul__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1Mul__inherit__graph.svg     | 114 ++--
 .../api/doxygen/classtvm_1_1tir_1_1NE-members.html |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1NE.html         |  24 +-
 .../doxygen/classtvm_1_1tir_1_1NE__coll__graph.svg | 144 +++--
 .../classtvm_1_1tir_1_1NE__inherit__graph.svg      | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Not-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Not.html        |  24 +-
 .../classtvm_1_1tir_1_1Not__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1Not__inherit__graph.svg     | 114 ++--
 .../api/doxygen/classtvm_1_1tir_1_1Or-members.html |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Or.html         |  24 +-
 .../doxygen/classtvm_1_1tir_1_1Or__coll__graph.svg | 144 +++--
 .../classtvm_1_1tir_1_1Or__inherit__graph.svg      | 114 ++--
 .../classtvm_1_1tir_1_1Prefetch-members.html       |   7 +-
 .../api/doxygen/classtvm_1_1tir_1_1Prefetch.html   |  24 +-
 .../classtvm_1_1tir_1_1Prefetch__coll__graph.svg   | 122 ++--
 ...classtvm_1_1tir_1_1Prefetch__inherit__graph.svg |  92 ++-
 .../classtvm_1_1tir_1_1ProducerLoad-members.html   |  11 +-
 .../doxygen/classtvm_1_1tir_1_1ProducerLoad.html   |  24 +-
 ...lasstvm_1_1tir_1_1ProducerLoad__coll__graph.svg | 144 +++--
 ...stvm_1_1tir_1_1ProducerLoad__inherit__graph.svg | 114 ++--
 ...classtvm_1_1tir_1_1ProducerRealize-members.html |   9 +-
 .../classtvm_1_1tir_1_1ProducerRealize.html        |  24 +-
 ...stvm_1_1tir_1_1ProducerRealize__coll__graph.svg | 120 ++--
 ...m_1_1tir_1_1ProducerRealize__inherit__graph.svg |  90 ++-
 .../classtvm_1_1tir_1_1ProducerStore-members.html  |   9 +-
 .../doxygen/classtvm_1_1tir_1_1ProducerStore.html  |  24 +-
 ...asstvm_1_1tir_1_1ProducerStore__coll__graph.svg | 120 ++--
 ...tvm_1_1tir_1_1ProducerStore__inherit__graph.svg |  90 ++-
 .../doxygen/classtvm_1_1tir_1_1Ramp-members.html   |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Ramp.html       |  24 +-
 .../classtvm_1_1tir_1_1Ramp__coll__graph.svg       | 144 +++--
 .../classtvm_1_1tir_1_1Ramp__inherit__graph.svg    | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Reduce-members.html |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Reduce.html     |  24 +-
 .../classtvm_1_1tir_1_1Reduce__coll__graph.svg     | 144 +++--
 .../classtvm_1_1tir_1_1Reduce__inherit__graph.svg  | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Select-members.html |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Select.html     |  24 +-
 .../classtvm_1_1tir_1_1Select__coll__graph.svg     | 144 +++--
 .../classtvm_1_1tir_1_1Select__inherit__graph.svg  | 114 ++--
 .../classtvm_1_1tir_1_1SeqStmt-members.html        |   9 +-
 .../api/doxygen/classtvm_1_1tir_1_1SeqStmt.html    |  24 +-
 .../classtvm_1_1tir_1_1SeqStmt__coll__graph.svg    | 124 ++--
 .../classtvm_1_1tir_1_1SeqStmt__inherit__graph.svg |  94 ++-
 .../classtvm_1_1tir_1_1Shuffle-members.html        |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Shuffle.html    |  24 +-
 .../classtvm_1_1tir_1_1Shuffle__coll__graph.svg    | 144 +++--
 .../classtvm_1_1tir_1_1Shuffle__inherit__graph.svg | 114 ++--
 .../api/doxygen/classtvm_1_1tir_1_1Stmt.html       |   2 +-
 .../classtvm_1_1tir_1_1Stmt__inherit__graph.svg    | 490 ++++++++--------
 .../doxygen/classtvm_1_1tir_1_1Store-members.html  |   9 +-
 .../api/doxygen/classtvm_1_1tir_1_1Store.html      |  24 +-
 .../classtvm_1_1tir_1_1Store__coll__graph.svg      | 120 ++--
 .../classtvm_1_1tir_1_1Store__inherit__graph.svg   |  90 ++-
 .../classtvm_1_1tir_1_1StringImm-members.html      |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1StringImm.html  |  24 +-
 .../classtvm_1_1tir_1_1StringImm__coll__graph.svg  | 144 +++--
 ...lasstvm_1_1tir_1_1StringImm__inherit__graph.svg | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1Sub-members.html    |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1Sub.html        |  24 +-
 .../classtvm_1_1tir_1_1Sub__coll__graph.svg        | 144 +++--
 .../classtvm_1_1tir_1_1Sub__inherit__graph.svg     | 114 ++--
 .../doxygen/classtvm_1_1tir_1_1While-members.html  |  11 +-
 .../api/doxygen/classtvm_1_1tir_1_1While.html      |  24 +-
 .../classtvm_1_1tir_1_1While__coll__graph.svg      | 120 ++--
 .../classtvm_1_1tir_1_1While__inherit__graph.svg   |  90 ++-
 .../api/doxygen/compilation__config_8h_source.html |   2 +-
 .../api/doxygen/cuda_2dense_8h_source.html         |   2 +-
 .../api/doxygen/cuda_2injective_8h_source.html     |   6 +-
 .../api/doxygen/cuda_2pooling_8h_source.html       |   6 +-
 .../api/doxygen/cuda_2reduction_8h_source.html     |   6 +-
 .../api/doxygen/cuda_2softmax_8h_source.html       |   2 +-
 .../doxygen/data__type__rewriter_8h_source.html    |  58 +-
 .../api/doxygen/detail_2extern_8h_source.html      |   2 +-
 .../api/doxygen/device__api_8h_source.html         |   2 +-
 docs/reference/api/doxygen/doc_8h_source.html      |   2 +-
 docs/reference/api/doxygen/executor_8h_source.html |   2 +-
 docs/reference/api/doxygen/functions_func_t.html   |  54 +-
 docs/reference/api/doxygen/functions_t.html        |  52 +-
 docs/reference/api/doxygen/int__set_8h_source.html |   2 +-
 .../api/doxygen/int__solver_8h_source.html         |   2 +-
 .../reference/api/doxygen/ir_2attrs_8h_source.html |   2 +-
 docs/reference/api/doxygen/ir_2expr_8h_source.html |  72 +--
 .../api/doxygen/ir_2module_8h_source.html          |   2 +-
 .../doxygen/ir__builder_2tir_2frame_8h_source.html |   2 +-
 .../doxygen/local__response__norm_8h_source.html   |   2 +-
 .../api/doxygen/memory__pools_8h_source.html       |   4 +-
 docs/reference/api/doxygen/nn_2bnn_8h_source.html  |   2 +-
 .../reference/api/doxygen/nn_2dense_8h_source.html |   2 +-
 .../api/doxygen/nn_2pooling_8h_source.html         |   6 +-
 .../api/doxygen/nn_2softmax_8h_source.html         |   4 +-
 .../reference/api/doxygen/operation_8h_source.html |   2 +-
 .../reference/api/doxygen/profiling_8h_source.html |   4 +-
 docs/reference/api/doxygen/random_8h_source.html   |   2 +-
 .../reference/api/doxygen/reduction_8h_source.html |   8 +-
 .../doxygen/relay_2attrs_2transform_8h_source.html |   4 +-
 .../api/doxygen/relay_2feature_8h_source.html      |   2 +-
 .../api/doxygen/relay_2type_8h_source.html         |   4 +-
 .../api/doxygen/schedule__rule_8h_source.html      |   2 +-
 docs/reference/api/doxygen/search/all_15.js        |   2 +-
 docs/reference/api/doxygen/search/functions_14.js  |   2 +-
 .../api/doxygen/serializer_8h_source.html          |   2 +-
 docs/reference/api/doxygen/stmt_8h_source.html     | 510 ++++++++--------
 .../api/doxygen/stmt__functor_8h_source.html       |  36 +-
 .../api/doxygen/strided__slice_8h_source.html      |   2 +-
 .../api/doxygen/structtvm_1_1ConstantInfoNode.html |   2 +-
 .../structtvm_1_1ConstantInfoNode__coll__graph.svg | 244 ++++----
 .../doxygen/structtvm_1_1ConstantPoolInfoNode.html |   2 +-
 ...ucttvm_1_1ConstantPoolInfoNode__coll__graph.svg | 216 ++++---
 .../api/doxygen/structtvm_1_1PoolInfoNode.html     |   2 +-
 .../structtvm_1_1PoolInfoNode__coll__graph.svg     | 212 ++++---
 .../structtvm_1_1PoolInfoPropertiesNode.html       |   2 +-
 ...ttvm_1_1PoolInfoPropertiesNode__coll__graph.svg | 180 +++---
 .../structtvm_1_1WorkspacePoolInfoNode.html        |   2 +-
 ...cttvm_1_1WorkspacePoolInfoNode__coll__graph.svg | 212 ++++---
 ...ucttvm_1_1relay_1_1GatherAttrs__coll__graph.svg |  24 +-
 ...ttvm_1_1relay_1_1GatherNDAttrs__coll__graph.svg |  24 +-
 ...m_1_1relay_1_1MultinomialAttrs__coll__graph.svg |  24 +-
 ...ucttvm_1_1relay_1_1RepeatAttrs__coll__graph.svg |  24 +-
 ...m_1_1relay_1_1ReshapeLikeAttrs__coll__graph.svg |  24 +-
 ...cttvm_1_1relay_1_1ReverseAttrs__coll__graph.svg |  24 +-
 ...1relay_1_1ReverseSequenceAttrs__coll__graph.svg |  24 +-
 ...ucttvm_1_1relay_1_1ScanopAttrs__coll__graph.svg |  28 +-
 ...vm_1_1relay_1_1ScatterAddAttrs__coll__graph.svg |  24 +-
 ...cttvm_1_1relay_1_1ScatterAttrs__coll__graph.svg |  24 +-
 ...ructtvm_1_1relay_1_1StackAttrs__coll__graph.svg |  24 +-
 ...tructtvm_1_1relay_1_1TakeAttrs__coll__graph.svg |  24 +-
 ...tvm_1_1relay_1_1YoloReorgAttrs__coll__graph.svg |  24 +-
 ...vm_1_1tir_1_1usmp_1_1AllocatedPoolInfoNode.html |   2 +-
 ...1usmp_1_1AllocatedPoolInfoNode__coll__graph.svg | 200 ++++---
 ...m_1_1tir_1_1usmp_1_1BufferInfoAnalysisNode.html |   2 +-
 ...usmp_1_1BufferInfoAnalysisNode__coll__graph.svg | 182 +++---
 ...structtvm_1_1tir_1_1usmp_1_1BufferInfoNode.html |   2 +-
 ...1tir_1_1usmp_1_1BufferInfoNode__coll__graph.svg | 212 ++++---
 ...cttvm_1_1tir_1_1usmp_1_1PoolAllocationNode.html |   2 +-
 ..._1_1usmp_1_1PoolAllocationNode__coll__graph.svg | 172 +++---
 .../api/doxygen/target__kind_8h_source.html        |   2 +-
 .../api/doxygen/te_2schedule_8h_source.html        |   2 +-
 .../api/doxygen/tir_2analysis_8h_source.html       |   6 +-
 .../reference/api/doxygen/tir_2expr_8h_source.html | 330 +++++------
 .../api/doxygen/tir_2expr__functor_8h_source.html  |  62 +-
 docs/reference/api/doxygen/tir_2ir_8h_source.html  |   6 +-
 docs/reference/api/doxygen/tir_2op_8h_source.html  |  12 +-
 .../doxygen/tir_2op__attr__types_8h_source.html    |   2 +-
 .../doxygen/tir_2schedule_2schedule_8h_source.html |   6 +-
 .../doxygen/tir_2usmp_2transform_8h_source.html    |   2 +-
 .../api/doxygen/tir_2usmp_2utils_8h_source.html    |   6 +-
 docs/reference/api/doxygen/topi_2nn_8h_source.html |   6 +-
 .../api/doxygen/topi_2transform_8h_source.html     |   6 +-
 .../api/doxygen/topi_2utils_8h_source.html         |   2 +-
 .../api/doxygen/transform__step_8h_source.html     |   2 +-
 docs/reference/api/doxygen/var_8h_source.html      |   2 +-
 .../api/doxygen/virtual__device_8h_source.html     |   2 +-
 docs/reference/api/doxygen/vision_8h_source.html   |   2 +-
 docs/reference/api/python/auto_scheduler.html      |   4 +-
 .../api/typedoc/classes/bytestreamreader.html      |  12 +-
 .../api/typedoc/classes/cachedcallstack.html       |  34 +-
 docs/reference/api/typedoc/classes/dldatatype.html |  12 +-
 docs/reference/api/typedoc/classes/dldevice.html   |  10 +-
 .../reference/api/typedoc/classes/environment.html |  12 +-
 docs/reference/api/typedoc/classes/ffilibrary.html |  20 +-
 .../api/typedoc/classes/graphexecutor.html         |  16 +-
 docs/reference/api/typedoc/classes/instance.html   |  40 +-
 docs/reference/api/typedoc/classes/memory.html     |  34 +-
 docs/reference/api/typedoc/classes/module.html     |  10 +-
 docs/reference/api/typedoc/classes/ndarray.html    |  22 +-
 .../api/typedoc/classes/packedfunccell.html        |   6 +-
 docs/reference/api/typedoc/classes/rpcserver.html  |  14 +-
 docs/reference/api/typedoc/classes/scalar.html     |   6 +-
 .../api/typedoc/classes/webgpucontext.html         |  12 +-
 docs/reference/api/typedoc/enums/argtypecode.html  |  30 +-
 .../api/typedoc/enums/aynccallbackcode.html        |   4 +-
 .../api/typedoc/enums/dldatatypecode.html          |   8 +-
 .../api/typedoc/enums/rpcserverstate.html          |  12 +-
 docs/reference/api/typedoc/enums/sizeof.html       |  18 +-
 docs/reference/api/typedoc/index.html              | 112 ++--
 .../api/typedoc/interfaces/disposable.html         |   2 +-
 .../api/typedoc/interfaces/functioninfo.html       |   6 +-
 .../api/typedoc/interfaces/libraryprovider.html    |   4 +-
 docs/searchindex.js                                |   2 +-
 .../vta/tutorials/autotvm/sg_execution_times.html  |   6 +-
 .../tutorials/frontend/deploy_classification.html  |   2 +-
 .../vta/tutorials/frontend/deploy_detection.html   |   2 +-
 .../vta/tutorials/frontend/sg_execution_times.html |   6 +-
 .../vta/tutorials/optimize/sg_execution_times.html |   6 +-
 docs/topic/vta/tutorials/sg_execution_times.html   |   6 +-
 docs/tutorial/auto_scheduler_matmul_x86.html       |   7 +-
 docs/tutorial/autotvm_matmul_x86.html              |  20 +-
 docs/tutorial/autotvm_relay_x86.html               | 271 +++++----
 docs/tutorial/cross_compilation_and_rpc.html       |   2 +-
 docs/tutorial/intro_topi.html                      |   2 +-
 docs/tutorial/sg_execution_times.html              |  26 +-
 docs/tutorial/tensor_expr_get_started.html         |  43 +-
 409 files changed, 9869 insertions(+), 10982 deletions(-)

diff --git a/docs/_images/sphx_glr_micro_train_001.png b/docs/_images/sphx_glr_micro_train_001.png
index 9d7b73ba75..12c48e1794 100644
Binary files a/docs/_images/sphx_glr_micro_train_001.png and b/docs/_images/sphx_glr_micro_train_001.png differ
diff --git a/docs/_images/sphx_glr_micro_train_thumb.png b/docs/_images/sphx_glr_micro_train_thumb.png
index 9ae7d8cdc5..144b1b471a 100644
Binary files a/docs/_images/sphx_glr_micro_train_thumb.png and b/docs/_images/sphx_glr_micro_train_thumb.png differ
diff --git a/docs/_sources/how_to/compile_models/from_darknet.rst.txt b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
index bb27936f1f..31d3997688 100644
--- a/docs/_sources/how_to/compile_models/from_darknet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
@@ -315,7 +315,7 @@ The process is no different from other examples.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  9.971 seconds)
+   **Total running time of the script:** ( 1 minutes  15.461 seconds)
 
 
 .. _sphx_glr_download_how_to_compile_models_from_darknet.py:
diff --git a/docs/_sources/how_to/compile_models/from_keras.rst.txt b/docs/_sources/how_to/compile_models/from_keras.rst.txt
index d84df4a264..fde654354a 100644
--- a/docs/_sources/how_to/compile_models/from_keras.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_keras.rst.txt
@@ -228,7 +228,7 @@ Look up prediction top 1 index in 1000 class synset.
  .. code-block:: none
 
     Relay top-1 id: 285, class name: Egyptian cat
-
    1/1 [==============================] - ETA: 0s
    1/1 [==============================] - 1s 960ms/step
+
    1/1 [==============================] - ETA: 0s
    1/1 [==============================] - 1s 999ms/step
     Keras top-1 id: 285, class name: Egyptian cat
 
 
diff --git a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
index 289fcd51f3..725753891f 100644
--- a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
@@ -115,7 +115,7 @@ In this section, we download a pretrained imagenet model and classify an image.
 
  .. code-block:: none
 
-    Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip8d294520-179a-4627-a98c-5d141aee6ff6 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+    Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zipf7abeb72-2679-4154-a67e-8e719a616bd0 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
     x (1, 3, 224, 224)
 
 
diff --git a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
index d65869a901..158cec1e7a 100644
--- a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
@@ -116,7 +116,7 @@ Load a pretrained OneFlow model and save model
  .. code-block:: none
 
     Downloading: "https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip" to /workspace/.oneflow/flowvision_cache/resnet18.zip
-
      0%|          | 0.00/41.5M [00:00<?, ?B/s]
     19%|#9        | 7.99M/41.5M [00:00<00:00, 81.1MB/s]
     58%|#####7    | 24.0M/41.5M [00:00<00:00, 102MB/s] 
     85%|########4 | 35.2M/41.5M [00:00<00:00, 108MB/s]
    100%|##########| 41.5M/41.5M [00:00<00:00, 101MB/s]
+
      0%|          | 0.00/41.5M [00:00<?, ?B/s]
     15%|#5        | 6.33M/41.5M [00:00<00:01, 34.9MB/s]
     23%|##3       | 9.66M/41.5M [00:00<00:01, 30.2MB/s]
     35%|###4      | 14.3M/41.5M [00:00<00:00, 32.6MB/s]
     53%|#####2    | 21.9M/41.5M [00:00<00:00, 46.9MB/s]
     65%|######4   | 26.8M/41.5M [00:00<00:00, 40.3MB/s]
     77%|#######7  | 32.0M/41.5M [00:00<00:00, 44.2MB/s]
     96%|#########6| 40.0M/41.5M [00:00<00:00, 49.8MB/s]
    100%|##########| 41.5M/41.5M [00:00<00:00, 44.8MB/s]
 
 
 
diff --git a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
index f5bf91af05..00a54c34aa 100644
--- a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
@@ -98,7 +98,7 @@ Load a pretrained PyTorch model
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and will be removed in 0.15. The current behavior is equivalent to passing `weights=ResNet18_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet18_Weights.DEFAULT` to get the most up-to-date weights.
       warnings.warn(msg)
     Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
-
      0%|          | 0.00/44.7M [00:00<?, ?B/s]
     27%|##6       | 12.0M/44.7M [00:00<00:00, 126MB/s]
     54%|#####3    | 24.1M/44.7M [00:00<00:00, 107MB/s]
     77%|#######7  | 34.4M/44.7M [00:00<00:00, 106MB/s]
    100%|#########9| 44.6M/44.7M [00:00<00:00, 99.2MB/s]
    100%|##########| 44.7M/44.7M [00:00<00:00, 103MB/s] 
+
      0%|          | 0.00/44.7M [00:00<?, ?B/s]
     28%|##8       | 12.6M/44.7M [00:00<00:00, 132MB/s]
     56%|#####6    | 25.2M/44.7M [00:00<00:00, 116MB/s]
     81%|########1 | 36.3M/44.7M [00:00<00:00, 113MB/s]
    100%|##########| 44.7M/44.7M [00:00<00:00, 112MB/s]
 
 
 
diff --git a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
index e3b773e7c4..c4c2cd1253 100644
--- a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
@@ -416,7 +416,7 @@ Run the corresponding model on tensorflow
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  11.830 seconds)
+   **Total running time of the script:** ( 1 minutes  13.926 seconds)
 
 
 .. _sphx_glr_download_how_to_compile_models_from_tensorflow.py:
diff --git a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
index 35709c491b..ce6a5622a9 100644
--- a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
@@ -5,26 +5,26 @@
 
 Computation times
 =================
-**05:43.195** total execution time for **how_to_compile_models** files:
+**05:56.621** total execution time for **how_to_compile_models** files:
 
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:11.830 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)       | 01:15.461 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)       | 01:09.971 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:13.926 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)         | 00:46.345 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)         | 00:48.296 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)       | 00:31.772 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)       | 00:33.289 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)           | 00:28.548 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)           | 00:29.269 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)         | 00:26.423 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)         | 00:27.617 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)         | 00:24.523 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)         | 00:25.817 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)       | 00:23.761 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)       | 00:22.788 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)           | 00:17.605 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)           | 00:17.729 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)             | 00:02.416 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)             | 00:02.429 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt b/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt
index 33a4cb4274..972f9378fd 100644
--- a/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt
@@ -723,18 +723,13 @@ well as provides information about the model's performance
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-     3346.3634    3345.7153    3351.2258    3340.9788      2.9509   
+     2764.6867    2760.4704    2787.1124    2759.5245      8.4169   
                
 
 
 
 
 
-.. rst-class:: sphx-glr-timing
-
-   **Total running time of the script:** ( 1 minutes  1.312 seconds)
-
-
 .. _sphx_glr_download_how_to_deploy_models_deploy_model_on_adreno.py:
 
 .. only:: html
diff --git a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
index e6e0551ac9..981b100cbc 100644
--- a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
@@ -433,7 +433,7 @@ Execute on TVM
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      15.9721      15.9507      16.1166      15.8563       0.0913   
+      17.2012      17.3570      17.8131      16.5960       0.4426   
                
 
 
diff --git a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
index a941308896..c755cb3fac 100644
--- a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
@@ -127,7 +127,7 @@ Load pre-trained maskrcnn from torchvision and do tracing
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and will be removed in 0.15. The current behavior is equivalent to passing `weights=MaskRCNN_ResNet50_FPN_Weights.COCO_V1`. You can also use `weights=MaskRCNN_ResNet50_FPN_Weights.DEFAULT` to get the most up-to-date weights.
       warnings.warn(msg)
     Downloading: "https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth" to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
-
      0%|          | 0.00/170M [00:00<?, ?B/s]
      7%|6         | 11.5M/170M [00:00<00:01, 121MB/s]
     14%|#3        | 23.0M/170M [00:00<00:01, 119MB/s]
     20%|##        | 34.3M/170M [00:00<00:01, 109MB/s]
     26%|##6       | 44.9M/170M [00:00<00:01, 106MB/s]
     32%|###2      | 55.0M/170M [00:00<00:01, 104MB/s]
     38%|###8      | 64.9M/170M [00:00<00:01, 95.2MB/s]
     45%|####5     | 76.8M/170M [00:00<00:00, 104MB/s] 
     51%|#####1    | 86.9M/170M [00:00<00:00, 102MB/s]
     57%|#####6    | 96.7M/170M [00:00<00:00, 101MB/s]
     63%|######2   | 106M/170M [00:01<00:00, 101MB/s] 
     68%|######8   | 116M/170M [00:01<00:00, 101MB/s]
     74%|#######4  | 126M/170M [00:01<00:00, 101MB/s]
     80%|#######9  | 135M/170M [00:01<00:00, 101MB/s]
     85%|########5 | 145M/170M [00:01<00:00, 92.5MB/s]
     93%|#########2| 157M/170M [00:01<00:00, 103MB/s] 
     98%|#########8| 167M/170M [00:01<00:00, 92.2MB/s]
    100%|##########| 170M/170M [00:01<00:00, 99.6MB/s]
+
      0%|          | 0.00/170M [00:00<?, ?B/s]
      5%|4         | 8.12M/170M [00:00<00:02, 56.8MB/s]
      9%|9         | 16.0M/170M [00:00<00:02, 60.1MB/s]
     14%|#4        | 24.0M/170M [00:00<00:02, 68.1MB/s]
     19%|#9        | 32.4M/170M [00:00<00:01, 75.0MB/s]
     28%|##8       | 48.0M/170M [00:00<00:01, 84.3MB/s]
     33%|###3      | 56.1M/170M [00:00<00:01, 83.7MB/s]
     38%|###7      | 64.0M/170M [00:00<00:01, 78.7MB/s]
     42%|####2     | 72.0M/170M [00:01<00:01, 75.0MB/s]
     47%|####7     | 80.1M/170M [00:01<00:01, 75.2MB/s]
     55%|#####5    | 93.4M/170M [00:01<00:00, 92.7MB/s]
     60%|######    | 102M/170M [00:01<00:00, 89.3MB/s] 
     65%|######5   | 111M/170M [00:01<00:00, 83.1MB/s]
     70%|#######   | 119M/170M [00:01<00:00, 77.3MB/s]
     75%|#######5  | 128M/170M [00:01<00:00, 74.1MB/s]
     80%|########  | 136M/170M [00:01<00:00, 74.6MB/s]
     85%|########4 | 144M/170M [00:01<00:00, 74.7MB/s]
     89%|########9 | 152M/170M [00:02<00:00, 75.9MB/s]
   
   97%|#########6| 164M/170M [00:02<00:00, 89.5MB/s]
    100%|##########| 170M/170M [00:02<00:00, 79.7MB/s]
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torch/nn/functional.py:3897: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
       for i in range(dim)
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/detection/anchor_utils.py:124: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
@@ -296,7 +296,7 @@ Get boxes with score larger than 0.9
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 3 minutes  17.425 seconds)
+   **Total running time of the script:** ( 3 minutes  27.153 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_object_detection_pytorch.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
index 1478ad3014..0233fb4053 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
@@ -236,7 +236,7 @@ training. Other models require a full post training calibration.
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and will be removed in 0.15. The current behavior is equivalent to passing `weights=MobileNet_V2_Weights.IMAGENET1K_V1`. You can also use `weights=MobileNet_V2_Weights.DEFAULT` to get the most up-to-date weights.
       warnings.warn(msg)
     Downloading: "https://download.pytorch.org/models/mobilenet_v2-b0353104.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
-
      0%|          | 0.00/13.6M [00:00<?, ?B/s]
     99%|#########8| 13.4M/13.6M [00:00<00:00, 139MB/s]
    100%|##########| 13.6M/13.6M [00:00<00:00, 139MB/s]
+
      0%|          | 0.00/13.6M [00:00<?, ?B/s]
     19%|#9        | 2.61M/13.6M [00:00<00:00, 25.6MB/s]
     59%|#####8    | 7.95M/13.6M [00:00<00:00, 42.9MB/s]
     89%|########9 | 12.1M/13.6M [00:00<00:00, 37.2MB/s]
    100%|##########| 13.6M/13.6M [00:00<00:00, 40.6MB/s]
 
 
 
@@ -418,7 +418,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      90.5363      90.5035      91.3531      90.1648       0.1990   
+      88.6272      88.5183      92.6172      88.2386       0.4668   
                
 
 
@@ -467,7 +467,7 @@ TODO
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  6.774 seconds)
+   **Total running time of the script:** ( 1 minutes  8.116 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_prequantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
index b909f897d1..3447cc0021 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
@@ -432,7 +432,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      120.3356     120.2265     126.0226     119.6710      0.6598   
+      119.4220     119.3452     120.8334     118.4974      0.4647   
                
 
 
@@ -469,7 +469,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  23.274 seconds)
+   **Total running time of the script:** ( 2 minutes  22.536 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_prequantized_tflite.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
index 3099db7fc8..0bc2ee343f 100644
--- a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
@@ -253,7 +253,7 @@ We create a Relay VM to build and execute the model.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  14.038 seconds)
+   **Total running time of the script:** ( 1 minutes  36.524 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_quantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
index 0572434de5..7cdadaa7f1 100644
--- a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
@@ -166,7 +166,7 @@ Convert and compile model for CPU.
             data: None
       input_sym_arg_type = in_param.infer_type()[0]
     Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
-
      0%|          | 0/132723 [00:00<?, ?KB/s]
      2%|1         | 2356/132723 [00:00<00:05, 23558.11KB/s]
      5%|5         | 6940/132723 [00:00<00:03, 36662.02KB/s]
     11%|#         | 14416/132723 [00:00<00:02, 54054.44KB/s]
     16%|#5        | 21142/132723 [00:00<00:01, 59266.01KB/s]
     22%|##1       | 29054/132723 [00:00<00:01, 66420.31KB/s]
     28%|##7       | 37021/132723 [00:00<00:01, 70919.44KB/s]
     34%|###3      | 44957/132723 [00:00<00:01, 73676.92KB/s]
     40%|###9      | 52896/132723 [00:00<00:01, 75493.55KB/s]
     46%|####5     | 60871/132723 [00:00<00:00, 76822.15KB/s]
     52%|#####1    | 68849/132723 [00:01<00:00, 77732.91KB/s]
     58%|#####7    | 76838/132723 [00:01<00:00, 78391.81KB/s]
     64%|######3   | 84830/132723 [00:01<00:00, 78854.75KB/s]
     70%|######9   | 92841/132723 [00:01<00:00, 79232.89KB/s]
     76%|#######5  | 100863/132723 [00:01<00:00, 79530.14KB/s]
     82%|########2 | 108889/132723 [00:01<00:00, 79746.66KB/s]
     88%|########8 
 | 116864/132723 [00:01<00:00, 79704.39KB/s]
     94%|#########4| 124850/132723 [00:01<00:00, 79749.30KB/s]
    100%|##########| 132723/132723 [00:01<00:00, 73808.29KB/s]
+
      0%|          | 0/132723 [00:00<?, ?KB/s]
      5%|5         | 7097/132723 [00:00<00:01, 70961.10KB/s]
     12%|#1        | 15739/132723 [00:00<00:01, 80049.66KB/s]
     18%|#7        | 23744/132723 [00:00<00:01, 77594.64KB/s]
     24%|##4       | 32481/132723 [00:00<00:01, 81376.64KB/s]
     31%|###1      | 41235/132723 [00:00<00:01, 83569.94KB/s]
     38%|###7      | 49916/132723 [00:00<00:00, 84660.65KB/s]
     44%|####4     | 58653/132723 [00:00<00:00, 85538.14KB/s]
     51%|#####     | 67404/132723 [00:00<00:00, 86161.14KB/s]
     57%|#####7    | 76159/132723 [00:00<00:00, 86592.03KB/s]
     64%|######3   | 84923/132723 [00:01<00:00, 86912.57KB/s]
     71%|#######   | 93617/132723 [00:01<00:00, 86676.09KB/s]
     77%|#######7  | 102325/132723 [00:01<00:00, 86794.37KB/s]
     84%|########3 | 111006/132723 [00:01<00:00, 86580.51KB/s]
     90%|######### | 119665/132723 [00:01<00:00, 76225.82KB/s]
     97%|#########6| 128345/132723 [00:01<00:00, 79128.24KB/s]
    100%|#######
 ###| 132723/132723 [00:01<00:00, 82643.92KB/s]
 
 
 
@@ -242,7 +242,7 @@ Display result
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 3 minutes  3.204 seconds)
+   **Total running time of the script:** ( 3 minutes  15.706 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_ssd_gluoncv.py:
diff --git a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
index 656c313439..3898ce10d6 100644
--- a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
@@ -5,26 +5,26 @@
 
 Computation times
 =================
-**13:31.907** total execution time for **how_to_deploy_models** files:
+**14:14.268** total execution time for **how_to_deploy_models** files:
 
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 03:17.425 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 03:27.153 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)                           | 03:03.204 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)                           | 03:15.706 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)           | 02:23.274 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)           | 02:22.536 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)                               | 01:14.038 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)                               | 01:36.524 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)                         | 01:06.774 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)                         | 01:08.116 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_adreno.py` (``deploy_model_on_adreno.py``)                   | 01:01.312 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_adreno.py` (``deploy_model_on_adreno.py``)                   | 00:55.219 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)                 | 00:36.118 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)                 | 00:37.591 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``)                       | 00:25.162 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``)                       | 00:25.873 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)                       | 00:24.595 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)                       | 00:25.542 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``)                                     | 00:00.007 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
index d658cc5257..e425dbe227 100644
--- a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
@@ -472,7 +472,7 @@ First let us define two helper functions to get the mobilenet model and a cat im
 
  .. code-block:: none
 
-    Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip6b71a5e5-9417-4c6b-91da-954583dd512f from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+    Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip373e5423-9b37-458d-97a0-73f0ae515dde from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
 
 
 
diff --git a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
index 81fbe2e5d1..6098935134 100644
--- a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
@@ -5,14 +5,14 @@
 
 Computation times
 =================
-**00:48.665** total execution time for **how_to_extend_tvm** files:
+**00:51.164** total execution time for **how_to_extend_tvm** files:
 
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``) | 00:45.098 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``) | 00:47.436 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)           | 00:02.500 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)           | 00:02.614 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)                     | 00:01.058 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)                     | 00:01.105 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``)       | 00:00.009 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``)       | 00:00.008 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
index 92d3b84edf..eebb49fd4b 100644
--- a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
@@ -216,10 +216,10 @@ profile the execution time of each passes.
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 7215us [7215us] (46.21%; 46.21%)
-    FoldScaleAxis: 8399us [7us] (53.79%; 53.79%)
-            FoldConstant: 8392us [1677us] (53.74%; 99.91%)
-                    InferType: 6715us [6715us] (43.01%; 80.02%)
+    InferType: 7721us [7721us] (45.99%; 45.99%)
+    FoldScaleAxis: 9069us [9us] (54.01%; 54.01%)
+            FoldConstant: 9060us [1839us] (53.96%; 99.90%)
+                    InferType: 7221us [7221us] (43.01%; 79.70%)
 
 
 
@@ -258,10 +258,10 @@ Refer to following sections and :py:func:`tvm.instrument.pass_instrument` for th
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 6790us [6790us] (44.98%; 44.98%)
-    FoldScaleAxis: 8304us [5us] (55.02%; 55.02%)
-            FoldConstant: 8299us [1695us] (54.98%; 99.94%)
-                    InferType: 6604us [6604us] (43.75%; 79.58%)
+    InferType: 7462us [7462us] (45.44%; 45.44%)
+    FoldScaleAxis: 8959us [8us] (54.56%; 54.56%)
+            FoldConstant: 8951us [1837us] (54.51%; 99.91%)
+                    InferType: 7114us [7114us] (43.33%; 79.48%)
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
index da791b1ed4..4121b7692a 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
@@ -340,7 +340,7 @@ latency of convolution.
 
  .. code-block:: none
 
-    Convolution: 54.219329 ms
+    Convolution: 54.175777 ms
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
index 91e9f04529..99d2b94e26 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
@@ -657,7 +657,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 12.740813 ms
+    conv2d with tensor core: 12.269773 ms
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
index bb8205762a..2f1653529c 100644
--- a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
@@ -143,8 +143,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 
  .. code-block:: none
 
-    Numpy running time: 0.018892
-    Baseline: 3.210301
+    Numpy running time: 0.020714
+    Baseline: 3.611769
 
 
 
@@ -238,7 +238,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.309843
+    Opt1: 0.340379
 
 
 
@@ -340,7 +340,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.343265
+    Opt2: 0.353435
 
 
 
@@ -435,7 +435,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.118872
+    Opt3: 0.137810
 
 
 
@@ -559,7 +559,7 @@ flattening.
 
  .. code-block:: none
 
-    Opt4: 0.109603
+    Opt4: 0.110373
 
 
 
@@ -680,7 +680,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.111557
+    Opt5: 0.114587
 
 
 
@@ -804,7 +804,7 @@ Furthermore, we can also utilize multi-core processors to do the thread-level pa
 
  .. code-block:: none
 
-    Opt6: 0.146788
+    Opt6: 0.150446
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
index d9b5fbc7e9..e6a5d39842 100644
--- a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
@@ -5,12 +5,12 @@
 
 Computation times
 =================
-**00:34.470** total execution time for **how_to_optimize_operators** files:
+**00:36.996** total execution time for **how_to_optimize_operators** files:
 
 +-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)                       | 00:31.973 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)                       | 00:34.419 | 0.0 MB |
 +-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.432 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.471 | 0.0 MB |
 +-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)             | 00:01.065 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)             | 00:01.106 | 0.0 MB |
 +-----------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
index d3a3a6648f..2f082840b0 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
@@ -5,18 +5,18 @@
 
 Computation times
 =================
-**08:54.977** total execution time for **how_to_tune_with_autoscheduler** files:
+**09:33.552** total execution time for **how_to_tune_with_autoscheduler** files:
 
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``) | 05:29.692 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``) | 05:58.569 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)             | 01:31.949 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)             | 01:36.551 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)           | 01:01.415 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)           | 01:03.662 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)               | 00:28.704 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)               | 00:29.908 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)             | 00:12.035 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)             | 00:12.851 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)           | 00:11.183 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)           | 00:12.010 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
index 92cc991c99..93ebbe35b8 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
@@ -770,7 +770,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 0.359 ms
+    Execution time of this operator: 0.354 ms
 
 
 
@@ -1377,7 +1377,7 @@ In the example below we resume the status and do more 5 trials.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 5 minutes  29.692 seconds)
+   **Total running time of the script:** ( 5 minutes  58.569 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
index 0c1848048e..978784773a 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
@@ -643,7 +643,7 @@ so we can read the log file and load the best schedules.
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       7.8794       7.8792       7.8844       7.8747       0.0040   
+       7.8702       7.8665       7.8819       7.8622       0.0084   
                
 
 
@@ -671,7 +671,7 @@ Other Tips
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  1.415 seconds)
+   **Total running time of the script:** ( 1 minutes  3.662 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_network_cuda.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
index 17116762dd..81a985d04b 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
@@ -662,7 +662,7 @@ so we can read the log file and load the best schedules.
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      760.3261     758.3156     764.3985     758.2641      2.8797   
+      777.7165     776.9006     780.8718     775.3770      2.3162   
                
 
 
@@ -690,7 +690,7 @@ Other Tips
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  31.949 seconds)
+   **Total running time of the script:** ( 1 minutes  36.551 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_network_x86.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
index da8b77a137..30f1d1077d 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
@@ -386,29 +386,77 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
                  placeholder_4: Buffer(placeholder_14: Pointer(float32), float32, [128, 512], []),
                  compute: Buffer(compute_2: Pointer(float32), float32, [128, 512], [])}
       buffer_map = {placeholder_5: placeholder, placeholder_6: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute} {
-      for (i0.outer.i1.outer.fused: int32, 0, 256) "parallel" {
-        allocate(compute_3: Pointer(global float32), float32, [256]), storage_scope = global {
+      for (i0.outer.i1.outer.fused: int32, 0, 32) "parallel" {
+        allocate(compute_3: Pointer(global float32), float32, [2048]), storage_scope = global {
           for (i.outer.inner: int32, 0, 8) {
-            for (i.inner.init: int32, 0, 2) {
-              for (j.init: int32, 0, 16) {
-                compute_4: Buffer(compute_3, float32, [256], [])[(((i.outer.inner*32) + (i.inner.init*16)) + j.init)] = 0f32
+            for (nb_j.inner: int32, 0, 2) {
+              for (i.inner.init: int32, 0, 8) {
+                let cse_var_1: int32 = (((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16))
+                 {
+                  compute_4: Buffer(compute_3, float32, [2048], [])[cse_var_1] = 0f32
+                  compute_4[(cse_var_1 + 1)] = 0f32
+                  compute_4[(cse_var_1 + 2)] = 0f32
+                  compute_4[(cse_var_1 + 3)] = 0f32
+                  compute_4[(cse_var_1 + 4)] = 0f32
+                  compute_4[(cse_var_1 + 5)] = 0f32
+                  compute_4[(cse_var_1 + 6)] = 0f32
+                  compute_4[(cse_var_1 + 7)] = 0f32
+                  compute_4[(cse_var_1 + 8)] = 0f32
+                  compute_4[(cse_var_1 + 9)] = 0f32
+                  compute_4[(cse_var_1 + 10)] = 0f32
+                  compute_4[(cse_var_1 + 11)] = 0f32
+                  compute_4[(cse_var_1 + 12)] = 0f32
+                  compute_4[(cse_var_1 + 13)] = 0f32
+                  compute_4[(cse_var_1 + 14)] = 0f32
+                  compute_4[(cse_var_1 + 15)] = 0f32
+                }
               }
-            }
-            for (elem_idx: int32, 0, let cse_var_1: int32 = floormod(i0.outer.i1.outer.fused, 32) in (placeholder_15: Buffer(placeholder_13, int32, [33], [])[(cse_var_1 + 1)] - placeholder_15[cse_var_1])) {
-              for (i.inner: int32, 0, 2) {
-                for (j: int32, 0, 16) {
-                  let cse_var_2: int32 = floormod(i0.outer.i1.outer.fused, 32)
-                  if @tir.likely((elem_idx < (placeholder_15[(cse_var_2 + 1)] - placeholder_15[cse_var_2])), dtype=bool) {
-                    let cse_var_3: int32 = (((i.outer.inner*32) + (i.inner*16)) + j)
-                    compute_4[cse_var_3] = (compute_4[cse_var_3] + (placeholder_16: Buffer(placeholder_11, float32, [78656], [])[(((placeholder_15[cse_var_2]*16) + (elem_idx*16)) + j)]*max(placeholder_17: Buffer(placeholder_10, float32, [32768], [])[((((floordiv(i0.outer.i1.outer.fused, 32)*4096) + (i.outer.inner*512)) + (i.inner*256)) + placeholder_18: Buffer(placeholder_12, int32, [4916], [])[(placeholder_15[cse_var_2] + elem_idx)])], 0f32)))
+              for (elem_idx: int32, 0, let cse_var_2: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_15: Buffer(placeholder_13, int32, [33], [])[(cse_var_2 + 1)] - placeholder_15[cse_var_2])) {
+                for (i.inner: int32, 0, 8) {
+                  let cse_var_21: int32 = (elem_idx*16)
+                  let cse_var_20: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
+                  let cse_var_19: int32 = (((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16))
+                  let cse_var_18: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*16384) + (i.outer.inner*2048)) + (i.inner*256))
+                  let cse_var_17: int32 = (cse_var_19 + 9)
+                  let cse_var_16: int32 = (cse_var_19 + 8)
+                  let cse_var_15: int32 = (cse_var_19 + 7)
+                  let cse_var_14: int32 = (cse_var_19 + 6)
+                  let cse_var_13: int32 = (cse_var_19 + 5)
+                  let cse_var_12: int32 = (cse_var_19 + 4)
+                  let cse_var_11: int32 = (cse_var_19 + 3)
+                  let cse_var_10: int32 = (cse_var_19 + 2)
+                  let cse_var_9: int32 = (cse_var_19 + 15)
+                  let cse_var_8: int32 = (cse_var_19 + 14)
+                  let cse_var_7: int32 = (cse_var_19 + 13)
+                  let cse_var_6: int32 = (cse_var_19 + 12)
+                  let cse_var_5: int32 = (cse_var_19 + 11)
+                  let cse_var_4: int32 = (cse_var_19 + 10)
+                  let cse_var_3: int32 = (cse_var_19 + 1)
+                   {
+                    compute_4[cse_var_19] = (compute_4[cse_var_19] + (placeholder_16: Buffer(placeholder_11, float32, [78656], [])[((placeholder_15[cse_var_20]*16) + cse_var_21)]*max(placeholder_17: Buffer(placeholder_10, float32, [32768], [])[(cse_var_18 + placeholder_18: Buffer(placeholder_12, int32, [4916], [])[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_3] = (compute_4[cse_var_3] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 1)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_10] = (compute_4[cse_var_10] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 2)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_11] = (compute_4[cse_var_11] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 3)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_12] = (compute_4[cse_var_12] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 4)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_13] = (compute_4[cse_var_13] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 5)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_14] = (compute_4[cse_var_14] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 6)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_15] = (compute_4[cse_var_15] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 7)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_16] = (compute_4[cse_var_16] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 8)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_17] = (compute_4[cse_var_17] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 9)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_4] = (compute_4[cse_var_4] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 10)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_5] = (compute_4[cse_var_5] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 11)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_6] = (compute_4[cse_var_6] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 12)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_7] = (compute_4[cse_var_7] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 13)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_8] = (compute_4[cse_var_8] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 14)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                    compute_4[cse_var_9] = (compute_4[cse_var_9] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 15)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
                   }
                 }
               }
             }
           }
-          for (i0.inner: int32, 0, 16) {
-            let cse_var_4: int32 = (((floordiv(i0.outer.i1.outer.fused, 32)*8192) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 32)*16))
-            compute_5: Buffer(compute_2, float32, [65536], [])[ramp(cse_var_4, 1, 16)] = max((compute_4[ramp((i0.inner*16), 1, 16)] + placeholder_19: Buffer(placeholder_14, float32, [65536], [])[ramp(cse_var_4, 1, 16)]), broadcast(0f32, 16))
+          for (i0.inner: int32, 0, 64) {
+            let cse_var_22: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*32768) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32))
+            compute_5: Buffer(compute_2, float32, [65536], [])[ramp(cse_var_22, 1, 32)] = max((compute_4[ramp((i0.inner*32), 1, 32)] + placeholder_19: Buffer(placeholder_14, float32, [65536], [])[ramp(cse_var_22, 1, 32)]), broadcast(0f32, 32))
           }
         }
       }
@@ -464,7 +512,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 2.187 ms
+    Execution time of this operator: 1.876 ms
 
 
 
diff --git a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
index 5486d9c4e8..bc48bcdba2 100644
--- a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
@@ -5,16 +5,16 @@
 
 Computation times
 =================
-**00:33.790** total execution time for **how_to_tune_with_autotvm** files:
+**00:31.080** total execution time for **how_to_tune_with_autotvm** files:
 
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)           | 00:33.755 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)           | 00:31.042 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)               | 00:00.020 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)               | 00:00.023 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)             | 00:00.005 | 0.0 MB |
-+--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)               | 00:00.005 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)             | 00:00.006 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``) | 00:00.005 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)               | 00:00.005 | 0.0 MB |
++--------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
index 1f8dd7c692..259a33dca7 100644
--- a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
@@ -387,9 +387,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 1, 256]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 64, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8152757
-    No: 2   GFLOPS: 28.08/28.08     result: MeasureResult(costs=(0.008244706307692308,), error_no=MeasureErrorNo.NO_ERROR, all_cost=5.562650680541992, timestamp=1669763714.9680815)        [('tile_f', [-1, 1, 2, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 4]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4144688
-    No: 3   GFLOPS: 0.00/28.08      result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 8, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 64, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9542800
+    No: 2   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -511,9 +510,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4447418
-    No: 4   GFLOPS: 232.38/232.38   result: MeasureResult(costs=(0.000996222776699029,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6449189186096191, timestamp=1669763717.7162397)       [('tile_f', [-1, 2, 32, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 16, 4]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5310671
-    No: 5   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 4, 32]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 8, 32]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9060455
+    No: 3   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -635,8 +633,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 8, 16, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 256, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,3356137
-    No: 6   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 4, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 128, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7384257
+    No: 4   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -758,8 +756,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 1, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 16, 16]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2459326
-    No: 7   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 64, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 512]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9678947
+    No: 5   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -881,8 +879,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9766901
-    No: 8   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 8, 8, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 4]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6461777
+    No: 6   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1004,8 +1002,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 16, 16, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7483829
-    No: 9   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 2, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 256, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4518503
+    No: 7   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1127,8 +1125,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 4, 64]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 16, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4758147
-    No: 10  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 8, 2, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 512]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7354271
+    No: 8   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1250,8 +1248,10 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 16, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4170040
-    No: 11  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 4, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 1, 512]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1161056
+    No: 9   GFLOPS: 0.96/0.96       result: MeasureResult(costs=(0.2404582365,), error_no=MeasureErrorNo.NO_ERROR, all_cost=7.114036798477173, timestamp=1669763469.178446) [('tile_f', [-1, 2, 2, 64]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 1, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4262705
+    No: 10  GFLOPS: 12.89/12.89     result: MeasureResult(costs=(0.017957579166666664,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3388102054595947, timestamp=1669763469.9497478)       [('tile_f', [-1, 2, 1, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,684826
+    No: 11  GFLOPS: 0.00/12.89      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1373,8 +1373,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 1, 16]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9258426
-    No: 12  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 16, 1, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7932104
+    No: 12  GFLOPS: 0.00/12.89      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1496,10 +1496,9 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 128, 4, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 16, 4]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4149666
-    No: 13  GFLOPS: 87.97/232.38    result: MeasureResult(costs=(0.0026316134736842104,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.247478723526001, timestamp=1669763721.0889342)       [('tile_f', [-1, 2, 32, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,8911011
-    No: 14  GFLOPS: 40.83/232.38    result: MeasureResult(costs=(0.005670277444444444,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7176170349121094, timestamp=1669763721.801603)        [('tile_f', [-1, 1, 32, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,8912801
-    No: 15  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 32, 1, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 64, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4347809
+    No: 13  GFLOPS: 86.69/86.69     result: MeasureResult(costs=(0.0026705271842105264,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3030877113342285, timestamp=1669763473.4218273)      [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,3102589
+    No: 14  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1621,8 +1620,8 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 8, 16]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 64, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6506681
-    No: 16  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 128, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8587090
+    No: 15  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1744,9 +1743,9 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 4, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 64, 8]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1473236
-    No: 17  GFLOPS: 6.90/232.38     result: MeasureResult(costs=(0.033528392750000004,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.844980239868164, timestamp=1669763724.8259776)        [('tile_f', [-1, 2, 16, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7812139
-    No: 18  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 64, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 8, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1014114
+    No: 16  GFLOPS: 23.83/86.69     result: MeasureResult(costs=(0.009714557272727272,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.1588594913482666, timestamp=1669763474.1576514)       [('tile_f', [-1, 32, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2525165
+    No: 17  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1868,161 +1867,254 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 8, 16, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 8]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6111248
-    No: 19  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 738, in __call__
-        yield remote, remote.load_module(os.path.split(build_result.filename)[1])
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 702, in run_through_rpc
-        costs = time_f(*args).results
-      File "/workspace/python/tvm/runtime/module.py", line 357, in evaluator
-        blob = feval(*args)
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 16, 4, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 16, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,246256
+    No: 18  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
+      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
+        func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
+      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
+        func = build(s, args, target_host=task.target_host, runtime=runtime)
+      File "/workspace/python/tvm/driver/build_module.py", line 227, in build
+        input_mod = lower(inputs, args, name=name, binds=binds)
+      File "/workspace/python/tvm/driver/build_module.py", line 134, in lower
+        return ffi.lower_schedule(inp, args, name, binds, simple_mode)
       File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 262, in tvm._ffi._cy3.core.FuncCall
-      File "tvm/_ffi/_cython/./packed_func.pxi", line 251, in tvm._ffi._cy3.core.FuncCall3
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 276, in tvm._ffi._cy3.core.FuncCall
       File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
     tvm._ffi.base.TVMError: Traceback (most recent call last):
-      4: TVMFuncCall
+      24: TVMFuncCall
             at ../src/runtime/c_runtime_api.cc:477
-      3: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../include/tvm/runtime/packed_func.h:1217
-      2: tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-            at ../src/runtime/rpc/rpc_module.cc:129
-      1: tvm::runtime::RPCClientSession::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)> const&)
-            at ../src/runtime/rpc/rpc_endpoint.cc:1012
-      0: tvm::runtime::RPCEndpoint::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)>)
-            at ../src/runtime/rpc/rpc_endpoint.cc:804
-      File "../src/runtime/rpc/rpc_endpoint.cc", line 804
-    TVMError: 
-    ---------------------------------------------------------------
-    An error occurred during the execution of TVM.
-    For more information, please see: https://tvm.apache.org/docs/errors.html
-    ---------------------------------------------------------------
-      Check failed: (code == RPCCode::kReturn) is false: code=kShutdown
-
-    During handling of the above exception, another exception occurred:
+      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+            at ../include/tvm/runtime/packed_func.h:1217
+      22: Call
+            at ../include/tvm/runtime/packed_func.h:1213
+      21: operator()
+            at ../include/tvm/runtime/packed_func.h:1731
+      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
+            at ../include/tvm/runtime/packed_func.h:1671
+      19: run<>
+            at ../include/tvm/runtime/packed_func.h:1631
+      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1646
+      13: operator()
+            at ../src/driver/driver_api.cc:389
+      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
+            at ../src/driver/driver_api.cc:375
+      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
+            at ../src/driver/driver_api.cc:270
+      10: tvm::transform::Pass::operator()(tvm::IRModule) const
+            at ../src/ir/transform.cc:258
+      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:274
+      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:453
+      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:274
+      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/tir/ir/transform.cc:100
+      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
+            at ../include/tvm/runtime/packed_func.h:1750
+      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
+            at ../include/tvm/runtime/packed_func.h:1694
+      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
+            at ../include/tvm/runtime/packed_func.h:1618
+      2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+            at ../include/tvm/runtime/packed_func.h:1217
+      1: Call
+            at ../include/tvm/runtime/packed_func.h:1213
+      0: operator()
+            at ../src/runtime/c_runtime_api.cc:534
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
+      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
+        raise InstantiationError("Skipped because of invalid gpu kernel")
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
 
     Traceback (most recent call last):
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 702, in run_through_rpc
-        costs = time_f(*args).results
-      File "/usr/lib/python3.7/contextlib.py", line 130, in __exit__
-        self.gen.throw(type, value, traceback)
-      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 742, in __call__
-        remote.remove(build_result.filename)
-      File "/workspace/python/tvm/rpc/client.py", line 144, in remove
-        self._remote_funcs["remove"] = self.get_function("tvm.rpc.server.remove")
-      File "/workspace/python/tvm/rpc/client.py", line 72, in get_function
-        return self._sess.get_function(name)
-      File "/workspace/python/tvm/runtime/module.py", line 171, in get_function
-        self.handle, c_str(name), ctypes.c_int(query_imports), ctypes.byref(ret_handle)
-      File "/workspace/python/tvm/_ffi/base.py", line 348, in check_call
-        raise get_last_ffi_error()
+      24: TVMFuncCall
+            at ../src/runtime/c_runtime_api.cc:477
+      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+            at ../include/tvm/runtime/packed_func.h:1217
+      22: Call
+            at ../include/tvm/runtime/packed_func.h:1213
+      21: operator()
+            at ../include/tvm/runtime/packed_func.h:1731
+      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
+            at ../include/tvm/runtime/packed_func.h:1671
+      19: run<>
+            at ../include/tvm/runtime/packed_func.h:1631
+      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1646
+      13: operator()
+            at ../src/driver/driver_api.cc:389
+      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
+            at ../src/driver/driver_api.cc:375
+      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
+            at ../src/driver/driver_api.cc:270
+      10: tvm::transform::Pass::operator()(tvm::IRModule) const
+            at ../src/ir/transform.cc:258
+      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:274
+      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:453
+      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:274
+      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/tir/ir/transform.cc:100
+      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
+            at ../include/tvm/runtime/packed_func.h:1750
+      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
+            at ../include/tvm/runtime/packed_func.h:1694
+      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
+            at ../include/tvm/runtime/packed_func.h:1618
+      2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+            at ../include/tvm/runtime/packed_func.h:1217
+      1: Call
+            at ../include/tvm/runtime/packed_func.h:1213
+      0: operator()
+            at ../src/runtime/c_runtime_api.cc:534
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
+      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
+        raise InstantiationError("Skipped because of invalid gpu kernel")
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 1, 32]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 16]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,1881845
+    No: 19  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
+      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
+        func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
+      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
+        func = build(s, args, target_host=task.target_host, runtime=runtime)
+      File "/workspace/python/tvm/driver/build_module.py", line 227, in build
+        input_mod = lower(inputs, args, name=name, binds=binds)
+      File "/workspace/python/tvm/driver/build_module.py", line 134, in lower
+        return ffi.lower_schedule(inp, args, name, binds, simple_mode)
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 276, in tvm._ffi._cy3.core.FuncCall
+      File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
     tvm._ffi.base.TVMError: Traceback (most recent call last):
-      52: 0xffffffffffffffff
-      51: _start
-      50: __libc_start_main
-      49: _Py_UnixMain
-      48: 0x0000000000650da0
-      47: 0x0000000000650afa
-      46: _PyFunction_FastCallDict
-      45: _PyEval_EvalCodeWithName
-      44: _PyEval_EvalFrameDefault
-      43: _PyFunction_FastCallKeywords
-      42: _PyEval_EvalCodeWithName
-      41: _PyEval_EvalFrameDefault
-      40: _PyMethodDef_RawFastCallKeywords
-      39: 0x0000000000546369
-      38: _PyEval_EvalCodeWithName
-      37: _PyEval_EvalFrameDefault
-      36: _PyFunction_FastCallKeywords
-      35: _PyEval_EvalCodeWithName
-      34: _PyEval_EvalFrameDefault
-      33: _PyFunction_FastCallDict
-      32: _PyEval_EvalCodeWithName
-      31: _PyEval_EvalFrameDefault
-      30: _PyObject_FastCallDict
-      29: 0x00000000004c06e1
-      28: _PyFunction_FastCallDict
-      27: _PyEval_EvalFrameDefault
-      26: _PyMethodDescr_FastCallKeywords
-      25: 0x00000000005dcb58
-      24: 0x00000000005dc83f
-      23: 0x00000000004ba127
-      22: _PyEval_EvalFrameDefault
-      21: _PyFunction_FastCallKeywords
-      20: _PyEval_EvalFrameDefault
-      19: _PyFunction_FastCallKeywords
-      18: _PyEval_EvalFrameDefault
-      17: _PyFunction_FastCallKeywords
-      16: _PyEval_EvalCodeWithName
-      15: _PyEval_EvalFrameDefault
-      14: 0x0000000000537c30
-      13: _PyObject_FastCallKeywords
-      12: 0x00007f7346025fa2
-      11: _ctypes_callproc
-      10: ffi_call
-      9: ffi_call_unix64
-      8: TVMModGetFunction
-            at ../src/runtime/c_runtime_api.cc:408
-      7: tvm::runtime::ModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
-            at ../src/runtime/module.cc:66
-      6: tvm::runtime::RPCModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)
-            at ../src/runtime/rpc/rpc_module.cc:185
-      5: tvm::runtime::RPCClientSession::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
-            at ../src/runtime/rpc/rpc_endpoint.cc:1007
-      4: tvm::runtime::TVMRetValue tvm::runtime::RPCEndpoint::SysCallRemote<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(tvm::runtime::RPCCode, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
-            at ../src/runtime/rpc/rpc_endpoint.h:223
-      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(int&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
+      24: TVMFuncCall
+            at ../src/runtime/c_runtime_api.cc:477
+      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+            at ../include/tvm/runtime/packed_func.h:1217
+      22: Call
+            at ../include/tvm/runtime/packed_func.h:1213
+      21: operator()
+            at ../include/tvm/runtime/packed_func.h:1731
+      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
+            at ../include/tvm/runtime/packed_func.h:1671
+      19: run<>
+            at ../include/tvm/runtime/packed_func.h:1631
+      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1646
+      13: operator()
+            at ../src/driver/driver_api.cc:389
+      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
+            at ../src/driver/driver_api.cc:375
+      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
+            at ../src/driver/driver_api.cc:270
+      10: tvm::transform::Pass::operator()(tvm::IRModule) const
+            at ../src/ir/transform.cc:258
+      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:274
+      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:453
+      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:274
+      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/tir/ir/transform.cc:100
+      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
+            at ../include/tvm/runtime/packed_func.h:1750
+      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
+            at ../include/tvm/runtime/packed_func.h:1694
+      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
             at ../include/tvm/runtime/packed_func.h:1618
       2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
             at ../include/tvm/runtime/packed_func.h:1217
       1: Call
             at ../include/tvm/runtime/packed_func.h:1213
       0: operator()
-            at ../src/runtime/rpc/rpc_endpoint.cc:684
-      File "../src/runtime/rpc/rpc_endpoint.cc", line 684
-    TVMError: 
-    ---------------------------------------------------------------
-    An error occurred during the execution of TVM.
-    For more information, please see: https://tvm.apache.org/docs/errors.html
-    ---------------------------------------------------------------
-      Check failed: (code == RPCCode::kReturn) is false: code=1
+            at ../src/runtime/c_runtime_api.cc:534
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
+      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
+        raise InstantiationError("Skipped because of invalid gpu kernel")
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
 
     Traceback (most recent call last):
-      52: 0xffffffffffffffff
-      51: _start
-      50: __libc_start_main
-      49: _Py_UnixMain
-      48: 0x0000000000650da0
-      47: 0x0000000000650afa
-      46: _PyFunction_FastCallDict
-      45: _PyEval_EvalCodeWithName
-      44: _PyEval_EvalFrameDefault
-      43: _PyFunction_FastCallKeywords
-      42: _PyEval_EvalCodeWithName
-      41: _PyEval_EvalFrameDefault
-      40: _PyMethodDef_RawFastCallKeywords
-      39: 0x0000000000546369
-      38: _PyEval_EvalCodeWithName
-      37: _PyEval_EvalFrameDefault
-      36: _PyFunction_FastCallKeywords
-      35: _PyEval_EvalCodeWithName
-      34: _PyEval_EvalFrameDefault
-      33: _PyFunction_FastCallDict
-      32: _PyEval_EvalCodeWithName
-      31: _PyEval_EvalFrameDefault
-      30: _PyObject_FastCallDict
-      29: 0x00000000004c06e1
-      28: _PyFunction_FastCallDict
-      27: _PyEval_EvalFrameDefault
-      26: _PyMethodDescr_FastCallKeywords
-      25: 0x00000000005dcb58
-      24: 0x00000000005dc83f
-      23: 0x00000000004ba127
-      22: _PyEval_EvalFrameDefault
-      21: _PyFunction_FastCallKeywords
-      20: _PyEval_EvalFrameDefault
-      19: _PyFunction_FastCall      [('tile_f', [-1, 128, 1, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5236987
-    No: 20  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+      24: TVMFuncCall
+            at ../src/runtime/c_runtime_api.cc:477
+      23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+            at ../include/tvm/runtime/packed_func.h:1217
+      22: Call
+            at ../include/tvm/runtime/packed_func.h:1213
+      21: operator()
+            at ../include/tvm/runtime/packed_func.h:1731
+      20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
+            at ../include/tvm/runtime/packed_func.h:1671
+      19: run<>
+            at ../include/tvm/runtime/packed_func.h:1631
+      18: run<tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1631
+      14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
+            at ../include/tvm/runtime/packed_func.h:1646
+      13: operator()
+            at ../src/driver/driver_api.cc:389
+      12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
+            at ../src/driver/driver_api.cc:375
+      11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
+            at ../src/driver/driver_api.cc:270
+      10: tvm::transform::Pass::operator()(tvm::IRModule) const
+            at ../src/ir/transform.cc:258
+      9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:274
+      8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:453
+      7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/ir/transform.cc:274
+      6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
+            at ../src/tir/ir/transform.cc:100
+      5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
+            at ../include/tvm/runtime/packed_func.h:1750
+      4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
+            at ../include/tvm/runtime/packed_func.h:1694
+      3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
+            at ../include/tvm/runtime/packed_func.h:1618
+      2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+            at ../include/tvm/runtime/packed_func.h:1217
+      1: Call
+            at ../include/tvm/runtime/packed_func.h:1213
+      0: operator()
+            at ../src/runtime/c_runtime_api.cc:534
+      File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
+      File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
+        raise InstantiationError("Skipped because of invalid gpu kernel")
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 32, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 256, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,452360
+    No: 20  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -2144,7 +2236,7 @@ for this template
       File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
-    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 8, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10437142
+    tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 64, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4835036
 
 
 
@@ -2199,9 +2291,9 @@ and measure running time.
     Finish loading 20 records
 
     Best config:
-    [('tile_f', [-1, 2, 32, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 16, 4]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5310671
+    [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,3102589
     Finish loading 20 records
-    Time cost of this operator: 0.001390
+    Time cost of this operator: 0.001529
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
index b878c808e9..8a8c11252b 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
@@ -329,10 +329,10 @@ Timing the untuned program
     ########## Build without Autotuning ##########
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)  
     ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------  
-    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  347.4     98.862   (1, 2, 10, 10, 3)  2       1        [347.4]           
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.021     0.86     (1, 6, 10, 10)     1       1        [3.021]           
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.978     0.278    (1, 1, 10, 10, 3)  1       1        [0.978]           
-    Total_time                                    -                                             351.399   -        -                  -       -        -                 
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  314.5     98.604   (1, 2, 10, 10, 3)  2       1        [314.5]           
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.164     0.992    (1, 6, 10, 10)     1       1        [3.164]           
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         1.289     0.404    (1, 1, 10, 10, 3)  1       1        [1.289]           
+    Total_time                                    -                                             318.953   -        -                  -       -        -                 
 
 
 
@@ -397,10 +397,10 @@ Timing the tuned program
     ########## Build with Autotuning ##########
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)  
     ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------  
-    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  100.4     97.356   (1, 6, 10, 10, 1)  2       1        [100.4]           
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.768     1.715    (1, 6, 10, 10)     1       1        [1.768]           
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.958     0.929    (1, 1, 10, 10, 3)  1       1        [0.958]           
-    Total_time                                    -                                             103.126   -        -                  -       -        -                 
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  100.8     97.323   (1, 6, 10, 10, 1)  2       1        [100.8]           
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.785     1.723    (1, 6, 10, 10)     1       1        [1.785]           
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.988     0.954    (1, 1, 10, 10, 3)  1       1        [0.988]           
+    Total_time                                    -                                             103.573   -        -                  -       -        -                 
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt
index 7eed501144..8c87d98927 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt
@@ -109,7 +109,7 @@ download a cat image and preprocess it to use as the model input.
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torch/ao/quantization/utils.py:281: UserWarning: must run observer before calling calculate_qparams. Returning default values.
       "must run observer before calling calculate_qparams. " +
     Downloading: "https://download.pytorch.org/models/quantized/mobilenet_v2_qnnpack_37f702c5.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2_qnnpack_37f702c5.pth
-
      0%|          | 0.00/3.42M [00:00<?, ?B/s]
    100%|##########| 3.42M/3.42M [00:00<00:00, 79.4MB/s]
+
      0%|          | 0.00/3.42M [00:00<?, ?B/s]
    100%|##########| 3.42M/3.42M [00:00<00:00, 82.2MB/s]
     /workspace/python/tvm/relay/frontend/pytorch_utils.py:47: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
       return LooseVersion(torch_ver) > ver
     /venv/apache-tvm-py3.7/lib/python3.7/site-packages/setuptools/_distutils/version.py:346: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
@@ -314,7 +314,7 @@ Look up prediction top 1 index in 1000 class synset.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  9.931 seconds)
+   **Total running time of the script:** ( 1 minutes  7.864 seconds)
 
 
 .. _sphx_glr_download_how_to_work_with_microtvm_micro_pytorch.py:
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
index 448e5359cd..c11d4e4daf 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
@@ -225,7 +225,7 @@ take about **2 minutes** to download the Stanford Cars, while COCO 2017 validati
  .. code-block:: none
 
 
-    '/tmp/tmphbrmfcm6/images/random'
+    '/tmp/tmpyrrt410h/images/random'
 
 
 
@@ -316,7 +316,7 @@ objects to other stuff? We can display some examples from our datasets using ``m
 
 
 .. image-sg:: /how_to/work_with_microtvm/images/sphx_glr_micro_train_001.png
-   :alt: [0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0]
+   :alt: [0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [1.0, 0.0]
    :srcset: /how_to/work_with_microtvm/images/sphx_glr_micro_train_001.png
    :class: sphx-glr-single-img
 
@@ -325,8 +325,8 @@ objects to other stuff? We can display some examples from our datasets using ``m
 
  .. code-block:: none
 
-    /tmp/tmphbrmfcm6/images/target contains 8144 images
-    /tmp/tmphbrmfcm6/images/random contains 5000 images
+    /tmp/tmpyrrt410h/images/target contains 8144 images
+    /tmp/tmpyrrt410h/images/random contains 5000 images
 
 
 
@@ -501,13 +501,13 @@ the time on our validation set).
  .. code-block:: none
 
     Epoch 1/3
-    328/328 - 58s - loss: 0.2229 - accuracy: 0.9203 - val_loss: 0.1504 - val_accuracy: 0.9535 - 58s/epoch - 176ms/step
+    328/328 - 48s - loss: 0.2065 - accuracy: 0.9253 - val_loss: 0.1518 - val_accuracy: 0.9486 - 48s/epoch - 147ms/step
     Epoch 2/3
-    328/328 - 46s - loss: 0.0906 - accuracy: 0.9640 - val_loss: 0.0942 - val_accuracy: 0.9637 - 46s/epoch - 140ms/step
+    328/328 - 44s - loss: 0.1031 - accuracy: 0.9605 - val_loss: 0.1043 - val_accuracy: 0.9637 - 44s/epoch - 135ms/step
     Epoch 3/3
-    328/328 - 43s - loss: 0.0661 - accuracy: 0.9753 - val_loss: 0.1019 - val_accuracy: 0.9656 - 43s/epoch - 132ms/step
+    328/328 - 44s - loss: 0.0724 - accuracy: 0.9724 - val_loss: 0.1013 - val_accuracy: 0.9656 - 44s/epoch - 134ms/step
 
-    <keras.callbacks.History object at 0x7f990cf28410>
+    <keras.callbacks.History object at 0x7f3459619d10>
 
 
 
@@ -864,7 +864,7 @@ Arduino tutorial for how to do that `on GitHub <https://github.com/guberti/tvm-a
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 4 minutes  45.405 seconds)
+   **Total running time of the script:** ( 4 minutes  35.122 seconds)
 
 
 .. _sphx_glr_download_how_to_work_with_microtvm_micro_train.py:
diff --git a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
index dcf34edda1..b34fa3734f 100644
--- a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
@@ -5,18 +5,18 @@
 
 Computation times
 =================
-**06:57.782** total execution time for **how_to_work_with_microtvm** files:
+**06:50.444** total execution time for **how_to_work_with_microtvm** files:
 
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)               | 04:45.405 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)               | 04:35.122 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_pytorch.py` (``micro_pytorch.py``)           | 01:09.931 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_pytorch.py` (``micro_pytorch.py``)           | 01:07.864 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)         | 00:50.249 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)         | 00:54.329 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``)                   | 00:08.223 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``)                   | 00:09.004 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)             | 00:03.972 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)             | 00:04.123 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``) | 00:00.001 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
index 47c31e0fc8..04291b2ad3 100644
--- a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
@@ -5,14 +5,14 @@
 
 Computation times
 =================
-**00:44.420** total execution time for **how_to_work_with_relay** files:
+**00:49.622** total execution time for **how_to_work_with_relay** files:
 
 +----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_using_pipeline_executor.py` (``using_pipeline_executor.py``) | 00:32.500 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_pipeline_executor.py` (``using_pipeline_executor.py``) | 00:37.407 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)           | 00:10.288 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)           | 00:10.461 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)                             | 00:01.624 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)                             | 00:01.747 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_relay_using_relay_viz.py` (``using_relay_viz.py``)                 | 00:00.007 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
index 2a1d0fcbfc..43debadbd9 100644
--- a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
@@ -261,7 +261,7 @@ The following example customizes CUDA lowering rule for :code:`exp`.
  .. code-block:: none
 
 
-    <function my_cuda_math_rule at 0x7f990935c170>
+    <function my_cuda_math_rule at 0x7f33fd04b200>
 
 
 
diff --git a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
index 622e534005..f982612ca5 100644
--- a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
@@ -5,22 +5,22 @@
 
 Computation times
 =================
-**00:06.249** total execution time for **how_to_work_with_schedules** files:
+**00:08.107** total execution time for **how_to_work_with_schedules** files:
 
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)                 | 00:03.752 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)                 | 00:05.476 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)                     | 00:01.143 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)                     | 00:01.198 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)                     | 00:00.582 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)                     | 00:00.611 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)                               | 00:00.559 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)                               | 00:00.590 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)                     | 00:00.115 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)                     | 00:00.121 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``) | 00:00.050 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``) | 00:00.058 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)                               | 00:00.029 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)                               | 00:00.032 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)               | 00:00.018 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)               | 00:00.020 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
index 0c0a1cf5f1..e61dcdf5f8 100644
--- a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
@@ -343,7 +343,7 @@ The importing needs to happen before the tensorized GEMV being executed.
                  B: Buffer(B_2: Pointer(float32), float32, [512, 64], []),
                  C: Buffer(C_2: Pointer(float32), float32, [1024, 512], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
-      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpbmkrqlqt/input0.cc'\nsource_filename = \"/tmp/tmpbmkrqlqt/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 floa [...]
+      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmp5vd_qexq/input0.cc'\nsource_filename = \"/tmp/tmp5vd_qexq/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 floa [...]
       for (i, 0, 1024) {
         for (j.outer: int32, 0, 32) {
           @tir.call_extern("gemv_update", @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i*512) + (j.outer*16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i*64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer*1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
diff --git a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
index e9399c0ac4..be8ccb332a 100644
--- a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:26.479** total execution time for **topic_vta_tutorials_autotvm** files:
+**00:28.577** total execution time for **topic_vta_tutorials_autotvm** files:
 
 +---------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``) | 00:26.473 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``) | 00:28.570 | 0.0 MB |
 +---------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)     | 00:00.006 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)     | 00:00.007 | 0.0 MB |
 +---------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
index 0314c974da..85a35558e1 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -289,7 +289,7 @@ The compilation steps are:
       DeprecationWarning,
     /workspace/vta/tutorials/frontend/deploy_classification.py:213: DeprecationWarning: legacy graph executor behavior of producing json / lib / params will be removed in the next release. Please see documents of tvm.contrib.graph_executor.GraphModule for the  new recommended usage.
       relay_prog, target=tvm.target.Target(target, host=env.target_host), params=params
-    resnet18_v1 inference graph built in 29.44s!
+    resnet18_v1 inference graph built in 32.06s!
 
 
 
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
index 935324356b..511c90ec3c 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -333,7 +333,7 @@ The compilation steps are:
 
     /workspace/python/tvm/relay/build_module.py:348: DeprecationWarning: Please use input parameter mod (tvm.IRModule) instead of deprecated parameter mod (tvm.relay.function.Function)
       DeprecationWarning,
-    yolov3-tiny inference graph built in 19.98s!
+    yolov3-tiny inference graph built in 21.30s!
 
 
 
diff --git a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
index 3c37318c16..1de467716f 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**01:40.524** total execution time for **topic_vta_tutorials_frontend** files:
+**01:46.182** total execution time for **topic_vta_tutorials_frontend** files:
 
 +------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)           | 00:51.289 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)           | 00:53.927 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:49.235 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:52.255 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
index 6e6f55ce39..6937975d4d 100644
--- a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:03.134** total execution time for **topic_vta_tutorials_optimize** files:
+**00:03.167** total execution time for **topic_vta_tutorials_optimize** files:
 
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)         | 00:02.681 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)         | 00:02.690 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``) | 00:00.454 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``) | 00:00.477 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
index 700488864b..87a8a3be67 100644
--- a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:00.810** total execution time for **topic_vta_tutorials** files:
+**00:00.843** total execution time for **topic_vta_tutorials** files:
 
 +---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.433 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.447 | 0.0 MB |
 +---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.377 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.396 | 0.0 MB |
 +---------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
index 77f90a88f4..f9036313b8 100644
--- a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
@@ -203,6 +203,13 @@ trials, we can load the best schedule from the log file and apply it.
 
 
 
+.. rst-class:: sphx-glr-script-out
+
+ .. code-block:: none
+
+    *E*E
+
+
 
 
 
@@ -325,7 +332,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 94.246 ms
+    Execution time of this operator: 95.742 ms
 
 
 
@@ -443,7 +450,7 @@ operations.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  22.982 seconds)
+   **Total running time of the script:** ( 1 minutes  42.930 seconds)
 
 
 .. _sphx_glr_download_tutorial_auto_scheduler_matmul_x86.py:
diff --git a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
index d8769da893..96eb83a6c2 100644
--- a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
@@ -450,16 +450,16 @@ reduce variance, we take 5 measurements and average them.
     waiting for device...
     device available
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 0.90/0.90       result: MeasureResult(costs=(0.2996364378,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.955032587051392, timestamp=1669762310.4458077)        [('tile_y', [-1, 128]), ('tile_x', [-1, 2])],None,17
-    No: 2   GFLOPS: 11.37/11.37     result: MeasureResult(costs=(0.0236037104,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5711233615875244, timestamp=1669762311.0305645)       [('tile_y', [-1, 256]), ('tile_x', [-1, 32])],None,58
-    No: 3   GFLOPS: 12.25/12.25     result: MeasureResult(costs=(0.0219155864,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5021579265594482, timestamp=1669762312.3101704)       [('tile_y', [-1, 2]), ('tile_x', [-1, 512])],None,91
-    No: 4   GFLOPS: 3.58/12.25      result: MeasureResult(costs=(0.0750337088,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3454208374023438, timestamp=1669762314.442422)        [('tile_y', [-1, 256]), ('tile_x', [-1, 16])],None,48
-    No: 5   GFLOPS: 2.77/12.25      result: MeasureResult(costs=(0.0968822058,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6982569694519043, timestamp=1669762316.2825844)       [('tile_y', [-1, 16]), ('tile_x', [-1, 4])],None,24
-    No: 6   GFLOPS: 11.72/12.25     result: MeasureResult(costs=(0.0229101304,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5306427478790283, timestamp=1669762316.8209324)       [('tile_y', [-1, 32]), ('tile_x', [-1, 256])],None,85
-    No: 7   GFLOPS: 3.89/12.25      result: MeasureResult(costs=(0.0689706286,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.2754292488098145, timestamp=1669762318.8374689)       [('tile_y', [-1, 32]), ('tile_x', [-1, 16])],None,45
-    No: 8   GFLOPS: 1.84/12.25      result: MeasureResult(costs=(0.14613541359999999,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.517415761947632, timestamp=1669762321.3817234) [('tile_y', [-1, 512]), ('tile_x', [-1, 4])],None,29
-    No: 9   GFLOPS: 1.76/12.25      result: MeasureResult(costs=(0.1527898372,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.553406000137329, timestamp=1669762324.0569816)        [('tile_y', [-1, 4]), ('tile_x', [-1, 1])],None,2
-    No: 10  GFLOPS: 2.86/12.25      result: MeasureResult(costs=(0.0939161612,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6214725971221924, timestamp=1669762325.7288475)       [('tile_y', [-1, 1]), ('tile_x', [-1, 16])],None,40
+    No: 1   GFLOPS: 12.43/12.43     result: MeasureResult(costs=(0.021600498200000002,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.4969513416290283, timestamp=1669761969.368938)        [('tile_y', [-1, 2]), ('tile_x', [-1, 512])],None,91
+    No: 2   GFLOPS: 10.34/12.43     result: MeasureResult(costs=(0.0259709258,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6024019718170166, timestamp=1669761969.9970186)       [('tile_y', [-1, 1]), ('tile_x', [-1, 256])],None,80
+    No: 3   GFLOPS: 12.42/12.43     result: MeasureResult(costs=(0.0216045176,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.4945487976074219, timestamp=1669761971.2858412)       [('tile_y', [-1, 128]), ('tile_x', [-1, 256])],None,87
+    No: 4   GFLOPS: 3.05/12.43      result: MeasureResult(costs=(0.087950921,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.5500538349151611, timestamp=1669761973.630014) [('tile_y', [-1, 256]), ('tile_x', [-1, 8])],None,38
+    No: 5   GFLOPS: 12.26/12.43     result: MeasureResult(costs=(0.0219006036,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5240395069122314, timestamp=1669761974.3208323)       [('tile_y', [-1, 64]), ('tile_x', [-1, 256])],None,86
+    No: 6   GFLOPS: 9.08/12.43      result: MeasureResult(costs=(0.0295741872,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6863753795623779, timestamp=1669761975.7427917)       [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
+    No: 7   GFLOPS: 1.96/12.43      result: MeasureResult(costs=(0.136763625,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.33447003364563, timestamp=1669761978.0986357)  [('tile_y', [-1, 4]), ('tile_x', [-1, 2])],None,12
+    No: 8   GFLOPS: 3.22/12.43      result: MeasureResult(costs=(0.0833517794,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.531736135482788, timestamp=1669761979.6454594)        [('tile_y', [-1, 2]), ('tile_x', [-1, 8])],None,31
+    No: 9   GFLOPS: 2.25/12.43      result: MeasureResult(costs=(0.1191873628,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.031507730484009, timestamp=1669761981.7918825)        [('tile_y', [-1, 512]), ('tile_x', [-1, 16])],None,49
+    No: 10  GFLOPS: 0.94/12.43      result: MeasureResult(costs=(0.285315271,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.686033725738525, timestamp=1669761986.5246274) [('tile_y', [-1, 32]), ('tile_x', [-1, 2])],None,15
 
 
 
diff --git a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
index 47bf177e6a..6cd6874016 100644
--- a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
@@ -320,7 +320,7 @@ standard deviation.
 
  .. code-block:: none
 
-    {'mean': 515.4455662099997, 'median': 514.8746186500034, 'std': 2.050521060753296}
+    {'mean': 491.385263520001, 'median': 491.17326379999895, 'std': 1.0324474384714}
 
 
 
@@ -554,30 +554,29 @@ the tuning data to.
 
  .. code-block:: none
 
-
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  1/25]  Current/Best:    4.82/  22.61 GFLOPS | Progress: (4/20) | 7.66 s
    [Task  1/25]  Current/Best:   10.03/  22.84 GFLOPS | Progress: (8/20) | 11.62 s
    [Task  1/25]  Current/Best:    9.57/  23.32 GFLOPS | Progress: (12/20) | 14.34 s
    [Task  1/25]  Current/Best:   21.91/  23.32 GFLOPS | Progress: (16/20) | 16.74 s
    [Task  1/25]  Current/Best:   15.40/  23.32 GFLOPS | Progress: (20/20) | 18.38 s Done.
-
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  2/25]  Current/Best:   14.69/  14.69 GFLOPS | Progress: (4/20) | 4.16 s
    [Task  2/25]  Current/Best:    7.12/  15.50 GFLOPS | Progress: (8/20) | 5.43 s
    [Task  2/25]  Current/Best:    8.89/  19.45 GFLOPS | Progress: (12/20) | 6.55 s
    [Task  2/25]  Current/Best:   12.07/  19.45 GFLOPS | Progress: (16/20) | 9.11 s
    [Task  2/25]  Current/Best:   16.42/  19.45 GFLOPS | Progress: (20/20) | 10.81 s Done.
-
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  3/25]  Current/Best:   16.66/  16.66 GFLOPS | Progress: (4/20) | 3.48 s
    [Task  3/25]  Current/Best:    7.94/  18.21 GFLOPS | Progress: (8/20) | 5.78 s
    [Task  3/25]  Current/Best:   10.01/  18.21 GFLOPS | Progress: (12/20) | 8.48 s
    [Task  3/25]  Current/Best:   11.68/  18.21 GFLOPS | Progress: (16/20) | 10.48 s
    [Task  3/25]  Current/Best:    3.10/  20.61 GFLOPS | Progress: (20/20) | 12.76 s Done.
-
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  4/25]  Current/Best:   10.33/  15.42 GFLOPS | Progress: (4/20) | 3.16 s
    [Task  4/25]  Current/Best:   18.22/  18.22 GFLOPS | Progress: (8/20) | 5.75 s
    [Task  4/25]  Current/Best:   13.89/  18.22 GFLOPS | Progress: (12/20) | 7.88 s
    [Task  4/25]  Current/Best:   21.68/  21.68 GFLOPS | Progress: (16/20) | 9.31 s
    [Task  4/25]  Current/Best:   16.99/  21.68 GFLOPS | Progress: (20/20) | 10.79 s Done.
-
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  5/25]  Current/Best:    7.71/  13.55 GFLOPS | Progress: (4/20) | 3.56 s
    [Task  5/25]  Current/Best:   12.35/  13.55 GFLOPS | Progress: (8/20) | 5.17 s
    [Task  5/25]  Current/Best:    4.05/  13.55 GFLOPS | Progress: (12/20) | 7.27 s
    [Task  5/25]  Current/Best:    6.37/  14.57 GFLOPS | Progress: (16/20) | 9.45 s
    [Task  5/25]  Current/Best:   22.57/  22.57 GFLOPS | Progress: (20/20) | 11.56 s Done.
-
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  6/25]  Current/Best:   15.07/  18.79 GFLOPS | Progress: (4/20) | 4.17 s
    [Task  6/25]  Current/Best:   15.56/  18.79 GFLOPS | Progress: (8/20) | 6.22 s
    [Task  6/25]  Current/Best:   10.56/  18.79 GFLOPS | Progress: (12/20) | 9.77 s
    [Task  6/25]  Current/Best:    4.91/  20.59 GFLOPS | Progress: (16/20) | 12.60 s
    [Task  6/25]  Current/Best:   10.65/  20.59 GFLOPS | Progress: (20/20) | 17.77 s Done.
-
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  7/25]  Current/Best:   11.78/  14.46 GFLOPS | Progress: (4/20) | 4.17 s
    [Task  7/25]  Current/Best:   15.84/  16.78 GFLOPS | Progress: (8/20) | 6.68 s
    [Task  7/25]  Current/Best:    3.14/  16.78 GFLOPS | Progress: (12/20) | 9.57 s
    [Task  7/25]  Current/Best:   22.60/  22.60 GFLOPS | Progress: (16/20) | 11.63 s
    [Task  7/25]  Current/Best:    6.16/  22.60 GFLOPS | Progress: (20/20) | 15.83 s Done.
-
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  8/25]  Current/Best:   11.82/  17.47 GFLOPS | Progress: (4/20) | 3.91 s
    [Task  8/25]  Current/Best:    3.56/  19.64 GFLOPS | Progress: (8/20) | 6.90 s
    [Task  8/25]  Current/Best:   11.62/  19.64 GFLOPS | Progress: (12/20) | 13.98 s
    [Task  8/25]  Current/Best:   16.00/  19.64 GFLOPS | Progress: (16/20) | 16.34 s
    [Task  8/25]  Current/Best:    7.74/  19.64 GFLOPS | Progress: (20/20) | 19.05 s Done.
-
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  9/25]  Current/Best:   10.17/  15.02 GFLOPS | Progress: (4/20) | 6.51 s
    [Task  9/25]  Current/Best:   10.64/  19.01 GFLOPS | Progress: (8/20) | 13.47 s
    [Task  9/25]  Current/Best:   12.17/  19.01 GFLOPS | Progress: (12/20) | 20.94 s
    [Task  9/25]  Current/Best:   15.18/  20.79 GFLOPS | Progress: (16/20) | 22.45 s
    [Task  9/25]  Current/Best:   17.05/  20.79 GFLOPS | Progress: (20/20) | 24.03 s Done.
-
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 10/25]  Current/Best:   11.19/  21.46 GFLOPS | Progress: (4/20) | 2.88 s
    [Task 10/25]  Current/Best:   14.26/  21.46 GFLOPS | Progress: (8/20) | 4.40 s
    [Task 10/25]  Current/Best:    9.19/  21.46 GFLOPS | Progress: (12/20) | 6.07 s
    [Task 10/25]  Current/Best:   16.28/  21.46 GFLOPS | Progress: (16/20) | 8.01 s
    [Task 10/25]  Current/Best:   13.63/  21.46 GFLOPS | Progress: (20/20) | 9.69 s Done.
-
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 11/25]  Current/Best:   15.98/  16.10 GFLOPS | Progress: (4/20) | 4.22 s
    [Task 11/25]  Current/Best:   15.23/  16.10 GFLOPS | Progress: (8/20) | 6.82 s
    [Task 11/25]  Current/Best:    9.07/  20.32 GFLOPS | Progress: (12/20) | 9.27 s
    [Task 11/25]  Current/Best:   12.81/  22.20 GFLOPS | Progress: (16/20) | 11.17 s
    [Task 11/25]  Current/Best:   19.22/  22.20 GFLOPS | Progress: (20/20) | 13.09 s Done.
-
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 12/25]  Current/Best:    9.99/  19.50 GFLOPS | Progress: (4/20) | 3.70 s
    [Task 12/25]  Current/Best:   15.72/  19.50 GFLOPS | Progress: (8/20) | 6.41 s
    [Task 12/25]  Current/Best:   11.50/  19.50 GFLOPS | Progress: (12/20) | 8.23 s
    [Task 12/25]  Current/Best:   20.82/  20.82 GFLOPS | Progress: (16/20) | 11.42 s
    [Task 12/25]  Current/Best:   11.65/  20.82 GFLOPS | Progress: (20/20) | 17.64 s Done.
-
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 13/25]  Current/Best:   21.99/  21.99 GFLOPS | Progress: (4/20) | 3.81 s
    [Task 13/25]  Current/Best:   16.32/  21.99 GFLOPS | Progress: (8/20) | 7.27 s
    [Task 13/25]  Current/Best:   13.38/  21.99 GFLOPS | Progress: (12/20) | 9.17 s
    [Task 13/25]  Current/Best:   15.38/  21.99 GFLOPS | Progress: (16/20) | 11.43 s
    [Task 13/25]  Current/Best:   21.35/  21.99 GFLOPS | Progress: (20/20) | 13.43 s Done.
-
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 14/25]  Current/Best:   10.17/  18.13 GFLOPS | Progress: (4/20) | 3.86 s
    [Task 14/25]  Current/Best:   14.12/  18.13 GFLOPS | Progress: (8/20) | 6.22 s
    [Task 14/25]  Current/Best:   20.52/  20.52 GFLOPS | Progress: (12/20) | 8.33 s
    [Task 14/25]  Current/Best:   14.94/  20.52 GFLOPS | Progress: (16/20) | 10.94 s
    [Task 14/25]  Current/Best:   10.53/  20.52 GFLOPS | Progress: (20/20) | 15.78 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 15/25]  Current/Best:   16.14/  16.14 GFLOPS | Progress: (4/20) | 3.31 s
    [Task 15/25]  Current/Best:   11.91/  16.14 GFLOPS | Progress: (8/20) | 9.25 s Done.
-
    [Task 15/25]  Current/Best:   18.34/  21.06 GFLOPS | Progress: (12/20) | 11.82 s
    [Task 15/25]  Current/Best:   21.17/  21.17 GFLOPS | Progress: (16/20) | 14.03 s
    [Task 15/25]  Current/Best:   14.31/  21.17 GFLOPS | Progress: (20/20) | 20.41 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 16/25]  Current/Best:   15.83/  18.55 GFLOPS | Progress: (4/20) | 4.13 s
    [Task 16/25]  Current/Best:    4.09/  18.55 GFLOPS | Progress: (8/20) | 5.69 s
    [Task 16/25]  Current/Best:   18.45/  18.55 GFLOPS | Progress: (12/20) | 7.76 s
    [Task 16/25]  Current/Best:   18.73/  18.99 GFLOPS | Progress: (16/20) | 10.96 s
    [Task 16/25]  Current/Best:   16.57/  18.99 GFLOPS | Progress: (20/20) | 12.89 s Done.
-
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 17/25]  Current/Best:   16.38/  19.40 GFLOPS | Progress: (4/20) | 3.64 s
    [Task 17/25]  Current/Best:   12.18/  19.40 GFLOPS | Progress: (8/20) | 6.20 s
    [Task 17/25]  Current/Best:    3.08/  19.40 GFLOPS | Progress: (12/20) | 8.87 s
    [Task 17/25]  Current/Best:   12.23/  20.12 GFLOPS | Progress: (16/20) | 11.98 s
    [Task 17/25]  Current/Best:   16.48/  20.12 GFLOPS | Progress: (20/20) | 14.04 s Done.
-
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 18/25]  Current/Best:    5.04/  19.27 GFLOPS | Progress: (4/20) | 5.29 s
    [Task 18/25]  Current/Best:    2.93/  19.27 GFLOPS | Progress: (8/20) | 7.53 s
    [Task 18/25]  Current/Best:   16.21/  19.27 GFLOPS | Progress: (12/20) | 10.08 s
    [Task 18/25]  Current/Best:   16.99/  19.27 GFLOPS | Progress: (16/20) | 13.56 s
    [Task 18/25]  Current/Best:   17.40/  19.27 GFLOPS | Progress: (20/20) | 18.85 s Done.
-
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 19/25]  Current/Best:   11.36/  18.33 GFLOPS | Progress: (4/20) | 4.56 s
    [Task 19/25]  Current/Best:    1.55/  18.33 GFLOPS | Progress: (8/20) | 9.35 s
    [Task 19/25]  Current/Best:   14.79/  18.33 GFLOPS | Progress: (12/20) | 16.72 s
    [Task 19/25]  Current/Best:   15.32/  18.33 GFLOPS | Progress: (16/20) | 20.45 s
    [Task 19/25]  Current/Best:   19.08/  19.08 GFLOPS | Progress: (20/20) | 23.82 s Done.
-
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 20/25]  Current/Best:   20.20/  20.20 GFLOPS | Progress: (4/20) | 3.77 s
    [Task 20/25]  Current/Best:    4.15/  20.20 GFLOPS | Progress: (8/20) | 6.56 s
    [Task 20/25]  Current/Best:    5.05/  20.20 GFLOPS | Progress: (12/20) | 9.15 s
    [Task 20/25]  Current/Best:    7.86/  20.20 GFLOPS | Progress: (16/20) | 13.68 s
    [Task 20/25]  Current/Best:   10.99/  20.20 GFLOPS | Progress: (20/20) | 17.52 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 21/25]  Current/Best:   15.02/  15.02 GFLOPS | Progress: (4/20) | 3.35 s Done.
-     Done.
-
    [Task 21/25]  Current/Best:    7.43/  15.02 GFLOPS | Progress: (8/20) | 5.40 s
    [Task 21/25]  Current/Best:   19.92/  19.92 GFLOPS | Progress: (12/20) | 8.76 s
    [Task 21/25]  Current/Best:   13.05/  19.92 GFLOPS | Progress: (16/20) | 10.41 s
    [Task 21/25]  Current/Best:    4.15/  19.92 GFLOPS | Progress: (20/20) | 14.62 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 22/25]  Current/Best:   11.00/  17.53 GFLOPS | Progress: (4/20) | 3.16 s
    [Task 22/25]  Current/Best:    7.15/  19.89 GFLOPS | Progress: (8/20) | 5.28 s
    [Task 22/25]  Current/Best:   10.31/  20.34 GFLOPS | Progress: (12/20) | 7.23 s
    [Task 22/25]  Current/Best:   16.22/  20.34 GFLOPS | Progress: (16/20) | 9.09 s
    [Task 22/25]  Current/Best:   14.07/  20.34 GFLOPS | Progress: (20/20) | 10.68 s Done.
-
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 23/25]  Current/Best:    9.77/  11.58 GFLOPS | Progress: (4/20) | 4.61 s
    [Task 23/25]  Current/Best:   19.25/  19.25 GFLOPS | Progress: (8/20) | 8.66 s
    [Task 23/25]  Current/Best:   17.26/  22.09 GFLOPS | Progress: (12/20) | 10.98 s
    [Task 23/25]  Current/Best:    5.61/  22.09 GFLOPS | Progress: (16/20) | 15.06 s
    [Task 23/25]  Current/Best:   11.55/  22.09 GFLOPS | Progress: (20/20) | 18.73 s Done.
-
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 24/25]  Current/Best:    7.34/  10.39 GFLOPS | Progress: (4/20) | 3.41 s
    [Task 24/25]  Current/Best:    7.12/  10.39 GFLOPS | Progress: (8/20) | 13.89 s
    [Task 24/25]  Current/Best:    2.87/  10.42 GFLOPS | Progress: (12/20) | 16.52 s
    [Task 24/25]  Current/Best:    0.59/  10.42 GFLOPS | Progress: (16/20) | 27.34 s
    [Task 24/25]  Current/Best:    8.37/  10.42 GFLOPS | Progress: (20/20) | 36.72 s
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
-
    [Task 25/25]  Current/Best:    6.55/   9.14 GFLOPS | Progress: (4/20) | 7.22 s
    [Task 25/25]  Current/Best:    9.74/   9.74 GFLOPS | Progress: (8/20) | 8.43 s
    [Task 25/25]  Current/Best:    5.51/   9.74 GFLOPS | Progress: (12/20) | 10.09 s
    [Task 25/25]  Current/Best:    7.76/   9.74 GFLOPS | Progress: (16/20) | 20.79 s
    [Task 25/25]  Current/Best:    3.63/   9.74 GFLOPS | Progress: (20/20) | 23.86 s
+
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  1/25]  Current/Best:    8.58/  15.51 GFLOPS | Progress: (4/20) | 8.32 s
    [Task  1/25]  Current/Best:   13.85/  17.49 GFLOPS | Progress: (8/20) | 12.26 s
    [Task  1/25]  Current/Best:   17.53/  17.53 GFLOPS | Progress: (12/20) | 15.86 s
    [Task  1/25]  Current/Best:   17.87/  23.12 GFLOPS | Progress: (16/20) | 17.38 s
    [Task  1/25]  Current/Best:   12.54/  23.12 GFLOPS | Progress: (20/20) | 19.61 s Done.
+
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  2/25]  Current/Best:   16.28/  18.64 GFLOPS | Progress: (4/20) | 3.27 s
    [Task  2/25]  Current/Best:   13.01/  18.64 GFLOPS | Progress: (8/20) | 4.43 s
    [Task  2/25]  Current/Best:   15.81/  20.79 GFLOPS | Progress: (12/20) | 5.70 s
    [Task  2/25]  Current/Best:   12.95/  20.79 GFLOPS | Progress: (16/20) | 7.20 s
    [Task  2/25]  Current/Best:   14.07/  20.79 GFLOPS | Progress: (20/20) | 9.06 s Done.
+
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  3/25]  Current/Best:   10.75/  19.19 GFLOPS | Progress: (4/20) | 3.56 s
    [Task  3/25]  Current/Best:    9.23/  19.69 GFLOPS | Progress: (8/20) | 5.45 s
    [Task  3/25]  Current/Best:    5.68/  19.69 GFLOPS | Progress: (12/20) | 9.06 s
    [Task  3/25]  Current/Best:   13.34/  19.69 GFLOPS | Progress: (16/20) | 12.42 s
    [Task  3/25]  Current/Best:   15.29/  19.69 GFLOPS | Progress: (20/20) | 14.69 s Done.
+
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  4/25]  Current/Best:   15.63/  21.06 GFLOPS | Progress: (4/20) | 3.37 s
    [Task  4/25]  Current/Best:    5.03/  22.69 GFLOPS | Progress: (8/20) | 7.97 s
    [Task  4/25]  Current/Best:   16.58/  22.69 GFLOPS | Progress: (12/20) | 14.37 s
    [Task  4/25]  Current/Best:   13.62/  22.69 GFLOPS | Progress: (16/20) | 19.42 s
    [Task  4/25]  Current/Best:   12.43/  22.69 GFLOPS | Progress: (20/20) | 21.84 s Done.
+
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  5/25]  Current/Best:   11.56/  14.74 GFLOPS | Progress: (4/20) | 3.32 s
    [Task  5/25]  Current/Best:   15.48/  15.48 GFLOPS | Progress: (8/20) | 5.20 s
    [Task  5/25]  Current/Best:    7.66/  15.80 GFLOPS | Progress: (12/20) | 7.04 s
    [Task  5/25]  Current/Best:   11.46/  15.80 GFLOPS | Progress: (16/20) | 8.71 s
    [Task  5/25]  Current/Best:    4.81/  22.10 GFLOPS | Progress: (20/20) | 10.74 s Done.
+
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  6/25]  Current/Best:    8.49/  13.07 GFLOPS | Progress: (4/20) | 4.10 s
    [Task  6/25]  Current/Best:   18.99/  18.99 GFLOPS | Progress: (8/20) | 5.85 s
    [Task  6/25]  Current/Best:   10.49/  18.99 GFLOPS | Progress: (12/20) | 8.22 s
    [Task  6/25]  Current/Best:    4.98/  18.99 GFLOPS | Progress: (16/20) | 10.62 s
    [Task  6/25]  Current/Best:    6.01/  18.99 GFLOPS | Progress: (20/20) | 12.89 s Done.
+
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  7/25]  Current/Best:    8.63/  11.54 GFLOPS | Progress: (4/20) | 4.24 s
    [Task  7/25]  Current/Best:    8.35/  15.16 GFLOPS | Progress: (8/20) | 7.24 s
    [Task  7/25]  Current/Best:   15.00/  19.42 GFLOPS | Progress: (12/20) | 9.13 s
    [Task  7/25]  Current/Best:    9.57/  19.42 GFLOPS | Progress: (16/20) | 11.02 s
    [Task  7/25]  Current/Best:   12.15/  19.42 GFLOPS | Progress: (20/20) | 12.83 s Done.
+
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  8/25]  Current/Best:    2.85/  18.74 GFLOPS | Progress: (4/20) | 4.80 s
    [Task  8/25]  Current/Best:   13.39/  18.74 GFLOPS | Progress: (8/20) | 9.85 s
    [Task  8/25]  Current/Best:   11.26/  18.74 GFLOPS | Progress: (12/20) | 15.20 s
    [Task  8/25]  Current/Best:   18.93/  18.93 GFLOPS | Progress: (16/20) | 17.78 s
    [Task  8/25]  Current/Best:   14.01/  18.93 GFLOPS | Progress: (20/20) | 23.94 s Done.
+
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  9/25]  Current/Best:    8.48/  17.71 GFLOPS | Progress: (4/20) | 5.52 s
    [Task  9/25]  Current/Best:   11.58/  19.40 GFLOPS | Progress: (8/20) | 9.21 s
    [Task  9/25]  Current/Best:   12.38/  19.40 GFLOPS | Progress: (12/20) | 10.80 s
    [Task  9/25]  Current/Best:   21.20/  21.20 GFLOPS | Progress: (16/20) | 21.70 s
    [Task  9/25]  Current/Best:   14.74/  22.45 GFLOPS | Progress: (20/20) | 23.54 s Done.
+
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 10/25]  Current/Best:    8.68/  11.88 GFLOPS | Progress: (4/20) | 3.44 s
    [Task 10/25]  Current/Best:    4.84/  17.55 GFLOPS | Progress: (8/20) | 5.38 s
    [Task 10/25]  Current/Best:    5.08/  17.55 GFLOPS | Progress: (12/20) | 7.59 s
    [Task 10/25]  Current/Best:   16.34/  17.55 GFLOPS | Progress: (16/20) | 9.14 s
    [Task 10/25]  Current/Best:   12.15/  18.42 GFLOPS | Progress: (20/20) | 10.58 s Done.
+
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 11/25]  Current/Best:   10.88/  13.83 GFLOPS | Progress: (4/20) | 4.55 s
    [Task 11/25]  Current/Best:   11.68/  20.82 GFLOPS | Progress: (8/20) | 7.33 s
    [Task 11/25]  Current/Best:    2.97/  21.93 GFLOPS | Progress: (12/20) | 10.12 s
    [Task 11/25]  Current/Best:   10.10/  21.93 GFLOPS | Progress: (16/20) | 12.10 s
    [Task 11/25]  Current/Best:   22.24/  22.24 GFLOPS | Progress: (20/20) | 14.07 s Done.
+
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 12/25]  Current/Best:   13.17/  15.09 GFLOPS | Progress: (4/20) | 3.39 s
    [Task 12/25]  Current/Best:   13.08/  20.37 GFLOPS | Progress: (8/20) | 5.24 s
    [Task 12/25]  Current/Best:   14.44/  20.59 GFLOPS | Progress: (12/20) | 7.27 s
    [Task 12/25]  Current/Best:    8.28/  20.59 GFLOPS | Progress: (16/20) | 11.50 s
    [Task 12/25]  Current/Best:   17.23/  20.59 GFLOPS | Progress: (20/20) | 15.17 s Done.
+
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 13/25]  Current/Best:   18.05/  18.05 GFLOPS | Progress: (4/20) | 4.52 s
    [Task 13/25]  Current/Best:   17.20/  18.05 GFLOPS | Progress: (8/20) | 7.86 s
    [Task 13/25]  Current/Best:   12.40/  18.05 GFLOPS | Progress: (12/20) | 10.89 s
    [Task 13/25]  Current/Best:   19.12/  19.12 GFLOPS | Progress: (16/20) | 14.06 s
    [Task 13/25]  Current/Best:   12.22/  19.36 GFLOPS | Progress: (20/20) | 16.52 s Done.
+
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 14/25]  Current/Best:    5.03/  13.27 GFLOPS | Progress: (4/20) | 9.02 s
    [Task 14/25]  Current/Best:    5.08/  13.27 GFLOPS | Progress: (8/20) | 14.71 s
    [Task 14/25]  Current/Best:   18.15/  20.87 GFLOPS | Progress: (12/20) | 16.47 s
    [Task 14/25]  Current/Best:   10.30/  20.87 GFLOPS | Progress: (16/20) | 18.23 s
    [Task 14/25]  Current/Best:    4.29/  20.87 GFLOPS | Progress: (20/20) | 23.88 s Done.
+
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 15/25]  Current/Best:   18.50/  18.50 GFLOPS | Progress: (4/20) | 2.97 s
    [Task 15/25]  Current/Best:   14.94/  18.50 GFLOPS | Progress: (8/20) | 4.84 s
    [Task 15/25]  Current/Best:    9.41/  18.50 GFLOPS | Progress: (12/20) | 7.56 s
    [Task 15/25]  Current/Best:    6.21/  18.50 GFLOPS | Progress: (16/20) | 12.57 s
    [Task 15/25]  Current/Best:    4.91/  21.03 GFLOPS | Progress: (20/20) | 13.98 s Done.
+
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 16/25]  Current/Best:   16.93/  16.93 GFLOPS | Progress: (4/20) | 4.13 s
    [Task 16/25]  Current/Best:   19.23/  21.99 GFLOPS | Progress: (8/20) | 5.44 s
    [Task 16/25]  Current/Best:   16.48/  21.99 GFLOPS | Progress: (12/20) | 6.91 s
    [Task 16/25]  Current/Best:   13.36/  21.99 GFLOPS | Progress: (16/20) | 8.75 s
    [Task 16/25]  Current/Best:   12.74/  21.99 GFLOPS | Progress: (20/20) | 11.78 s Done.
+
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 17/25]  Current/Best:   18.75/  21.44 GFLOPS | Progress: (4/20) | 3.67 s
    [Task 17/25]  Current/Best:   18.52/  21.44 GFLOPS | Progress: (8/20) | 6.68 s
    [Task 17/25]  Current/Best:   12.43/  21.44 GFLOPS | Progress: (12/20) | 9.35 s
    [Task 17/25]  Current/Best:   16.23/  21.44 GFLOPS | Progress: (16/20) | 11.58 s
    [Task 17/25]  Current/Best:    6.29/  21.44 GFLOPS | Progress: (20/20) | 13.88 s Done.
+
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 18/25]  Current/Best:    5.14/  19.10 GFLOPS | Progress: (4/20) | 7.31 s
    [Task 18/25]  Current/Best:    9.41/  19.10 GFLOPS | Progress: (8/20) | 10.80 s
    [Task 18/25]  Current/Best:   14.28/  19.10 GFLOPS | Progress: (12/20) | 15.11 s
    [Task 18/25]  Current/Best:   19.96/  19.96 GFLOPS | Progress: (16/20) | 16.84 s
    [Task 18/25]  Current/Best:    9.62/  21.68 GFLOPS | Progress: (20/20) | 18.39 s Done.
+
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 19/25]  Current/Best:   17.70/  18.48 GFLOPS | Progress: (4/20) | 3.71 s
    [Task 19/25]  Current/Best:    7.08/  18.48 GFLOPS | Progress: (8/20) | 6.85 s
    [Task 19/25]  Current/Best:   17.36/  20.57 GFLOPS | Progress: (12/20) | 9.58 s
    [Task 19/25]  Current/Best:   10.24/  20.57 GFLOPS | Progress: (16/20) | 14.60 s
    [Task 19/25]  Current/Best:    1.55/  20.57 GFLOPS | Progress: (20/20) | 18.44 s Done.
+
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 20/25]  Current/Best:   17.20/  17.20 GFLOPS | Progress: (4/20) | 3.98 s
    [Task 20/25]  Current/Best:    5.00/  17.20 GFLOPS | Progress: (8/20) | 6.32 s
    [Task 20/25]  Current/Best:   15.60/  17.20 GFLOPS | Progress: (12/20) | 8.78 s
    [Task 20/25]  Current/Best:   10.11/  19.31 GFLOPS | Progress: (16/20) | 11.91 s
    [Task 20/25]  Current/Best:    9.55/  19.31 GFLOPS | Progress: (20/20) | 14.37 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
+
    [Task 21/25]  Current/Best:   19.26/  19.26 GFLOPS | Progress: (4/20) | 3.06 s
    [Task 21/25]  Current/Best:   15.84/  19.26 GFLOPS | Progress: (8/20) | 5.23 s
    [Task 21/25]  Current/Best:   12.85/  19.26 GFLOPS | Progress: (12/20) | 8.31 s
    [Task 21/25]  Current/Best:    2.71/  19.26 GFLOPS | Progress: (16/20) | 11.30 s
    [Task 21/25]  Current/Best:   16.87/  19.26 GFLOPS | Progress: (20/20) | 13.29 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 22/25]  Current/Best:    3.08/  15.16 GFLOPS | Progress: (4/20) | 4.18 s
    [Task 22/25]  Current/Best:   14.79/  19.82 GFLOPS | Progress: (8/20) | 5.52 s
    [Task 22/25]  Current/Best:    6.38/  19.82 GFLOPS | Progress: (12/20) | 7.46 s
    [Task 22/25]  Current/Best:   17.05/  19.82 GFLOPS | Progress: (16/20) | 8.82 s
    [Task 22/25]  Current/Best:    6.60/  19.82 GFLOPS | Progress: (20/20) | 10.54 s Done.
+
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 23/25]  Current/Best:    9.49/  16.06 GFLOPS | Progress: (4/20) | 4.56 s
    [Task 23/25]  Current/Best:   22.13/  22.13 GFLOPS | Progress: (8/20) | 7.94 s
    [Task 23/25]  Current/Best:   19.90/  22.13 GFLOPS | Progress: (12/20) | 10.04 s
    [Task 23/25]  Current/Best:   20.20/  23.01 GFLOPS | Progress: (16/20) | 12.78 s
    [Task 23/25]  Current/Best:   12.57/  23.01 GFLOPS | Progress: (20/20) | 18.14 s Done.
+
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 24/25]  Current/Best:    8.66/   8.66 GFLOPS | Progress: (4/20) | 12.31 s
    [Task 24/25]  Current/Best:    7.08/   8.94 GFLOPS | Progress: (8/20) | 23.02 s
    [Task 24/25]  Current/Best:    2.58/   8.94 GFLOPS | Progress: (12/20) | 33.92 s
    [Task 24/25]  Current/Best:    5.39/   9.48 GFLOPS | Progress: (16/20) | 35.84 s
    [Task 24/25]  Current/Best:    5.48/   9.76 GFLOPS | Progress: (20/20) | 46.55 s
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 25/25]  Current/Best:    6.86/   6.86 GFLOPS | Progress: (4/20) | 12.31 s
    [Task 25/25]  Current/Best:    6.87/   7.24 GFLOPS | Progress: (8/20) | 23.06 s
    [Task 25/25]  Current/Best:    6.53/   8.25 GFLOPS | Progress: (12/20) | 25.78 s
    [Task 25/25]  Current/Best:    3.69/   8.25 GFLOPS | Progress: (16/20) | 28.97 s
    [Task 25/25]  Current/Best:    8.57/   8.57 GFLOPS | Progress: (2
 0/20) | 31.01 s
 
 
 
@@ -673,8 +672,8 @@ Verify that the optimized model runs and produces the same results:
 
  .. code-block:: none
 
-    class='n02123045 tabby, tabby cat' with probability=0.621104
-    class='n02123159 tiger cat' with probability=0.356378
+    class='n02123045 tabby, tabby cat' with probability=0.621102
+    class='n02123159 tiger cat' with probability=0.356380
     class='n02124075 Egyptian cat' with probability=0.019712
     class='n02129604 tiger, Panthera tigris' with probability=0.001215
     class='n04040759 radiator' with probability=0.000262
@@ -731,8 +730,8 @@ improvement in comparing the optimized model to the unoptimized model.
 
  .. code-block:: none
 
-    optimized: {'mean': 425.9201652300021, 'median': 426.3824672000055, 'std': 1.7863384739212453}
-    unoptimized: {'mean': 515.4455662099997, 'median': 514.8746186500034, 'std': 2.050521060753296}
+    optimized: {'mean': 424.9006820200043, 'median': 422.7754252499949, 'std': 3.9552189372019995}
+    unoptimized: {'mean': 491.385263520001, 'median': 491.17326379999895, 'std': 1.0324474384714}
 
 
 
@@ -755,7 +754,7 @@ profiling/benchmarking.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 10 minutes  32.719 seconds)
+   **Total running time of the script:** ( 10 minutes  48.742 seconds)
 
 
 .. _sphx_glr_download_tutorial_autotvm_relay_x86.py:
diff --git a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
index 6102290a4e..e7574f80c6 100644
--- a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
@@ -270,7 +270,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.275e-07 secs/op
+    1.268e-07 secs/op
 
 
 
diff --git a/docs/_sources/tutorial/intro_topi.rst.txt b/docs/_sources/tutorial/intro_topi.rst.txt
index c165cf0cf4..ce2ad670b5 100644
--- a/docs/_sources/tutorial/intro_topi.rst.txt
+++ b/docs/_sources/tutorial/intro_topi.rst.txt
@@ -260,7 +260,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, placeholder(a, 0x141d8f60)), stage(b, placeholder(b, 0x215a2570)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(mi [...]
+    [stage(a, placeholder(a, 0x26bdd2f0)), stage(b, placeholder(b, 0x19ce8220)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(mi [...]
 
 
 
diff --git a/docs/_sources/tutorial/sg_execution_times.rst.txt b/docs/_sources/tutorial/sg_execution_times.rst.txt
index 33a5adfec9..2b30e736e1 100644
--- a/docs/_sources/tutorial/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorial/sg_execution_times.rst.txt
@@ -5,32 +5,32 @@
 
 Computation times
 =================
-**13:54.545** total execution time for **tutorial** files:
+**14:31.088** total execution time for **tutorial** files:
 
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)                 | 10:32.719 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)                 | 10:48.742 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:22.982 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:42.930 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)     | 00:58.615 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)     | 01:01.212 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)                 | 00:33.830 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)                 | 00:34.363 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)               | 00:24.087 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)               | 00:21.655 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)       | 00:01.355 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)       | 00:01.208 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)                               | 00:00.777 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)                               | 00:00.784 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.171 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.183 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)                           | 00:00.005 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)                           | 00:00.006 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_uma.py` (``uma.py``)                                             | 00:00.001 | 0.0 MB |
-+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)                             | 00:00.001 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_uma.py` (``uma.py``)                                             | 00:00.002 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)   | 00:00.001 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
+| :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)                             | 00:00.001 | 0.0 MB |
++------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_tutorial_install.py` (``install.py``)                                     | 00:00.001 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
index 1122e0622b..8f163502e5 100644
--- a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
@@ -295,7 +295,7 @@ helper function to run a profile of the TVM generated code.
  .. code-block:: none
 
     Numpy running time: 0.000007
-    naive: 0.000010
+    naive: 0.000008
 
 
 
@@ -393,7 +393,7 @@ compile and run this new schedule with the parallel operation applied:
 
  .. code-block:: none
 
-    parallel: 0.000008
+    parallel: 0.000007
 
 
 
@@ -499,10 +499,10 @@ We can now compare the different schedules
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                   numpy    6.675680001535511e-06                    1.0
-                   naive    9.671800000000001e-06     1.4488112069145518
-                parallel    8.081599999999999e-06     1.2106032641080915
-                  vector             2.48097e-05       3.716430385263131
+                   numpy    7.4409899980310005e-06                   1.0
+                   naive              7.6782e-06      1.0318788228490792
+                parallel    6.915899999999999e-06     0.9294327773360873
+                  vector    2.4543300000000003e-05    3.2983917471323756
 
 
 
@@ -923,7 +923,7 @@ matrix multiplication.
 
  .. code-block:: none
 
-    Numpy running time: 0.018824
+    Numpy running time: 0.019893
 
 
 
@@ -981,7 +981,7 @@ optimizations.
 
  .. code-block:: none
 
-    none: 3.210924
+    none: 3.355879
 
 
 
@@ -1083,7 +1083,7 @@ schedule.
 
  .. code-block:: none
 
-    blocking: 0.307421
+    blocking: 0.329248
 
 
 
@@ -1178,7 +1178,7 @@ already cache friendly from our previous optimizations.
 
  .. code-block:: none
 
-    vectorization: 0.338933
+    vectorization: 0.352631
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1251,7 +1251,7 @@ more cache friendly.
 
  .. code-block:: none
 
-    loop permutation: 0.116438
+    loop permutation: 0.131640
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1349,7 +1349,7 @@ optimized schedule.
 
  .. code-block:: none
 
-    array packing: 0.108453
+    array packing: 0.109901
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1441,7 +1441,7 @@ to `C` when all the block results are ready.
 
  .. code-block:: none
 
-    block caching: 0.111277
+    block caching: 0.112650
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1526,7 +1526,7 @@ of thread-level parallelization.
 
  .. code-block:: none
 
-    parallelization: 0.146881
+    parallelization: 0.147646
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], []),
@@ -1606,13 +1606,13 @@ working, we can compare the results.
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                    none            3.2109244255                     1.0
-                blocking            0.3074208302     0.09574215691860419
-           vectorization     0.33893311979999996     0.10555624327633369
-        loop permutation     0.11643840520000001      0.0362632032928861
-           array packing             0.108453333     0.03377635802907813
-           block caching     0.11127723510000001     0.03465582503788519
-         parallelization            0.1468806889     0.04574405044650902
+                    none             3.355879144                     1.0
+                blocking            0.3292478988      0.0981107735624701
+           vectorization            0.3526305561     0.10507844322417588
+        loop permutation             0.131640426     0.03922680774585129
+           array packing            0.1099014379      0.0327489260441615
+           block caching     0.11265014000000002     0.03356799669064602
+         parallelization            0.1476457845     0.04399615664466848
 
 
 
@@ -1652,6 +1652,11 @@ operations with tunable parameters that allows you to automatically optimize
 the computation for specific platforms.
 
 
+.. rst-class:: sphx-glr-timing
+
+   **Total running time of the script:** ( 1 minutes  1.212 seconds)
+
+
 .. _sphx_glr_download_tutorial_tensor_expr_get_started.py:
 
 .. only:: html
diff --git a/docs/commit_hash b/docs/commit_hash
index 5b99b42e39..1e93178d57 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-694d4bf5eaf65df4eaad93188830112c6b139956
+b587e33027ced167cd66ae26646e8dc5b3293120
diff --git a/docs/how_to/compile_models/from_darknet.html b/docs/how_to/compile_models/from_darknet.html
index 9feb24a0de..d80d37e286 100644
--- a/docs/how_to/compile_models/from_darknet.html
+++ b/docs/how_to/compile_models/from_darknet.html
@@ -585,7 +585,7 @@ class:[&#39;truck 0.9266&#39;] left:471 top:83 right:689 bottom:169
 class:[&#39;bicycle 0.9984&#39;] left:111 top:113 right:577 bottom:447
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  9.971 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  15.461 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-darknet-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7716f96385bd5abb6e822041e285be54/from_darknet.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_darknet.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/from_keras.html b/docs/how_to/compile_models/from_keras.html
index 44c51db793..d19200469d 100644
--- a/docs/how_to/compile_models/from_keras.html
+++ b/docs/how_to/compile_models/from_keras.html
@@ -506,7 +506,7 @@ pip install -U tensorflow --user
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Relay top-1 id: 285, class name: Egyptian cat
 
 1/1 [==============================] - ETA: 0s
-1/1 [==============================] - 1s 960ms/step
+1/1 [==============================] - 1s 999ms/step
 Keras top-1 id: 285, class name: Egyptian cat
 </pre></div>
 </div>
diff --git a/docs/how_to/compile_models/from_mxnet.html b/docs/how_to/compile_models/from_mxnet.html
index a363df2b7c..eda1c4c795 100644
--- a/docs/how_to/compile_models/from_mxnet.html
+++ b/docs/how_to/compile_models/from_mxnet.html
@@ -440,7 +440,7 @@ to download the full example code</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <a href="https://docs.python.org/3/library/stdtypes.html#tuple" title="builtins.tuple" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">x</span><span class="o">.</span><span class="n">shape</span></a><span class="p">)</span>
 </pre></div>
 </div>
-<img src="../../_images/sphx_glr_from_mxnet_001.png" srcset="../../_images/sphx_glr_from_mxnet_001.png" alt="from mxnet" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip8d294520-179a-4627-a98c-5d141aee6ff6 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+<img src="../../_images/sphx_glr_from_mxnet_001.png" srcset="../../_images/sphx_glr_from_mxnet_001.png" alt="from mxnet" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zipf7abeb72-2679-4154-a67e-8e719a616bd0 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
 x (1, 3, 224, 224)
 </pre></div>
 </div>
diff --git a/docs/how_to/compile_models/from_oneflow.html b/docs/how_to/compile_models/from_oneflow.html
index d8dcc5ca3d..5b10727715 100644
--- a/docs/how_to/compile_models/from_oneflow.html
+++ b/docs/how_to/compile_models/from_oneflow.html
@@ -448,10 +448,14 @@ Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdo
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip&quot; to /workspace/.oneflow/flowvision_cache/resnet18.zip
 
   0%|          | 0.00/41.5M [00:00&lt;?, ?B/s]
- 19%|#9        | 7.99M/41.5M [00:00&lt;00:00, 81.1MB/s]
- 58%|#####7    | 24.0M/41.5M [00:00&lt;00:00, 102MB/s]
- 85%|########4 | 35.2M/41.5M [00:00&lt;00:00, 108MB/s]
-100%|##########| 41.5M/41.5M [00:00&lt;00:00, 101MB/s]
+ 15%|#5        | 6.33M/41.5M [00:00&lt;00:01, 34.9MB/s]
+ 23%|##3       | 9.66M/41.5M [00:00&lt;00:01, 30.2MB/s]
+ 35%|###4      | 14.3M/41.5M [00:00&lt;00:00, 32.6MB/s]
+ 53%|#####2    | 21.9M/41.5M [00:00&lt;00:00, 46.9MB/s]
+ 65%|######4   | 26.8M/41.5M [00:00&lt;00:00, 40.3MB/s]
+ 77%|#######7  | 32.0M/41.5M [00:00&lt;00:00, 44.2MB/s]
+ 96%|#########6| 40.0M/41.5M [00:00&lt;00:00, 49.8MB/s]
+100%|##########| 41.5M/41.5M [00:00&lt;00:00, 44.8MB/s]
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/compile_models/from_pytorch.html b/docs/how_to/compile_models/from_pytorch.html
index 09abc9edbe..9b8b7f1444 100644
--- a/docs/how_to/compile_models/from_pytorch.html
+++ b/docs/how_to/compile_models/from_pytorch.html
@@ -431,11 +431,10 @@ be unstable.</p>
 Downloading: &quot;https://download.pytorch.org/models/resnet18-f37072fd.pth&quot; to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
 
   0%|          | 0.00/44.7M [00:00&lt;?, ?B/s]
- 27%|##6       | 12.0M/44.7M [00:00&lt;00:00, 126MB/s]
- 54%|#####3    | 24.1M/44.7M [00:00&lt;00:00, 107MB/s]
- 77%|#######7  | 34.4M/44.7M [00:00&lt;00:00, 106MB/s]
-100%|#########9| 44.6M/44.7M [00:00&lt;00:00, 99.2MB/s]
-100%|##########| 44.7M/44.7M [00:00&lt;00:00, 103MB/s]
+ 28%|##8       | 12.6M/44.7M [00:00&lt;00:00, 132MB/s]
+ 56%|#####6    | 25.2M/44.7M [00:00&lt;00:00, 116MB/s]
+ 81%|########1 | 36.3M/44.7M [00:00&lt;00:00, 113MB/s]
+100%|##########| 44.7M/44.7M [00:00&lt;00:00, 112MB/s]
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/compile_models/from_tensorflow.html b/docs/how_to/compile_models/from_tensorflow.html
index 3e00e083d4..603d597146 100644
--- a/docs/how_to/compile_models/from_tensorflow.html
+++ b/docs/how_to/compile_models/from_tensorflow.html
@@ -645,7 +645,7 @@ banana (score = 0.00022)
 desk (score = 0.00019)
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  11.830 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  13.926 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-tensorflow-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7f1d3d1b878694c201c614c807cdebc8/from_tensorflow.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_tensorflow.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/sg_execution_times.html b/docs/how_to/compile_models/sg_execution_times.html
index dc10e82616..c5bb825954 100644
--- a/docs/how_to/compile_models/sg_execution_times.html
+++ b/docs/how_to/compile_models/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-compile-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>05:43.195</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
+<p><strong>05:56.621</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 81%" />
@@ -348,44 +348,44 @@
 <col style="width: 8%" />
 </colgroup>
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="from_tensorflow.html#sphx-glr-how-to-compile-models-from-tensorflow-py"><span class="std std-ref">Compile Tensorflow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tensorflow.py</span></code>)</p></td>
-<td><p>01:11.830</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="from_darknet.html#sphx-glr-how-to-compile-models-from-darknet-py"><span class="std std-ref">Compile YOLO-V2 and YOLO-V3 in DarkNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_darknet.py</span></code>)</p></td>
+<td><p>01:15.461</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="from_darknet.html#sphx-glr-how-to-compile-models-from-darknet-py"><span class="std std-ref">Compile YOLO-V2 and YOLO-V3 in DarkNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_darknet.py</span></code>)</p></td>
-<td><p>01:09.971</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="from_tensorflow.html#sphx-glr-how-to-compile-models-from-tensorflow-py"><span class="std std-ref">Compile Tensorflow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tensorflow.py</span></code>)</p></td>
+<td><p>01:13.926</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_paddle.html#sphx-glr-how-to-compile-models-from-paddle-py"><span class="std std-ref">Compile PaddlePaddle Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_paddle.py</span></code>)</p></td>
-<td><p>00:46.345</p></td>
+<td><p>00:48.296</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_oneflow.html#sphx-glr-how-to-compile-models-from-oneflow-py"><span class="std std-ref">Compile OneFlow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_oneflow.py</span></code>)</p></td>
-<td><p>00:31.772</p></td>
+<td><p>00:33.289</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_mxnet.html#sphx-glr-how-to-compile-models-from-mxnet-py"><span class="std std-ref">Compile MXNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_mxnet.py</span></code>)</p></td>
-<td><p>00:28.548</p></td>
+<td><p>00:29.269</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_coreml.html#sphx-glr-how-to-compile-models-from-coreml-py"><span class="std std-ref">Compile CoreML Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_coreml.py</span></code>)</p></td>
-<td><p>00:26.423</p></td>
+<td><p>00:27.617</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_tflite.html#sphx-glr-how-to-compile-models-from-tflite-py"><span class="std std-ref">Compile TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tflite.py</span></code>)</p></td>
-<td><p>00:24.523</p></td>
+<td><p>00:25.817</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_pytorch.html#sphx-glr-how-to-compile-models-from-pytorch-py"><span class="std std-ref">Compile PyTorch Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_pytorch.py</span></code>)</p></td>
-<td><p>00:23.761</p></td>
+<td><p>00:22.788</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_keras.html#sphx-glr-how-to-compile-models-from-keras-py"><span class="std std-ref">Compile Keras Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_keras.py</span></code>)</p></td>
-<td><p>00:17.605</p></td>
+<td><p>00:17.729</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_onnx.html#sphx-glr-how-to-compile-models-from-onnx-py"><span class="std std-ref">Compile ONNX Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_onnx.py</span></code>)</p></td>
-<td><p>00:02.416</p></td>
+<td><p>00:02.429</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/deploy_models/deploy_model_on_adreno.html b/docs/how_to/deploy_models/deploy_model_on_adreno.html
index 6042b5995c..829630659b 100644
--- a/docs/how_to/deploy_models/deploy_model_on_adreno.html
+++ b/docs/how_to/deploy_models/deploy_model_on_adreno.html
@@ -919,10 +919,9 @@ Top5 predictions:
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
- 3346.3634    3345.7153    3351.2258    3340.9788      2.9509
+ 2764.6867    2760.4704    2787.1124    2759.5245      8.4169
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  1.312 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-model-on-adreno-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/2387d8448da213eb625e6b3d916327d4/deploy_model_on_adreno.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_model_on_adreno.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_model_on_android.html b/docs/how_to/deploy_models/deploy_model_on_android.html
index a1c578359a..9dd4efa83e 100644
--- a/docs/how_to/deploy_models/deploy_model_on_android.html
+++ b/docs/how_to/deploy_models/deploy_model_on_android.html
@@ -661,7 +661,7 @@ to the remote android device.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  15.9721      15.9507      16.1166      15.8563       0.0913
+  17.2012      17.3570      17.8131      16.5960       0.4426
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
index a0c41c17d8..8a369c999b 100644
--- a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
+++ b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
@@ -453,23 +453,25 @@ be unstable.</p>
 Downloading: &quot;https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth&quot; to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
 
   0%|          | 0.00/170M [00:00&lt;?, ?B/s]
-  7%|6         | 11.5M/170M [00:00&lt;00:01, 121MB/s]
- 14%|#3        | 23.0M/170M [00:00&lt;00:01, 119MB/s]
- 20%|##        | 34.3M/170M [00:00&lt;00:01, 109MB/s]
- 26%|##6       | 44.9M/170M [00:00&lt;00:01, 106MB/s]
- 32%|###2      | 55.0M/170M [00:00&lt;00:01, 104MB/s]
- 38%|###8      | 64.9M/170M [00:00&lt;00:01, 95.2MB/s]
- 45%|####5     | 76.8M/170M [00:00&lt;00:00, 104MB/s]
- 51%|#####1    | 86.9M/170M [00:00&lt;00:00, 102MB/s]
- 57%|#####6    | 96.7M/170M [00:00&lt;00:00, 101MB/s]
- 63%|######2   | 106M/170M [00:01&lt;00:00, 101MB/s]
- 68%|######8   | 116M/170M [00:01&lt;00:00, 101MB/s]
- 74%|#######4  | 126M/170M [00:01&lt;00:00, 101MB/s]
- 80%|#######9  | 135M/170M [00:01&lt;00:00, 101MB/s]
- 85%|########5 | 145M/170M [00:01&lt;00:00, 92.5MB/s]
- 93%|#########2| 157M/170M [00:01&lt;00:00, 103MB/s]
- 98%|#########8| 167M/170M [00:01&lt;00:00, 92.2MB/s]
-100%|##########| 170M/170M [00:01&lt;00:00, 99.6MB/s]
+  5%|4         | 8.12M/170M [00:00&lt;00:02, 56.8MB/s]
+  9%|9         | 16.0M/170M [00:00&lt;00:02, 60.1MB/s]
+ 14%|#4        | 24.0M/170M [00:00&lt;00:02, 68.1MB/s]
+ 19%|#9        | 32.4M/170M [00:00&lt;00:01, 75.0MB/s]
+ 28%|##8       | 48.0M/170M [00:00&lt;00:01, 84.3MB/s]
+ 33%|###3      | 56.1M/170M [00:00&lt;00:01, 83.7MB/s]
+ 38%|###7      | 64.0M/170M [00:00&lt;00:01, 78.7MB/s]
+ 42%|####2     | 72.0M/170M [00:01&lt;00:01, 75.0MB/s]
+ 47%|####7     | 80.1M/170M [00:01&lt;00:01, 75.2MB/s]
+ 55%|#####5    | 93.4M/170M [00:01&lt;00:00, 92.7MB/s]
+ 60%|######    | 102M/170M [00:01&lt;00:00, 89.3MB/s]
+ 65%|######5   | 111M/170M [00:01&lt;00:00, 83.1MB/s]
+ 70%|#######   | 119M/170M [00:01&lt;00:00, 77.3MB/s]
+ 75%|#######5  | 128M/170M [00:01&lt;00:00, 74.1MB/s]
+ 80%|########  | 136M/170M [00:01&lt;00:00, 74.6MB/s]
+ 85%|########4 | 144M/170M [00:01&lt;00:00, 74.7MB/s]
+ 89%|########9 | 152M/170M [00:02&lt;00:00, 75.9MB/s]
+ 97%|#########6| 164M/170M [00:02&lt;00:00, 89.5MB/s]
+100%|##########| 170M/170M [00:02&lt;00:00, 79.7MB/s]
 /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torch/nn/functional.py:3897: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
   for i in range(dim)
 /venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/detection/anchor_utils.py:124: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the &#39;trunc&#39; function NOT &#39;floor&#39;). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode=&#39;trunc&#39;), or for actual floor division, use torch.div(a, b, rounding_mode=& [...]
@@ -567,7 +569,7 @@ torchvision rcnn models.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Get 9 valid boxes
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  17.425 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  27.153 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-object-detection-pytorch-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7795da4b258c8feff986668b95ef57ad/deploy_object_detection_pytorch.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_object_detection_pytorch.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized.html b/docs/how_to/deploy_models/deploy_prequantized.html
index e24aaa8bb7..e23c5545dc 100644
--- a/docs/how_to/deploy_models/deploy_prequantized.html
+++ b/docs/how_to/deploy_models/deploy_prequantized.html
@@ -497,8 +497,10 @@ training. Other models require a full post training calibration.</p>
 Downloading: &quot;https://download.pytorch.org/models/mobilenet_v2-b0353104.pth&quot; to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
 
   0%|          | 0.00/13.6M [00:00&lt;?, ?B/s]
- 99%|#########8| 13.4M/13.6M [00:00&lt;00:00, 139MB/s]
-100%|##########| 13.6M/13.6M [00:00&lt;00:00, 139MB/s]
+ 19%|#9        | 2.61M/13.6M [00:00&lt;00:00, 25.6MB/s]
+ 59%|#####8    | 7.95M/13.6M [00:00&lt;00:00, 42.9MB/s]
+ 89%|########9 | 12.1M/13.6M [00:00&lt;00:00, 37.2MB/s]
+100%|##########| 13.6M/13.6M [00:00&lt;00:00, 40.6MB/s]
 </pre></div>
 </div>
 </div>
@@ -589,7 +591,7 @@ output values are identical out of 1000 outputs from mobilenet v2.</p>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  90.5363      90.5035      91.3531      90.1648       0.1990
+  88.6272      88.5183      92.6172      88.2386       0.4668
 </pre></div>
 </div>
 <div class="admonition note">
@@ -628,7 +630,7 @@ This includes support for the VNNI 8 bit dot product instruction (CascadeLake or
 <div class="section" id="deploy-a-quantized-tflite-model">
 <h2>Deploy a quantized TFLite Model<a class="headerlink" href="#deploy-a-quantized-tflite-model" title="Permalink to this headline">¶</a></h2>
 <p>TODO</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  6.774 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  8.116 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/fb8217c13f4351224c6cf3aacf1a87fc/deploy_prequantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized_tflite.html b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
index ea6600c02c..8203348690 100644
--- a/docs/how_to/deploy_models/deploy_prequantized_tflite.html
+++ b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
@@ -582,7 +582,7 @@ TFLite Top-5 labels: [387 102 386 341 349]
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  120.3356     120.2265     126.0226     119.6710      0.6598
+  119.4220     119.3452     120.8334     118.4974      0.4647
 </pre></div>
 </div>
 <div class="admonition note">
@@ -610,7 +610,7 @@ network for ARM CPU</span></a>.</p></li>
 </ul>
 </div></blockquote>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  23.274 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  22.536 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-tflite-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/56691c7a27d45da61d112276334640d3/deploy_prequantized_tflite.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized_tflite.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_quantized.html b/docs/how_to/deploy_models/deploy_quantized.html
index bffe53b023..46ef2646b8 100644
--- a/docs/how_to/deploy_models/deploy_quantized.html
+++ b/docs/how_to/deploy_models/deploy_quantized.html
@@ -520,7 +520,7 @@ for calibration. But the accuracy might be impacted.</p>
   DeprecationWarning,
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  14.038 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  36.524 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-quantized-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7810ecf51bfc05f7d5e8a400ac3e815d/deploy_quantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_quantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
index 3b6d55878b..fd36dba3d8 100644
--- a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
+++ b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
@@ -462,24 +462,22 @@ to your device.</p>
 Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
 
   0%|          | 0/132723 [00:00&lt;?, ?KB/s]
-  2%|1         | 2356/132723 [00:00&lt;00:05, 23558.11KB/s]
-  5%|5         | 6940/132723 [00:00&lt;00:03, 36662.02KB/s]
- 11%|#         | 14416/132723 [00:00&lt;00:02, 54054.44KB/s]
- 16%|#5        | 21142/132723 [00:00&lt;00:01, 59266.01KB/s]
- 22%|##1       | 29054/132723 [00:00&lt;00:01, 66420.31KB/s]
- 28%|##7       | 37021/132723 [00:00&lt;00:01, 70919.44KB/s]
- 34%|###3      | 44957/132723 [00:00&lt;00:01, 73676.92KB/s]
- 40%|###9      | 52896/132723 [00:00&lt;00:01, 75493.55KB/s]
- 46%|####5     | 60871/132723 [00:00&lt;00:00, 76822.15KB/s]
- 52%|#####1    | 68849/132723 [00:01&lt;00:00, 77732.91KB/s]
- 58%|#####7    | 76838/132723 [00:01&lt;00:00, 78391.81KB/s]
- 64%|######3   | 84830/132723 [00:01&lt;00:00, 78854.75KB/s]
- 70%|######9   | 92841/132723 [00:01&lt;00:00, 79232.89KB/s]
- 76%|#######5  | 100863/132723 [00:01&lt;00:00, 79530.14KB/s]
- 82%|########2 | 108889/132723 [00:01&lt;00:00, 79746.66KB/s]
- 88%|########8 | 116864/132723 [00:01&lt;00:00, 79704.39KB/s]
- 94%|#########4| 124850/132723 [00:01&lt;00:00, 79749.30KB/s]
-100%|##########| 132723/132723 [00:01&lt;00:00, 73808.29KB/s]
+  5%|5         | 7097/132723 [00:00&lt;00:01, 70961.10KB/s]
+ 12%|#1        | 15739/132723 [00:00&lt;00:01, 80049.66KB/s]
+ 18%|#7        | 23744/132723 [00:00&lt;00:01, 77594.64KB/s]
+ 24%|##4       | 32481/132723 [00:00&lt;00:01, 81376.64KB/s]
+ 31%|###1      | 41235/132723 [00:00&lt;00:01, 83569.94KB/s]
+ 38%|###7      | 49916/132723 [00:00&lt;00:00, 84660.65KB/s]
+ 44%|####4     | 58653/132723 [00:00&lt;00:00, 85538.14KB/s]
+ 51%|#####     | 67404/132723 [00:00&lt;00:00, 86161.14KB/s]
+ 57%|#####7    | 76159/132723 [00:00&lt;00:00, 86592.03KB/s]
+ 64%|######3   | 84923/132723 [00:01&lt;00:00, 86912.57KB/s]
+ 71%|#######   | 93617/132723 [00:01&lt;00:00, 86676.09KB/s]
+ 77%|#######7  | 102325/132723 [00:01&lt;00:00, 86794.37KB/s]
+ 84%|########3 | 111006/132723 [00:01&lt;00:00, 86580.51KB/s]
+ 90%|######### | 119665/132723 [00:01&lt;00:00, 76225.82KB/s]
+ 97%|#########6| 128345/132723 [00:01&lt;00:00, 79128.24KB/s]
+100%|##########| 132723/132723 [00:01&lt;00:00, 82643.92KB/s]
 </pre></div>
 </div>
 <p>Create TVM runtime and do inference
@@ -518,7 +516,7 @@ Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from h
 <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
 </pre></div>
 </div>
-<img src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" srcset="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" alt="deploy ssd gluoncv" class = "sphx-glr-single-img"/><p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  3.204 seconds)</p>
+<img src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" srcset="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" alt="deploy ssd gluoncv" class = "sphx-glr-single-img"/><p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  15.706 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-ssd-gluoncv-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/cccb17d28e5e8b2e94ea8cd5ec59f6ed/deploy_ssd_gluoncv.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_ssd_gluoncv.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/sg_execution_times.html b/docs/how_to/deploy_models/sg_execution_times.html
index 01aaba1919..f4dea7f8f1 100644
--- a/docs/how_to/deploy_models/sg_execution_times.html
+++ b/docs/how_to/deploy_models/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-deploy-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>13:31.907</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
+<p><strong>14:14.268</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 86%" />
@@ -349,39 +349,39 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_object_detection_pytorch.html#sphx-glr-how-to-deploy-models-deploy-object-detection-pytorch-py"><span class="std std-ref">Compile PyTorch Object Detection Models</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_object_detection_pytorch.py</span></code>)</p></td>
-<td><p>03:17.425</p></td>
+<td><p>03:27.153</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_ssd_gluoncv.html#sphx-glr-how-to-deploy-models-deploy-ssd-gluoncv-py"><span class="std std-ref">Deploy Single Shot Multibox Detector(SSD) model</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_ssd_gluoncv.py</span></code>)</p></td>
-<td><p>03:03.204</p></td>
+<td><p>03:15.706</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_prequantized_tflite.html#sphx-glr-how-to-deploy-models-deploy-prequantized-tflite-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM - Part 3 (TFLite)</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized_tflite.py</span></code>)</p></td>
-<td><p>02:23.274</p></td>
+<td><p>02:22.536</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_quantized.html#sphx-glr-how-to-deploy-models-deploy-quantized-py"><span class="std std-ref">Deploy a Quantized Model on Cuda</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_quantized.py</span></code>)</p></td>
-<td><p>01:14.038</p></td>
+<td><p>01:36.524</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_prequantized.html#sphx-glr-how-to-deploy-models-deploy-prequantized-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized.py</span></code>)</p></td>
-<td><p>01:06.774</p></td>
+<td><p>01:08.116</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_model_on_adreno.html#sphx-glr-how-to-deploy-models-deploy-model-on-adreno-py"><span class="std std-ref">Deploy the Pretrained Model on Adreno</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_adreno.py</span></code>)</p></td>
-<td><p>01:01.312</p></td>
+<td><p>00:55.219</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_model_on_android.html#sphx-glr-how-to-deploy-models-deploy-model-on-android-py"><span class="std std-ref">Deploy the Pretrained Model on Android</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_android.py</span></code>)</p></td>
-<td><p>00:36.118</p></td>
+<td><p>00:37.591</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_model_on_nano.html#sphx-glr-how-to-deploy-models-deploy-model-on-nano-py"><span class="std std-ref">Deploy the Pretrained Model on Jetson Nano</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_nano.py</span></code>)</p></td>
-<td><p>00:25.162</p></td>
+<td><p>00:25.873</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_model_on_rasp.html#sphx-glr-how-to-deploy-models-deploy-model-on-rasp-py"><span class="std std-ref">Deploy the Pretrained Model on Raspberry Pi</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_rasp.py</span></code>)</p></td>
-<td><p>00:24.595</p></td>
+<td><p>00:25.542</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_sparse.html#sphx-glr-how-to-deploy-models-deploy-sparse-py"><span class="std std-ref">Deploy a Hugging Face Pruned Model on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_sparse.py</span></code>)</p></td>
diff --git a/docs/how_to/extend_tvm/bring_your_own_datatypes.html b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
index 90a675dbae..0168cca00a 100644
--- a/docs/how_to/extend_tvm/bring_your_own_datatypes.html
+++ b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
@@ -621,7 +621,7 @@ In this alpha state of the Bring Your Own Datatypes framework, we have not imple
 <span class="n">module</span><span class="p">,</span> <a href="https://docs.python.org/3/library/stdtypes.html#dict" title="builtins.dict" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">params</span></a> <span class="o">=</span> <span class="n">get_mobilenet</span><span class="p">()</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip6b71a5e5-9417-4c6b-91da-954583dd512f from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip373e5423-9b37-458d-97a0-73f0ae515dde from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
 </pre></div>
 </div>
 <p>It’s easy to execute MobileNet with native TVM:</p>
diff --git a/docs/how_to/extend_tvm/sg_execution_times.html b/docs/how_to/extend_tvm/sg_execution_times.html
index c385fbc616..ea255af56a 100644
--- a/docs/how_to/extend_tvm/sg_execution_times.html
+++ b/docs/how_to/extend_tvm/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-extend-tvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:48.665</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
+<p><strong>00:51.164</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 84%" />
@@ -349,19 +349,19 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="bring_your_own_datatypes.html#sphx-glr-how-to-extend-tvm-bring-your-own-datatypes-py"><span class="std std-ref">Bring Your Own Datatypes to TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">bring_your_own_datatypes.py</span></code>)</p></td>
-<td><p>00:45.098</p></td>
+<td><p>00:47.436</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="use_pass_instrument.html#sphx-glr-how-to-extend-tvm-use-pass-instrument-py"><span class="std std-ref">How to Use TVM Pass Instrument</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_instrument.py</span></code>)</p></td>
-<td><p>00:02.500</p></td>
+<td><p>00:02.614</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="use_pass_infra.html#sphx-glr-how-to-extend-tvm-use-pass-infra-py"><span class="std std-ref">How to Use TVM Pass Infra</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_infra.py</span></code>)</p></td>
-<td><p>00:01.058</p></td>
+<td><p>00:01.105</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="low_level_custom_pass.html#sphx-glr-how-to-extend-tvm-low-level-custom-pass-py"><span class="std std-ref">Writing a Customized Pass</span></a> (<code class="docutils literal notranslate"><span class="pre">low_level_custom_pass.py</span></code>)</p></td>
-<td><p>00:00.009</p></td>
+<td><p>00:00.008</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/extend_tvm/use_pass_instrument.html b/docs/how_to/extend_tvm/use_pass_instrument.html
index 7a9fd7a389..8166555186 100644
--- a/docs/how_to/extend_tvm/use_pass_instrument.html
+++ b/docs/how_to/extend_tvm/use_pass_instrument.html
@@ -525,10 +525,10 @@ profile the execution time of each passes.</p>
 </pre></div>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 7215us [7215us] (46.21%; 46.21%)
-FoldScaleAxis: 8399us [7us] (53.79%; 53.79%)
-        FoldConstant: 8392us [1677us] (53.74%; 99.91%)
-                InferType: 6715us [6715us] (43.01%; 80.02%)
+InferType: 7721us [7721us] (45.99%; 45.99%)
+FoldScaleAxis: 9069us [9us] (54.01%; 54.01%)
+        FoldConstant: 9060us [1839us] (53.96%; 99.90%)
+                InferType: 7221us [7221us] (43.01%; 79.70%)
 </pre></div>
 </div>
 </div>
@@ -550,10 +550,10 @@ Refer to following sections and <a class="reference internal" href="../../refere
 </pre></div>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 6790us [6790us] (44.98%; 44.98%)
-FoldScaleAxis: 8304us [5us] (55.02%; 55.02%)
-        FoldConstant: 8299us [1695us] (54.98%; 99.94%)
-                InferType: 6604us [6604us] (43.75%; 79.58%)
+InferType: 7462us [7462us] (45.44%; 45.44%)
+FoldScaleAxis: 8959us [8us] (54.56%; 54.56%)
+        FoldConstant: 8951us [1837us] (54.51%; 99.91%)
+                InferType: 7114us [7114us] (43.33%; 79.48%)
 </pre></div>
 </div>
 <p>Register empty list to clear existing instruments.</p>
diff --git a/docs/how_to/optimize_operators/opt_conv_cuda.html b/docs/how_to/optimize_operators/opt_conv_cuda.html
index 414492643c..475cfd66c0 100644
--- a/docs/how_to/optimize_operators/opt_conv_cuda.html
+++ b/docs/how_to/optimize_operators/opt_conv_cuda.html
@@ -577,7 +577,7 @@ latency of convolution.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Convolution: </span><span class="si">%f</span><span class="s2"> ms&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span> <span class="o">*</span> <span cl [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 54.219329 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 54.175777 ms
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-optimize-operators-opt-conv-cuda-py">
diff --git a/docs/how_to/optimize_operators/opt_conv_tensorcore.html b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
index 2fe9fb8dc8..ed1112611d 100644
--- a/docs/how_to/optimize_operators/opt_conv_tensorcore.html
+++ b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
@@ -914,7 +914,7 @@ be able to run on our build server</p>
     <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;conv2d with tensor core: </span><span class="si">%f</span><span class="s2"> ms&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span> <span class="o">* [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 12.740813 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 12.269773 ms
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/optimize_operators/opt_gemm.html b/docs/how_to/optimize_operators/opt_gemm.html
index 1b4c7573b2..ea4d1b5cf5 100644
--- a/docs/how_to/optimize_operators/opt_gemm.html
+++ b/docs/how_to/optimize_operators/opt_gemm.html
@@ -474,8 +474,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Baseline: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.018892
-Baseline: 3.210301
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.020714
+Baseline: 3.611769
 </pre></div>
 </div>
 <p>In TVM, we can always inspect lower level IR to debug or optimize our schedule.
@@ -534,7 +534,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt1: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.309843
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.340379
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -600,7 +600,7 @@ vastly.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt2: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.343265
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.353435
 </pre></div>
 </div>
 <p>Here is the generated IR after vectorization.</p>
@@ -660,7 +660,7 @@ the access pattern for A matrix is more cache friendly.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt3: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.118872
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.137810
 </pre></div>
 </div>
 <p>Here is the generated IR after loop permutation.</p>
@@ -742,7 +742,7 @@ flattening.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt4: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.109603
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.110373
 </pre></div>
 </div>
 <p>Here is the generated IR after array packing.</p>
@@ -827,7 +827,7 @@ write to C when all the block results are ready.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt5: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.111557
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.114587
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -916,7 +916,7 @@ write to C when all the block results are ready.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt6: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">opt6_time</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.146788
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.150446
 </pre></div>
 </div>
 <p>Here is the generated IR after parallelization.</p>
diff --git a/docs/how_to/optimize_operators/sg_execution_times.html b/docs/how_to/optimize_operators/sg_execution_times.html
index b54a691650..90527f7cb1 100644
--- a/docs/how_to/optimize_operators/sg_execution_times.html
+++ b/docs/how_to/optimize_operators/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-optimize-operators-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:34.470</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
+<p><strong>00:36.996</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 83%" />
@@ -349,15 +349,15 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="opt_gemm.html#sphx-glr-how-to-optimize-operators-opt-gemm-py"><span class="std std-ref">How to optimize GEMM on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_gemm.py</span></code>)</p></td>
-<td><p>00:31.973</p></td>
+<td><p>00:34.419</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="opt_conv_tensorcore.html#sphx-glr-how-to-optimize-operators-opt-conv-tensorcore-py"><span class="std std-ref">How to optimize convolution using TensorCores</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_tensorcore.py</span></code>)</p></td>
-<td><p>00:01.432</p></td>
+<td><p>00:01.471</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="opt_conv_cuda.html#sphx-glr-how-to-optimize-operators-opt-conv-cuda-py"><span class="std std-ref">How to optimize convolution on GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_cuda.py</span></code>)</p></td>
-<td><p>00:01.065</p></td>
+<td><p>00:01.106</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
index ab55f78902..1a04c36b71 100644
--- a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
+++ b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-tune-with-autoscheduler-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>08:54.977</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
+<p><strong>09:33.552</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 85%" />
@@ -349,27 +349,27 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_conv2d_layer_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py"><span class="std std-ref">Auto-scheduling a Convolution Layer for GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_layer_cuda.py</span></code>)</p></td>
-<td><p>05:29.692</p></td>
+<td><p>05:58.569</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_network_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-x86-py"><span class="std std-ref">Auto-scheduling a Neural Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_x86.py</span></code>)</p></td>
-<td><p>01:31.949</p></td>
+<td><p>01:36.551</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_network_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-cuda-py"><span class="std std-ref">Auto-scheduling a Neural Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_cuda.py</span></code>)</p></td>
-<td><p>01:01.415</p></td>
+<td><p>01:03.662</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_sparse_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-sparse-x86-py"><span class="std std-ref">Auto-scheduling Sparse Matrix Multiplication on CPU with Custom Sketch Rule</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_sparse_x86.py</span></code>)</p></td>
-<td><p>00:28.704</p></td>
+<td><p>00:29.908</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_network_arm.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-arm-py"><span class="std std-ref">Auto-scheduling a Neural Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_arm.py</span></code>)</p></td>
-<td><p>00:12.035</p></td>
+<td><p>00:12.851</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_network_mali.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-mali-py"><span class="std std-ref">Auto-scheduling a Neural Network for mali GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_mali.py</span></code>)</p></td>
-<td><p>00:11.183</p></td>
+<td><p>00:12.010</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
index ec82b81289..fa18a3a51c 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
@@ -1016,7 +1016,7 @@ cooperative fetching, unrolling and operator fusion.</p>
 <span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.359 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.354 ms
 </pre></div>
 </div>
 </div>
@@ -1579,7 +1579,7 @@ In the example below we resume the status and do more 5 trials.</p>
 Get devices for measurement successfully!
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 5 minutes  29.692 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 5 minutes  58.569 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/e3e540f3b477c0c52d8eb73e674e8ffd/tune_conv2d_layer_cuda.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_conv2d_layer_cuda.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
index 919e81db67..9f7a66d4c9 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
@@ -915,7 +915,7 @@ so we can read the log file and load the best schedules.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-   7.8794       7.8792       7.8844       7.8747       0.0040
+   7.8702       7.8665       7.8819       7.8622       0.0084
 </pre></div>
 </div>
 </div>
@@ -937,7 +937,7 @@ to learn how to use the RPC Tracker and RPC Server.
 To use the RPC Tracker in auto-scheduler, replace the runner in <code class="code docutils literal notranslate"><span class="pre">TuningOptions</span></code>
 with <a class="reference internal" href="../../reference/api/python/auto_scheduler.html#tvm.auto_scheduler.RPCRunner" title="tvm.auto_scheduler.RPCRunner"><code class="xref any py py-class docutils literal notranslate"><span class="pre">auto_scheduler.RPCRunner</span></code></a>.</p></li>
 </ol>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  1.415 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  3.662 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-network-cuda-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/eafe360d52540634c9eea0fa89e804bd/tune_network_cuda.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_network_cuda.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
index 0a5cf8e4a7..eb0b392594 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
@@ -934,7 +934,7 @@ so we can read the log file and load the best schedules.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  760.3261     758.3156     764.3985     758.2641      2.8797
+  777.7165     776.9006     780.8718     775.3770      2.3162
 </pre></div>
 </div>
 </div>
@@ -956,7 +956,7 @@ to learn how to use the RPC Tracker and RPC Server.
 To use the RPC Tracker in auto-scheduler, replace the runner in <code class="code docutils literal notranslate"><span class="pre">TuningOptions</span></code>
 with <a class="reference internal" href="../../reference/api/python/auto_scheduler.html#tvm.auto_scheduler.RPCRunner" title="tvm.auto_scheduler.RPCRunner"><code class="xref any py py-class docutils literal notranslate"><span class="pre">auto_scheduler.RPCRunner</span></code></a>.</p></li>
 </ol>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  31.949 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  36.551 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-network-x86-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/e416b94ca1090b0897c0f6e0df95b911/tune_network_x86.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_network_x86.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
index 42b584fdee..a4a805ea6c 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
@@ -632,29 +632,77 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
              placeholder_4: Buffer(placeholder_14: Pointer(float32), float32, [128, 512], []),
              compute: Buffer(compute_2: Pointer(float32), float32, [128, 512], [])}
   buffer_map = {placeholder_5: placeholder, placeholder_6: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute} {
-  for (i0.outer.i1.outer.fused: int32, 0, 256) &quot;parallel&quot; {
-    allocate(compute_3: Pointer(global float32), float32, [256]), storage_scope = global {
+  for (i0.outer.i1.outer.fused: int32, 0, 32) &quot;parallel&quot; {
+    allocate(compute_3: Pointer(global float32), float32, [2048]), storage_scope = global {
       for (i.outer.inner: int32, 0, 8) {
-        for (i.inner.init: int32, 0, 2) {
-          for (j.init: int32, 0, 16) {
-            compute_4: Buffer(compute_3, float32, [256], [])[(((i.outer.inner*32) + (i.inner.init*16)) + j.init)] = 0f32
+        for (nb_j.inner: int32, 0, 2) {
+          for (i.inner.init: int32, 0, 8) {
+            let cse_var_1: int32 = (((i.outer.inner*256) + (i.inner.init*32)) + (nb_j.inner*16))
+             {
+              compute_4: Buffer(compute_3, float32, [2048], [])[cse_var_1] = 0f32
+              compute_4[(cse_var_1 + 1)] = 0f32
+              compute_4[(cse_var_1 + 2)] = 0f32
+              compute_4[(cse_var_1 + 3)] = 0f32
+              compute_4[(cse_var_1 + 4)] = 0f32
+              compute_4[(cse_var_1 + 5)] = 0f32
+              compute_4[(cse_var_1 + 6)] = 0f32
+              compute_4[(cse_var_1 + 7)] = 0f32
+              compute_4[(cse_var_1 + 8)] = 0f32
+              compute_4[(cse_var_1 + 9)] = 0f32
+              compute_4[(cse_var_1 + 10)] = 0f32
+              compute_4[(cse_var_1 + 11)] = 0f32
+              compute_4[(cse_var_1 + 12)] = 0f32
+              compute_4[(cse_var_1 + 13)] = 0f32
+              compute_4[(cse_var_1 + 14)] = 0f32
+              compute_4[(cse_var_1 + 15)] = 0f32
+            }
           }
-        }
-        for (elem_idx: int32, 0, let cse_var_1: int32 = floormod(i0.outer.i1.outer.fused, 32) in (placeholder_15: Buffer(placeholder_13, int32, [33], [])[(cse_var_1 + 1)] - placeholder_15[cse_var_1])) {
-          for (i.inner: int32, 0, 2) {
-            for (j: int32, 0, 16) {
-              let cse_var_2: int32 = floormod(i0.outer.i1.outer.fused, 32)
-              if @tir.likely((elem_idx &lt; (placeholder_15[(cse_var_2 + 1)] - placeholder_15[cse_var_2])), dtype=bool) {
-                let cse_var_3: int32 = (((i.outer.inner*32) + (i.inner*16)) + j)
-                compute_4[cse_var_3] = (compute_4[cse_var_3] + (placeholder_16: Buffer(placeholder_11, float32, [78656], [])[(((placeholder_15[cse_var_2]*16) + (elem_idx*16)) + j)]*max(placeholder_17: Buffer(placeholder_10, float32, [32768], [])[((((floordiv(i0.outer.i1.outer.fused, 32)*4096) + (i.outer.inner*512)) + (i.inner*256)) + placeholder_18: Buffer(placeholder_12, int32, [4916], [])[(placeholder_15[cse_var_2] + elem_idx)])], 0f32)))
+          for (elem_idx: int32, 0, let cse_var_2: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_15: Buffer(placeholder_13, int32, [33], [])[(cse_var_2 + 1)] - placeholder_15[cse_var_2])) {
+            for (i.inner: int32, 0, 8) {
+              let cse_var_21: int32 = (elem_idx*16)
+              let cse_var_20: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
+              let cse_var_19: int32 = (((i.outer.inner*256) + (i.inner*32)) + (nb_j.inner*16))
+              let cse_var_18: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*16384) + (i.outer.inner*2048)) + (i.inner*256))
+              let cse_var_17: int32 = (cse_var_19 + 9)
+              let cse_var_16: int32 = (cse_var_19 + 8)
+              let cse_var_15: int32 = (cse_var_19 + 7)
+              let cse_var_14: int32 = (cse_var_19 + 6)
+              let cse_var_13: int32 = (cse_var_19 + 5)
+              let cse_var_12: int32 = (cse_var_19 + 4)
+              let cse_var_11: int32 = (cse_var_19 + 3)
+              let cse_var_10: int32 = (cse_var_19 + 2)
+              let cse_var_9: int32 = (cse_var_19 + 15)
+              let cse_var_8: int32 = (cse_var_19 + 14)
+              let cse_var_7: int32 = (cse_var_19 + 13)
+              let cse_var_6: int32 = (cse_var_19 + 12)
+              let cse_var_5: int32 = (cse_var_19 + 11)
+              let cse_var_4: int32 = (cse_var_19 + 10)
+              let cse_var_3: int32 = (cse_var_19 + 1)
+               {
+                compute_4[cse_var_19] = (compute_4[cse_var_19] + (placeholder_16: Buffer(placeholder_11, float32, [78656], [])[((placeholder_15[cse_var_20]*16) + cse_var_21)]*max(placeholder_17: Buffer(placeholder_10, float32, [32768], [])[(cse_var_18 + placeholder_18: Buffer(placeholder_12, int32, [4916], [])[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_3] = (compute_4[cse_var_3] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 1)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_10] = (compute_4[cse_var_10] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 2)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_11] = (compute_4[cse_var_11] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 3)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_12] = (compute_4[cse_var_12] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 4)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_13] = (compute_4[cse_var_13] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 5)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_14] = (compute_4[cse_var_14] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 6)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_15] = (compute_4[cse_var_15] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 7)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_16] = (compute_4[cse_var_16] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 8)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_17] = (compute_4[cse_var_17] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 9)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_4] = (compute_4[cse_var_4] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 10)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_5] = (compute_4[cse_var_5] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 11)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_6] = (compute_4[cse_var_6] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 12)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_7] = (compute_4[cse_var_7] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 13)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_8] = (compute_4[cse_var_8] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 14)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
+                compute_4[cse_var_9] = (compute_4[cse_var_9] + (placeholder_16[(((placeholder_15[cse_var_20]*16) + cse_var_21) + 15)]*max(placeholder_17[(cse_var_18 + placeholder_18[(placeholder_15[cse_var_20] + elem_idx)])], 0f32)))
               }
             }
           }
         }
       }
-      for (i0.inner: int32, 0, 16) {
-        let cse_var_4: int32 = (((floordiv(i0.outer.i1.outer.fused, 32)*8192) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 32)*16))
-        compute_5: Buffer(compute_2, float32, [65536], [])[ramp(cse_var_4, 1, 16)] = max((compute_4[ramp((i0.inner*16), 1, 16)] + placeholder_19: Buffer(placeholder_14, float32, [65536], [])[ramp(cse_var_4, 1, 16)]), broadcast(0f32, 16))
+      for (i0.inner: int32, 0, 64) {
+        let cse_var_22: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*32768) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32))
+        compute_5: Buffer(compute_2, float32, [65536], [])[ramp(cse_var_22, 1, 32)] = max((compute_4[ramp((i0.inner*32), 1, 32)] + placeholder_19: Buffer(placeholder_14, float32, [65536], [])[ramp(cse_var_22, 1, 32)]), broadcast(0f32, 32))
       }
     }
   }
@@ -692,7 +740,7 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
 <span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 2.187 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.876 ms
 </pre></div>
 </div>
 <div class="admonition note">
diff --git a/docs/how_to/tune_with_autotvm/sg_execution_times.html b/docs/how_to/tune_with_autotvm/sg_execution_times.html
index 8e9d27df9f..7ccf985b66 100644
--- a/docs/how_to/tune_with_autotvm/sg_execution_times.html
+++ b/docs/how_to/tune_with_autotvm/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-tune-with-autotvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:33.790</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
+<p><strong>00:31.080</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 84%" />
@@ -349,22 +349,22 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_conv2d_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-conv2d-cuda-py"><span class="std std-ref">Tuning High Performance Convolution on NVIDIA GPUs</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_cuda.py</span></code>)</p></td>
-<td><p>00:33.755</p></td>
+<td><p>00:31.042</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_relay_x86.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-x86-py"><span class="std std-ref">Auto-tuning a Convolutional Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_x86.py</span></code>)</p></td>
-<td><p>00:00.020</p></td>
+<td><p>00:00.023</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_relay_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-cuda-py"><span class="std std-ref">Auto-tuning a Convolutional Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_cuda.py</span></code>)</p></td>
-<td><p>00:00.005</p></td>
+<td><p>00:00.006</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="tune_relay_arm.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-arm-py"><span class="std std-ref">Auto-tuning a Convolutional Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_arm.py</span></code>)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="tune_relay_mobile_gpu.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-mobile-gpu-py"><span class="std std-ref">Auto-tuning a Convolutional Network for Mobile GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_mobile_gpu.py</span></code>)</p></td>
 <td><p>00:00.005</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="tune_relay_mobile_gpu.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-mobile-gpu-py"><span class="std std-ref">Auto-tuning a Convolutional Network for Mobile GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_mobile_gpu.py</span></code>)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="tune_relay_arm.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-arm-py"><span class="std std-ref">Auto-tuning a Convolutional Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_arm.py</span></code>)</p></td>
 <td><p>00:00.005</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
diff --git a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
index ffa159c223..6d78c87bbe 100644
--- a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
+++ b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
@@ -689,9 +689,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 1, 256]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 64, 1]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,8152757
-No: 2   GFLOPS: 28.08/28.08     result: MeasureResult(costs=(0.008244706307692308,), error_no=MeasureErrorNo.NO_ERROR, all_cost=5.562650680541992, timestamp=1669763714.9680815)        [(&#39;tile_f&#39;, [-1, 1, 2, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 8, 4]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4144688
-No: 3   GFLOPS: 0.00/28.08      result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 8, 2]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 64, 2]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9542800
+No: 2   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -813,9 +812,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 8, 4, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 256]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4447418
-No: 4   GFLOPS: 232.38/232.38   result: MeasureResult(costs=(0.000996222776699029,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6449189186096191, timestamp=1669763717.7162397)       [(&#39;tile_f&#39;, [-1, 2, 32, 2]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 16, 4]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,5310671
-No: 5   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 4, 32]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 8, 32]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9060455
+No: 3   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -937,8 +935,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 8, 16, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 256, 2]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,3356137
-No: 6   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 4, 16]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 128, 1]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7384257
+No: 4   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1060,8 +1058,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 1, 16]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 16, 16]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2459326
-No: 7   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 64, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 1, 512]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9678947
+No: 5   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1183,8 +1181,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 32, 4]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9766901
-No: 8   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 8, 8, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 4]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6461777
+No: 6   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1306,8 +1304,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 16, 16, 2]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 16]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7483829
-No: 9   GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 2, 8]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 256, 2]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4518503
+No: 7   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1429,8 +1427,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 4, 64]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 16, 8]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4758147
-No: 10  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 8, 2, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 512]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7354271
+No: 8   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1552,8 +1550,10 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 16, 8]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 4, 8]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4170040
-No: 11  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 4, 4]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 1, 512]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,1161056
+No: 9   GFLOPS: 0.96/0.96       result: MeasureResult(costs=(0.2404582365,), error_no=MeasureErrorNo.NO_ERROR, all_cost=7.114036798477173, timestamp=1669763469.178446) [(&#39;tile_f&#39;, [-1, 2, 2, 64]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 1, 1]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4262705
+No: 10  GFLOPS: 12.89/12.89     result: MeasureResult(costs=(0.017957579166666664,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3388102054595947, timestamp=1669763469.9497478)       [(&#39;tile_f&#39;, [-1, 2, 1, 32]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 4, 8]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,684826
+No: 11  GFLOPS: 0.00/12.89      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1675,8 +1675,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 1, 16]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 64]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9258426
-No: 12  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 16, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 256]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7932104
+No: 12  GFLOPS: 0.00/12.89      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1798,10 +1798,9 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 128, 4, 1]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 16, 4]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4149666
-No: 13  GFLOPS: 87.97/232.38    result: MeasureResult(costs=(0.0026316134736842104,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.247478723526001, timestamp=1669763721.0889342)       [(&#39;tile_f&#39;, [-1, 2, 32, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 1]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,8911011
-No: 14  GFLOPS: 40.83/232.38    result: MeasureResult(costs=(0.005670277444444444,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7176170349121094, timestamp=1669763721.801603)        [(&#39;tile_f&#39;, [-1, 1, 32, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,8912801
-No: 15  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 32, 1, 16]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 64, 4]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4347809
+No: 13  GFLOPS: 86.69/86.69     result: MeasureResult(costs=(0.0026705271842105264,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3030877113342285, timestamp=1669763473.4218273)      [(&#39;tile_f&#39;, [-1, 1, 4, 8]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 1]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,3102589
+No: 14  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1923,8 +1922,8 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 8, 16]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 64, 8]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6506681
-No: 16  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 128, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 1, 4]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,8587090
+No: 15  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -2046,9 +2045,9 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 4, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 64, 8]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,1473236
-No: 17  GFLOPS: 6.90/232.38     result: MeasureResult(costs=(0.033528392750000004,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.844980239868164, timestamp=1669763724.8259776)        [(&#39;tile_f&#39;, [-1, 2, 16, 8]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 4]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7812139
-No: 18  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 64, 4]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 8, 2]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,1014114
+No: 16  GFLOPS: 23.83/86.69     result: MeasureResult(costs=(0.009714557272727272,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.1588594913482666, timestamp=1669763474.1576514)       [(&#39;tile_f&#39;, [-1, 32, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2525165
+No: 17  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -2170,161 +2169,254 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 8, 16, 2]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 16, 8]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6111248
-No: 19  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 738, in __call__
-    yield remote, remote.load_module(os.path.split(build_result.filename)[1])
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 702, in run_through_rpc
-    costs = time_f(*args).results
-  File &quot;/workspace/python/tvm/runtime/module.py&quot;, line 357, in evaluator
-    blob = feval(*args)
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 16, 4, 2]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 16, 2]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,246256
+No: 18  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
+  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
+    func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
+  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
+    func = build(s, args, target_host=task.target_host, runtime=runtime)
+  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 227, in build
+    input_mod = lower(inputs, args, name=name, binds=binds)
+  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 134, in lower
+    return ffi.lower_schedule(inp, args, name, binds, simple_mode)
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 262, in tvm._ffi._cy3.core.FuncCall
-  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 251, in tvm._ffi._cy3.core.FuncCall3
+  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 276, in tvm._ffi._cy3.core.FuncCall
   File &quot;tvm/_ffi/_cython/./base.pxi&quot;, line 181, in tvm._ffi._cy3.core.CHECK_CALL
 tvm._ffi.base.TVMError: Traceback (most recent call last):
-  4: TVMFuncCall
+  24: TVMFuncCall
         at ../src/runtime/c_runtime_api.cc:477
-  3: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../include/tvm/runtime/packed_func.h:1217
-  2: tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
-        at ../src/runtime/rpc/rpc_module.cc:129
-  1: tvm::runtime::RPCClientSession::CallFunc(void*, TVMValue const*, int const*, int, std::function&lt;void (tvm::runtime::TVMArgs)&gt; const&amp;)
-        at ../src/runtime/rpc/rpc_endpoint.cc:1012
-  0: tvm::runtime::RPCEndpoint::CallFunc(void*, TVMValue const*, int const*, int, std::function&lt;void (tvm::runtime::TVMArgs)&gt;)
-        at ../src/runtime/rpc/rpc_endpoint.cc:804
-  File &quot;../src/runtime/rpc/rpc_endpoint.cc&quot;, line 804
-TVMError:
----------------------------------------------------------------
-An error occurred during the execution of TVM.
-For more information, please see: https://tvm.apache.org/docs/errors.html
----------------------------------------------------------------
-  Check failed: (code == RPCCode::kReturn) is false: code=kShutdown
-
-During handling of the above exception, another exception occurred:
+  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+        at ../include/tvm/runtime/packed_func.h:1217
+  22: Call
+        at ../include/tvm/runtime/packed_func.h:1213
+  21: operator()
+        at ../include/tvm/runtime/packed_func.h:1731
+  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
+        at ../include/tvm/runtime/packed_func.h:1671
+  19: run&lt;&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1646
+  13: operator()
+        at ../src/driver/driver_api.cc:389
+  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
+        at ../src/driver/driver_api.cc:375
+  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
+        at ../src/driver/driver_api.cc:270
+  10: tvm::transform::Pass::operator()(tvm::IRModule) const
+        at ../src/ir/transform.cc:258
+  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:274
+  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:453
+  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:274
+  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/tir/ir/transform.cc:100
+  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
+        at ../include/tvm/runtime/packed_func.h:1750
+  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
+        at ../include/tvm/runtime/packed_func.h:1694
+  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
+        at ../include/tvm/runtime/packed_func.h:1618
+  2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+        at ../include/tvm/runtime/packed_func.h:1217
+  1: Call
+        at ../include/tvm/runtime/packed_func.h:1213
+  0: operator()
+        at ../src/runtime/c_runtime_api.cc:534
+  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
+  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
+    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
 
 Traceback (most recent call last):
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 702, in run_through_rpc
-    costs = time_f(*args).results
-  File &quot;/usr/lib/python3.7/contextlib.py&quot;, line 130, in __exit__
-    self.gen.throw(type, value, traceback)
-  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 742, in __call__
-    remote.remove(build_result.filename)
-  File &quot;/workspace/python/tvm/rpc/client.py&quot;, line 144, in remove
-    self._remote_funcs[&quot;remove&quot;] = self.get_function(&quot;tvm.rpc.server.remove&quot;)
-  File &quot;/workspace/python/tvm/rpc/client.py&quot;, line 72, in get_function
-    return self._sess.get_function(name)
-  File &quot;/workspace/python/tvm/runtime/module.py&quot;, line 171, in get_function
-    self.handle, c_str(name), ctypes.c_int(query_imports), ctypes.byref(ret_handle)
-  File &quot;/workspace/python/tvm/_ffi/base.py&quot;, line 348, in check_call
-    raise get_last_ffi_error()
+  24: TVMFuncCall
+        at ../src/runtime/c_runtime_api.cc:477
+  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+        at ../include/tvm/runtime/packed_func.h:1217
+  22: Call
+        at ../include/tvm/runtime/packed_func.h:1213
+  21: operator()
+        at ../include/tvm/runtime/packed_func.h:1731
+  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
+        at ../include/tvm/runtime/packed_func.h:1671
+  19: run&lt;&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1646
+  13: operator()
+        at ../src/driver/driver_api.cc:389
+  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
+        at ../src/driver/driver_api.cc:375
+  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
+        at ../src/driver/driver_api.cc:270
+  10: tvm::transform::Pass::operator()(tvm::IRModule) const
+        at ../src/ir/transform.cc:258
+  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:274
+  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:453
+  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:274
+  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/tir/ir/transform.cc:100
+  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
+        at ../include/tvm/runtime/packed_func.h:1750
+  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
+        at ../include/tvm/runtime/packed_func.h:1694
+  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
+        at ../include/tvm/runtime/packed_func.h:1618
+  2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+        at ../include/tvm/runtime/packed_func.h:1217
+  1: Call
+        at ../include/tvm/runtime/packed_func.h:1213
+  0: operator()
+        at ../src/runtime/c_runtime_api.cc:534
+  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
+  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
+    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 1, 32]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 32, 16]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,1881845
+No: 19  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
+  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
+    func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
+  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
+    func = build(s, args, target_host=task.target_host, runtime=runtime)
+  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 227, in build
+    input_mod = lower(inputs, args, name=name, binds=binds)
+  File &quot;/workspace/python/tvm/driver/build_module.py&quot;, line 134, in lower
+    return ffi.lower_schedule(inp, args, name, binds, simple_mode)
+  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
+  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 276, in tvm._ffi._cy3.core.FuncCall
+  File &quot;tvm/_ffi/_cython/./base.pxi&quot;, line 181, in tvm._ffi._cy3.core.CHECK_CALL
 tvm._ffi.base.TVMError: Traceback (most recent call last):
-  52: 0xffffffffffffffff
-  51: _start
-  50: __libc_start_main
-  49: _Py_UnixMain
-  48: 0x0000000000650da0
-  47: 0x0000000000650afa
-  46: _PyFunction_FastCallDict
-  45: _PyEval_EvalCodeWithName
-  44: _PyEval_EvalFrameDefault
-  43: _PyFunction_FastCallKeywords
-  42: _PyEval_EvalCodeWithName
-  41: _PyEval_EvalFrameDefault
-  40: _PyMethodDef_RawFastCallKeywords
-  39: 0x0000000000546369
-  38: _PyEval_EvalCodeWithName
-  37: _PyEval_EvalFrameDefault
-  36: _PyFunction_FastCallKeywords
-  35: _PyEval_EvalCodeWithName
-  34: _PyEval_EvalFrameDefault
-  33: _PyFunction_FastCallDict
-  32: _PyEval_EvalCodeWithName
-  31: _PyEval_EvalFrameDefault
-  30: _PyObject_FastCallDict
-  29: 0x00000000004c06e1
-  28: _PyFunction_FastCallDict
-  27: _PyEval_EvalFrameDefault
-  26: _PyMethodDescr_FastCallKeywords
-  25: 0x00000000005dcb58
-  24: 0x00000000005dc83f
-  23: 0x00000000004ba127
-  22: _PyEval_EvalFrameDefault
-  21: _PyFunction_FastCallKeywords
-  20: _PyEval_EvalFrameDefault
-  19: _PyFunction_FastCallKeywords
-  18: _PyEval_EvalFrameDefault
-  17: _PyFunction_FastCallKeywords
-  16: _PyEval_EvalCodeWithName
-  15: _PyEval_EvalFrameDefault
-  14: 0x0000000000537c30
-  13: _PyObject_FastCallKeywords
-  12: 0x00007f7346025fa2
-  11: _ctypes_callproc
-  10: ffi_call
-  9: ffi_call_unix64
-  8: TVMModGetFunction
-        at ../src/runtime/c_runtime_api.cc:408
-  7: tvm::runtime::ModuleNode::GetFunction(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, bool)
-        at ../src/runtime/module.cc:66
-  6: tvm::runtime::RPCModuleNode::GetFunction(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, tvm::runtime::ObjectPtr&lt;tvm::runtime::Object&gt; const&amp;)
-        at ../src/runtime/rpc/rpc_module.cc:185
-  5: tvm::runtime::RPCClientSession::GetFunction(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)
-        at ../src/runtime/rpc/rpc_endpoint.cc:1007
-  4: tvm::runtime::TVMRetValue tvm::runtime::RPCEndpoint::SysCallRemote&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;&gt;(tvm::runtime::RPCCode, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)
-        at ../src/runtime/rpc/rpc_endpoint.h:223
-  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;int, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;&gt;(int&amp;&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const
+  24: TVMFuncCall
+        at ../src/runtime/c_runtime_api.cc:477
+  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+        at ../include/tvm/runtime/packed_func.h:1217
+  22: Call
+        at ../include/tvm/runtime/packed_func.h:1213
+  21: operator()
+        at ../include/tvm/runtime/packed_func.h:1731
+  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
+        at ../include/tvm/runtime/packed_func.h:1671
+  19: run&lt;&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1646
+  13: operator()
+        at ../src/driver/driver_api.cc:389
+  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
+        at ../src/driver/driver_api.cc:375
+  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
+        at ../src/driver/driver_api.cc:270
+  10: tvm::transform::Pass::operator()(tvm::IRModule) const
+        at ../src/ir/transform.cc:258
+  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:274
+  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:453
+  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:274
+  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/tir/ir/transform.cc:100
+  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
+        at ../include/tvm/runtime/packed_func.h:1750
+  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
+        at ../include/tvm/runtime/packed_func.h:1694
+  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
         at ../include/tvm/runtime/packed_func.h:1618
   2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
         at ../include/tvm/runtime/packed_func.h:1217
   1: Call
         at ../include/tvm/runtime/packed_func.h:1213
   0: operator()
-        at ../src/runtime/rpc/rpc_endpoint.cc:684
-  File &quot;../src/runtime/rpc/rpc_endpoint.cc&quot;, line 684
-TVMError:
----------------------------------------------------------------
-An error occurred during the execution of TVM.
-For more information, please see: https://tvm.apache.org/docs/errors.html
----------------------------------------------------------------
-  Check failed: (code == RPCCode::kReturn) is false: code=1
+        at ../src/runtime/c_runtime_api.cc:534
+  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
+  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
+    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
 
 Traceback (most recent call last):
-  52: 0xffffffffffffffff
-  51: _start
-  50: __libc_start_main
-  49: _Py_UnixMain
-  48: 0x0000000000650da0
-  47: 0x0000000000650afa
-  46: _PyFunction_FastCallDict
-  45: _PyEval_EvalCodeWithName
-  44: _PyEval_EvalFrameDefault
-  43: _PyFunction_FastCallKeywords
-  42: _PyEval_EvalCodeWithName
-  41: _PyEval_EvalFrameDefault
-  40: _PyMethodDef_RawFastCallKeywords
-  39: 0x0000000000546369
-  38: _PyEval_EvalCodeWithName
-  37: _PyEval_EvalFrameDefault
-  36: _PyFunction_FastCallKeywords
-  35: _PyEval_EvalCodeWithName
-  34: _PyEval_EvalFrameDefault
-  33: _PyFunction_FastCallDict
-  32: _PyEval_EvalCodeWithName
-  31: _PyEval_EvalFrameDefault
-  30: _PyObject_FastCallDict
-  29: 0x00000000004c06e1
-  28: _PyFunction_FastCallDict
-  27: _PyEval_EvalFrameDefault
-  26: _PyMethodDescr_FastCallKeywords
-  25: 0x00000000005dcb58
-  24: 0x00000000005dc83f
-  23: 0x00000000004ba127
-  22: _PyEval_EvalFrameDefault
-  21: _PyFunction_FastCallKeywords
-  20: _PyEval_EvalFrameDefault
-  19: _PyFunction_FastCall      [(&#39;tile_f&#39;, [-1, 128, 1, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,5236987
-No: 20  GFLOPS: 0.00/232.38     result: Traceback (most recent call last):
+  24: TVMFuncCall
+        at ../src/runtime/c_runtime_api.cc:477
+  23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+        at ../include/tvm/runtime/packed_func.h:1217
+  22: Call
+        at ../include/tvm/runtime/packed_func.h:1213
+  21: operator()
+        at ../include/tvm/runtime/packed_func.h:1731
+  20: unpack_call&lt;tvm::IRModule, 5, tvm::&lt;lambda(tvm::te::Schedule, const tvm::runtime::Array&lt;tvm::runtime::ObjectRef&gt;&amp;, const tvm::runtime::String&amp;, const tvm::runtime::Map&lt;tvm::te::Tensor, tvm::tir::Buffer&gt;&amp;, bool)&gt; &gt;
+        at ../include/tvm/runtime/packed_func.h:1671
+  19: run&lt;&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  18: run&lt;tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  17: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  16: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  15: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1631
+  14: run&lt;tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_&gt;
+        at ../include/tvm/runtime/packed_func.h:1646
+  13: operator()
+        at ../src/driver/driver_api.cc:389
+  12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array&lt;tvm::runtime::ObjectRef, void&gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::unordered_map&lt;tvm::te::Tensor, tvm::tir::Buffer, std::hash&lt;tvm::te::Tensor&gt;, std::equal_to&lt;tvm::te::Tensor&gt;, std::allocator&lt;std::pair&lt;tvm::te::Tensor const, tvm::tir::Buffer&gt; &gt; &gt; const&amp;, tvm::GlobalVarSupply, bool)
+        at ../src/driver/driver_api.cc:375
+  11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array&lt;tvm::transform::Pass, void&gt;)
+        at ../src/driver/driver_api.cc:270
+  10: tvm::transform::Pass::operator()(tvm::IRModule) const
+        at ../src/ir/transform.cc:258
+  9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:274
+  8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:453
+  7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/ir/transform.cc:274
+  6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&amp;) const
+        at ../src/tir/ir/transform.cc:100
+  5: tvm::runtime::TypedPackedFunc&lt;tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)&gt;::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
+        at ../include/tvm/runtime/packed_func.h:1750
+  4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher&lt;tvm::tir::PrimFunc&gt;::run&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::runtime::PackedFunc const&amp;, tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;)
+        at ../include/tvm/runtime/packed_func.h:1694
+  3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()&lt;tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext&gt;(tvm::tir::PrimFunc&amp;&amp;, tvm::IRModule&amp;&amp;, tvm::transform::PassContext&amp;&amp;) const
+        at ../include/tvm/runtime/packed_func.h:1618
+  2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
+        at ../include/tvm/runtime/packed_func.h:1217
+  1: Call
+        at ../include/tvm/runtime/packed_func.h:1213
+  0: operator()
+        at ../src/runtime/c_runtime_api.cc:534
+  File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
+  File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
+    raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 32, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 256, 2]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,452360
+No: 20  GFLOPS: 0.00/86.69      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -2446,7 +2538,7 @@ Traceback (most recent call last):
   File &quot;tvm/_ffi/_cython/./packed_func.pxi&quot;, line 56, in tvm._ffi._cy3.core.tvm_callback
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 8, 4]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 128]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,10437142
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 64, 2]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 256]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4835036
 </pre></div>
 </div>
 <p>Finally we can inspect the best config from log file, check correctness,
@@ -2485,9 +2577,9 @@ and measure running time.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Finish loading 20 records
 
 Best config:
-[(&#39;tile_f&#39;, [-1, 2, 32, 2]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 16, 4]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,5310671
+[(&#39;tile_f&#39;, [-1, 1, 4, 8]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 1]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,3102589
 Finish loading 20 records
-Time cost of this operator: 0.001390
+Time cost of this operator: 0.001529
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autotvm-tune-conv2d-cuda-py">
diff --git a/docs/how_to/work_with_microtvm/micro_autotune.html b/docs/how_to/work_with_microtvm/micro_autotune.html
index 32252fe004..50af88b0f0 100644
--- a/docs/how_to/work_with_microtvm/micro_autotune.html
+++ b/docs/how_to/work_with_microtvm/micro_autotune.html
@@ -598,10 +598,10 @@ the tuned operator.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>########## Build without Autotuning ##########
 Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)
 ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  347.4     98.862   (1, 2, 10, 10, 3)  2       1        [347.4]
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.021     0.86     (1, 6, 10, 10)     1       1        [3.021]
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.978     0.278    (1, 1, 10, 10, 3)  1       1        [0.978]
-Total_time                                    -                                             351.399   -        -                  -       -        -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  314.5     98.604   (1, 2, 10, 10, 3)  2       1        [314.5]
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.164     0.992    (1, 6, 10, 10)     1       1        [3.164]
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         1.289     0.404    (1, 1, 10, 10, 3)  1       1        [1.289]
+Total_time                                    -                                             318.953   -        -                  -       -        -
 </pre></div>
 </div>
 </div>
@@ -653,10 +653,10 @@ Total_time                                    -
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>########## Build with Autotuning ##########
 Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)
 ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  100.4     97.356   (1, 6, 10, 10, 1)  2       1        [100.4]
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.768     1.715    (1, 6, 10, 10)     1       1        [1.768]
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.958     0.929    (1, 1, 10, 10, 3)  1       1        [0.958]
-Total_time                                    -                                             103.126   -        -                  -       -        -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  100.8     97.323   (1, 6, 10, 10, 1)  2       1        [100.8]
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.785     1.723    (1, 6, 10, 10)     1       1        [1.785]
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.988     0.954    (1, 1, 10, 10, 3)  1       1        [0.988]
+Total_time                                    -                                             103.573   -        -                  -       -        -
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-autotune-py">
diff --git a/docs/how_to/work_with_microtvm/micro_pytorch.html b/docs/how_to/work_with_microtvm/micro_pytorch.html
index 4cc94c3ed7..6851558b23 100644
--- a/docs/how_to/work_with_microtvm/micro_pytorch.html
+++ b/docs/how_to/work_with_microtvm/micro_pytorch.html
@@ -440,7 +440,7 @@ download a cat image and preprocess it to use as the model input.</p>
 Downloading: &quot;https://download.pytorch.org/models/quantized/mobilenet_v2_qnnpack_37f702c5.pth&quot; to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2_qnnpack_37f702c5.pth
 
   0%|          | 0.00/3.42M [00:00&lt;?, ?B/s]
-100%|##########| 3.42M/3.42M [00:00&lt;00:00, 79.4MB/s]
+100%|##########| 3.42M/3.42M [00:00&lt;00:00, 82.2MB/s]
 /workspace/python/tvm/relay/frontend/pytorch_utils.py:47: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
   return LooseVersion(torch_ver) &gt; ver
 /venv/apache-tvm-py3.7/lib/python3.7/site-packages/setuptools/_distutils/version.py:346: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
@@ -564,7 +564,7 @@ via the host <cite>main.cc`</cite> or if a Zephyr emulated board is selected as
 Torch top-1 id: 282, class name: tiger cat
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  9.931 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  7.864 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-pytorch-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/12b9ecc04c41abaa12022061771821d1/micro_pytorch.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">micro_pytorch.py</span></code></a></p>
diff --git a/docs/how_to/work_with_microtvm/micro_train.html b/docs/how_to/work_with_microtvm/micro_train.html
index 260217a756..d79d46c566 100644
--- a/docs/how_to/work_with_microtvm/micro_train.html
+++ b/docs/how_to/work_with_microtvm/micro_train.html
@@ -530,7 +530,7 @@ take about <strong>2 minutes</strong> to download the Stanford Cars, while COCO
 <a href="https://docs.python.org/3/library/shutil.html#shutil.move" title="shutil.move" class="sphx-glr-backref-module-shutil sphx-glr-backref-type-py-function"><span class="n">shutil</span><span class="o">.</span><span class="n">move</span></a><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><a href="https://docs.python.org/3/library/stdtypes.html#str" title="builtins.str" class="sphx-glr-backref-module-builtins sphx-glr-backref-typ [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&#39;/tmp/tmphbrmfcm6/images/random&#39;
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&#39;/tmp/tmpyrrt410h/images/random&#39;
 </pre></div>
 </div>
 </div>
@@ -590,8 +590,8 @@ objects to other stuff? We can display some examples from our datasets using <co
     <span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">(</span><span class="s2">&quot;off&quot;</span><span class="p">)</span>
 </pre></div>
 </div>
-<img src="../../_images/sphx_glr_micro_train_001.png" srcset="../../_images/sphx_glr_micro_train_001.png" alt="[0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmphbrmfcm6/images/target contains 8144 images
-/tmp/tmphbrmfcm6/images/random contains 5000 images
+<img src="../../_images/sphx_glr_micro_train_001.png" srcset="../../_images/sphx_glr_micro_train_001.png" alt="[0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [1.0, 0.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmpyrrt410h/images/target contains 8144 images
+/tmp/tmpyrrt410h/images/random contains 5000 images
 </pre></div>
 </div>
 </div>
@@ -703,13 +703,13 @@ the time on our validation set).</p>
 </pre></div>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Epoch 1/3
-328/328 - 58s - loss: 0.2229 - accuracy: 0.9203 - val_loss: 0.1504 - val_accuracy: 0.9535 - 58s/epoch - 176ms/step
+328/328 - 48s - loss: 0.2065 - accuracy: 0.9253 - val_loss: 0.1518 - val_accuracy: 0.9486 - 48s/epoch - 147ms/step
 Epoch 2/3
-328/328 - 46s - loss: 0.0906 - accuracy: 0.9640 - val_loss: 0.0942 - val_accuracy: 0.9637 - 46s/epoch - 140ms/step
+328/328 - 44s - loss: 0.1031 - accuracy: 0.9605 - val_loss: 0.1043 - val_accuracy: 0.9637 - 44s/epoch - 135ms/step
 Epoch 3/3
-328/328 - 43s - loss: 0.0661 - accuracy: 0.9753 - val_loss: 0.1019 - val_accuracy: 0.9656 - 43s/epoch - 132ms/step
+328/328 - 44s - loss: 0.0724 - accuracy: 0.9724 - val_loss: 0.1013 - val_accuracy: 0.9656 - 44s/epoch - 134ms/step
 
-&lt;keras.callbacks.History object at 0x7f990cf28410&gt;
+&lt;keras.callbacks.History object at 0x7f3459619d10&gt;
 </pre></div>
 </div>
 </div>
@@ -971,7 +971,7 @@ as intended.</p>
 <p>From here, we could modify the model to read live images from the camera - we have another
 Arduino tutorial for how to do that <a class="reference external" href="https://github.com/guberti/tvm-arduino-demos/tree/master/examples/person_detection">on GitHub</a>. Alternatively, we could also
 <a class="reference external" href="https://tvm.apache.org/docs/how_to/work_with_microtvm/micro_autotune.html">use TVM’s autotuning capabilities</a> to dramatically improve the model’s performance.</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 4 minutes  45.405 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 4 minutes  35.122 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-train-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/b52cec46baf4f78d6bcd94cbe269c8a6/micro_train.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">micro_train.py</span></code></a></p>
diff --git a/docs/how_to/work_with_microtvm/sg_execution_times.html b/docs/how_to/work_with_microtvm/sg_execution_times.html
index 06aa95be26..bff3776577 100644
--- a/docs/how_to/work_with_microtvm/sg_execution_times.html
+++ b/docs/how_to/work_with_microtvm/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-microtvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>06:57.782</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
+<p><strong>06:50.444</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 83%" />
@@ -349,23 +349,23 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="micro_train.html#sphx-glr-how-to-work-with-microtvm-micro-train-py"><span class="std std-ref">Training Vision Models for microTVM on Arduino</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_train.py</span></code>)</p></td>
-<td><p>04:45.405</p></td>
+<td><p>04:35.122</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="micro_pytorch.html#sphx-glr-how-to-work-with-microtvm-micro-pytorch-py"><span class="std std-ref">microTVM PyTorch Tutorial</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_pytorch.py</span></code>)</p></td>
-<td><p>01:09.931</p></td>
+<td><p>01:07.864</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="micro_autotune.html#sphx-glr-how-to-work-with-microtvm-micro-autotune-py"><span class="std std-ref">Autotuning with microTVM</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_autotune.py</span></code>)</p></td>
-<td><p>00:50.249</p></td>
+<td><p>00:54.329</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="micro_aot.html#sphx-glr-how-to-work-with-microtvm-micro-aot-py"><span class="std std-ref">microTVM Host-Driven AoT</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_aot.py</span></code>)</p></td>
-<td><p>00:08.223</p></td>
+<td><p>00:09.004</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="micro_tflite.html#sphx-glr-how-to-work-with-microtvm-micro-tflite-py"><span class="std std-ref">microTVM with TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tflite.py</span></code>)</p></td>
-<td><p>00:03.972</p></td>
+<td><p>00:04.123</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="micro_reference_vm.html#sphx-glr-how-to-work-with-microtvm-micro-reference-vm-py"><span class="std std-ref">microTVM Reference Virtual Machines</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_reference_vm.py</span></code>)</p></td>
diff --git a/docs/how_to/work_with_relay/sg_execution_times.html b/docs/how_to/work_with_relay/sg_execution_times.html
index 48eb86df5f..1f98ed9d5a 100644
--- a/docs/how_to/work_with_relay/sg_execution_times.html
+++ b/docs/how_to/work_with_relay/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-relay-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:44.420</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
+<p><strong>00:49.622</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 84%" />
@@ -349,15 +349,15 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="using_pipeline_executor.html#sphx-glr-how-to-work-with-relay-using-pipeline-executor-py"><span class="std std-ref">Using Pipeline Executor in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_pipeline_executor.py</span></code>)</p></td>
-<td><p>00:32.500</p></td>
+<td><p>00:37.407</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="using_external_lib.html#sphx-glr-how-to-work-with-relay-using-external-lib-py"><span class="std std-ref">Using External Libraries in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_external_lib.py</span></code>)</p></td>
-<td><p>00:10.288</p></td>
+<td><p>00:10.461</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="build_gcn.html#sphx-glr-how-to-work-with-relay-build-gcn-py"><span class="std std-ref">Building a Graph Convolutional Network</span></a> (<code class="docutils literal notranslate"><span class="pre">build_gcn.py</span></code>)</p></td>
-<td><p>00:01.624</p></td>
+<td><p>00:01.747</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="using_relay_viz.html#sphx-glr-how-to-work-with-relay-using-relay-viz-py"><span class="std std-ref">Use Relay Visualizer to Visualize Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_relay_viz.py</span></code>)</p></td>
diff --git a/docs/how_to/work_with_schedules/intrin_math.html b/docs/how_to/work_with_schedules/intrin_math.html
index f25055498d..ef873e903a 100644
--- a/docs/how_to/work_with_schedules/intrin_math.html
+++ b/docs/how_to/work_with_schedules/intrin_math.html
@@ -535,7 +535,7 @@ The following example customizes CUDA lowering rule for <code class="code docuti
 <a href="../../reference/api/python/ir.html#tvm.ir.register_intrin_lowering" title="tvm.ir.register_intrin_lowering" class="sphx-glr-backref-module-tvm-ir sphx-glr-backref-type-py-function"><span class="n">register_intrin_lowering</span></a><span class="p">(</span><span class="s2">&quot;tir.exp&quot;</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">&quot;cuda&quot;</span><span class="p">,</span> <span class="n">f</span><span class="o">= [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;function my_cuda_math_rule at 0x7f990935c170&gt;
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;function my_cuda_math_rule at 0x7f33fd04b200&gt;
 </pre></div>
 </div>
 <p>Register the rule to TVM with override option to override existing rule.
diff --git a/docs/how_to/work_with_schedules/sg_execution_times.html b/docs/how_to/work_with_schedules/sg_execution_times.html
index 05e50e3526..4d70b82b25 100644
--- a/docs/how_to/work_with_schedules/sg_execution_times.html
+++ b/docs/how_to/work_with_schedules/sg_execution_times.html
@@ -340,7 +340,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-schedules-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:06.249</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
+<p><strong>00:08.107</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 83%" />
@@ -349,35 +349,35 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="intrin_math.html#sphx-glr-how-to-work-with-schedules-intrin-math-py"><span class="std std-ref">Intrinsics and Math Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">intrin_math.py</span></code>)</p></td>
-<td><p>00:03.752</p></td>
+<td><p>00:05.476</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tensorize.html#sphx-glr-how-to-work-with-schedules-tensorize-py"><span class="std std-ref">Use Tensorize to Leverage Hardware Intrinsics</span></a> (<code class="docutils literal notranslate"><span class="pre">tensorize.py</span></code>)</p></td>
-<td><p>00:01.143</p></td>
+<td><p>00:01.198</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="reduction.html#sphx-glr-how-to-work-with-schedules-reduction-py"><span class="std std-ref">Reduction</span></a> (<code class="docutils literal notranslate"><span class="pre">reduction.py</span></code>)</p></td>
-<td><p>00:00.582</p></td>
+<td><p>00:00.611</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="scan.html#sphx-glr-how-to-work-with-schedules-scan-py"><span class="std std-ref">Scan and Recurrent Kernel</span></a> (<code class="docutils literal notranslate"><span class="pre">scan.py</span></code>)</p></td>
-<td><p>00:00.559</p></td>
+<td><p>00:00.590</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="extern_op.html#sphx-glr-how-to-work-with-schedules-extern-op-py"><span class="std std-ref">External Tensor Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">extern_op.py</span></code>)</p></td>
-<td><p>00:00.115</p></td>
+<td><p>00:00.121</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="schedule_primitives.html#sphx-glr-how-to-work-with-schedules-schedule-primitives-py"><span class="std std-ref">Schedule Primitives in TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">schedule_primitives.py</span></code>)</p></td>
-<td><p>00:00.050</p></td>
+<td><p>00:00.058</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tedd.html#sphx-glr-how-to-work-with-schedules-tedd-py"><span class="std std-ref">Use Tensor Expression Debug Display (TEDD) for Visualization</span></a> (<code class="docutils literal notranslate"><span class="pre">tedd.py</span></code>)</p></td>
-<td><p>00:00.029</p></td>
+<td><p>00:00.032</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tuple_inputs.html#sphx-glr-how-to-work-with-schedules-tuple-inputs-py"><span class="std std-ref">Compute and Reduce with Tuple Inputs</span></a> (<code class="docutils literal notranslate"><span class="pre">tuple_inputs.py</span></code>)</p></td>
-<td><p>00:00.018</p></td>
+<td><p>00:00.020</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/work_with_schedules/tensorize.html b/docs/how_to/work_with_schedules/tensorize.html
index c409e97728..7671c3ea20 100644
--- a/docs/how_to/work_with_schedules/tensorize.html
+++ b/docs/how_to/work_with_schedules/tensorize.html
@@ -586,7 +586,7 @@ The importing needs to happen before the tensorized GEMV being executed.</p>
              B: Buffer(B_2: Pointer(float32), float32, [512, 64], []),
              C: Buffer(C_2: Pointer(float32), float32, [1024, 512], [])}
   buffer_map = {A_1: A, B_1: B, C_1: C} {
-  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmpbmkrqlqt/input0.cc&#39;\nsource_filename = \&quot;/tmp/tmpbmkrqlqt/input0.cc\&quot;\ntarget datalayout = \&quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128\&quot;\ntarget triple = \&quot;x86_64-pc-linux-gnu\&quot;\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = allo [...]
+  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmp5vd_qexq/input0.cc&#39;\nsource_filename = \&quot;/tmp/tmp5vd_qexq/input0.cc\&quot;\ntarget datalayout = \&quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128\&quot;\ntarget triple = \&quot;x86_64-pc-linux-gnu\&quot;\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = allo [...]
   for (i, 0, 1024) {
     for (j.outer: int32, 0, 32) {
       @tir.call_extern(&quot;gemv_update&quot;, @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i*512) + (j.outer*16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i*64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer*1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
diff --git a/docs/install/nnpack.html b/docs/install/nnpack.html
index 23d2181e9d..1ef28de467 100644
--- a/docs/install/nnpack.html
+++ b/docs/install/nnpack.html
@@ -229,17 +229,7 @@
               <p class="caption" role="heading"><span class="caption-text">Getting Started</span></p>
 <ul class="current">
 <li class="toctree-l1 current"><a class="reference internal" href="index.html">Installing TVM</a><ul class="current">
-<li class="toctree-l2 current"><a class="reference internal" href="from_source.html">Install from Source</a><ul class="current">
-<li class="toctree-l3"><a class="reference internal" href="from_source.html#developers-get-source-from-github">Developers: Get Source from Github</a></li>
-<li class="toctree-l3"><a class="reference internal" href="from_source.html#build-the-shared-library">Build the Shared Library</a></li>
-<li class="toctree-l3"><a class="reference internal" href="from_source.html#python-package-installation">Python Package Installation</a></li>
-<li class="toctree-l3 current"><a class="reference internal" href="from_source.html#install-contrib-libraries">Install Contrib Libraries</a><ul class="current">
-<li class="toctree-l4 current"><a class="current reference internal" href="#">NNPACK Contrib Installation</a></li>
-</ul>
-</li>
-<li class="toctree-l3"><a class="reference internal" href="from_source.html#enable-c-tests">Enable C++ Tests</a></li>
-</ul>
-</li>
+<li class="toctree-l2"><a class="reference internal" href="from_source.html">Install from Source</a></li>
 <li class="toctree-l2"><a class="reference internal" href="docker.html">Docker Images</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">NNPACK Contrib Installation</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="#conditions">Conditions</a></li>
diff --git a/docs/reference/api/doxygen/analyzer_8h_source.html b/docs/reference/api/doxygen/analyzer_8h_source.html
index 4a622e7058..0c5c409549 100644
--- a/docs/reference/api/doxygen/analyzer_8h_source.html
+++ b/docs/reference/api/doxygen/analyzer_8h_source.html
@@ -93,7 +93,7 @@ $(function() {
 <div class="ttc" id="classtvm_1_1runtime_1_1Object_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></div><div class="ttdoc">base class of all object containers. </div><div class="ttdef"><b>Definition:</b> object.h:167</div></div>
 <div class="ttc" id="namespacetvm_1_1arith_html_a660ff1fdbb08fea19a922157cadad7a7"><div class="ttname"><a href="namespacetvm_1_1arith.html#a660ff1fdbb08fea19a922157cadad7a7">tvm::arith::operator|</a></div><div class="ttdeci">constexpr CompareResult operator|(CompareResult lhs, CompareResult rhs)</div><div class="ttdef"><b>Definition:</b> analyzer.h:394</div></div>
 <div class="ttc" id="classtvm_1_1AttrVisitor_html"><div class="ttname"><a href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a></div><div class="ttdoc">Visitor class to get the attributes of an AST/IR node. The content is going to be called for each fie...</div><div class="ttdef"><b>Definition:</b> reflection.h:52</div></div>
-<div class="ttc" id="classtvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range constainer. </div><div class="ttdef"><b>Definition:</b> expr.h:713</div></div>
+<div class="ttc" id="classtvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range constainer. </div><div class="ttdef"><b>Definition:</b> expr.h:711</div></div>
 <div class="ttc" id="classtvm_1_1arith_1_1ModularSet_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSet.html">tvm::arith::ModularSet</a></div><div class="ttdoc">reference of ModularSetNode </div><div class="ttdef"><b>Definition:</b> analyzer.h:204</div></div>
 <div class="ttc" id="namespacetvm_1_1arith_html_ac6a38da661cd3681eb85abe1cd810422aad0250170b362173e1e2a2e3a6f13d20"><div class="ttname"><a href="namespacetvm_1_1arith.html#ac6a38da661cd3681eb85abe1cd810422aad0250170b362173e1e2a2e3a6f13d20">tvm::arith::kFloorDiv</a></div><div class="ttdoc">Floor division. </div><div class="ttdef"><b>Definition:</b> analyzer.h:59</div></div>
 <div class="ttc" id="namespacetvm_1_1arith_html_ac6a38da661cd3681eb85abe1cd810422aa6da1e276448319d25de8fe181872432"><div class="ttname"><a href="namespacetvm_1_1arith.html#ac6a38da661cd3681eb85abe1cd810422aa6da1e276448319d25de8fe181872432">tvm::arith::kTruncDiv</a></div><div class="ttdoc">Truncated division. </div><div class="ttdef"><b>Definition:</b> analyzer.h:57</div></div>
diff --git a/docs/reference/api/doxygen/c__backend__api_8h_source.html b/docs/reference/api/doxygen/c__backend__api_8h_source.html
index f7b0f563af..19dcb0251a 100644
--- a/docs/reference/api/doxygen/c__backend__api_8h_source.html
+++ b/docs/reference/api/doxygen/c__backend__api_8h_source.html
@@ -66,13 +66,13 @@ $(function() {
 <div class="title">c_backend_api.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="c__backend__api_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or  [...]
+<a href="c__backend__api_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or  [...]
 <div class="ttc" id="c__backend__api_8h_html_a56a654a9aeba2f1ccf3e10918dd88ec5"><div class="ttname"><a href="c__backend__api_8h.html#a56a654a9aeba2f1ccf3e10918dd88ec5">TVMBackendGetFuncFromEnv</a></div><div class="ttdeci">int TVMBackendGetFuncFromEnv(void *mod_node, const char *func_name, TVMFunctionHandle *out)</div><div class="ttdoc">Backend function for modules to get function from its environment mod_node (its imports and global fu...</div></div>
 <div class="ttc" id="c__backend__api_8h_html_ae70bd3ee026eb55b438ada05b08f0ce8"><div class="ttname"><a href="c__backend__api_8h.html#ae70bd3ee026eb55b438ada05b08f0ce8">TVMBackendRunOnce</a></div><div class="ttdeci">int TVMBackendRunOnce(void **handle, int(*f)(void *), void *cdata, int nbytes)</div><div class="ttdoc">Simple static initialization function. Run f once and set handle to be not null. This function is mai...</div></div>
 <div class="ttc" id="c__backend__api_8h_html_a07eaf7d1b748d99aa7715c7adbdea231"><div class="ttname"><a href="c__backend__api_8h.html#a07eaf7d1b748d99aa7715c7adbdea231">TVMBackendAllocWorkspace</a></div><div class="ttdeci">void * TVMBackendAllocWorkspace(int device_type, int device_id, uint64_t nbytes, int dtype_code_hint, int dtype_bits_hint)</div><div class="ttdoc">Backend function to allocate temporal workspace. </div></div>
 <div class="ttc" id="unionTVMValue_html"><div class="ttname"><a href="unionTVMValue.html">TVMValue</a></div><div class="ttdoc">Union type of values being passed through API and function calls. </div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:201</div></div>
 <div class="ttc" id="structTVMParallelGroupEnv_html"><div class="ttname"><a href="structTVMParallelGroupEnv.html">TVMParallelGroupEnv</a></div><div class="ttdoc">Environment for TVM parallel task. </div><div class="ttdef"><b>Definition:</b> c_backend_api.h:119</div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1attr_html_a61b1ef1047fb722a4e5ec2167c9963d7"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a61b1ef1047fb722a4e5ec2167c9963d7">tvm::tir::attr::device_id</a></div><div class="ttdeci">constexpr const char * device_id</div><div class="ttdoc">The allocation device for global malloc in host. </div><div class="ttdef"><b>Definition:</b> stmt.h:1403</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1attr_html_a61b1ef1047fb722a4e5ec2167c9963d7"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a61b1ef1047fb722a4e5ec2167c9963d7">tvm::tir::attr::device_id</a></div><div class="ttdeci">constexpr const char * device_id</div><div class="ttdoc">The allocation device for global malloc in host. </div><div class="ttdef"><b>Definition:</b> stmt.h:1391</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_acf57d257a6e0841d84ebbd2a339d183e"><div class="ttname"><a href="c__runtime__api_8h.html#acf57d257a6e0841d84ebbd2a339d183e">TVMFunctionHandle</a></div><div class="ttdeci">void * TVMFunctionHandle</div><div class="ttdoc">Handle to packed function handle. </div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:222</div></div>
 <div class="ttc" id="c__backend__api_8h_html_a6ff8662943d0f003d55d9046cd24daf8"><div class="ttname"><a href="c__backend__api_8h.html#a6ff8662943d0f003d55d9046cd24daf8">TVMBackendParallelLaunch</a></div><div class="ttdeci">int TVMBackendParallelLaunch(FTVMParallelLambda flambda, void *cdata, int num_task)</div><div class="ttdoc">Backend function for running parallel jobs. </div></div>
 <div class="ttc" id="c__backend__api_8h_html_a0c57deb5acb9338ec778d91bd6e42191"><div class="ttname"><a href="c__backend__api_8h.html#a0c57deb5acb9338ec778d91bd6e42191">TVMBackendRegisterSystemLibSymbol</a></div><div class="ttdeci">int TVMBackendRegisterSystemLibSymbol(const char *name, void *ptr)</div><div class="ttdoc">Backend function to register system-wide library symbol. </div></div>
diff --git a/docs/reference/api/doxygen/c__runtime__api_8h_source.html b/docs/reference/api/doxygen/c__runtime__api_8h_source.html
index efb4f02c3a..00b2bd9910 100644
--- a/docs/reference/api/doxygen/c__runtime__api_8h_source.html
+++ b/docs/reference/api/doxygen/c__runtime__api_8h_source.html
@@ -70,7 +70,7 @@ $(function() {
 <div class="ttc" id="unionTVMValue_html_aa1c40fa9e74fbf97541fd9735062c4cc"><div class="ttname"><a href="unionTVMValue.html#aa1c40fa9e74fbf97541fd9735062c4cc">TVMValue::v_int64</a></div><div class="ttdeci">int64_t v_int64</div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:202</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_a07954203342f2787acf988c4c351d9c3"><div class="ttname"><a href="c__runtime__api_8h.html#a07954203342f2787acf988c4c351d9c3">TVMPackedCFunc</a></div><div class="ttdeci">int(* TVMPackedCFunc)(TVMValue *args, int *type_codes, int num_args, TVMRetValueHandle ret, void *resource_handle)</div><div class="ttdoc">C type of packed function. </div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:362</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_a477111f9accd70633dc5f2e7139b6cf4"><div class="ttname"><a href="c__runtime__api_8h.html#a477111f9accd70633dc5f2e7139b6cf4">TVMAPISetLastError</a></div><div class="ttdeci">void TVMAPISetLastError(const char *msg)</div><div class="ttdoc">Used for implementing C API function. Set last error message before return. </div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1attr_html_a7e4e7cd47471a9089022214d63d24206"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a7e4e7cd47471a9089022214d63d24206">tvm::tir::attr::device_type</a></div><div class="ttdeci">constexpr const char * device_type</div><div class="ttdoc">The device type. </div><div class="ttdef"><b>Definition:</b> stmt.h:1405</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1attr_html_a7e4e7cd47471a9089022214d63d24206"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a7e4e7cd47471a9089022214d63d24206">tvm::tir::attr::device_type</a></div><div class="ttdeci">constexpr const char * device_type</div><div class="ttdoc">The device type. </div><div class="ttdef"><b>Definition:</b> stmt.h:1393</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_a57cbccb14c35a0e62dbc1b911188fcefa474961a2b52fee7b33e529015162e884"><div class="ttname"><a href="c__runtime__api_8h.html#a57cbccb14c35a0e62dbc1b911188fcefa474961a2b52fee7b33e529015162e884">TVMDeviceExtType_End</a></div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:118</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_af420f0d74004615c03bb40270ad5d489"><div class="ttname"><a href="c__runtime__api_8h.html#af420f0d74004615c03bb40270ad5d489">TVMFuncFree</a></div><div class="ttdeci">int TVMFuncFree(TVMFunctionHandle func)</div><div class="ttdoc">Free the function when it is no longer needed. </div></div>
 <div class="ttc" id="c__runtime__api_8h_html_a591e48e52098965e235657dab56bc096"><div class="ttname"><a href="c__runtime__api_8h.html#a591e48e52098965e235657dab56bc096">TVMArrayFree</a></div><div class="ttdeci">int TVMArrayFree(TVMArrayHandle handle)</div><div class="ttdoc">Free the TVM Array. </div></div>
@@ -102,7 +102,7 @@ $(function() {
 <div class="ttc" id="c__runtime__api_8h_html_a8a01e20ffd5784465df0759c950154b5"><div class="ttname"><a href="c__runtime__api_8h.html#a8a01e20ffd5784465df0759c950154b5">TVMFuncCall</a></div><div class="ttdeci">int TVMFuncCall(TVMFunctionHandle func, TVMValue *arg_values, int *type_codes, int num_args, TVMValue *ret_val, int *ret_type_code)</div><div class="ttdoc">Call a Packed TVM Function. </div></div>
 <div class="ttc" id="c__runtime__api_8h_html_aa91f776ed41a36790409f78725f81419"><div class="ttname"><a href="c__runtime__api_8h.html#aa91f776ed41a36790409f78725f81419">TVMStreamStreamSynchronize</a></div><div class="ttdeci">int TVMStreamStreamSynchronize(int device_type, int device_id, TVMStreamHandle src, TVMStreamHandle dst)</div><div class="ttdoc">Synchronize two streams of execution. </div></div>
 <div class="ttc" id="c__runtime__api_8h_html_a6fee438ab81fbf4235375d9f17f36d6f"><div class="ttname"><a href="c__runtime__api_8h.html#a6fee438ab81fbf4235375d9f17f36d6f">TVMCbArgToReturn</a></div><div class="ttdeci">int TVMCbArgToReturn(TVMValue *value, int *code)</div><div class="ttdoc">Inplace translate callback argument value to return value. This is only needed for non-POD arguments...</div></div>
-<div class="ttc" id="namespacetvm_1_1tir_1_1attr_html_a61b1ef1047fb722a4e5ec2167c9963d7"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a61b1ef1047fb722a4e5ec2167c9963d7">tvm::tir::attr::device_id</a></div><div class="ttdeci">constexpr const char * device_id</div><div class="ttdoc">The allocation device for global malloc in host. </div><div class="ttdef"><b>Definition:</b> stmt.h:1403</div></div>
+<div class="ttc" id="namespacetvm_1_1tir_1_1attr_html_a61b1ef1047fb722a4e5ec2167c9963d7"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a61b1ef1047fb722a4e5ec2167c9963d7">tvm::tir::attr::device_id</a></div><div class="ttdeci">constexpr const char * device_id</div><div class="ttdoc">The allocation device for global malloc in host. </div><div class="ttdef"><b>Definition:</b> stmt.h:1391</div></div>
 <div class="ttc" id="c__runtime__api_8h_html_ab98d6b66089da8b33b662ccdb243b26b"><div class="ttname"><a href="c__runtime__api_8h.html#ab98d6b66089da8b33b662ccdb243b26b">TVMFuncRemoveGlobal</a></div><div class="ttdeci">int TVMFuncRemoveGlobal(const char *name)</div><div class="ttdoc">Remove a global function. </div></div>
 <div class="ttc" id="c__runtime__api_8h_html_ad3bd42da244a0e32ac82d7428e01a010"><div class="ttname"><a href="c__runtime__api_8h.html#ad3bd42da244a0e32ac82d7428e01a010">TVMFuncGetGlobal</a></div><div class="ttdeci">int TVMFuncGetGlobal(const char *name, TVMFunctionHandle *out)</div><div class="ttdoc">Get a global function. </div></div>
 <div class="ttc" id="c__runtime__api_8h_html_a190e81769e805cca153514137a66e793a463445886242b0357db59f74241ce028"><div class="ttname"><a href="c__runtime__api_8h.html#a190e81769e805cca153514137a66e793a463445886242b0357db59f74241ce028">kTVMExtEnd</a></div><div class="ttdef"><b>Definition:</b> c_runtime_api.h:191</div></div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseExpr__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1BaseExpr__inherit__graph.svg
index c1d50326d8..3e7b640d37 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseExpr__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseExpr__inherit__graph.svg
@@ -122,138 +122,126 @@
 <g id="node5" class="node">
 <title>Node6</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1FloatImm.html" target="_top" xlink:title="Managed reference class to FloatImmNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="172,-11.5 172,-112.5 326,-112.5 326,-11.5 172,-11.5"/>
-<text text-anchor="middle" x="249" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::FloatImm</text>
-<polyline fill="none" stroke="#000000" points="172,-93.5 326,-93.5 "/>
-<text text-anchor="middle" x="249" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="172,-74.5 326,-74.5 "/>
-<text text-anchor="start" x="180" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloatImm()</text>
-<text text-anchor="start" x="180" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="180" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="180" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="180" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="172,-22.5 172,-101.5 326,-101.5 326,-22.5 172,-22.5"/>
+<text text-anchor="middle" x="249" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::FloatImm</text>
+<polyline fill="none" stroke="#000000" points="172,-82.5 326,-82.5 "/>
+<text text-anchor="middle" x="249" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="172,-63.5 326,-63.5 "/>
+<text text-anchor="start" x="180" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloatImm()</text>
+<text text-anchor="start" x="180" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="180" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node6 -->
 <g id="edge4" class="edge">
 <title>Node2&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M3011.7525,-209.6886C2555.9803,-202.6567 464.5378,-168.0879 335,-124 326.6362,-121.1534 318.3855,-117.1946 310.4993,-112.6407"/>
+<path fill="none" stroke="#191970" d="M3011.7525,-209.6886C2555.9803,-202.6567 464.5378,-168.0879 335,-124 320.3634,-119.0185 306.0728,-110.6308 293.477,-101.6086"/>
 <polygon fill="none" stroke="#191970" points="3011.8401,-213.1902 3021.8928,-209.8446 3011.9478,-206.1911 3011.8401,-213.1902"/>
 </g>
 <!-- Node7 -->
 <g id="node6" class="node">
 <title>Node7</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1IntImm.html" target="_top" xlink:title="Managed reference class to IntImmNode. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="344,-11.5 344,-112.5 498,-112.5 498,-11.5 344,-11.5"/>
-<text text-anchor="middle" x="421" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
-<polyline fill="none" stroke="#ff0000" points="344,-93.5 498,-93.5 "/>
-<text text-anchor="middle" x="421" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#ff0000" points="344,-74.5 498,-74.5 "/>
-<text text-anchor="start" x="352" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
-<text text-anchor="start" x="352" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="352" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="352" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="352" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="344,-22.5 344,-101.5 498,-101.5 498,-22.5 344,-22.5"/>
+<text text-anchor="middle" x="421" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
+<polyline fill="none" stroke="#ff0000" points="344,-82.5 498,-82.5 "/>
+<text text-anchor="middle" x="421" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#ff0000" points="344,-63.5 498,-63.5 "/>
+<text text-anchor="start" x="352" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
+<text text-anchor="start" x="352" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="352" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node7 -->
 <g id="edge5" class="edge">
 <title>Node2&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M3011.9075,-209.5021C2573.8936,-201.7882 627.9496,-165.3058 507,-124 498.6392,-121.1447 490.3903,-117.1804 482.5052,-112.6235"/>
+<path fill="none" stroke="#191970" d="M3011.9075,-209.5021C2573.8936,-201.7882 627.9496,-165.3058 507,-124 492.3686,-119.0032 478.0798,-110.6103 465.4841,-101.5879"/>
 <polygon fill="none" stroke="#191970" points="3011.9122,-213.0026 3021.9721,-209.6789 3012.0352,-206.0037 3011.9122,-213.0026"/>
 </g>
 <!-- Node10 -->
 <g id="node7" class="node">
 <title>Node10</title>
 <g id="a_node7"><a xlink:href="classtvm_1_1tir_1_1Add.html" target="_top" xlink:title="Managed reference to AddNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="516,-11.5 516,-112.5 670,-112.5 670,-11.5 516,-11.5"/>
-<text text-anchor="middle" x="593" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Add</text>
-<polyline fill="none" stroke="#000000" points="516,-93.5 670,-93.5 "/>
-<text text-anchor="middle" x="593" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="516,-74.5 670,-74.5 "/>
-<text text-anchor="start" x="524" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Add()</text>
-<text text-anchor="start" x="524" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="524" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="524" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="524" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="516,-22.5 516,-101.5 670,-101.5 670,-22.5 516,-22.5"/>
+<text text-anchor="middle" x="593" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Add</text>
+<polyline fill="none" stroke="#000000" points="516,-82.5 670,-82.5 "/>
+<text text-anchor="middle" x="593" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="516,-63.5 670,-63.5 "/>
+<text text-anchor="start" x="524" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Add()</text>
+<text text-anchor="start" x="524" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="524" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node10 -->
 <g id="edge6" class="edge">
 <title>Node2&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M3011.6244,-209.2807C2591.1139,-200.826 791.3384,-162.5145 679,-124 670.6426,-121.1347 662.3958,-117.1642 654.512,-112.6037"/>
+<path fill="none" stroke="#191970" d="M3011.6244,-209.2807C2591.1139,-200.826 791.3384,-162.5145 679,-124 664.3746,-118.9858 650.0878,-110.5868 637.4921,-101.5643"/>
 <polygon fill="none" stroke="#191970" points="3011.8239,-212.7854 3021.8921,-209.4868 3011.9643,-205.7868 3011.8239,-212.7854"/>
 </g>
 <!-- Node11 -->
 <g id="node8" class="node">
 <title>Node11</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1tir_1_1And.html" target="_top" xlink:title="Managed reference to AndNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="688,-11.5 688,-112.5 842,-112.5 842,-11.5 688,-11.5"/>
-<text text-anchor="middle" x="765" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::And</text>
-<polyline fill="none" stroke="#000000" points="688,-93.5 842,-93.5 "/>
-<text text-anchor="middle" x="765" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="688,-74.5 842,-74.5 "/>
-<text text-anchor="start" x="696" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ And()</text>
-<text text-anchor="start" x="696" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="696" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="696" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="696" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="688,-22.5 688,-101.5 842,-101.5 842,-22.5 688,-22.5"/>
+<text text-anchor="middle" x="765" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::And</text>
+<polyline fill="none" stroke="#000000" points="688,-82.5 842,-82.5 "/>
+<text text-anchor="middle" x="765" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="688,-63.5 842,-63.5 "/>
+<text text-anchor="start" x="696" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ And()</text>
+<text text-anchor="start" x="696" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="696" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node11 -->
 <g id="edge7" class="edge">
 <title>Node2&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M3011.8488,-210.5986C2623.15,-208.4081 1057.7552,-195.2022 851,-124 842.6466,-121.1233 834.4022,-117.1456 826.5198,-112.581"/>
+<path fill="none" stroke="#191970" d="M3011.8488,-210.5986C2623.15,-208.4081 1057.7552,-195.2022 851,-124 836.3815,-118.9657 822.0971,-110.5599 809.5015,-101.5371"/>
 <polygon fill="none" stroke="#191970" points="3011.89,-214.0988 3021.9092,-210.6543 3011.9288,-207.0989 3011.89,-214.0988"/>
 </g>
 <!-- Node12 -->
 <g id="node9" class="node">
 <title>Node12</title>
 <g id="a_node9"><a xlink:href="classtvm_1_1tir_1_1Any.html" target="_top" xlink:title="Managed reference to AnyNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="860,-11.5 860,-112.5 1026,-112.5 1026,-11.5 860,-11.5"/>
-<text text-anchor="middle" x="943" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Any</text>
-<polyline fill="none" stroke="#000000" points="860,-93.5 1026,-93.5 "/>
-<text text-anchor="middle" x="943" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="860,-74.5 1026,-74.5 "/>
-<text text-anchor="start" x="868" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Any()</text>
-<text text-anchor="start" x="868" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="868" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="868" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="868" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="860,-22.5 860,-101.5 1026,-101.5 1026,-22.5 860,-22.5"/>
+<text text-anchor="middle" x="943" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Any</text>
+<polyline fill="none" stroke="#000000" points="860,-82.5 1026,-82.5 "/>
+<text text-anchor="middle" x="943" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="860,-63.5 1026,-63.5 "/>
+<text text-anchor="start" x="868" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Any()</text>
+<text text-anchor="start" x="868" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="868" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node12 -->
 <g id="edge8" class="edge">
 <title>Node2&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M3011.8502,-210.1196C2643.4931,-206.0202 1224.5069,-186.2887 1035,-124 1026.2171,-121.1132 1017.4935,-117.1292 1009.1156,-112.5611"/>
+<path fill="none" stroke="#191970" d="M3011.8502,-210.1196C2643.4931,-206.0202 1224.5069,-186.2887 1035,-124 1019.63,-118.9481 1004.4413,-110.5362 990.9697,-101.5132"/>
 <polygon fill="none" stroke="#191970" points="3011.8821,-213.62 3021.9201,-210.2306 3011.9593,-206.6205 3011.8821,-213.62"/>
 </g>
 <!-- Node13 -->
 <g id="node10" class="node">
 <title>Node13</title>
 <g id="a_node10"><a xlink:href="classtvm_1_1tir_1_1Broadcast.html" target="_top" xlink:title="Managed reference to BroadcastNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1044,-11.5 1044,-112.5 1198,-112.5 1198,-11.5 1044,-11.5"/>
-<text text-anchor="middle" x="1121" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Broadcast</text>
-<polyline fill="none" stroke="#000000" points="1044,-93.5 1198,-93.5 "/>
-<text text-anchor="middle" x="1121" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1044,-74.5 1198,-74.5 "/>
-<text text-anchor="start" x="1052" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Broadcast()</text>
-<text text-anchor="start" x="1052" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1052" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="1052" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1052" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1044,-22.5 1044,-101.5 1198,-101.5 1198,-22.5 1044,-22.5"/>
+<text text-anchor="middle" x="1121" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Broadcast</text>
+<polyline fill="none" stroke="#000000" points="1044,-82.5 1198,-82.5 "/>
+<text text-anchor="middle" x="1121" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1044,-63.5 1198,-63.5 "/>
+<text text-anchor="start" x="1052" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Broadcast()</text>
+<text text-anchor="start" x="1052" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1052" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node13 -->
 <g id="edge9" class="edge">
 <title>Node2&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M3011.9393,-209.9147C2663.3038,-205.1724 1378.5141,-183.7641 1207,-124 1198.6571,-121.0929 1190.4193,-117.0963 1182.5406,-112.5209"/>
+<path fill="none" stroke="#191970" d="M3011.9393,-209.9147C2663.3038,-205.1724 1378.5141,-183.7641 1207,-124 1192.5737,-118.9732 1178.4618,-110.6886 1165.9769,-101.7872"/>
 <polygon fill="none" stroke="#191970" points="3011.9325,-213.4149 3021.9788,-210.0502 3012.027,-206.4155 3011.9325,-213.4149"/>
 </g>
 <!-- Node14 -->
@@ -283,600 +271,548 @@
 <g id="node12" class="node">
 <title>Node15</title>
 <g id="a_node12"><a xlink:href="classtvm_1_1tir_1_1Call.html" target="_top" xlink:title="Managed reference to CallNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1388,-11.5 1388,-112.5 1542,-112.5 1542,-11.5 1388,-11.5"/>
-<text text-anchor="middle" x="1465" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Call</text>
-<polyline fill="none" stroke="#000000" points="1388,-93.5 1542,-93.5 "/>
-<text text-anchor="middle" x="1465" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1388,-74.5 1542,-74.5 "/>
-<text text-anchor="start" x="1396" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Call()</text>
-<text text-anchor="start" x="1396" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1396" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="1396" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1396" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1388,-22.5 1388,-101.5 1542,-101.5 1542,-22.5 1388,-22.5"/>
+<text text-anchor="middle" x="1465" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Call</text>
+<polyline fill="none" stroke="#000000" points="1388,-82.5 1542,-82.5 "/>
+<text text-anchor="middle" x="1465" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1388,-63.5 1542,-63.5 "/>
+<text text-anchor="start" x="1396" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Call()</text>
+<text text-anchor="start" x="1396" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1396" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node15 -->
 <g id="edge11" class="edge">
 <title>Node2&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M3011.6356,-208.9493C2704.9586,-201.3583 1688.6316,-172.7456 1551,-124 1542.8455,-121.1119 1534.7865,-117.1944 1527.0627,-112.723"/>
+<path fill="none" stroke="#191970" d="M3011.6356,-208.9493C2704.9586,-201.3583 1688.6316,-172.7456 1551,-124 1536.5995,-118.8997 1522.4967,-110.5893 1510.0123,-101.6865"/>
 <polygon fill="none" stroke="#191970" points="3011.7252,-212.4525 3021.8084,-209.1998 3011.8976,-205.4546 3011.7252,-212.4525"/>
 </g>
 <!-- Node16 -->
 <g id="node13" class="node">
 <title>Node16</title>
 <g id="a_node13"><a xlink:href="classtvm_1_1tir_1_1Cast.html" target="_top" xlink:title="Managed reference to CastNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1560,-11.5 1560,-112.5 1714,-112.5 1714,-11.5 1560,-11.5"/>
-<text text-anchor="middle" x="1637" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Cast</text>
-<polyline fill="none" stroke="#000000" points="1560,-93.5 1714,-93.5 "/>
-<text text-anchor="middle" x="1637" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1560,-74.5 1714,-74.5 "/>
-<text text-anchor="start" x="1568" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Cast()</text>
-<text text-anchor="start" x="1568" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1568" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="1568" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1568" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1560,-22.5 1560,-101.5 1714,-101.5 1714,-22.5 1560,-22.5"/>
+<text text-anchor="middle" x="1637" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Cast</text>
+<polyline fill="none" stroke="#000000" points="1560,-82.5 1714,-82.5 "/>
+<text text-anchor="middle" x="1637" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1560,-63.5 1714,-63.5 "/>
+<text text-anchor="start" x="1568" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Cast()</text>
+<text text-anchor="start" x="1568" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1568" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node16 -->
 <g id="edge12" class="edge">
 <title>Node2&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M3011.6686,-208.2909C2728.0057,-199.1028 1843.8302,-167.2716 1723,-124 1714.8557,-121.0834 1706.803,-117.1479 1699.083,-112.6659"/>
+<path fill="none" stroke="#191970" d="M3011.6686,-208.2909C2728.0057,-199.1028 1843.8302,-167.2716 1723,-124 1708.6174,-118.8493 1694.5209,-110.5213 1682.0369,-101.6175"/>
 <polygon fill="none" stroke="#191970" points="3011.7996,-211.7969 3021.9073,-208.6212 3012.0254,-204.8005 3011.7996,-211.7969"/>
 </g>
 <!-- Node17 -->
 <g id="node14" class="node">
 <title>Node17</title>
 <g id="a_node14"><a xlink:href="classtvm_1_1tir_1_1Div.html" target="_top" xlink:title="Managed reference to DivNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1732,-11.5 1732,-112.5 1886,-112.5 1886,-11.5 1732,-11.5"/>
-<text text-anchor="middle" x="1809" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Div</text>
-<polyline fill="none" stroke="#000000" points="1732,-93.5 1886,-93.5 "/>
-<text text-anchor="middle" x="1809" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1732,-74.5 1886,-74.5 "/>
-<text text-anchor="start" x="1740" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Div()</text>
-<text text-anchor="start" x="1740" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1740" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="1740" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1740" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1732,-22.5 1732,-101.5 1886,-101.5 1886,-22.5 1732,-22.5"/>
+<text text-anchor="middle" x="1809" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Div</text>
+<polyline fill="none" stroke="#000000" points="1732,-82.5 1886,-82.5 "/>
+<text text-anchor="middle" x="1809" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1732,-63.5 1886,-63.5 "/>
+<text text-anchor="start" x="1740" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Div()</text>
+<text text-anchor="start" x="1740" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1740" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node17 -->
 <g id="edge13" class="edge">
 <title>Node2&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M3011.6742,-207.4451C2752.4806,-196.5097 1999.1179,-161.8155 1895,-124 1886.8689,-121.0468 1878.8246,-117.0881 1871.1094,-112.5928"/>
+<path fill="none" stroke="#191970" d="M3011.6742,-207.4451C2752.4806,-196.5097 1999.1179,-161.8155 1895,-124 1880.6407,-118.7847 1866.5524,-110.4339 1854.0688,-101.529"/>
 <polygon fill="none" stroke="#191970" points="3011.6569,-210.9473 3021.7952,-207.8706 3011.951,-203.9535 3011.6569,-210.9473"/>
 </g>
 <!-- Node18 -->
 <g id="node15" class="node">
 <title>Node18</title>
 <g id="a_node15"><a xlink:href="classtvm_1_1tir_1_1EQ.html" target="_top" xlink:title="Managed reference to EQNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1904,-11.5 1904,-112.5 2058,-112.5 2058,-11.5 1904,-11.5"/>
-<text text-anchor="middle" x="1981" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::EQ</text>
-<polyline fill="none" stroke="#000000" points="1904,-93.5 2058,-93.5 "/>
-<text text-anchor="middle" x="1981" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1904,-74.5 2058,-74.5 "/>
-<text text-anchor="start" x="1912" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EQ()</text>
-<text text-anchor="start" x="1912" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1912" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="1912" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1912" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1904,-22.5 1904,-101.5 2058,-101.5 2058,-22.5 1904,-22.5"/>
+<text text-anchor="middle" x="1981" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::EQ</text>
+<polyline fill="none" stroke="#000000" points="1904,-82.5 2058,-82.5 "/>
+<text text-anchor="middle" x="1981" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1904,-63.5 2058,-63.5 "/>
+<text text-anchor="start" x="1912" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EQ()</text>
+<text text-anchor="start" x="1912" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1912" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node18 -->
 <g id="edge14" class="edge">
 <title>Node2&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M3011.8454,-209.6075C2795.6102,-205.2061 2239.5315,-187.8346 2067,-124 2059.0593,-121.062 2051.1955,-117.1781 2043.6375,-112.7829"/>
+<path fill="none" stroke="#191970" d="M3011.8454,-209.6075C2795.6102,-205.2061 2239.5315,-187.8346 2067,-124 2052.8448,-118.7628 2038.9342,-110.5194 2026.5638,-101.7331"/>
 <polygon fill="none" stroke="#191970" points="3011.8148,-213.1075 3021.8826,-209.8074 3011.9543,-206.1089 3011.8148,-213.1075"/>
 </g>
 <!-- Node19 -->
 <g id="node16" class="node">
 <title>Node19</title>
 <g id="a_node16"><a xlink:href="classtvm_1_1tir_1_1FloorDiv.html" target="_top" xlink:title="Managed reference to FloorDivNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2076,-11.5 2076,-112.5 2230,-112.5 2230,-11.5 2076,-11.5"/>
-<text text-anchor="middle" x="2153" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::FloorDiv</text>
-<polyline fill="none" stroke="#000000" points="2076,-93.5 2230,-93.5 "/>
-<text text-anchor="middle" x="2153" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2076,-74.5 2230,-74.5 "/>
-<text text-anchor="start" x="2084" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloorDiv()</text>
-<text text-anchor="start" x="2084" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2084" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2084" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2084" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2076,-22.5 2076,-101.5 2230,-101.5 2230,-22.5 2076,-22.5"/>
+<text text-anchor="middle" x="2153" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::FloorDiv</text>
+<polyline fill="none" stroke="#000000" points="2076,-82.5 2230,-82.5 "/>
+<text text-anchor="middle" x="2153" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2076,-63.5 2230,-63.5 "/>
+<text text-anchor="start" x="2084" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloorDiv()</text>
+<text text-anchor="start" x="2084" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2084" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node19 -->
 <g id="edge15" class="edge">
 <title>Node2&#45;&gt;Node19</title>
-<path fill="none" stroke="#191970" d="M3011.7934,-207.8997C2822.3115,-200.2417 2378.8348,-177.0701 2239,-124 2231.0841,-120.9958 2223.2363,-117.0693 2215.6876,-112.6492"/>
+<path fill="none" stroke="#191970" d="M3011.7934,-207.8997C2822.3115,-200.2417 2378.8348,-177.0701 2239,-124 2224.8891,-118.6446 2210.9944,-110.3588 2198.6251,-101.5694"/>
 <polygon fill="none" stroke="#191970" points="3011.859,-211.405 3021.9907,-208.3067 3012.1382,-204.4105 3011.859,-211.405"/>
 </g>
 <!-- Node20 -->
 <g id="node17" class="node">
 <title>Node20</title>
 <g id="a_node17"><a xlink:href="classtvm_1_1tir_1_1FloorMod.html" target="_top" xlink:title="Managed reference to FloorModNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2248,-11.5 2248,-112.5 2402,-112.5 2402,-11.5 2248,-11.5"/>
-<text text-anchor="middle" x="2325" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::FloorMod</text>
-<polyline fill="none" stroke="#000000" points="2248,-93.5 2402,-93.5 "/>
-<text text-anchor="middle" x="2325" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2248,-74.5 2402,-74.5 "/>
-<text text-anchor="start" x="2256" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloorMod()</text>
-<text text-anchor="start" x="2256" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2256" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2256" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2256" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2248,-22.5 2248,-101.5 2402,-101.5 2402,-22.5 2248,-22.5"/>
+<text text-anchor="middle" x="2325" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::FloorMod</text>
+<polyline fill="none" stroke="#000000" points="2248,-82.5 2402,-82.5 "/>
+<text text-anchor="middle" x="2325" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2248,-63.5 2402,-63.5 "/>
+<text text-anchor="start" x="2256" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloorMod()</text>
+<text text-anchor="start" x="2256" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2256" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node20 -->
 <g id="edge16" class="edge">
 <title>Node2&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M3011.442,-205.3325C2851.4619,-194.0901 2518.4893,-166.3368 2411,-124 2403.2935,-120.9646 2395.639,-117.0807 2388.2563,-112.7402"/>
+<path fill="none" stroke="#191970" d="M3011.442,-205.3325C2851.4619,-194.0901 2518.4893,-166.3368 2411,-124 2397.1283,-118.5364 2383.4251,-110.3232 2371.1725,-101.6474"/>
 <polygon fill="none" stroke="#191970" points="3011.5061,-208.8454 3021.7252,-206.0491 3011.9928,-201.8623 3011.5061,-208.8454"/>
 </g>
 <!-- Node21 -->
 <g id="node18" class="node">
 <title>Node21</title>
 <g id="a_node18"><a xlink:href="classtvm_1_1tir_1_1GE.html" target="_top" xlink:title="Managed reference to GENode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2420,-11.5 2420,-112.5 2574,-112.5 2574,-11.5 2420,-11.5"/>
-<text text-anchor="middle" x="2497" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::GE</text>
-<polyline fill="none" stroke="#000000" points="2420,-93.5 2574,-93.5 "/>
-<text text-anchor="middle" x="2497" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2420,-74.5 2574,-74.5 "/>
-<text text-anchor="start" x="2428" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GE()</text>
-<text text-anchor="start" x="2428" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2428" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2428" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2428" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2420,-22.5 2420,-101.5 2574,-101.5 2574,-22.5 2420,-22.5"/>
+<text text-anchor="middle" x="2497" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::GE</text>
+<polyline fill="none" stroke="#000000" points="2420,-82.5 2574,-82.5 "/>
+<text text-anchor="middle" x="2497" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2420,-63.5 2574,-63.5 "/>
+<text text-anchor="start" x="2428" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GE()</text>
+<text text-anchor="start" x="2428" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2428" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node21 -->
 <g id="edge17" class="edge">
 <title>Node2&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M3011.8179,-201.1602C2885.6336,-186.0977 2658.8999,-155.7179 2583,-124 2575.5276,-120.8773 2568.0833,-116.9965 2560.8781,-112.7105"/>
+<path fill="none" stroke="#191970" d="M3011.8179,-201.1602C2885.6336,-186.0977 2658.8999,-155.7179 2583,-124 2569.4138,-118.3224 2555.9205,-110.1386 2543.7888,-101.5695"/>
 <polygon fill="none" stroke="#191970" points="3011.5005,-204.6471 3021.8434,-202.35 3012.3255,-197.6958 3011.5005,-204.6471"/>
 </g>
 <!-- Node22 -->
 <g id="node19" class="node">
 <title>Node22</title>
 <g id="a_node19"><a xlink:href="classtvm_1_1tir_1_1GT.html" target="_top" xlink:title="Managed reference to GTNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2592,-11.5 2592,-112.5 2746,-112.5 2746,-11.5 2592,-11.5"/>
-<text text-anchor="middle" x="2669" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::GT</text>
-<polyline fill="none" stroke="#000000" points="2592,-93.5 2746,-93.5 "/>
-<text text-anchor="middle" x="2669" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2592,-74.5 2746,-74.5 "/>
-<text text-anchor="start" x="2600" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GT()</text>
-<text text-anchor="start" x="2600" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2600" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2600" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2600" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2592,-22.5 2592,-101.5 2746,-101.5 2746,-22.5 2592,-22.5"/>
+<text text-anchor="middle" x="2669" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::GT</text>
+<polyline fill="none" stroke="#000000" points="2592,-82.5 2746,-82.5 "/>
+<text text-anchor="middle" x="2669" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2592,-63.5 2746,-63.5 "/>
+<text text-anchor="start" x="2600" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GT()</text>
+<text text-anchor="start" x="2600" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2600" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node22 -->
 <g id="edge18" class="edge">
 <title>Node2&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M3011.8505,-198.3094C2940.4087,-185.7375 2837.9232,-162.6518 2755,-124 2747.9932,-120.734 2740.9707,-116.8709 2734.1263,-112.6944"/>
+<path fill="none" stroke="#191970" d="M3011.8505,-198.3094C2940.4087,-185.7375 2837.9232,-162.6518 2755,-124 2742.1543,-118.0124 2729.2557,-110.0176 2717.4982,-101.7648"/>
 <polygon fill="none" stroke="#191970" points="3011.2701,-201.7609 3021.7199,-200.0142 3012.4616,-194.8631 3011.2701,-201.7609"/>
 </g>
 <!-- Node23 -->
 <g id="node20" class="node">
 <title>Node23</title>
 <g id="a_node20"><a xlink:href="classtvm_1_1tir_1_1LE.html" target="_top" xlink:title="Managed reference to LENode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2764,-11.5 2764,-112.5 2918,-112.5 2918,-11.5 2764,-11.5"/>
-<text text-anchor="middle" x="2841" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LE</text>
-<polyline fill="none" stroke="#000000" points="2764,-93.5 2918,-93.5 "/>
-<text text-anchor="middle" x="2841" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2764,-74.5 2918,-74.5 "/>
-<text text-anchor="start" x="2772" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LE()</text>
-<text text-anchor="start" x="2772" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2772" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2772" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2772" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2764,-22.5 2764,-101.5 2918,-101.5 2918,-22.5 2764,-22.5"/>
+<text text-anchor="middle" x="2841" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LE</text>
+<polyline fill="none" stroke="#000000" points="2764,-82.5 2918,-82.5 "/>
+<text text-anchor="middle" x="2841" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2764,-63.5 2918,-63.5 "/>
+<text text-anchor="start" x="2772" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LE()</text>
+<text text-anchor="start" x="2772" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2772" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node23 -->
 <g id="edge19" class="edge">
 <title>Node2&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M3012.5182,-170.5589C2984.7107,-156.6871 2954.0994,-140.4832 2927,-124 2921.1815,-120.4609 2915.2485,-116.6498 2909.3556,-112.719"/>
+<path fill="none" stroke="#191970" d="M3012.5182,-170.5589C2984.7107,-156.6871 2954.0994,-140.4832 2927,-124 2915.8349,-117.2088 2904.2478,-109.4156 2893.3317,-101.6986"/>
 <polygon fill="none" stroke="#191970" points="3011.3173,-173.8698 3021.832,-175.1709 3014.4237,-167.5968 3011.3173,-173.8698"/>
 </g>
 <!-- Node24 -->
 <g id="node21" class="node">
 <title>Node24</title>
 <g id="a_node21"><a xlink:href="classtvm_1_1tir_1_1Let.html" target="_top" xlink:title="Managed reference to LetNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2936,-11.5 2936,-112.5 3090,-112.5 3090,-11.5 2936,-11.5"/>
-<text text-anchor="middle" x="3013" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Let</text>
-<polyline fill="none" stroke="#000000" points="2936,-93.5 3090,-93.5 "/>
-<text text-anchor="middle" x="3013" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2936,-74.5 3090,-74.5 "/>
-<text text-anchor="start" x="2944" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Let()</text>
-<text text-anchor="start" x="2944" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2944" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2944" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2944" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2936,-22.5 2936,-101.5 3090,-101.5 3090,-22.5 2936,-22.5"/>
+<text text-anchor="middle" x="3013" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Let</text>
+<polyline fill="none" stroke="#000000" points="2936,-82.5 3090,-82.5 "/>
+<text text-anchor="middle" x="3013" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2936,-63.5 3090,-63.5 "/>
+<text text-anchor="start" x="2944" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Let()</text>
+<text text-anchor="start" x="2944" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2944" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node24 -->
 <g id="edge20" class="edge">
 <title>Node2&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M3064.5833,-151.371C3057.1748,-138.5354 3049.412,-125.0858 3042.2235,-112.6314"/>
+<path fill="none" stroke="#191970" d="M3064.4047,-151.0617C3054.8441,-134.4973 3044.7066,-116.9336 3035.9837,-101.8207"/>
 <polygon fill="none" stroke="#191970" points="3061.6139,-153.2281 3069.6442,-160.1394 3067.6766,-149.7289 3061.6139,-153.2281"/>
 </g>
 <!-- Node25 -->
 <g id="node22" class="node">
 <title>Node25</title>
 <g id="a_node22"><a xlink:href="classtvm_1_1tir_1_1Load.html" target="_top" xlink:title="Managed reference to LoadNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3108,-11.5 3108,-112.5 3262,-112.5 3262,-11.5 3108,-11.5"/>
-<text text-anchor="middle" x="3185" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Load</text>
-<polyline fill="none" stroke="#000000" points="3108,-93.5 3262,-93.5 "/>
-<text text-anchor="middle" x="3185" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3108,-74.5 3262,-74.5 "/>
-<text text-anchor="start" x="3116" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Load()</text>
-<text text-anchor="start" x="3116" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3116" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3116" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3116" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3108,-22.5 3108,-101.5 3262,-101.5 3262,-22.5 3108,-22.5"/>
+<text text-anchor="middle" x="3185" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Load</text>
+<polyline fill="none" stroke="#000000" points="3108,-82.5 3262,-82.5 "/>
+<text text-anchor="middle" x="3185" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3108,-63.5 3262,-63.5 "/>
+<text text-anchor="start" x="3116" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Load()</text>
+<text text-anchor="start" x="3116" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3116" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node25 -->
 <g id="edge21" class="edge">
 <title>Node2&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M3133.4167,-151.371C3140.8252,-138.5354 3148.588,-125.0858 3155.7765,-112.6314"/>
+<path fill="none" stroke="#191970" d="M3133.5953,-151.0617C3143.1559,-134.4973 3153.2934,-116.9336 3162.0163,-101.8207"/>
 <polygon fill="none" stroke="#191970" points="3130.3234,-149.7289 3128.3558,-160.1394 3136.3861,-153.2281 3130.3234,-149.7289"/>
 </g>
 <!-- Node26 -->
 <g id="node23" class="node">
 <title>Node26</title>
 <g id="a_node23"><a xlink:href="classtvm_1_1tir_1_1LT.html" target="_top" xlink:title="Managed reference to LTNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3280,-11.5 3280,-112.5 3434,-112.5 3434,-11.5 3280,-11.5"/>
-<text text-anchor="middle" x="3357" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LT</text>
-<polyline fill="none" stroke="#000000" points="3280,-93.5 3434,-93.5 "/>
-<text text-anchor="middle" x="3357" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3280,-74.5 3434,-74.5 "/>
-<text text-anchor="start" x="3288" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LT()</text>
-<text text-anchor="start" x="3288" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3288" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3288" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3288" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3280,-22.5 3280,-101.5 3434,-101.5 3434,-22.5 3280,-22.5"/>
+<text text-anchor="middle" x="3357" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LT</text>
+<polyline fill="none" stroke="#000000" points="3280,-82.5 3434,-82.5 "/>
+<text text-anchor="middle" x="3357" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3280,-63.5 3434,-63.5 "/>
+<text text-anchor="start" x="3288" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LT()</text>
+<text text-anchor="start" x="3288" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3288" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node26 -->
 <g id="edge22" class="edge">
 <title>Node2&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M3185.4818,-170.5589C3213.2893,-156.6871 3243.9006,-140.4832 3271,-124 3276.8185,-120.4609 3282.7515,-116.6498 3288.6444,-112.719"/>
+<path fill="none" stroke="#191970" d="M3185.4818,-170.5589C3213.2893,-156.6871 3243.9006,-140.4832 3271,-124 3282.1651,-117.2088 3293.7522,-109.4156 3304.6683,-101.6986"/>
 <polygon fill="none" stroke="#191970" points="3183.5763,-167.5968 3176.168,-175.1709 3186.6827,-173.8698 3183.5763,-167.5968"/>
 </g>
 <!-- Node27 -->
 <g id="node24" class="node">
 <title>Node27</title>
 <g id="a_node24"><a xlink:href="classtvm_1_1tir_1_1Max.html" target="_top" xlink:title="Managed reference to MaxNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3452,-11.5 3452,-112.5 3606,-112.5 3606,-11.5 3452,-11.5"/>
-<text text-anchor="middle" x="3529" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Max</text>
-<polyline fill="none" stroke="#000000" points="3452,-93.5 3606,-93.5 "/>
-<text text-anchor="middle" x="3529" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3452,-74.5 3606,-74.5 "/>
-<text text-anchor="start" x="3460" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Max()</text>
-<text text-anchor="start" x="3460" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3460" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3460" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3460" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3452,-22.5 3452,-101.5 3606,-101.5 3606,-22.5 3452,-22.5"/>
+<text text-anchor="middle" x="3529" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Max</text>
+<polyline fill="none" stroke="#000000" points="3452,-82.5 3606,-82.5 "/>
+<text text-anchor="middle" x="3529" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3452,-63.5 3606,-63.5 "/>
+<text text-anchor="start" x="3460" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Max()</text>
+<text text-anchor="start" x="3460" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3460" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node27 -->
 <g id="edge23" class="edge">
 <title>Node2&#45;&gt;Node27</title>
-<path fill="none" stroke="#191970" d="M3186.1495,-198.3094C3257.5913,-185.7375 3360.0768,-162.6518 3443,-124 3450.0068,-120.734 3457.0293,-116.8709 3463.8737,-112.6944"/>
+<path fill="none" stroke="#191970" d="M3186.1495,-198.3094C3257.5913,-185.7375 3360.0768,-162.6518 3443,-124 3455.8457,-118.0124 3468.7443,-110.0176 3480.5018,-101.7648"/>
 <polygon fill="none" stroke="#191970" points="3185.5384,-194.8631 3176.2801,-200.0142 3186.7299,-201.7609 3185.5384,-194.8631"/>
 </g>
 <!-- Node28 -->
 <g id="node25" class="node">
 <title>Node28</title>
 <g id="a_node25"><a xlink:href="classtvm_1_1tir_1_1Min.html" target="_top" xlink:title="Managed reference to MinNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3624,-11.5 3624,-112.5 3778,-112.5 3778,-11.5 3624,-11.5"/>
-<text text-anchor="middle" x="3701" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Min</text>
-<polyline fill="none" stroke="#000000" points="3624,-93.5 3778,-93.5 "/>
-<text text-anchor="middle" x="3701" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3624,-74.5 3778,-74.5 "/>
-<text text-anchor="start" x="3632" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Min()</text>
-<text text-anchor="start" x="3632" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3632" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3632" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3632" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3624,-22.5 3624,-101.5 3778,-101.5 3778,-22.5 3624,-22.5"/>
+<text text-anchor="middle" x="3701" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Min</text>
+<polyline fill="none" stroke="#000000" points="3624,-82.5 3778,-82.5 "/>
+<text text-anchor="middle" x="3701" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3624,-63.5 3778,-63.5 "/>
+<text text-anchor="start" x="3632" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Min()</text>
+<text text-anchor="start" x="3632" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3632" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node28 -->
 <g id="edge24" class="edge">
 <title>Node2&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M3186.1821,-201.1602C3312.3664,-186.0977 3539.1001,-155.7179 3615,-124 3622.4724,-120.8773 3629.9167,-116.9965 3637.1219,-112.7105"/>
+<path fill="none" stroke="#191970" d="M3186.1821,-201.1602C3312.3664,-186.0977 3539.1001,-155.7179 3615,-124 3628.5862,-118.3224 3642.0795,-110.1386 3654.2112,-101.5695"/>
 <polygon fill="none" stroke="#191970" points="3185.6745,-197.6958 3176.1566,-202.35 3186.4995,-204.6471 3185.6745,-197.6958"/>
 </g>
 <!-- Node29 -->
 <g id="node26" class="node">
 <title>Node29</title>
 <g id="a_node26"><a xlink:href="classtvm_1_1tir_1_1Mod.html" target="_top" xlink:title="Managed reference to ModNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3796,-11.5 3796,-112.5 3950,-112.5 3950,-11.5 3796,-11.5"/>
-<text text-anchor="middle" x="3873" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Mod</text>
-<polyline fill="none" stroke="#000000" points="3796,-93.5 3950,-93.5 "/>
-<text text-anchor="middle" x="3873" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3796,-74.5 3950,-74.5 "/>
-<text text-anchor="start" x="3804" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Mod()</text>
-<text text-anchor="start" x="3804" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3804" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3804" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3804" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3796,-22.5 3796,-101.5 3950,-101.5 3950,-22.5 3796,-22.5"/>
+<text text-anchor="middle" x="3873" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Mod</text>
+<polyline fill="none" stroke="#000000" points="3796,-82.5 3950,-82.5 "/>
+<text text-anchor="middle" x="3873" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3796,-63.5 3950,-63.5 "/>
+<text text-anchor="start" x="3804" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Mod()</text>
+<text text-anchor="start" x="3804" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3804" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node29 -->
 <g id="edge25" class="edge">
 <title>Node2&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M3186.558,-205.3325C3346.5381,-194.0901 3679.5107,-166.3368 3787,-124 3794.7065,-120.9646 3802.361,-117.0807 3809.7437,-112.7402"/>
+<path fill="none" stroke="#191970" d="M3186.558,-205.3325C3346.5381,-194.0901 3679.5107,-166.3368 3787,-124 3800.8717,-118.5364 3814.5749,-110.3232 3826.8275,-101.6474"/>
 <polygon fill="none" stroke="#191970" points="3186.0072,-201.8623 3176.2748,-206.0491 3186.4939,-208.8454 3186.0072,-201.8623"/>
 </g>
 <!-- Node30 -->
 <g id="node27" class="node">
 <title>Node30</title>
 <g id="a_node27"><a xlink:href="classtvm_1_1tir_1_1Mul.html" target="_top" xlink:title="Managed reference to MulNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3968,-11.5 3968,-112.5 4122,-112.5 4122,-11.5 3968,-11.5"/>
-<text text-anchor="middle" x="4045" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Mul</text>
-<polyline fill="none" stroke="#000000" points="3968,-93.5 4122,-93.5 "/>
-<text text-anchor="middle" x="4045" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3968,-74.5 4122,-74.5 "/>
-<text text-anchor="start" x="3976" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Mul()</text>
-<text text-anchor="start" x="3976" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3976" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3976" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3976" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3968,-22.5 3968,-101.5 4122,-101.5 4122,-22.5 3968,-22.5"/>
+<text text-anchor="middle" x="4045" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Mul</text>
+<polyline fill="none" stroke="#000000" points="3968,-82.5 4122,-82.5 "/>
+<text text-anchor="middle" x="4045" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3968,-63.5 4122,-63.5 "/>
+<text text-anchor="start" x="3976" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Mul()</text>
+<text text-anchor="start" x="3976" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3976" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node30 -->
 <g id="edge26" class="edge">
 <title>Node2&#45;&gt;Node30</title>
-<path fill="none" stroke="#191970" d="M3186.2066,-207.8997C3375.6885,-200.2417 3819.1652,-177.0701 3959,-124 3966.9159,-120.9958 3974.7637,-117.0693 3982.3124,-112.6492"/>
+<path fill="none" stroke="#191970" d="M3186.2066,-207.8997C3375.6885,-200.2417 3819.1652,-177.0701 3959,-124 3973.1109,-118.6446 3987.0056,-110.3588 3999.3749,-101.5694"/>
 <polygon fill="none" stroke="#191970" points="3185.8618,-204.4105 3176.0093,-208.3067 3186.141,-211.405 3185.8618,-204.4105"/>
 </g>
 <!-- Node31 -->
 <g id="node28" class="node">
 <title>Node31</title>
 <g id="a_node28"><a xlink:href="classtvm_1_1tir_1_1NE.html" target="_top" xlink:title="Managed reference to NENode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4140,-11.5 4140,-112.5 4294,-112.5 4294,-11.5 4140,-11.5"/>
-<text text-anchor="middle" x="4217" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::NE</text>
-<polyline fill="none" stroke="#000000" points="4140,-93.5 4294,-93.5 "/>
-<text text-anchor="middle" x="4217" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4140,-74.5 4294,-74.5 "/>
-<text text-anchor="start" x="4148" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NE()</text>
-<text text-anchor="start" x="4148" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4148" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4148" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4148" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4140,-22.5 4140,-101.5 4294,-101.5 4294,-22.5 4140,-22.5"/>
+<text text-anchor="middle" x="4217" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::NE</text>
+<polyline fill="none" stroke="#000000" points="4140,-82.5 4294,-82.5 "/>
+<text text-anchor="middle" x="4217" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4140,-63.5 4294,-63.5 "/>
+<text text-anchor="start" x="4148" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NE()</text>
+<text text-anchor="start" x="4148" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4148" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node31 -->
 <g id="edge27" class="edge">
 <title>Node2&#45;&gt;Node31</title>
-<path fill="none" stroke="#191970" d="M3186.1546,-209.6075C3402.3898,-205.2061 3958.4685,-187.8346 4131,-124 4138.9407,-121.062 4146.8045,-117.1781 4154.3625,-112.7829"/>
+<path fill="none" stroke="#191970" d="M3186.1546,-209.6075C3402.3898,-205.2061 3958.4685,-187.8346 4131,-124 4145.1552,-118.7628 4159.0658,-110.5194 4171.4362,-101.7331"/>
 <polygon fill="none" stroke="#191970" points="3186.0457,-206.1089 3176.1174,-209.8074 3186.1852,-213.1075 3186.0457,-206.1089"/>
 </g>
 <!-- Node32 -->
 <g id="node29" class="node">
 <title>Node32</title>
 <g id="a_node29"><a xlink:href="classtvm_1_1tir_1_1Not.html" target="_top" xlink:title="Managed reference to NotNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4312,-11.5 4312,-112.5 4466,-112.5 4466,-11.5 4312,-11.5"/>
-<text text-anchor="middle" x="4389" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Not</text>
-<polyline fill="none" stroke="#000000" points="4312,-93.5 4466,-93.5 "/>
-<text text-anchor="middle" x="4389" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4312,-74.5 4466,-74.5 "/>
-<text text-anchor="start" x="4320" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Not()</text>
-<text text-anchor="start" x="4320" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4320" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4320" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4320" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4312,-22.5 4312,-101.5 4466,-101.5 4466,-22.5 4312,-22.5"/>
+<text text-anchor="middle" x="4389" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Not</text>
+<polyline fill="none" stroke="#000000" points="4312,-82.5 4466,-82.5 "/>
+<text text-anchor="middle" x="4389" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4312,-63.5 4466,-63.5 "/>
+<text text-anchor="start" x="4320" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Not()</text>
+<text text-anchor="start" x="4320" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4320" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node32 -->
 <g id="edge28" class="edge">
 <title>Node2&#45;&gt;Node32</title>
-<path fill="none" stroke="#191970" d="M3186.3258,-207.4451C3445.5194,-196.5097 4198.8821,-161.8155 4303,-124 4311.1311,-121.0468 4319.1754,-117.0881 4326.8906,-112.5928"/>
+<path fill="none" stroke="#191970" d="M3186.3258,-207.4451C3445.5194,-196.5097 4198.8821,-161.8155 4303,-124 4317.3593,-118.7847 4331.4476,-110.4339 4343.9312,-101.529"/>
 <polygon fill="none" stroke="#191970" points="3186.049,-203.9535 3176.2048,-207.8706 3186.3431,-210.9473 3186.049,-203.9535"/>
 </g>
 <!-- Node33 -->
 <g id="node30" class="node">
 <title>Node33</title>
 <g id="a_node30"><a xlink:href="classtvm_1_1tir_1_1Or.html" target="_top" xlink:title="Managed reference to OrNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4484,-11.5 4484,-112.5 4638,-112.5 4638,-11.5 4484,-11.5"/>
-<text text-anchor="middle" x="4561" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Or</text>
-<polyline fill="none" stroke="#000000" points="4484,-93.5 4638,-93.5 "/>
-<text text-anchor="middle" x="4561" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4484,-74.5 4638,-74.5 "/>
-<text text-anchor="start" x="4492" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Or()</text>
-<text text-anchor="start" x="4492" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4492" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4492" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4492" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4484,-22.5 4484,-101.5 4638,-101.5 4638,-22.5 4484,-22.5"/>
+<text text-anchor="middle" x="4561" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Or</text>
+<polyline fill="none" stroke="#000000" points="4484,-82.5 4638,-82.5 "/>
+<text text-anchor="middle" x="4561" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4484,-63.5 4638,-63.5 "/>
+<text text-anchor="start" x="4492" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Or()</text>
+<text text-anchor="start" x="4492" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4492" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node33 -->
 <g id="edge29" class="edge">
 <title>Node2&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M3186.3314,-208.2909C3469.9943,-199.1028 4354.1698,-167.2716 4475,-124 4483.1443,-121.0834 4491.197,-117.1479 4498.917,-112.6659"/>
+<path fill="none" stroke="#191970" d="M3186.3314,-208.2909C3469.9943,-199.1028 4354.1698,-167.2716 4475,-124 4489.3826,-118.8493 4503.4791,-110.5213 4515.9631,-101.6175"/>
 <polygon fill="none" stroke="#191970" points="3185.9746,-204.8005 3176.0927,-208.6212 3186.2004,-211.7969 3185.9746,-204.8005"/>
 </g>
 <!-- Node34 -->
 <g id="node31" class="node">
 <title>Node34</title>
 <g id="a_node31"><a xlink:href="classtvm_1_1tir_1_1ProducerLoad.html" target="_top" xlink:title="Managed reference to ProducerLoadNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4656,-11.5 4656,-112.5 4810,-112.5 4810,-11.5 4656,-11.5"/>
-<text text-anchor="middle" x="4733" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::ProducerLoad</text>
-<polyline fill="none" stroke="#000000" points="4656,-93.5 4810,-93.5 "/>
-<text text-anchor="middle" x="4733" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4656,-74.5 4810,-74.5 "/>
-<text text-anchor="start" x="4664" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ProducerLoad()</text>
-<text text-anchor="start" x="4664" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4664" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4664" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4664" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4656,-22.5 4656,-101.5 4810,-101.5 4810,-22.5 4656,-22.5"/>
+<text text-anchor="middle" x="4733" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::ProducerLoad</text>
+<polyline fill="none" stroke="#000000" points="4656,-82.5 4810,-82.5 "/>
+<text text-anchor="middle" x="4733" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4656,-63.5 4810,-63.5 "/>
+<text text-anchor="start" x="4664" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ProducerLoad()</text>
+<text text-anchor="start" x="4664" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4664" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node34 -->
 <g id="edge30" class="edge">
 <title>Node2&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M3186.3644,-208.9493C3493.0414,-201.3583 4509.3684,-172.7456 4647,-124 4655.1545,-121.1119 4663.2135,-117.1944 4670.9373,-112.723"/>
+<path fill="none" stroke="#191970" d="M3186.3644,-208.9493C3493.0414,-201.3583 4509.3684,-172.7456 4647,-124 4661.4005,-118.8997 4675.5033,-110.5893 4687.9877,-101.6865"/>
 <polygon fill="none" stroke="#191970" points="3186.1024,-205.4546 3176.1916,-209.1998 3186.2748,-212.4525 3186.1024,-205.4546"/>
 </g>
 <!-- Node35 -->
 <g id="node32" class="node">
 <title>Node35</title>
 <g id="a_node32"><a xlink:href="classtvm_1_1tir_1_1Ramp.html" target="_top" xlink:title="Managed reference to RampNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4828,-11.5 4828,-112.5 4982,-112.5 4982,-11.5 4828,-11.5"/>
-<text text-anchor="middle" x="4905" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Ramp</text>
-<polyline fill="none" stroke="#000000" points="4828,-93.5 4982,-93.5 "/>
-<text text-anchor="middle" x="4905" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4828,-74.5 4982,-74.5 "/>
-<text text-anchor="start" x="4836" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Ramp()</text>
-<text text-anchor="start" x="4836" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4836" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4836" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4836" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4828,-22.5 4828,-101.5 4982,-101.5 4982,-22.5 4828,-22.5"/>
+<text text-anchor="middle" x="4905" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Ramp</text>
+<polyline fill="none" stroke="#000000" points="4828,-82.5 4982,-82.5 "/>
+<text text-anchor="middle" x="4905" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4828,-63.5 4982,-63.5 "/>
+<text text-anchor="start" x="4836" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Ramp()</text>
+<text text-anchor="start" x="4836" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4836" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node35 -->
 <g id="edge31" class="edge">
 <title>Node2&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M3186.4586,-209.4759C3514.9929,-203.355 4664.4996,-178.2333 4819,-124 4827.1626,-121.1347 4835.2267,-117.2318 4842.9534,-112.7687"/>
+<path fill="none" stroke="#191970" d="M3186.4586,-209.4759C3514.9929,-203.355 4664.4996,-178.2333 4819,-124 4833.4147,-118.9401 4847.5225,-110.6439 4860.0072,-101.7419"/>
 <polygon fill="none" stroke="#191970" points="3185.9823,-205.9841 3176.0488,-209.6686 3186.1119,-212.9829 3185.9823,-205.9841"/>
 </g>
 <!-- Node36 -->
 <g id="node33" class="node">
 <title>Node36</title>
 <g id="a_node33"><a xlink:href="classtvm_1_1tir_1_1Reduce.html" target="_top" xlink:title="Managed reference to ReduceNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5000,-11.5 5000,-112.5 5154,-112.5 5154,-11.5 5000,-11.5"/>
-<text text-anchor="middle" x="5077" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Reduce</text>
-<polyline fill="none" stroke="#000000" points="5000,-93.5 5154,-93.5 "/>
-<text text-anchor="middle" x="5077" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5000,-74.5 5154,-74.5 "/>
-<text text-anchor="start" x="5008" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Reduce()</text>
-<text text-anchor="start" x="5008" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5008" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5008" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5008" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5000,-22.5 5000,-101.5 5154,-101.5 5154,-22.5 5000,-22.5"/>
+<text text-anchor="middle" x="5077" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Reduce</text>
+<polyline fill="none" stroke="#000000" points="5000,-82.5 5154,-82.5 "/>
+<text text-anchor="middle" x="5077" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5000,-63.5 5154,-63.5 "/>
+<text text-anchor="start" x="5008" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Reduce()</text>
+<text text-anchor="start" x="5008" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5008" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node36 -->
 <g id="edge32" class="edge">
 <title>Node2&#45;&gt;Node36</title>
-<path fill="none" stroke="#191970" d="M3186.0607,-209.9147C3534.6962,-205.1724 4819.4859,-183.7641 4991,-124 4999.3429,-121.0929 5007.5807,-117.0963 5015.4594,-112.5209"/>
+<path fill="none" stroke="#191970" d="M3186.0607,-209.9147C3534.6962,-205.1724 4819.4859,-183.7641 4991,-124 5005.4263,-118.9732 5019.5382,-110.6886 5032.0231,-101.7872"/>
 <polygon fill="none" stroke="#191970" points="3185.973,-206.4155 3176.0212,-210.0502 3186.0675,-213.4149 3185.973,-206.4155"/>
 </g>
 <!-- Node37 -->
 <g id="node34" class="node">
 <title>Node37</title>
 <g id="a_node34"><a xlink:href="classtvm_1_1tir_1_1Select.html" target="_top" xlink:title="Managed reference to SelectNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5172,-11.5 5172,-112.5 5326,-112.5 5326,-11.5 5172,-11.5"/>
-<text text-anchor="middle" x="5249" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Select</text>
-<polyline fill="none" stroke="#000000" points="5172,-93.5 5326,-93.5 "/>
-<text text-anchor="middle" x="5249" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5172,-74.5 5326,-74.5 "/>
-<text text-anchor="start" x="5180" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Select()</text>
-<text text-anchor="start" x="5180" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5180" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5180" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5180" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5172,-22.5 5172,-101.5 5326,-101.5 5326,-22.5 5172,-22.5"/>
+<text text-anchor="middle" x="5249" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Select</text>
+<polyline fill="none" stroke="#000000" points="5172,-82.5 5326,-82.5 "/>
+<text text-anchor="middle" x="5249" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5172,-63.5 5326,-63.5 "/>
+<text text-anchor="start" x="5180" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Select()</text>
+<text text-anchor="start" x="5180" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5180" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node37 -->
 <g id="edge33" class="edge">
 <title>Node2&#45;&gt;Node37</title>
-<path fill="none" stroke="#191970" d="M3186.2017,-210.2733C3554.7711,-206.8031 4974.5019,-189.2781 5163,-124 5171.3485,-121.1089 5179.5897,-117.1222 5187.4704,-112.5525"/>
+<path fill="none" stroke="#191970" d="M3186.2017,-210.2733C3554.7711,-206.8031 4974.5019,-189.2781 5163,-124 5177.6098,-118.9405 5191.8912,-110.526 5204.4868,-101.503"/>
 <polygon fill="none" stroke="#191970" points="3186.0929,-206.7741 3176.126,-210.3672 3186.1582,-213.7738 3186.0929,-206.7741"/>
 </g>
 <!-- Node38 -->
 <g id="node35" class="node">
 <title>Node38</title>
 <g id="a_node35"><a xlink:href="classtvm_1_1tir_1_1Shuffle.html" target="_top" xlink:title="Managed reference to ShuffleNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5344,-.5 5344,-123.5 5498,-123.5 5498,-.5 5344,-.5"/>
-<text text-anchor="middle" x="5421" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Shuffle</text>
-<polyline fill="none" stroke="#000000" points="5344,-104.5 5498,-104.5 "/>
-<text text-anchor="middle" x="5421" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5344,-85.5 5498,-85.5 "/>
-<text text-anchor="start" x="5352" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Shuffle()</text>
-<text text-anchor="start" x="5352" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5352" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5352" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5352" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
-<text text-anchor="start" x="5352" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Concat()</text>
-<text text-anchor="start" x="5352" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExtractElement()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5344,-11.5 5344,-112.5 5498,-112.5 5498,-11.5 5344,-11.5"/>
+<text text-anchor="middle" x="5421" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Shuffle</text>
+<polyline fill="none" stroke="#000000" points="5344,-93.5 5498,-93.5 "/>
+<text text-anchor="middle" x="5421" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5344,-74.5 5498,-74.5 "/>
+<text text-anchor="start" x="5352" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Shuffle()</text>
+<text text-anchor="start" x="5352" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5352" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<text text-anchor="start" x="5352" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Concat()</text>
+<text text-anchor="start" x="5352" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExtractElement()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node38 -->
 <g id="edge34" class="edge">
 <title>Node2&#45;&gt;Node38</title>
-<path fill="none" stroke="#191970" d="M3186.3291,-210.578C3574.0338,-208.3035 5129.468,-194.8048 5335,-124 5337.9584,-122.9808 5340.9031,-121.8236 5343.823,-120.5512"/>
+<path fill="none" stroke="#191970" d="M3186.3291,-210.578C3574.0338,-208.3035 5129.468,-194.8048 5335,-124 5343.3531,-121.1224 5351.5973,-117.1442 5359.4796,-112.5793"/>
 <polygon fill="none" stroke="#191970" points="3186.2725,-207.0782 3176.2929,-210.6359 3186.313,-214.0781 3186.2725,-207.0782"/>
 </g>
 <!-- Node39 -->
 <g id="node36" class="node">
 <title>Node39</title>
 <g id="a_node36"><a xlink:href="classtvm_1_1tir_1_1StringImm.html" target="_top" xlink:title="Managed reference to StringImmNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5516,-11.5 5516,-112.5 5670,-112.5 5670,-11.5 5516,-11.5"/>
-<text text-anchor="middle" x="5593" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::StringImm</text>
-<polyline fill="none" stroke="#000000" points="5516,-93.5 5670,-93.5 "/>
-<text text-anchor="middle" x="5593" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5516,-74.5 5670,-74.5 "/>
-<text text-anchor="start" x="5524" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ StringImm()</text>
-<text text-anchor="start" x="5524" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5524" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5524" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5524" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5516,-22.5 5516,-101.5 5670,-101.5 5670,-22.5 5516,-22.5"/>
+<text text-anchor="middle" x="5593" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::StringImm</text>
+<polyline fill="none" stroke="#000000" points="5516,-82.5 5670,-82.5 "/>
+<text text-anchor="middle" x="5593" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5516,-63.5 5670,-63.5 "/>
+<text text-anchor="start" x="5524" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ StringImm()</text>
+<text text-anchor="start" x="5524" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5524" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node39 -->
 <g id="edge35" class="edge">
 <title>Node2&#45;&gt;Node39</title>
-<path fill="none" stroke="#191970" d="M3186.2607,-210.8407C3592.0634,-209.6975 5284.356,-200.3543 5507,-124 5515.3571,-121.134 5523.6038,-117.163 5531.4875,-112.6023"/>
+<path fill="none" stroke="#191970" d="M3186.2607,-210.8407C3592.0634,-209.6975 5284.356,-200.3543 5507,-124 5521.625,-118.9845 5535.9116,-110.5851 5548.5073,-101.5625"/>
 <polygon fill="none" stroke="#191970" points="3186.0472,-207.3411 3176.0568,-210.8684 3186.0663,-214.3411 3186.0472,-207.3411"/>
 </g>
 <!-- Node40 -->
 <g id="node37" class="node">
 <title>Node40</title>
 <g id="a_node37"><a xlink:href="classtvm_1_1tir_1_1Sub.html" target="_top" xlink:title="Managed reference to SubNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5688,-11.5 5688,-112.5 5842,-112.5 5842,-11.5 5688,-11.5"/>
-<text text-anchor="middle" x="5765" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Sub</text>
-<polyline fill="none" stroke="#000000" points="5688,-93.5 5842,-93.5 "/>
-<text text-anchor="middle" x="5765" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5688,-74.5 5842,-74.5 "/>
-<text text-anchor="start" x="5696" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Sub()</text>
-<text text-anchor="start" x="5696" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5696" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5696" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5696" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5688,-22.5 5688,-101.5 5842,-101.5 5842,-22.5 5688,-22.5"/>
+<text text-anchor="middle" x="5765" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Sub</text>
+<polyline fill="none" stroke="#000000" points="5688,-82.5 5842,-82.5 "/>
+<text text-anchor="middle" x="5765" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5688,-63.5 5842,-63.5 "/>
+<text text-anchor="start" x="5696" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Sub()</text>
+<text text-anchor="start" x="5696" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5696" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node40 -->
 <g id="edge36" class="edge">
 <title>Node2&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M3186.0469,-209.4888C3622.7336,-201.7272 5558.6458,-165.113 5679,-124 5687.3606,-121.144 5695.6094,-117.1794 5703.4944,-112.6222"/>
+<path fill="none" stroke="#191970" d="M3186.0469,-209.4888C3622.7336,-201.7272 5558.6458,-165.113 5679,-124 5693.631,-119.0021 5707.9197,-110.6087 5720.5154,-101.5863"/>
 <polygon fill="none" stroke="#191970" points="3185.9483,-205.9899 3176.012,-209.6667 3186.0725,-212.9888 3185.9483,-205.9899"/>
 </g>
 <!-- Node41 -->
diff --git a/docs/reference/api/doxygen/classtvm_1_1Bool-members.html b/docs/reference/api/doxygen/classtvm_1_1Bool-members.html
index 546d2eb91d..48b1b32b1e 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Bool-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Bool-members.html
@@ -94,12 +94,11 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">PrimExpr</a>(float value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Bool.html#a39544ffed214f2c456c727f45ea7e88d">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(Bool, IntImm, IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1Bool.html">tvm::Bool</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1IntImm.html#a6d02ff59f45d533f2e30ecdb8a72b952">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1IntImm.html">tvm::IntImm</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IntImm.html#a9ce59db1a112fb10b7f384b68a3afc9f">TVM_DEFINE_OBJECT_REF_METHODS</a>(IntImm, PrimExpr, IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1IntImm.html">tvm::IntImm</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1IntImm.html#a9ce59db1a112fb10b7f384b68a3afc9f">TVM_DEFINE_OBJECT_REF_METHODS</a>(IntImm, PrimExpr, IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1IntImm.html">tvm::IntImm</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Bool.html b/docs/reference/api/doxygen/classtvm_1_1Bool.html
index 8aafe5566f..144fc4b238 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Bool.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Bool.html
@@ -77,13 +77,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::Bool:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Bool__inherit__graph.svg" width="232" height="1015"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Bool__inherit__graph.svg" width="232" height="986"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::Bool:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Bool__coll__graph.svg" width="232" height="1307"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Bool__coll__graph.svg" width="232" height="1278"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -103,8 +103,6 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:ad37f61019092f5201cf9e0500b75afe2 inherit pub_methods_classtvm_1_1IntImm"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9ce59db1a112fb10b7f384b68a3afc9f inherit pub_methods_classtvm_1_1IntImm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1IntImm.html#a9ce59db1a112fb10b7f384b68a3afc9f">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1IntImm.html">IntImm</a>, <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a>) [...]
 <tr class="separator:a9ce59db1a112fb10b7f384b68a3afc9f inherit pub_methods_classtvm_1_1IntImm"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6d02ff59f45d533f2e30ecdb8a72b952 inherit pub_methods_classtvm_1_1IntImm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1IntImm.html#a6d02ff59f45d533f2e30ecdb8a72b952">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a>)</td></tr>
-<tr class="separator:a6d02ff59f45d533f2e30ecdb8a72b952 inherit pub_methods_classtvm_1_1IntImm"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1PrimExpr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1PrimExpr')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td></tr>
 <tr class="memitem:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a> (int32_t value)</td></tr>
 <tr class="memdesc:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct from integer.  <a href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">More...</a><br /></td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Bool__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Bool__coll__graph.svg
index bc71874f7c..dfe2c027af 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Bool__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Bool__coll__graph.svg
@@ -4,11 +4,11 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::Bool Pages: 1 -->
-<svg width="174pt" height="980pt"
- viewBox="0.00 0.00 174.00 980.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 976)">
+<svg width="174pt" height="958pt"
+ viewBox="0.00 0.00 174.00 958.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 954)">
 <title>tvm::Bool</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-976 170,-976 170,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-954 170,-954 170,4 -4,4"/>
 <!-- Node5 -->
 <g id="node1" class="node">
 <title>Node5</title>
@@ -27,132 +27,130 @@
 <g id="node2" class="node">
 <title>Node6</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1IntImm.html" target="_top" xlink:title="Managed reference class to IntImmNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="6,-139.5 6,-240.5 160,-240.5 160,-139.5 6,-139.5"/>
-<text text-anchor="middle" x="83" y="-228.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
-<polyline fill="none" stroke="#000000" points="6,-221.5 160,-221.5 "/>
-<text text-anchor="middle" x="83" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="6,-202.5 160,-202.5 "/>
-<text text-anchor="start" x="14" y="-190.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
-<text text-anchor="start" x="14" y="-179.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-139.5 6,-218.5 160,-218.5 160,-139.5 6,-139.5"/>
+<text text-anchor="middle" x="83" y="-206.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
+<polyline fill="none" stroke="#000000" points="6,-199.5 160,-199.5 "/>
+<text text-anchor="middle" x="83" y="-187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-180.5 160,-180.5 "/>
+<text text-anchor="start" x="14" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
 <text text-anchor="start" x="14" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="14" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge1" class="edge">
 <title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M83,-129.2075C83,-120.0503 83,-110.6882 83,-101.7707"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-129.4246 83,-139.4246 86.5001,-129.4246 79.5001,-129.4246"/>
+<path fill="none" stroke="#191970" d="M83,-129.1972C83,-120.1496 83,-110.7033 83,-101.6321"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-129.2016 83,-139.2016 86.5001,-129.2017 79.5001,-129.2016"/>
 </g>
 <!-- Node7 -->
 <g id="node3" class="node">
 <title>Node7</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="6,-278.5 6,-379.5 160,-379.5 160,-278.5 6,-278.5"/>
-<text text-anchor="middle" x="83" y="-367.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="6,-360.5 160,-360.5 "/>
-<text text-anchor="middle" x="83" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="6,-341.5 160,-341.5 "/>
-<text text-anchor="start" x="14" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="14" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="14" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="14" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-256.5 6,-357.5 160,-357.5 160,-256.5 6,-256.5"/>
+<text text-anchor="middle" x="83" y="-345.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="6,-338.5 160,-338.5 "/>
+<text text-anchor="middle" x="83" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-319.5 160,-319.5 "/>
+<text text-anchor="start" x="14" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="14" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="14" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="14" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="14" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node6 -->
 <g id="edge2" class="edge">
 <title>Node7&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M83,-268.2075C83,-259.0503 83,-249.6882 83,-240.7707"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-268.4246 83,-278.4246 86.5001,-268.4246 79.5001,-268.4246"/>
+<path fill="none" stroke="#191970" d="M83,-246.2732C83,-236.8606 83,-227.3534 83,-218.5688"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-246.411 83,-256.411 86.5001,-246.411 79.5001,-246.411"/>
 </g>
 <!-- Node8 -->
 <g id="node4" class="node">
 <title>Node8</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="6,-417.5 6,-485.5 160,-485.5 160,-417.5 6,-417.5"/>
-<text text-anchor="middle" x="83" y="-473.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="6,-466.5 160,-466.5 "/>
-<text text-anchor="middle" x="83" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="6,-447.5 160,-447.5 "/>
-<text text-anchor="start" x="14" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-395.5 6,-463.5 160,-463.5 160,-395.5 6,-395.5"/>
+<text text-anchor="middle" x="83" y="-451.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="6,-444.5 160,-444.5 "/>
+<text text-anchor="middle" x="83" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-425.5 160,-425.5 "/>
+<text text-anchor="start" x="14" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="14" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node8&#45;&gt;Node7 -->
 <g id="edge3" class="edge">
 <title>Node8&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M83,-407.2437C83,-398.3671 83,-388.9733 83,-379.8923"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-407.3769 83,-417.3769 86.5001,-407.377 79.5001,-407.3769"/>
+<path fill="none" stroke="#191970" d="M83,-385.2437C83,-376.3671 83,-366.9733 83,-357.8923"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-385.3769 83,-395.3769 86.5001,-385.377 79.5001,-385.3769"/>
 </g>
 <!-- Node9 -->
 <g id="node5" class="node">
 <title>Node9</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="16,-523.5 16,-745.5 150,-745.5 150,-523.5 16,-523.5"/>
-<text text-anchor="middle" x="83" y="-733.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="16,-726.5 150,-726.5 "/>
-<text text-anchor="start" x="24" y="-714.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="16,-707.5 150,-707.5 "/>
-<text text-anchor="start" x="24" y="-695.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="24" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="24" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="24" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="24" y="-651.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="24" y="-640.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="24" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="24" y="-618.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="24" y="-607.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="24" y="-596.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="24" y="-585.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="24" y="-574.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="24" y="-563.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="24" y="-552.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="24" y="-541.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="24" y="-530.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="16,-501.5 16,-723.5 150,-723.5 150,-501.5 16,-501.5"/>
+<text text-anchor="middle" x="83" y="-711.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="16,-704.5 150,-704.5 "/>
+<text text-anchor="start" x="24" y="-692.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="16,-685.5 150,-685.5 "/>
+<text text-anchor="start" x="24" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="24" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="24" y="-651.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="24" y="-640.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="24" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="24" y="-618.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="24" y="-607.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="24" y="-596.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="24" y="-585.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="24" y="-574.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="24" y="-563.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="24" y="-552.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="24" y="-541.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="24" y="-530.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="24" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="24" y="-508.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node8 -->
 <g id="edge4" class="edge">
 <title>Node9&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M83,-513.2198C83,-503.2931 83,-493.8914 83,-485.5572"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-513.3012 83,-523.3012 86.5001,-513.3012 79.5001,-513.3012"/>
+<path fill="none" stroke="#191970" d="M83,-491.2198C83,-481.2931 83,-471.8914 83,-463.5572"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-491.3012 83,-501.3012 86.5001,-491.3012 79.5001,-491.3012"/>
 </g>
 <!-- Node10 -->
 <g id="node6" class="node">
 <title>Node10</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="13,-793.5 13,-971.5 153,-971.5 153,-793.5 13,-793.5"/>
-<text text-anchor="start" x="21" y="-959.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="83" y="-948.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="13,-941.5 153,-941.5 "/>
-<text text-anchor="middle" x="83" y="-929.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="13,-922.5 153,-922.5 "/>
-<text text-anchor="start" x="21" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="21" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="13,-771.5 13,-949.5 153,-949.5 153,-771.5 13,-771.5"/>
+<text text-anchor="start" x="21" y="-937.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="83" y="-926.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="13,-919.5 153,-919.5 "/>
+<text text-anchor="middle" x="83" y="-907.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="13,-900.5 153,-900.5 "/>
 <text text-anchor="start" x="21" y="-888.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="21" y="-877.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="21" y="-866.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="21" y="-855.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="21" y="-844.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="21" y="-833.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="21" y="-822.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="21" y="-811.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="21" y="-800.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<text text-anchor="start" x="21" y="-844.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="21" y="-833.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="21" y="-822.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="21" y="-811.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="21" y="-800.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="21" y="-789.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="21" y="-778.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node10&#45;&gt;Node9 -->
 <g id="edge5" class="edge">
 <title>Node10&#45;&gt;Node9</title>
-<path fill="none" stroke="#404040" d="M83,-793.3167C83,-781.8765 83,-770.0062 83,-758.1402"/>
-<polygon fill="none" stroke="#404040" points="83.0001,-757.7944 79,-751.7944 83,-745.7944 87,-751.7943 83.0001,-757.7944"/>
-<text text-anchor="middle" x="102.5" y="-767" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M83,-771.3167C83,-759.8765 83,-748.0062 83,-736.1402"/>
+<polygon fill="none" stroke="#404040" points="83.0001,-735.7944 79,-729.7944 83,-723.7944 87,-729.7943 83.0001,-735.7944"/>
+<text text-anchor="middle" x="102.5" y="-745" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Bool__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Bool__inherit__graph.svg
index 0213c44dab..688a02e4e2 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Bool__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Bool__inherit__graph.svg
@@ -4,11 +4,11 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::Bool Pages: 1 -->
-<svg width="174pt" height="761pt"
- viewBox="0.00 0.00 174.00 761.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 757)">
+<svg width="174pt" height="739pt"
+ viewBox="0.00 0.00 174.00 739.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 735)">
 <title>tvm::Bool</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-757 170,-757 170,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-735 170,-735 170,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
@@ -27,102 +27,100 @@
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1IntImm.html" target="_top" xlink:title="Managed reference class to IntImmNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="6,-138.5 6,-239.5 160,-239.5 160,-138.5 6,-138.5"/>
-<text text-anchor="middle" x="83" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
-<polyline fill="none" stroke="#000000" points="6,-220.5 160,-220.5 "/>
-<text text-anchor="middle" x="83" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="6,-201.5 160,-201.5 "/>
-<text text-anchor="start" x="14" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
-<text text-anchor="start" x="14" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-138.5 6,-217.5 160,-217.5 160,-138.5 6,-138.5"/>
+<text text-anchor="middle" x="83" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
+<polyline fill="none" stroke="#000000" points="6,-198.5 160,-198.5 "/>
+<text text-anchor="middle" x="83" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-179.5 160,-179.5 "/>
+<text text-anchor="start" x="14" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
 <text text-anchor="start" x="14" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="14" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M83,-128.1179C83,-119.2601 83,-110.2213 83,-101.5964"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-128.3975 83,-138.3975 86.5001,-128.3975 79.5001,-128.3975"/>
+<path fill="none" stroke="#191970" d="M83,-127.9396C83,-119.3816 83,-110.4823 83,-101.9026"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-128.1648 83,-138.1649 86.5001,-128.1649 79.5001,-128.1648"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="6,-276.5 6,-377.5 160,-377.5 160,-276.5 6,-276.5"/>
-<text text-anchor="middle" x="83" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="6,-358.5 160,-358.5 "/>
-<text text-anchor="middle" x="83" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="6,-339.5 160,-339.5 "/>
-<text text-anchor="start" x="14" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="14" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="14" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="14" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-254.5 6,-355.5 160,-355.5 160,-254.5 6,-254.5"/>
+<text text-anchor="middle" x="83" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="6,-336.5 160,-336.5 "/>
+<text text-anchor="middle" x="83" y="-324.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-317.5 160,-317.5 "/>
+<text text-anchor="start" x="14" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="14" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="14" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="14" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="14" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge2" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M83,-266.1179C83,-257.2601 83,-248.2213 83,-239.5964"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-266.3975 83,-276.3975 86.5001,-266.3975 79.5001,-266.3975"/>
+<path fill="none" stroke="#191970" d="M83,-244.3446C83,-235.3388 83,-226.2565 83,-217.8243"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-244.4413 83,-254.4413 86.5001,-244.4414 79.5001,-244.4413"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="6,-414.5 6,-482.5 160,-482.5 160,-414.5 6,-414.5"/>
-<text text-anchor="middle" x="83" y="-470.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="6,-463.5 160,-463.5 "/>
-<text text-anchor="middle" x="83" y="-451.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="6,-444.5 160,-444.5 "/>
-<text text-anchor="start" x="14" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-392.5 6,-460.5 160,-460.5 160,-392.5 6,-392.5"/>
+<text text-anchor="middle" x="83" y="-448.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="6,-441.5 160,-441.5 "/>
+<text text-anchor="middle" x="83" y="-429.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-422.5 160,-422.5 "/>
+<text text-anchor="start" x="14" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="14" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge3" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M83,-404.1349C83,-395.5408 83,-386.474 83,-377.6952"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-404.3321 83,-414.3321 86.5001,-404.3322 79.5001,-404.3321"/>
+<path fill="none" stroke="#191970" d="M83,-382.1349C83,-373.5408 83,-364.474 83,-355.6952"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-382.3321 83,-392.3321 86.5001,-382.3322 79.5001,-382.3321"/>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
 <title>Node4</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="16,-519.5 16,-752.5 150,-752.5 150,-519.5 16,-519.5"/>
-<text text-anchor="middle" x="83" y="-740.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="16,-733.5 150,-733.5 "/>
-<text text-anchor="start" x="24" y="-721.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="24" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="16,-703.5 150,-703.5 "/>
-<text text-anchor="start" x="24" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="24" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="24" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="24" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="24" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="24" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="24" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="24" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="24" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="24" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="24" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="24" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="24" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="24" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="24" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="24" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="16,-497.5 16,-730.5 150,-730.5 150,-497.5 16,-497.5"/>
+<text text-anchor="middle" x="83" y="-718.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="16,-711.5 150,-711.5 "/>
+<text text-anchor="start" x="24" y="-699.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="24" y="-688.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="16,-681.5 150,-681.5 "/>
+<text text-anchor="start" x="24" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="24" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="24" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="24" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="24" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="24" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="24" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="24" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="24" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="24" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="24" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="24" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="24" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="24" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="24" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="24" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node3 -->
 <g id="edge4" class="edge">
 <title>Node4&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M83,-509.2822C83,-499.749 83,-490.737 83,-482.7166"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-509.3857 83,-519.3857 86.5001,-509.3857 79.5001,-509.3857"/>
+<path fill="none" stroke="#191970" d="M83,-487.2822C83,-477.749 83,-468.737 83,-460.7166"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-487.3857 83,-497.3857 86.5001,-487.3857 79.5001,-487.3857"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1FloatImm-members.html b/docs/reference/api/doxygen/classtvm_1_1FloatImm-members.html
index 6357c0d70e..b46e25d8d8 100644
--- a/docs/reference/api/doxygen/classtvm_1_1FloatImm-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1FloatImm-members.html
@@ -90,12 +90,11 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a>(int32_t value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">PrimExpr</a>(float value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1FloatImm.html#a5c013e700cbd3ee4531996f9fbc672e2">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(FloatImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1FloatImm.html">tvm::FloatImm</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1FloatImm.html#a7175c829584893f61239ff9605e4ab7b">TVM_DEFINE_OBJECT_REF_METHODS</a>(FloatImm, PrimExpr, FloatImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1FloatImm.html">tvm::FloatImm</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1FloatImm.html#a7175c829584893f61239ff9605e4ab7b">TVM_DEFINE_OBJECT_REF_METHODS</a>(FloatImm, PrimExpr, FloatImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1FloatImm.html">tvm::FloatImm</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1FloatImm.html b/docs/reference/api/doxygen/classtvm_1_1FloatImm.html
index 0c7470c216..86bb10ac47 100644
--- a/docs/reference/api/doxygen/classtvm_1_1FloatImm.html
+++ b/docs/reference/api/doxygen/classtvm_1_1FloatImm.html
@@ -77,13 +77,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::FloatImm:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1FloatImm__inherit__graph.svg" width="216" height="831"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1FloatImm__inherit__graph.svg" width="216" height="802"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::FloatImm:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1FloatImm__coll__graph.svg" width="216" height="1122"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1FloatImm__coll__graph.svg" width="216" height="1092"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -94,8 +94,6 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:a8af3190ff842b60c10cd6942093daf09"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a7175c829584893f61239ff9605e4ab7b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1FloatImm.html#a7175c829584893f61239ff9605e4ab7b">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a>, <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="el" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a>)</td></tr>
 <tr class="separator:a7175c829584893f61239ff9605e4ab7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5c013e700cbd3ee4531996f9fbc672e2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1FloatImm.html#a5c013e700cbd3ee4531996f9fbc672e2">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a>)</td></tr>
-<tr class="separator:a5c013e700cbd3ee4531996f9fbc672e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1PrimExpr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1PrimExpr')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td></tr>
 <tr class="memitem:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a> (int32_t value)</td></tr>
 <tr class="memdesc:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct from integer.  <a href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">More...</a><br /></td></tr>
@@ -222,24 +220,6 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a id="a5c013e700cbd3ee4531996f9fbc672e2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5c013e700cbd3ee4531996f9fbc672e2">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_COW_METHOD()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::FloatImm::TVM_DEFINE_OBJECT_REF_COW_METHOD </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a>&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
 <a id="a7175c829584893f61239ff9605e4ab7b"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a7175c829584893f61239ff9605e4ab7b">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_METHODS()</h2>
 
diff --git a/docs/reference/api/doxygen/classtvm_1_1FloatImm__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1FloatImm__coll__graph.svg
index 6b7c8a07ba..1380681a27 100644
--- a/docs/reference/api/doxygen/classtvm_1_1FloatImm__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1FloatImm__coll__graph.svg
@@ -4,132 +4,130 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::FloatImm Pages: 1 -->
-<svg width="162pt" height="841pt"
- viewBox="0.00 0.00 162.00 841.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 837)">
+<svg width="162pt" height="819pt"
+ viewBox="0.00 0.00 162.00 819.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 815)">
 <title>tvm::FloatImm</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-837 158,-837 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-815 158,-815 158,4 -4,4"/>
 <!-- Node4 -->
 <g id="node1" class="node">
 <title>Node4</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 154,-101.5 154,-.5 0,-.5"/>
-<text text-anchor="middle" x="77" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::FloatImm</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 154,-82.5 "/>
-<text text-anchor="middle" x="77" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 154,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloatImm()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 154,-79.5 154,-.5 0,-.5"/>
+<text text-anchor="middle" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::FloatImm</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 154,-60.5 "/>
+<text text-anchor="middle" x="77" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 154,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloatImm()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node5 -->
 <g id="node2" class="node">
 <title>Node5</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-139.5 0,-240.5 154,-240.5 154,-139.5 0,-139.5"/>
-<text text-anchor="middle" x="77" y="-228.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-221.5 154,-221.5 "/>
-<text text-anchor="middle" x="77" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-202.5 154,-202.5 "/>
-<text text-anchor="start" x="8" y="-190.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-179.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-117.5 0,-218.5 154,-218.5 154,-117.5 0,-117.5"/>
+<text text-anchor="middle" x="77" y="-206.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-199.5 154,-199.5 "/>
+<text text-anchor="middle" x="77" y="-187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-180.5 154,-180.5 "/>
+<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="8" y="-135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-124.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge1" class="edge">
 <title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M77,-129.2075C77,-120.0503 77,-110.6882 77,-101.7707"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-129.4246 77,-139.4246 80.5001,-129.4246 73.5001,-129.4246"/>
+<path fill="none" stroke="#191970" d="M77,-107.2732C77,-97.8606 77,-88.3534 77,-79.5688"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-107.411 77,-117.411 80.5001,-107.411 73.5001,-107.411"/>
 </g>
 <!-- Node6 -->
 <g id="node3" class="node">
 <title>Node6</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-278.5 0,-346.5 154,-346.5 154,-278.5 0,-278.5"/>
-<text text-anchor="middle" x="77" y="-334.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-327.5 154,-327.5 "/>
-<text text-anchor="middle" x="77" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-308.5 154,-308.5 "/>
-<text text-anchor="start" x="8" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-256.5 0,-324.5 154,-324.5 154,-256.5 0,-256.5"/>
+<text text-anchor="middle" x="77" y="-312.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-305.5 154,-305.5 "/>
+<text text-anchor="middle" x="77" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-286.5 154,-286.5 "/>
+<text text-anchor="start" x="8" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge2" class="edge">
 <title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M77,-268.2437C77,-259.3671 77,-249.9733 77,-240.8923"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-268.3769 77,-278.3769 80.5001,-268.377 73.5001,-268.3769"/>
+<path fill="none" stroke="#191970" d="M77,-246.2437C77,-237.3671 77,-227.9733 77,-218.8923"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-246.3769 77,-256.3769 80.5001,-246.377 73.5001,-246.3769"/>
 </g>
 <!-- Node7 -->
 <g id="node4" class="node">
 <title>Node7</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-384.5 10,-606.5 144,-606.5 144,-384.5 10,-384.5"/>
-<text text-anchor="middle" x="77" y="-594.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-587.5 144,-587.5 "/>
-<text text-anchor="start" x="18" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="10,-568.5 144,-568.5 "/>
-<text text-anchor="start" x="18" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-362.5 10,-584.5 144,-584.5 144,-362.5 10,-362.5"/>
+<text text-anchor="middle" x="77" y="-572.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-565.5 144,-565.5 "/>
+<text text-anchor="start" x="18" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="10,-546.5 144,-546.5 "/>
+<text text-anchor="start" x="18" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-380.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-369.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node6 -->
 <g id="edge3" class="edge">
 <title>Node7&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M77,-374.2198C77,-364.2931 77,-354.8914 77,-346.5572"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-374.3012 77,-384.3012 80.5001,-374.3012 73.5001,-374.3012"/>
+<path fill="none" stroke="#191970" d="M77,-352.2198C77,-342.2931 77,-332.8914 77,-324.5572"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-352.3012 77,-362.3012 80.5001,-352.3012 73.5001,-352.3012"/>
 </g>
 <!-- Node8 -->
 <g id="node5" class="node">
 <title>Node8</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="7,-654.5 7,-832.5 147,-832.5 147,-654.5 7,-654.5"/>
-<text text-anchor="start" x="15" y="-820.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="77" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="7,-802.5 147,-802.5 "/>
-<text text-anchor="middle" x="77" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="7,-783.5 147,-783.5 "/>
-<text text-anchor="start" x="15" y="-771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="7,-632.5 7,-810.5 147,-810.5 147,-632.5 7,-632.5"/>
+<text text-anchor="start" x="15" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="77" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="7,-780.5 147,-780.5 "/>
+<text text-anchor="middle" x="77" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="7,-761.5 147,-761.5 "/>
 <text text-anchor="start" x="15" y="-749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-727.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-716.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-694.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="15" y="-683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="15" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="15" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<text text-anchor="start" x="15" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-694.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="15" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="15" y="-650.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="15" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node8&#45;&gt;Node7 -->
 <g id="edge4" class="edge">
 <title>Node8&#45;&gt;Node7</title>
-<path fill="none" stroke="#404040" d="M77,-654.3167C77,-642.8765 77,-631.0062 77,-619.1402"/>
-<polygon fill="none" stroke="#404040" points="77.0001,-618.7944 73,-612.7944 77,-606.7944 81,-612.7943 77.0001,-618.7944"/>
-<text text-anchor="middle" x="96.5" y="-628" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M77,-632.3167C77,-620.8765 77,-609.0062 77,-597.1402"/>
+<polygon fill="none" stroke="#404040" points="77.0001,-596.7944 73,-590.7944 77,-584.7944 81,-590.7943 77.0001,-596.7944"/>
+<text text-anchor="middle" x="96.5" y="-606" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1FloatImm__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1FloatImm__inherit__graph.svg
index 35b7d40da0..6aa9a8c744 100644
--- a/docs/reference/api/doxygen/classtvm_1_1FloatImm__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1FloatImm__inherit__graph.svg
@@ -4,102 +4,100 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::FloatImm Pages: 1 -->
-<svg width="162pt" height="623pt"
- viewBox="0.00 0.00 162.00 623.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 619)">
+<svg width="162pt" height="601pt"
+ viewBox="0.00 0.00 162.00 601.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 597)">
 <title>tvm::FloatImm</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-619 158,-619 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-597 158,-597 158,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 154,-101.5 154,-.5 0,-.5"/>
-<text text-anchor="middle" x="77" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::FloatImm</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 154,-82.5 "/>
-<text text-anchor="middle" x="77" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 154,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloatImm()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 154,-79.5 154,-.5 0,-.5"/>
+<text text-anchor="middle" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::FloatImm</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 154,-60.5 "/>
+<text text-anchor="middle" x="77" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 154,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloatImm()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-138.5 0,-239.5 154,-239.5 154,-138.5 0,-138.5"/>
-<text text-anchor="middle" x="77" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-220.5 154,-220.5 "/>
-<text text-anchor="middle" x="77" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-201.5 154,-201.5 "/>
-<text text-anchor="start" x="8" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-116.5 0,-217.5 154,-217.5 154,-116.5 0,-116.5"/>
+<text text-anchor="middle" x="77" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-198.5 154,-198.5 "/>
+<text text-anchor="middle" x="77" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-179.5 154,-179.5 "/>
+<text text-anchor="start" x="8" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="8" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M77,-128.1179C77,-119.2601 77,-110.2213 77,-101.5964"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-128.3975 77,-138.3975 80.5001,-128.3975 73.5001,-128.3975"/>
+<path fill="none" stroke="#191970" d="M77,-106.3446C77,-97.3388 77,-88.2565 77,-79.8243"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-106.4413 77,-116.4413 80.5001,-106.4414 73.5001,-106.4413"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-276.5 0,-344.5 154,-344.5 154,-276.5 0,-276.5"/>
-<text text-anchor="middle" x="77" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-325.5 154,-325.5 "/>
-<text text-anchor="middle" x="77" y="-313.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-306.5 154,-306.5 "/>
-<text text-anchor="start" x="8" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-254.5 0,-322.5 154,-322.5 154,-254.5 0,-254.5"/>
+<text text-anchor="middle" x="77" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-303.5 154,-303.5 "/>
+<text text-anchor="middle" x="77" y="-291.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-284.5 154,-284.5 "/>
+<text text-anchor="start" x="8" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge2" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M77,-266.1349C77,-257.5408 77,-248.474 77,-239.6952"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-266.3321 77,-276.3321 80.5001,-266.3322 73.5001,-266.3321"/>
+<path fill="none" stroke="#191970" d="M77,-244.1349C77,-235.5408 77,-226.474 77,-217.6952"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-244.3321 77,-254.3321 80.5001,-244.3322 73.5001,-244.3321"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-381.5 10,-614.5 144,-614.5 144,-381.5 10,-381.5"/>
-<text text-anchor="middle" x="77" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-595.5 144,-595.5 "/>
-<text text-anchor="start" x="18" y="-583.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="18" y="-572.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="10,-565.5 144,-565.5 "/>
-<text text-anchor="start" x="18" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-388.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-359.5 10,-592.5 144,-592.5 144,-359.5 10,-359.5"/>
+<text text-anchor="middle" x="77" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-573.5 144,-573.5 "/>
+<text text-anchor="start" x="18" y="-561.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="18" y="-550.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="10,-543.5 144,-543.5 "/>
+<text text-anchor="start" x="18" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-388.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-377.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-366.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge3" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M77,-371.2822C77,-361.749 77,-352.737 77,-344.7166"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-371.3857 77,-381.3857 80.5001,-371.3857 73.5001,-371.3857"/>
+<path fill="none" stroke="#191970" d="M77,-349.2822C77,-339.749 77,-330.737 77,-322.7166"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-349.3857 77,-359.3857 80.5001,-349.3857 73.5001,-349.3857"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1IntImm-members.html b/docs/reference/api/doxygen/classtvm_1_1IntImm-members.html
index af4a70803e..e3144aaba5 100644
--- a/docs/reference/api/doxygen/classtvm_1_1IntImm-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1IntImm-members.html
@@ -90,12 +90,11 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a>(int32_t value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">PrimExpr</a>(float value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1IntImm.html#a6d02ff59f45d533f2e30ecdb8a72b952">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1IntImm.html">tvm::IntImm</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IntImm.html#a9ce59db1a112fb10b7f384b68a3afc9f">TVM_DEFINE_OBJECT_REF_METHODS</a>(IntImm, PrimExpr, IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1IntImm.html">tvm::IntImm</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1IntImm.html#a9ce59db1a112fb10b7f384b68a3afc9f">TVM_DEFINE_OBJECT_REF_METHODS</a>(IntImm, PrimExpr, IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1IntImm.html">tvm::IntImm</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1IntImm.html b/docs/reference/api/doxygen/classtvm_1_1IntImm.html
index 7b788188e1..5283005cf7 100644
--- a/docs/reference/api/doxygen/classtvm_1_1IntImm.html
+++ b/docs/reference/api/doxygen/classtvm_1_1IntImm.html
@@ -77,13 +77,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::IntImm:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1IntImm__inherit__graph.svg" width="382" height="1103"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1IntImm__inherit__graph.svg" width="382" height="1074"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::IntImm:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1IntImm__coll__graph.svg" width="216" height="1122"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1IntImm__coll__graph.svg" width="216" height="1092"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -94,8 +94,6 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:ad37f61019092f5201cf9e0500b75afe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9ce59db1a112fb10b7f384b68a3afc9f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1IntImm.html#a9ce59db1a112fb10b7f384b68a3afc9f">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1IntImm.html">IntImm</a>, <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a>)</td></tr>
 <tr class="separator:a9ce59db1a112fb10b7f384b68a3afc9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6d02ff59f45d533f2e30ecdb8a72b952"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1IntImm.html#a6d02ff59f45d533f2e30ecdb8a72b952">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a>)</td></tr>
-<tr class="separator:a6d02ff59f45d533f2e30ecdb8a72b952"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1PrimExpr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1PrimExpr')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td></tr>
 <tr class="memitem:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a> (int32_t value)</td></tr>
 <tr class="memdesc:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct from integer.  <a href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">More...</a><br /></td></tr>
@@ -222,24 +220,6 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a id="a6d02ff59f45d533f2e30ecdb8a72b952"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6d02ff59f45d533f2e30ecdb8a72b952">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_COW_METHOD()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::IntImm::TVM_DEFINE_OBJECT_REF_COW_METHOD </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a>&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
 <a id="a9ce59db1a112fb10b7f384b68a3afc9f"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a9ce59db1a112fb10b7f384b68a3afc9f">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_METHODS()</h2>
 
diff --git a/docs/reference/api/doxygen/classtvm_1_1IntImm__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1IntImm__coll__graph.svg
index ec4e4f471f..0f15db3066 100644
--- a/docs/reference/api/doxygen/classtvm_1_1IntImm__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1IntImm__coll__graph.svg
@@ -4,132 +4,130 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::IntImm Pages: 1 -->
-<svg width="162pt" height="841pt"
- viewBox="0.00 0.00 162.00 841.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 837)">
+<svg width="162pt" height="819pt"
+ viewBox="0.00 0.00 162.00 819.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 815)">
 <title>tvm::IntImm</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-837 158,-837 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-815 158,-815 158,4 -4,4"/>
 <!-- Node6 -->
 <g id="node1" class="node">
 <title>Node6</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 154,-101.5 154,-.5 0,-.5"/>
-<text text-anchor="middle" x="77" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 154,-82.5 "/>
-<text text-anchor="middle" x="77" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 154,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 154,-79.5 154,-.5 0,-.5"/>
+<text text-anchor="middle" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 154,-60.5 "/>
+<text text-anchor="middle" x="77" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 154,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node7 -->
 <g id="node2" class="node">
 <title>Node7</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-139.5 0,-240.5 154,-240.5 154,-139.5 0,-139.5"/>
-<text text-anchor="middle" x="77" y="-228.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-221.5 154,-221.5 "/>
-<text text-anchor="middle" x="77" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-202.5 154,-202.5 "/>
-<text text-anchor="start" x="8" y="-190.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-179.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-117.5 0,-218.5 154,-218.5 154,-117.5 0,-117.5"/>
+<text text-anchor="middle" x="77" y="-206.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-199.5 154,-199.5 "/>
+<text text-anchor="middle" x="77" y="-187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-180.5 154,-180.5 "/>
+<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="8" y="-135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-124.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node6 -->
 <g id="edge1" class="edge">
 <title>Node7&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M77,-129.2075C77,-120.0503 77,-110.6882 77,-101.7707"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-129.4246 77,-139.4246 80.5001,-129.4246 73.5001,-129.4246"/>
+<path fill="none" stroke="#191970" d="M77,-107.2732C77,-97.8606 77,-88.3534 77,-79.5688"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-107.411 77,-117.411 80.5001,-107.411 73.5001,-107.411"/>
 </g>
 <!-- Node8 -->
 <g id="node3" class="node">
 <title>Node8</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-278.5 0,-346.5 154,-346.5 154,-278.5 0,-278.5"/>
-<text text-anchor="middle" x="77" y="-334.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-327.5 154,-327.5 "/>
-<text text-anchor="middle" x="77" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-308.5 154,-308.5 "/>
-<text text-anchor="start" x="8" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-256.5 0,-324.5 154,-324.5 154,-256.5 0,-256.5"/>
+<text text-anchor="middle" x="77" y="-312.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-305.5 154,-305.5 "/>
+<text text-anchor="middle" x="77" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-286.5 154,-286.5 "/>
+<text text-anchor="start" x="8" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node8&#45;&gt;Node7 -->
 <g id="edge2" class="edge">
 <title>Node8&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M77,-268.2437C77,-259.3671 77,-249.9733 77,-240.8923"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-268.3769 77,-278.3769 80.5001,-268.377 73.5001,-268.3769"/>
+<path fill="none" stroke="#191970" d="M77,-246.2437C77,-237.3671 77,-227.9733 77,-218.8923"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-246.3769 77,-256.3769 80.5001,-246.377 73.5001,-246.3769"/>
 </g>
 <!-- Node9 -->
 <g id="node4" class="node">
 <title>Node9</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-384.5 10,-606.5 144,-606.5 144,-384.5 10,-384.5"/>
-<text text-anchor="middle" x="77" y="-594.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-587.5 144,-587.5 "/>
-<text text-anchor="start" x="18" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="10,-568.5 144,-568.5 "/>
-<text text-anchor="start" x="18" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-362.5 10,-584.5 144,-584.5 144,-362.5 10,-362.5"/>
+<text text-anchor="middle" x="77" y="-572.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-565.5 144,-565.5 "/>
+<text text-anchor="start" x="18" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="10,-546.5 144,-546.5 "/>
+<text text-anchor="start" x="18" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-380.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-369.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node8 -->
 <g id="edge3" class="edge">
 <title>Node9&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M77,-374.2198C77,-364.2931 77,-354.8914 77,-346.5572"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-374.3012 77,-384.3012 80.5001,-374.3012 73.5001,-374.3012"/>
+<path fill="none" stroke="#191970" d="M77,-352.2198C77,-342.2931 77,-332.8914 77,-324.5572"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-352.3012 77,-362.3012 80.5001,-352.3012 73.5001,-352.3012"/>
 </g>
 <!-- Node10 -->
 <g id="node5" class="node">
 <title>Node10</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="7,-654.5 7,-832.5 147,-832.5 147,-654.5 7,-654.5"/>
-<text text-anchor="start" x="15" y="-820.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="77" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="7,-802.5 147,-802.5 "/>
-<text text-anchor="middle" x="77" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="7,-783.5 147,-783.5 "/>
-<text text-anchor="start" x="15" y="-771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="7,-632.5 7,-810.5 147,-810.5 147,-632.5 7,-632.5"/>
+<text text-anchor="start" x="15" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="77" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="7,-780.5 147,-780.5 "/>
+<text text-anchor="middle" x="77" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="7,-761.5 147,-761.5 "/>
 <text text-anchor="start" x="15" y="-749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-727.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-716.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-694.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="15" y="-683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="15" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="15" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<text text-anchor="start" x="15" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-694.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="15" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="15" y="-650.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="15" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node10&#45;&gt;Node9 -->
 <g id="edge4" class="edge">
 <title>Node10&#45;&gt;Node9</title>
-<path fill="none" stroke="#404040" d="M77,-654.3167C77,-642.8765 77,-631.0062 77,-619.1402"/>
-<polygon fill="none" stroke="#404040" points="77.0001,-618.7944 73,-612.7944 77,-606.7944 81,-612.7943 77.0001,-618.7944"/>
-<text text-anchor="middle" x="96.5" y="-628" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M77,-632.3167C77,-620.8765 77,-609.0062 77,-597.1402"/>
+<polygon fill="none" stroke="#404040" points="77.0001,-596.7944 73,-590.7944 77,-584.7944 81,-590.7943 77.0001,-596.7944"/>
+<text text-anchor="middle" x="96.5" y="-606" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1IntImm__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1IntImm__inherit__graph.svg
index 8fb6a4d57d..c09636f114 100644
--- a/docs/reference/api/doxygen/classtvm_1_1IntImm__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1IntImm__inherit__graph.svg
@@ -4,24 +4,22 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::IntImm Pages: 1 -->
-<svg width="286pt" height="827pt"
- viewBox="0.00 0.00 285.50 827.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 823)">
+<svg width="286pt" height="805pt"
+ viewBox="0.00 0.00 285.50 805.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 801)">
 <title>tvm::IntImm</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-823 281.5,-823 281.5,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-801 281.5,-801 281.5,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="80,-204.5 80,-305.5 234,-305.5 234,-204.5 80,-204.5"/>
-<text text-anchor="middle" x="157" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
-<polyline fill="none" stroke="#000000" points="80,-286.5 234,-286.5 "/>
-<text text-anchor="middle" x="157" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="80,-267.5 234,-267.5 "/>
-<text text-anchor="start" x="88" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
-<text text-anchor="start" x="88" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="88" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="80,-204.5 80,-283.5 234,-283.5 234,-204.5 80,-204.5"/>
+<text text-anchor="middle" x="157" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
+<polyline fill="none" stroke="#000000" points="80,-264.5 234,-264.5 "/>
+<text text-anchor="middle" x="157" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="80,-245.5 234,-245.5 "/>
+<text text-anchor="start" x="88" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
 <text text-anchor="start" x="88" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="88" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="88" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
@@ -43,8 +41,8 @@
 <!-- Node0&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node0&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M131.0202,-194.9657C122.495,-175.2655 113.1109,-153.5805 104.9173,-134.6468"/>
-<polygon fill="none" stroke="#191970" points="127.8142,-196.3699 134.9979,-204.1573 134.2384,-193.5898 127.8142,-196.3699"/>
+<path fill="none" stroke="#191970" d="M134.4625,-195.2703C125.5755,-176.0551 115.3674,-153.9836 106.3982,-134.5907"/>
+<polygon fill="none" stroke="#191970" points="131.3333,-196.8424 138.7079,-204.4494 137.6867,-193.9039 131.3333,-196.8424"/>
 </g>
 <!-- Node5 -->
 <g id="node6" class="node">
@@ -72,86 +70,86 @@
 <!-- Node0&#45;&gt;Node5 -->
 <g id="edge5" class="edge">
 <title>Node0&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M183.0581,-194.7846C186.8655,-185.9866 190.8426,-176.7961 194.8074,-167.6342"/>
-<polygon fill="none" stroke="#191970" points="179.7616,-193.5898 179.0021,-204.1573 186.1858,-196.3699 179.7616,-193.5898"/>
+<path fill="none" stroke="#191970" d="M179.5843,-195.1691C183.65,-186.3783 187.9911,-176.9923 192.3626,-167.5402"/>
+<polygon fill="none" stroke="#191970" points="176.3133,-193.9039 175.2921,-204.4494 182.6667,-196.8424 176.3133,-193.9039"/>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="80,-342.5 80,-443.5 234,-443.5 234,-342.5 80,-342.5"/>
-<text text-anchor="middle" x="157" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="80,-424.5 234,-424.5 "/>
-<text text-anchor="middle" x="157" y="-412.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="80,-405.5 234,-405.5 "/>
-<text text-anchor="start" x="88" y="-393.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="88" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="88" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="88" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="88" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="80,-320.5 80,-421.5 234,-421.5 234,-320.5 80,-320.5"/>
+<text text-anchor="middle" x="157" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="80,-402.5 234,-402.5 "/>
+<text text-anchor="middle" x="157" y="-390.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="80,-383.5 234,-383.5 "/>
+<text text-anchor="start" x="88" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="88" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="88" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="88" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="88" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M157,-332.1179C157,-323.2601 157,-314.2213 157,-305.5964"/>
-<polygon fill="none" stroke="#191970" points="153.5001,-332.3975 157,-342.3975 160.5001,-332.3975 153.5001,-332.3975"/>
+<path fill="none" stroke="#191970" d="M157,-310.3446C157,-301.3388 157,-292.2565 157,-283.8243"/>
+<polygon fill="none" stroke="#191970" points="153.5001,-310.4413 157,-320.4413 160.5001,-310.4414 153.5001,-310.4413"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="80,-480.5 80,-548.5 234,-548.5 234,-480.5 80,-480.5"/>
-<text text-anchor="middle" x="157" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="80,-529.5 234,-529.5 "/>
-<text text-anchor="middle" x="157" y="-517.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="80,-510.5 234,-510.5 "/>
-<text text-anchor="start" x="88" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="88" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="80,-458.5 80,-526.5 234,-526.5 234,-458.5 80,-458.5"/>
+<text text-anchor="middle" x="157" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="80,-507.5 234,-507.5 "/>
+<text text-anchor="middle" x="157" y="-495.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="80,-488.5 234,-488.5 "/>
+<text text-anchor="start" x="88" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="88" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge2" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M157,-470.1349C157,-461.5408 157,-452.474 157,-443.6952"/>
-<polygon fill="none" stroke="#191970" points="153.5001,-470.3321 157,-480.3321 160.5001,-470.3322 153.5001,-470.3321"/>
+<path fill="none" stroke="#191970" d="M157,-448.1349C157,-439.5408 157,-430.474 157,-421.6952"/>
+<polygon fill="none" stroke="#191970" points="153.5001,-448.3321 157,-458.3321 160.5001,-448.3322 153.5001,-448.3321"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="90,-585.5 90,-818.5 224,-818.5 224,-585.5 90,-585.5"/>
-<text text-anchor="middle" x="157" y="-806.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="90,-799.5 224,-799.5 "/>
-<text text-anchor="start" x="98" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="98" y="-776.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="90,-769.5 224,-769.5 "/>
-<text text-anchor="start" x="98" y="-757.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="98" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="98" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="98" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="98" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="98" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="98" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="98" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="98" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="98" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="98" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="98" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="98" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="98" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="98" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="98" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="90,-563.5 90,-796.5 224,-796.5 224,-563.5 90,-563.5"/>
+<text text-anchor="middle" x="157" y="-784.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="90,-777.5 224,-777.5 "/>
+<text text-anchor="start" x="98" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="98" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="90,-747.5 224,-747.5 "/>
+<text text-anchor="start" x="98" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="98" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="98" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="98" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="98" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="98" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="98" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="98" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="98" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="98" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="98" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="98" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="98" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="98" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="98" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="98" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge3" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M157,-575.2822C157,-565.749 157,-556.737 157,-548.7166"/>
-<polygon fill="none" stroke="#191970" points="153.5001,-575.3857 157,-585.3857 160.5001,-575.3857 153.5001,-575.3857"/>
+<path fill="none" stroke="#191970" d="M157,-553.2822C157,-543.749 157,-534.737 157,-526.7166"/>
+<polygon fill="none" stroke="#191970" points="153.5001,-553.3857 157,-563.3857 160.5001,-553.3857 153.5001,-553.3857"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Integer-members.html b/docs/reference/api/doxygen/classtvm_1_1Integer-members.html
index 091fa1fe64..c0dfd24d98 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Integer-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Integer-members.html
@@ -101,12 +101,11 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a>(int32_t value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">PrimExpr</a>(float value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IntImm.html#a6d02ff59f45d533f2e30ecdb8a72b952">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1IntImm.html">tvm::IntImm</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1IntImm.html#a9ce59db1a112fb10b7f384b68a3afc9f">TVM_DEFINE_OBJECT_REF_METHODS</a>(IntImm, PrimExpr, IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1IntImm.html">tvm::IntImm</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1IntImm.html#a9ce59db1a112fb10b7f384b68a3afc9f">TVM_DEFINE_OBJECT_REF_METHODS</a>(IntImm, PrimExpr, IntImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1IntImm.html">tvm::IntImm</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Integer.html b/docs/reference/api/doxygen/classtvm_1_1Integer.html
index bfaaa1fe2c..9ffa1389dc 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Integer.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Integer.html
@@ -77,13 +77,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::Integer:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Integer__inherit__graph.svg" width="216" height="1103"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Integer__inherit__graph.svg" width="216" height="1074"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::Integer:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Integer__coll__graph.svg" width="216" height="1395"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Integer__coll__graph.svg" width="216" height="1366"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -126,8 +126,6 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:ad37f61019092f5201cf9e0500b75afe2 inherit pub_methods_classtvm_1_1IntImm"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9ce59db1a112fb10b7f384b68a3afc9f inherit pub_methods_classtvm_1_1IntImm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1IntImm.html#a9ce59db1a112fb10b7f384b68a3afc9f">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1IntImm.html">IntImm</a>, <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a>) [...]
 <tr class="separator:a9ce59db1a112fb10b7f384b68a3afc9f inherit pub_methods_classtvm_1_1IntImm"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6d02ff59f45d533f2e30ecdb8a72b952 inherit pub_methods_classtvm_1_1IntImm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1IntImm.html#a6d02ff59f45d533f2e30ecdb8a72b952">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a>)</td></tr>
-<tr class="separator:a6d02ff59f45d533f2e30ecdb8a72b952 inherit pub_methods_classtvm_1_1IntImm"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1PrimExpr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1PrimExpr')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td></tr>
 <tr class="memitem:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a> (int32_t value)</td></tr>
 <tr class="memdesc:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct from integer.  <a href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">More...</a><br /></td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Integer__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Integer__coll__graph.svg
index 9aaf679a82..2cefc4033d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Integer__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Integer__coll__graph.svg
@@ -4,11 +4,11 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::Integer Pages: 1 -->
-<svg width="162pt" height="1046pt"
- viewBox="0.00 0.00 162.00 1046.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1042)">
+<svg width="162pt" height="1024pt"
+ viewBox="0.00 0.00 162.00 1024.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1020)">
 <title>tvm::Integer</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1042 158,-1042 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1020 158,-1020 158,4 -4,4"/>
 <!-- Node5 -->
 <g id="node1" class="node">
 <title>Node5</title>
@@ -33,132 +33,130 @@
 <g id="node2" class="node">
 <title>Node6</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1IntImm.html" target="_top" xlink:title="Managed reference class to IntImmNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-205.5 0,-306.5 154,-306.5 154,-205.5 0,-205.5"/>
-<text text-anchor="middle" x="77" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
-<polyline fill="none" stroke="#000000" points="0,-287.5 154,-287.5 "/>
-<text text-anchor="middle" x="77" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-268.5 154,-268.5 "/>
-<text text-anchor="start" x="8" y="-256.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
-<text text-anchor="start" x="8" y="-245.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-234.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-205.5 0,-284.5 154,-284.5 154,-205.5 0,-205.5"/>
+<text text-anchor="middle" x="77" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
+<polyline fill="none" stroke="#000000" points="0,-265.5 154,-265.5 "/>
+<text text-anchor="middle" x="77" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-246.5 154,-246.5 "/>
+<text text-anchor="start" x="8" y="-234.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
 <text text-anchor="start" x="8" y="-223.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-212.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-212.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge1" class="edge">
 <title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M77,-195.0585C77,-186.137 77,-176.8213 77,-167.5438"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-195.3246 77,-205.3246 80.5001,-195.3246 73.5001,-195.3246"/>
+<path fill="none" stroke="#191970" d="M77,-194.9292C77,-186.2551 77,-177.0283 77,-167.7439"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-195.2022 77,-205.2022 80.5001,-195.2023 73.5001,-195.2022"/>
 </g>
 <!-- Node7 -->
 <g id="node3" class="node">
 <title>Node7</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-344.5 0,-445.5 154,-445.5 154,-344.5 0,-344.5"/>
-<text text-anchor="middle" x="77" y="-433.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-426.5 154,-426.5 "/>
-<text text-anchor="middle" x="77" y="-414.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-407.5 154,-407.5 "/>
-<text text-anchor="start" x="8" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="8" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-322.5 0,-423.5 154,-423.5 154,-322.5 0,-322.5"/>
+<text text-anchor="middle" x="77" y="-411.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-404.5 154,-404.5 "/>
+<text text-anchor="middle" x="77" y="-392.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-385.5 154,-385.5 "/>
+<text text-anchor="start" x="8" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="8" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node6 -->
 <g id="edge2" class="edge">
 <title>Node7&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M77,-334.2075C77,-325.0503 77,-315.6882 77,-306.7707"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-334.4246 77,-344.4246 80.5001,-334.4246 73.5001,-334.4246"/>
+<path fill="none" stroke="#191970" d="M77,-312.2732C77,-302.8606 77,-293.3534 77,-284.5688"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-312.411 77,-322.411 80.5001,-312.411 73.5001,-312.411"/>
 </g>
 <!-- Node8 -->
 <g id="node4" class="node">
 <title>Node8</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-483.5 0,-551.5 154,-551.5 154,-483.5 0,-483.5"/>
-<text text-anchor="middle" x="77" y="-539.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-532.5 154,-532.5 "/>
-<text text-anchor="middle" x="77" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-513.5 154,-513.5 "/>
-<text text-anchor="start" x="8" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-461.5 0,-529.5 154,-529.5 154,-461.5 0,-461.5"/>
+<text text-anchor="middle" x="77" y="-517.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-510.5 154,-510.5 "/>
+<text text-anchor="middle" x="77" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-491.5 154,-491.5 "/>
+<text text-anchor="start" x="8" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node8&#45;&gt;Node7 -->
 <g id="edge3" class="edge">
 <title>Node8&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M77,-473.2437C77,-464.3671 77,-454.9733 77,-445.8923"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-473.3769 77,-483.3769 80.5001,-473.377 73.5001,-473.3769"/>
+<path fill="none" stroke="#191970" d="M77,-451.2437C77,-442.3671 77,-432.9733 77,-423.8923"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-451.3769 77,-461.3769 80.5001,-451.377 73.5001,-451.3769"/>
 </g>
 <!-- Node9 -->
 <g id="node5" class="node">
 <title>Node9</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-589.5 10,-811.5 144,-811.5 144,-589.5 10,-589.5"/>
-<text text-anchor="middle" x="77" y="-799.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-792.5 144,-792.5 "/>
-<text text-anchor="start" x="18" y="-780.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="10,-773.5 144,-773.5 "/>
-<text text-anchor="start" x="18" y="-761.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-750.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-739.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-728.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-717.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-706.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-695.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-651.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-640.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-618.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-607.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-596.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-567.5 10,-789.5 144,-789.5 144,-567.5 10,-567.5"/>
+<text text-anchor="middle" x="77" y="-777.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-770.5 144,-770.5 "/>
+<text text-anchor="start" x="18" y="-758.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="10,-751.5 144,-751.5 "/>
+<text text-anchor="start" x="18" y="-739.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-728.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-717.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-706.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-695.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-651.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-640.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-618.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-607.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-596.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-585.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-574.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node8 -->
 <g id="edge4" class="edge">
 <title>Node9&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M77,-579.2198C77,-569.2931 77,-559.8914 77,-551.5572"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-579.3012 77,-589.3012 80.5001,-579.3012 73.5001,-579.3012"/>
+<path fill="none" stroke="#191970" d="M77,-557.2198C77,-547.2931 77,-537.8914 77,-529.5572"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-557.3012 77,-567.3012 80.5001,-557.3012 73.5001,-557.3012"/>
 </g>
 <!-- Node10 -->
 <g id="node6" class="node">
 <title>Node10</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="7,-859.5 7,-1037.5 147,-1037.5 147,-859.5 7,-859.5"/>
-<text text-anchor="start" x="15" y="-1025.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="77" y="-1014.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="7,-1007.5 147,-1007.5 "/>
-<text text-anchor="middle" x="77" y="-995.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="7,-988.5 147,-988.5 "/>
-<text text-anchor="start" x="15" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="7,-837.5 7,-1015.5 147,-1015.5 147,-837.5 7,-837.5"/>
+<text text-anchor="start" x="15" y="-1003.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="77" y="-992.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="7,-985.5 147,-985.5 "/>
+<text text-anchor="middle" x="77" y="-973.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="7,-966.5 147,-966.5 "/>
 <text text-anchor="start" x="15" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-921.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="15" y="-888.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="15" y="-877.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="15" y="-866.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<text text-anchor="start" x="15" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-888.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-877.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="15" y="-866.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="15" y="-855.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="15" y="-844.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node10&#45;&gt;Node9 -->
 <g id="edge5" class="edge">
 <title>Node10&#45;&gt;Node9</title>
-<path fill="none" stroke="#404040" d="M77,-859.3167C77,-847.8765 77,-836.0062 77,-824.1402"/>
-<polygon fill="none" stroke="#404040" points="77.0001,-823.7944 73,-817.7944 77,-811.7944 81,-817.7943 77.0001,-823.7944"/>
-<text text-anchor="middle" x="96.5" y="-833" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M77,-837.3167C77,-825.8765 77,-814.0062 77,-802.1402"/>
+<polygon fill="none" stroke="#404040" points="77.0001,-801.7944 73,-795.7944 77,-789.7944 81,-795.7943 77.0001,-801.7944"/>
+<text text-anchor="middle" x="96.5" y="-811" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Integer__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Integer__inherit__graph.svg
index 05e9c0ff5d..4d2f17e810 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Integer__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Integer__inherit__graph.svg
@@ -4,11 +4,11 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::Integer Pages: 1 -->
-<svg width="162pt" height="827pt"
- viewBox="0.00 0.00 162.00 827.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 823)">
+<svg width="162pt" height="805pt"
+ viewBox="0.00 0.00 162.00 805.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 801)">
 <title>tvm::Integer</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-823 158,-823 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-801 158,-801 158,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
@@ -33,102 +33,100 @@
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1IntImm.html" target="_top" xlink:title="Managed reference class to IntImmNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-204.5 0,-305.5 154,-305.5 154,-204.5 0,-204.5"/>
-<text text-anchor="middle" x="77" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
-<polyline fill="none" stroke="#000000" points="0,-286.5 154,-286.5 "/>
-<text text-anchor="middle" x="77" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-267.5 154,-267.5 "/>
-<text text-anchor="start" x="8" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
-<text text-anchor="start" x="8" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-204.5 0,-283.5 154,-283.5 154,-204.5 0,-204.5"/>
+<text text-anchor="middle" x="77" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
+<polyline fill="none" stroke="#000000" points="0,-264.5 154,-264.5 "/>
+<text text-anchor="middle" x="77" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-245.5 154,-245.5 "/>
+<text text-anchor="start" x="8" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
 <text text-anchor="start" x="8" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M77,-193.941C77,-185.4 77,-176.5037 77,-167.6342"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-194.1573 77,-204.1573 80.5001,-194.1574 73.5001,-194.1573"/>
+<path fill="none" stroke="#191970" d="M77,-194.3256C77,-185.7791 77,-176.6906 77,-167.5402"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-194.4494 77,-204.4494 80.5001,-194.4495 73.5001,-194.4494"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-342.5 0,-443.5 154,-443.5 154,-342.5 0,-342.5"/>
-<text text-anchor="middle" x="77" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-424.5 154,-424.5 "/>
-<text text-anchor="middle" x="77" y="-412.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-405.5 154,-405.5 "/>
-<text text-anchor="start" x="8" y="-393.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="8" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-320.5 0,-421.5 154,-421.5 154,-320.5 0,-320.5"/>
+<text text-anchor="middle" x="77" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-402.5 154,-402.5 "/>
+<text text-anchor="middle" x="77" y="-390.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-383.5 154,-383.5 "/>
+<text text-anchor="start" x="8" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="8" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge2" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M77,-332.1179C77,-323.2601 77,-314.2213 77,-305.5964"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-332.3975 77,-342.3975 80.5001,-332.3975 73.5001,-332.3975"/>
+<path fill="none" stroke="#191970" d="M77,-310.3446C77,-301.3388 77,-292.2565 77,-283.8243"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-310.4413 77,-320.4413 80.5001,-310.4414 73.5001,-310.4413"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-480.5 0,-548.5 154,-548.5 154,-480.5 0,-480.5"/>
-<text text-anchor="middle" x="77" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-529.5 154,-529.5 "/>
-<text text-anchor="middle" x="77" y="-517.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-510.5 154,-510.5 "/>
-<text text-anchor="start" x="8" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-458.5 0,-526.5 154,-526.5 154,-458.5 0,-458.5"/>
+<text text-anchor="middle" x="77" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-507.5 154,-507.5 "/>
+<text text-anchor="middle" x="77" y="-495.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-488.5 154,-488.5 "/>
+<text text-anchor="start" x="8" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge3" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M77,-470.1349C77,-461.5408 77,-452.474 77,-443.6952"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-470.3321 77,-480.3321 80.5001,-470.3322 73.5001,-470.3321"/>
+<path fill="none" stroke="#191970" d="M77,-448.1349C77,-439.5408 77,-430.474 77,-421.6952"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-448.3321 77,-458.3321 80.5001,-448.3322 73.5001,-448.3321"/>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
 <title>Node4</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-585.5 10,-818.5 144,-818.5 144,-585.5 10,-585.5"/>
-<text text-anchor="middle" x="77" y="-806.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-799.5 144,-799.5 "/>
-<text text-anchor="start" x="18" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="18" y="-776.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="10,-769.5 144,-769.5 "/>
-<text text-anchor="start" x="18" y="-757.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-563.5 10,-796.5 144,-796.5 144,-563.5 10,-563.5"/>
+<text text-anchor="middle" x="77" y="-784.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-777.5 144,-777.5 "/>
+<text text-anchor="start" x="18" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="18" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="10,-747.5 144,-747.5 "/>
+<text text-anchor="start" x="18" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node3 -->
 <g id="edge4" class="edge">
 <title>Node4&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M77,-575.2822C77,-565.749 77,-556.737 77,-548.7166"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-575.3857 77,-585.3857 80.5001,-575.3857 73.5001,-575.3857"/>
+<path fill="none" stroke="#191970" d="M77,-553.2822C77,-543.749 77,-534.737 77,-526.7166"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-553.3857 77,-563.3857 80.5001,-553.3857 73.5001,-553.3857"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrimExpr__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1PrimExpr__inherit__graph.svg
index f233c8a82b..7f506a11e7 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrimExpr__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1PrimExpr__inherit__graph.svg
@@ -47,138 +47,126 @@
 <g id="node7" class="node">
 <title>Node6</title>
 <g id="a_node7"><a xlink:href="classtvm_1_1FloatImm.html" target="_top" xlink:title="Managed reference class to FloatImmNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="302,-215.5 302,-316.5 456,-316.5 456,-215.5 302,-215.5"/>
-<text text-anchor="middle" x="379" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::FloatImm</text>
-<polyline fill="none" stroke="#000000" points="302,-297.5 456,-297.5 "/>
-<text text-anchor="middle" x="379" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="302,-278.5 456,-278.5 "/>
-<text text-anchor="start" x="310" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloatImm()</text>
-<text text-anchor="start" x="310" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="310" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="310" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="310" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="302,-226.5 302,-305.5 456,-305.5 456,-226.5 302,-226.5"/>
+<text text-anchor="middle" x="379" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::FloatImm</text>
+<polyline fill="none" stroke="#000000" points="302,-286.5 456,-286.5 "/>
+<text text-anchor="middle" x="379" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="302,-267.5 456,-267.5 "/>
+<text text-anchor="start" x="310" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloatImm()</text>
+<text text-anchor="start" x="310" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="310" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node6 -->
 <g id="edge6" class="edge">
 <title>Node0&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M3055.5966,-413.5944C2608.1684,-406.2178 590.22,-370.6889 465,-328 456.6377,-325.1492 448.3878,-321.1877 440.5022,-316.6324"/>
+<path fill="none" stroke="#191970" d="M3055.5966,-413.5944C2608.1684,-406.2178 590.22,-370.6889 465,-328 450.3659,-323.0111 436.0762,-314.6208 423.4804,-305.5985"/>
 <polygon fill="none" stroke="#191970" points="3055.8157,-417.0984 3065.8719,-413.7634 3055.9309,-410.0993 3055.8157,-417.0984"/>
 </g>
 <!-- Node7 -->
 <g id="node8" class="node">
 <title>Node7</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1IntImm.html" target="_top" xlink:title="Managed reference class to IntImmNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="474,-215.5 474,-316.5 628,-316.5 628,-215.5 474,-215.5"/>
-<text text-anchor="middle" x="551" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
-<polyline fill="none" stroke="#000000" points="474,-297.5 628,-297.5 "/>
-<text text-anchor="middle" x="551" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="474,-278.5 628,-278.5 "/>
-<text text-anchor="start" x="482" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
-<text text-anchor="start" x="482" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="482" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="482" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="482" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="474,-226.5 474,-305.5 628,-305.5 628,-226.5 474,-226.5"/>
+<text text-anchor="middle" x="551" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IntImm</text>
+<polyline fill="none" stroke="#000000" points="474,-286.5 628,-286.5 "/>
+<text text-anchor="middle" x="551" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="474,-267.5 628,-267.5 "/>
+<text text-anchor="start" x="482" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IntImm()</text>
+<text text-anchor="start" x="482" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="482" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node7 -->
 <g id="edge7" class="edge">
 <title>Node0&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M3055.6833,-413.3937C2626.1784,-405.3119 753.6341,-367.9069 637,-328 628.6409,-325.1399 620.393,-321.1726 612.5085,-316.6139"/>
+<path fill="none" stroke="#191970" d="M3055.6833,-413.3937C2626.1784,-405.3119 753.6341,-367.9069 637,-328 622.3715,-322.9948 608.0837,-314.5989 595.488,-305.5765"/>
 <polygon fill="none" stroke="#191970" points="3055.7974,-416.8964 3065.8614,-413.5848 3055.9289,-409.8976 3055.7974,-416.8964"/>
 </g>
 <!-- Node10 -->
 <g id="node11" class="node">
 <title>Node10</title>
 <g id="a_node11"><a xlink:href="classtvm_1_1tir_1_1Add.html" target="_top" xlink:title="Managed reference to AddNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="646,-215.5 646,-316.5 800,-316.5 800,-215.5 646,-215.5"/>
-<text text-anchor="middle" x="723" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Add</text>
-<polyline fill="none" stroke="#000000" points="646,-297.5 800,-297.5 "/>
-<text text-anchor="middle" x="723" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="646,-278.5 800,-278.5 "/>
-<text text-anchor="start" x="654" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Add()</text>
-<text text-anchor="start" x="654" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="654" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="654" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="654" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="646,-226.5 646,-305.5 800,-305.5 800,-226.5 646,-226.5"/>
+<text text-anchor="middle" x="723" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Add</text>
+<polyline fill="none" stroke="#000000" points="646,-286.5 800,-286.5 "/>
+<text text-anchor="middle" x="723" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="646,-267.5 800,-267.5 "/>
+<text text-anchor="start" x="654" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Add()</text>
+<text text-anchor="start" x="654" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="654" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node10 -->
 <g id="edge10" class="edge">
 <title>Node0&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M3055.8022,-414.7328C2657.8617,-413.1121 1024.2934,-401.9711 809,-328 800.6445,-325.1292 792.3989,-321.1553 784.5157,-316.5928"/>
+<path fill="none" stroke="#191970" d="M3055.8022,-414.7328C2657.8617,-413.1121 1024.2934,-401.9711 809,-328 794.3779,-322.9761 780.0923,-314.5738 767.4966,-305.5512"/>
 <polygon fill="none" stroke="#191970" points="3055.8003,-418.2327 3065.8142,-414.7726 3055.8282,-411.2328 3055.8003,-418.2327"/>
 </g>
 <!-- Node11 -->
 <g id="node12" class="node">
 <title>Node11</title>
 <g id="a_node12"><a xlink:href="classtvm_1_1tir_1_1And.html" target="_top" xlink:title="Managed reference to AndNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="818,-215.5 818,-316.5 972,-316.5 972,-215.5 818,-215.5"/>
-<text text-anchor="middle" x="895" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::And</text>
-<polyline fill="none" stroke="#000000" points="818,-297.5 972,-297.5 "/>
-<text text-anchor="middle" x="895" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="818,-278.5 972,-278.5 "/>
-<text text-anchor="start" x="826" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ And()</text>
-<text text-anchor="start" x="826" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="826" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="826" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="826" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="818,-226.5 818,-305.5 972,-305.5 972,-226.5 818,-226.5"/>
+<text text-anchor="middle" x="895" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::And</text>
+<polyline fill="none" stroke="#000000" points="818,-286.5 972,-286.5 "/>
+<text text-anchor="middle" x="895" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="818,-267.5 972,-267.5 "/>
+<text text-anchor="start" x="826" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ And()</text>
+<text text-anchor="start" x="826" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="826" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node11 -->
 <g id="edge11" class="edge">
 <title>Node0&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M3055.7724,-414.4531C2676.2869,-411.6737 1179.2061,-396.4285 981,-328 972.6488,-325.1168 964.4058,-321.1352 956.5241,-316.5683"/>
+<path fill="none" stroke="#191970" d="M3055.7724,-414.4531C2676.2869,-411.6737 1179.2061,-396.4285 981,-328 966.3854,-322.9545 952.1023,-314.5448 939.5067,-305.5219"/>
 <polygon fill="none" stroke="#191970" points="3055.8445,-417.9536 3065.8696,-414.526 3055.8952,-410.9538 3055.8445,-417.9536"/>
 </g>
 <!-- Node12 -->
 <g id="node13" class="node">
 <title>Node12</title>
 <g id="a_node13"><a xlink:href="classtvm_1_1tir_1_1Any.html" target="_top" xlink:title="Managed reference to AnyNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="990,-215.5 990,-316.5 1156,-316.5 1156,-215.5 990,-215.5"/>
-<text text-anchor="middle" x="1073" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Any</text>
-<polyline fill="none" stroke="#000000" points="990,-297.5 1156,-297.5 "/>
-<text text-anchor="middle" x="1073" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="990,-278.5 1156,-278.5 "/>
-<text text-anchor="start" x="998" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Any()</text>
-<text text-anchor="start" x="998" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="998" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="998" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="998" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="990,-226.5 990,-305.5 1156,-305.5 1156,-226.5 990,-226.5"/>
+<text text-anchor="middle" x="1073" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Any</text>
+<polyline fill="none" stroke="#000000" points="990,-286.5 1156,-286.5 "/>
+<text text-anchor="middle" x="1073" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="990,-267.5 1156,-267.5 "/>
+<text text-anchor="start" x="998" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Any()</text>
+<text text-anchor="start" x="998" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="998" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node12 -->
 <g id="edge12" class="edge">
 <title>Node0&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M3055.6435,-413.9446C2696.7255,-409.2305 1345.9194,-387.6495 1165,-328 1156.2198,-325.1051 1147.4978,-321.1162 1139.1208,-316.5452"/>
+<path fill="none" stroke="#191970" d="M3055.6435,-413.9446C2696.7255,-409.2305 1345.9194,-387.6495 1165,-328 1149.8176,-322.9943 1134.8091,-314.7172 1121.4579,-305.8162"/>
 <polygon fill="none" stroke="#191970" points="3055.6727,-417.4452 3065.7175,-414.0759 3055.7639,-410.4458 3055.6727,-417.4452"/>
 </g>
 <!-- Node13 -->
 <g id="node14" class="node">
 <title>Node13</title>
 <g id="a_node14"><a xlink:href="classtvm_1_1tir_1_1Broadcast.html" target="_top" xlink:title="Managed reference to BroadcastNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1174,-215.5 1174,-316.5 1328,-316.5 1328,-215.5 1174,-215.5"/>
-<text text-anchor="middle" x="1251" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Broadcast</text>
-<polyline fill="none" stroke="#000000" points="1174,-297.5 1328,-297.5 "/>
-<text text-anchor="middle" x="1251" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1174,-278.5 1328,-278.5 "/>
-<text text-anchor="start" x="1182" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Broadcast()</text>
-<text text-anchor="start" x="1182" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1182" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="1182" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1182" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1174,-226.5 1174,-305.5 1328,-305.5 1328,-226.5 1174,-226.5"/>
+<text text-anchor="middle" x="1251" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Broadcast</text>
+<polyline fill="none" stroke="#000000" points="1174,-286.5 1328,-286.5 "/>
+<text text-anchor="middle" x="1251" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1174,-267.5 1328,-267.5 "/>
+<text text-anchor="start" x="1182" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Broadcast()</text>
+<text text-anchor="start" x="1182" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1182" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node13 -->
 <g id="edge13" class="edge">
 <title>Node0&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M3055.7222,-413.7058C2716.9769,-408.2863 1499.996,-384.9957 1337,-328 1328.6603,-325.0838 1320.4245,-321.0815 1312.5469,-316.5029"/>
+<path fill="none" stroke="#191970" d="M3055.7222,-413.7058C2716.9769,-408.2863 1499.996,-384.9957 1337,-328 1322.5792,-322.9574 1308.4692,-314.6673 1295.9845,-305.7656"/>
 <polygon fill="none" stroke="#191970" points="3055.9113,-417.2091 3065.9656,-413.8685 3056.0225,-410.21 3055.9113,-417.2091"/>
 </g>
 <!-- Node14 -->
@@ -208,600 +196,548 @@
 <g id="node16" class="node">
 <title>Node15</title>
 <g id="a_node16"><a xlink:href="classtvm_1_1tir_1_1Call.html" target="_top" xlink:title="Managed reference to CallNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1518,-215.5 1518,-316.5 1672,-316.5 1672,-215.5 1518,-215.5"/>
-<text text-anchor="middle" x="1595" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Call</text>
-<polyline fill="none" stroke="#000000" points="1518,-297.5 1672,-297.5 "/>
-<text text-anchor="middle" x="1595" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1518,-278.5 1672,-278.5 "/>
-<text text-anchor="start" x="1526" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Call()</text>
-<text text-anchor="start" x="1526" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1526" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="1526" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1526" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1518,-226.5 1518,-305.5 1672,-305.5 1672,-226.5 1518,-226.5"/>
+<text text-anchor="middle" x="1595" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Call</text>
+<polyline fill="none" stroke="#000000" points="1518,-286.5 1672,-286.5 "/>
+<text text-anchor="middle" x="1595" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1518,-267.5 1672,-267.5 "/>
+<text text-anchor="start" x="1526" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Call()</text>
+<text text-anchor="start" x="1526" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1526" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node15 -->
 <g id="edge15" class="edge">
 <title>Node0&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M3055.2867,-412.629C2759.5311,-404.2418 1810.1672,-373.9874 1681,-328 1672.8503,-325.0985 1664.7942,-321.1725 1657.0722,-316.6961"/>
+<path fill="none" stroke="#191970" d="M3055.2867,-412.629C2759.5311,-404.2418 1810.1672,-373.9874 1681,-328 1666.6079,-322.876 1652.5081,-314.5573 1640.0238,-305.6541"/>
 <polygon fill="none" stroke="#191970" points="3055.4346,-416.1344 3065.5295,-412.9181 3055.6322,-409.1372 3055.4346,-416.1344"/>
 </g>
 <!-- Node16 -->
 <g id="node17" class="node">
 <title>Node16</title>
 <g id="a_node17"><a xlink:href="classtvm_1_1tir_1_1Cast.html" target="_top" xlink:title="Managed reference to CastNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1690,-215.5 1690,-316.5 1844,-316.5 1844,-215.5 1690,-215.5"/>
-<text text-anchor="middle" x="1767" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Cast</text>
-<polyline fill="none" stroke="#000000" points="1690,-297.5 1844,-297.5 "/>
-<text text-anchor="middle" x="1767" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1690,-278.5 1844,-278.5 "/>
-<text text-anchor="start" x="1698" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Cast()</text>
-<text text-anchor="start" x="1698" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1698" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="1698" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1698" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1690,-226.5 1690,-305.5 1844,-305.5 1844,-226.5 1690,-226.5"/>
+<text text-anchor="middle" x="1767" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Cast</text>
+<polyline fill="none" stroke="#000000" points="1690,-286.5 1844,-286.5 "/>
+<text text-anchor="middle" x="1767" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1690,-267.5 1844,-267.5 "/>
+<text text-anchor="start" x="1698" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Cast()</text>
+<text text-anchor="start" x="1698" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1698" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node16 -->
 <g id="edge16" class="edge">
 <title>Node0&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M3055.5998,-411.8933C2783.8951,-401.8488 1965.4514,-368.5374 1853,-328 1844.8618,-325.0663 1836.8131,-321.12 1829.0953,-316.6318"/>
+<path fill="none" stroke="#191970" d="M3055.5998,-411.8933C2783.8951,-401.8488 1965.4514,-368.5374 1853,-328 1838.6283,-322.8192 1824.5356,-314.4805 1812.0517,-305.5762"/>
 <polygon fill="none" stroke="#191970" points="3055.6851,-415.3988 3065.8072,-412.2692 3055.9428,-408.4035 3055.6851,-415.3988"/>
 </g>
 <!-- Node17 -->
 <g id="node18" class="node">
 <title>Node17</title>
 <g id="a_node18"><a xlink:href="classtvm_1_1tir_1_1Div.html" target="_top" xlink:title="Managed reference to DivNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1862,-215.5 1862,-316.5 2016,-316.5 2016,-215.5 1862,-215.5"/>
-<text text-anchor="middle" x="1939" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Div</text>
-<polyline fill="none" stroke="#000000" points="1862,-297.5 2016,-297.5 "/>
-<text text-anchor="middle" x="1939" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1862,-278.5 2016,-278.5 "/>
-<text text-anchor="start" x="1870" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Div()</text>
-<text text-anchor="start" x="1870" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1870" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="1870" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1870" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1862,-226.5 1862,-305.5 2016,-305.5 2016,-226.5 1862,-226.5"/>
+<text text-anchor="middle" x="1939" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Div</text>
+<polyline fill="none" stroke="#000000" points="1862,-286.5 2016,-286.5 "/>
+<text text-anchor="middle" x="1939" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1862,-267.5 2016,-267.5 "/>
+<text text-anchor="start" x="1870" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Div()</text>
+<text text-anchor="start" x="1870" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1870" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node17 -->
 <g id="edge17" class="edge">
 <title>Node0&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M3055.5959,-414.2633C2826.6139,-411.3744 2213.9264,-397.2094 2025,-328 2016.877,-325.0243 2008.838,-321.0515 2001.1258,-316.5479"/>
+<path fill="none" stroke="#191970" d="M3055.5959,-414.2633C2826.6139,-411.3744 2213.9264,-397.2094 2025,-328 2010.828,-322.8084 1996.9114,-314.5814 1984.5405,-305.7963"/>
 <polygon fill="none" stroke="#191970" points="3055.837,-417.7664 3065.879,-414.3887 3055.9224,-410.767 3055.837,-417.7664"/>
 </g>
 <!-- Node18 -->
 <g id="node19" class="node">
 <title>Node18</title>
 <g id="a_node19"><a xlink:href="classtvm_1_1tir_1_1EQ.html" target="_top" xlink:title="Managed reference to EQNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2034,-215.5 2034,-316.5 2188,-316.5 2188,-215.5 2034,-215.5"/>
-<text text-anchor="middle" x="2111" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::EQ</text>
-<polyline fill="none" stroke="#000000" points="2034,-297.5 2188,-297.5 "/>
-<text text-anchor="middle" x="2111" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2034,-278.5 2188,-278.5 "/>
-<text text-anchor="start" x="2042" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EQ()</text>
-<text text-anchor="start" x="2042" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2042" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2042" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2042" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2034,-226.5 2034,-305.5 2188,-305.5 2188,-226.5 2034,-226.5"/>
+<text text-anchor="middle" x="2111" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::EQ</text>
+<polyline fill="none" stroke="#000000" points="2034,-286.5 2188,-286.5 "/>
+<text text-anchor="middle" x="2111" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2034,-267.5 2188,-267.5 "/>
+<text text-anchor="start" x="2042" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EQ()</text>
+<text text-anchor="start" x="2042" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2042" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node18 -->
 <g id="edge18" class="edge">
 <title>Node0&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M3055.9439,-412.8338C2852.8577,-406.8465 2353.1705,-386.4573 2197,-328 2189.0705,-325.0319 2181.214,-321.1286 2173.6602,-316.722"/>
+<path fill="none" stroke="#191970" d="M3055.9439,-412.8338C2852.8577,-406.8465 2353.1705,-386.4573 2197,-328 2182.8648,-322.709 2168.9614,-314.4463 2156.5915,-305.6586"/>
 <polygon fill="none" stroke="#191970" points="3055.8752,-416.3331 3065.9726,-413.1248 3056.0784,-409.3361 3055.8752,-416.3331"/>
 </g>
 <!-- Node19 -->
 <g id="node20" class="node">
 <title>Node19</title>
 <g id="a_node20"><a xlink:href="classtvm_1_1tir_1_1FloorDiv.html" target="_top" xlink:title="Managed reference to FloorDivNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2206,-215.5 2206,-316.5 2360,-316.5 2360,-215.5 2206,-215.5"/>
-<text text-anchor="middle" x="2283" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::FloorDiv</text>
-<polyline fill="none" stroke="#000000" points="2206,-297.5 2360,-297.5 "/>
-<text text-anchor="middle" x="2283" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2206,-278.5 2360,-278.5 "/>
-<text text-anchor="start" x="2214" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloorDiv()</text>
-<text text-anchor="start" x="2214" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2214" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2214" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2214" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2206,-226.5 2206,-305.5 2360,-305.5 2360,-226.5 2206,-226.5"/>
+<text text-anchor="middle" x="2283" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::FloorDiv</text>
+<polyline fill="none" stroke="#000000" points="2206,-286.5 2360,-286.5 "/>
+<text text-anchor="middle" x="2283" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2206,-267.5 2360,-267.5 "/>
+<text text-anchor="start" x="2214" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloorDiv()</text>
+<text text-anchor="start" x="2214" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2214" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node19 -->
 <g id="edge19" class="edge">
 <title>Node0&#45;&gt;Node19</title>
-<path fill="none" stroke="#191970" d="M3055.6752,-410.7609C2880.5426,-401.3534 2492.6129,-375.7011 2369,-328 2361.1009,-324.9518 2353.2639,-320.9973 2345.7216,-316.5605"/>
+<path fill="none" stroke="#191970" d="M3055.6752,-410.7609C2880.5426,-401.3534 2492.6129,-375.7011 2369,-328 2355.0908,-322.6326 2341.3738,-314.4547 2329.1199,-305.7823"/>
 <polygon fill="none" stroke="#191970" points="3055.7124,-414.2678 3065.8842,-411.3038 3056.0842,-407.2776 3055.7124,-414.2678"/>
 </g>
 <!-- Node20 -->
 <g id="node21" class="node">
 <title>Node20</title>
 <g id="a_node21"><a xlink:href="classtvm_1_1tir_1_1FloorMod.html" target="_top" xlink:title="Managed reference to FloorModNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2378,-215.5 2378,-316.5 2532,-316.5 2532,-215.5 2378,-215.5"/>
-<text text-anchor="middle" x="2455" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::FloorMod</text>
-<polyline fill="none" stroke="#000000" points="2378,-297.5 2532,-297.5 "/>
-<text text-anchor="middle" x="2455" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2378,-278.5 2532,-278.5 "/>
-<text text-anchor="start" x="2386" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloorMod()</text>
-<text text-anchor="start" x="2386" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2386" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2386" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2386" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2378,-226.5 2378,-305.5 2532,-305.5 2532,-226.5 2378,-226.5"/>
+<text text-anchor="middle" x="2455" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::FloorMod</text>
+<polyline fill="none" stroke="#000000" points="2378,-286.5 2532,-286.5 "/>
+<text text-anchor="middle" x="2455" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2378,-267.5 2532,-267.5 "/>
+<text text-anchor="start" x="2386" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ FloorMod()</text>
+<text text-anchor="start" x="2386" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2386" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node20 -->
 <g id="edge20" class="edge">
 <title>Node0&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M3055.6336,-407.5375C2911.9642,-394.4075 2632.6076,-365.0234 2541,-328 2533.3207,-324.8964 2525.6839,-320.9682 2518.3118,-316.6011"/>
+<path fill="none" stroke="#191970" d="M3055.6336,-407.5375C2911.9642,-394.4075 2632.6076,-365.0234 2541,-328 2527.348,-322.4825 2513.83,-314.3588 2501.6955,-305.7965"/>
 <polygon fill="none" stroke="#191970" points="3055.4634,-411.0363 3065.7389,-408.4546 3056.0962,-404.065 3055.4634,-411.0363"/>
 </g>
 <!-- Node21 -->
 <g id="node22" class="node">
 <title>Node21</title>
 <g id="a_node22"><a xlink:href="classtvm_1_1tir_1_1GE.html" target="_top" xlink:title="Managed reference to GENode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2550,-215.5 2550,-316.5 2704,-316.5 2704,-215.5 2550,-215.5"/>
-<text text-anchor="middle" x="2627" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::GE</text>
-<polyline fill="none" stroke="#000000" points="2550,-297.5 2704,-297.5 "/>
-<text text-anchor="middle" x="2627" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2550,-278.5 2704,-278.5 "/>
-<text text-anchor="start" x="2558" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GE()</text>
-<text text-anchor="start" x="2558" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2558" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2558" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2558" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2550,-226.5 2550,-305.5 2704,-305.5 2704,-226.5 2550,-226.5"/>
+<text text-anchor="middle" x="2627" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::GE</text>
+<polyline fill="none" stroke="#000000" points="2550,-286.5 2704,-286.5 "/>
+<text text-anchor="middle" x="2627" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2550,-267.5 2704,-267.5 "/>
+<text text-anchor="start" x="2558" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GE()</text>
+<text text-anchor="start" x="2558" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2558" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node21 -->
 <g id="edge21" class="edge">
 <title>Node0&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M3055.7936,-408.2501C2966.5423,-398.8783 2825.389,-377.133 2713,-328 2705.7481,-324.8297 2698.506,-320.9752 2691.4751,-316.7557"/>
+<path fill="none" stroke="#191970" d="M3055.7936,-408.2501C2966.5423,-398.8783 2825.389,-377.133 2713,-328 2699.6767,-322.1755 2686.3866,-314.0415 2674.378,-305.5781"/>
 <polygon fill="none" stroke="#191970" points="3055.5731,-411.7457 3065.8768,-409.2794 3056.284,-404.7819 3055.5731,-411.7457"/>
 </g>
 <!-- Node22 -->
 <g id="node23" class="node">
 <title>Node22</title>
 <g id="a_node23"><a xlink:href="classtvm_1_1tir_1_1GT.html" target="_top" xlink:title="Managed reference to GTNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2722,-215.5 2722,-316.5 2876,-316.5 2876,-215.5 2722,-215.5"/>
-<text text-anchor="middle" x="2799" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::GT</text>
-<polyline fill="none" stroke="#000000" points="2722,-297.5 2876,-297.5 "/>
-<text text-anchor="middle" x="2799" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2722,-278.5 2876,-278.5 "/>
-<text text-anchor="start" x="2730" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GT()</text>
-<text text-anchor="start" x="2730" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2730" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2730" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2730" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2722,-226.5 2722,-305.5 2876,-305.5 2876,-226.5 2722,-226.5"/>
+<text text-anchor="middle" x="2799" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::GT</text>
+<polyline fill="none" stroke="#000000" points="2722,-286.5 2876,-286.5 "/>
+<text text-anchor="middle" x="2799" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2722,-267.5 2876,-267.5 "/>
+<text text-anchor="start" x="2730" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GT()</text>
+<text text-anchor="start" x="2730" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2730" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node22 -->
 <g id="edge22" class="edge">
 <title>Node0&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M3056.0382,-392.7385C3004.7307,-377.8962 2939.4013,-355.9726 2885,-328 2878.4524,-324.6333 2871.8514,-320.805 2865.3734,-316.7416"/>
+<path fill="none" stroke="#191970" d="M3056.0382,-392.7385C3004.7307,-377.8962 2939.4013,-355.9726 2885,-328 2872.7233,-321.6874 2860.2586,-313.7522 2848.7696,-305.6868"/>
 <polygon fill="none" stroke="#191970" points="3055.2002,-396.139 3065.7769,-395.5197 3057.1225,-389.4081 3055.2002,-396.139"/>
 </g>
 <!-- Node23 -->
 <g id="node24" class="node">
 <title>Node23</title>
 <g id="a_node24"><a xlink:href="classtvm_1_1tir_1_1LE.html" target="_top" xlink:title="Managed reference to LENode. ">
-<polygon fill="#ffffff" stroke="#000000" points="2894,-215.5 2894,-316.5 3048,-316.5 3048,-215.5 2894,-215.5"/>
-<text text-anchor="middle" x="2971" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LE</text>
-<polyline fill="none" stroke="#000000" points="2894,-297.5 3048,-297.5 "/>
-<text text-anchor="middle" x="2971" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="2894,-278.5 3048,-278.5 "/>
-<text text-anchor="start" x="2902" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LE()</text>
-<text text-anchor="start" x="2902" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2902" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="2902" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2902" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="2894,-226.5 2894,-305.5 3048,-305.5 3048,-226.5 2894,-226.5"/>
+<text text-anchor="middle" x="2971" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LE</text>
+<polyline fill="none" stroke="#000000" points="2894,-286.5 3048,-286.5 "/>
+<text text-anchor="middle" x="2971" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="2894,-267.5 3048,-267.5 "/>
+<text text-anchor="start" x="2902" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LE()</text>
+<text text-anchor="start" x="2902" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2902" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node23 -->
 <g id="edge23" class="edge">
 <title>Node0&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M3076.7236,-357.5862C3061.1448,-344.0906 3044.6534,-329.8044 3029.447,-316.6314"/>
+<path fill="none" stroke="#191970" d="M3076.6874,-357.5548C3056.6367,-340.1853 3035.0772,-321.5087 3016.6932,-305.5831"/>
 <polygon fill="none" stroke="#191970" points="3074.4384,-360.2372 3084.2884,-364.1394 3079.0217,-354.9463 3074.4384,-360.2372"/>
 </g>
 <!-- Node24 -->
 <g id="node25" class="node">
 <title>Node24</title>
 <g id="a_node25"><a xlink:href="classtvm_1_1tir_1_1Let.html" target="_top" xlink:title="Managed reference to LetNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3066,-215.5 3066,-316.5 3220,-316.5 3220,-215.5 3066,-215.5"/>
-<text text-anchor="middle" x="3143" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Let</text>
-<polyline fill="none" stroke="#000000" points="3066,-297.5 3220,-297.5 "/>
-<text text-anchor="middle" x="3143" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3066,-278.5 3220,-278.5 "/>
-<text text-anchor="start" x="3074" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Let()</text>
-<text text-anchor="start" x="3074" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3074" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3074" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3074" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3066,-226.5 3066,-305.5 3220,-305.5 3220,-226.5 3066,-226.5"/>
+<text text-anchor="middle" x="3143" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Let</text>
+<polyline fill="none" stroke="#000000" points="3066,-286.5 3220,-286.5 "/>
+<text text-anchor="middle" x="3143" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3066,-267.5 3220,-267.5 "/>
+<text text-anchor="start" x="3074" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Let()</text>
+<text text-anchor="start" x="3074" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3074" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node24 -->
 <g id="edge24" class="edge">
 <title>Node0&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M3143,-353.8874C3143,-341.5023 3143,-328.6068 3143,-316.6314"/>
+<path fill="none" stroke="#191970" d="M3143,-353.6791C3143,-337.5235 3143,-320.5138 3143,-305.8207"/>
 <polygon fill="none" stroke="#191970" points="3139.5001,-354.1394 3143,-364.1394 3146.5001,-354.1394 3139.5001,-354.1394"/>
 </g>
 <!-- Node25 -->
 <g id="node26" class="node">
 <title>Node25</title>
 <g id="a_node26"><a xlink:href="classtvm_1_1tir_1_1Load.html" target="_top" xlink:title="Managed reference to LoadNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3238,-215.5 3238,-316.5 3392,-316.5 3392,-215.5 3238,-215.5"/>
-<text text-anchor="middle" x="3315" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Load</text>
-<polyline fill="none" stroke="#000000" points="3238,-297.5 3392,-297.5 "/>
-<text text-anchor="middle" x="3315" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3238,-278.5 3392,-278.5 "/>
-<text text-anchor="start" x="3246" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Load()</text>
-<text text-anchor="start" x="3246" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3246" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3246" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3246" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3238,-226.5 3238,-305.5 3392,-305.5 3392,-226.5 3238,-226.5"/>
+<text text-anchor="middle" x="3315" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Load</text>
+<polyline fill="none" stroke="#000000" points="3238,-286.5 3392,-286.5 "/>
+<text text-anchor="middle" x="3315" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3238,-267.5 3392,-267.5 "/>
+<text text-anchor="start" x="3246" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Load()</text>
+<text text-anchor="start" x="3246" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3246" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node25 -->
 <g id="edge25" class="edge">
 <title>Node0&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M3209.2764,-357.5862C3224.8552,-344.0906 3241.3466,-329.8044 3256.553,-316.6314"/>
+<path fill="none" stroke="#191970" d="M3209.3126,-357.5548C3229.3633,-340.1853 3250.9228,-321.5087 3269.3068,-305.5831"/>
 <polygon fill="none" stroke="#191970" points="3206.9783,-354.9463 3201.7116,-364.1394 3211.5616,-360.2372 3206.9783,-354.9463"/>
 </g>
 <!-- Node26 -->
 <g id="node27" class="node">
 <title>Node26</title>
 <g id="a_node27"><a xlink:href="classtvm_1_1tir_1_1LT.html" target="_top" xlink:title="Managed reference to LTNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3410,-215.5 3410,-316.5 3564,-316.5 3564,-215.5 3410,-215.5"/>
-<text text-anchor="middle" x="3487" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LT</text>
-<polyline fill="none" stroke="#000000" points="3410,-297.5 3564,-297.5 "/>
-<text text-anchor="middle" x="3487" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3410,-278.5 3564,-278.5 "/>
-<text text-anchor="start" x="3418" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LT()</text>
-<text text-anchor="start" x="3418" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3418" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3418" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3418" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3410,-226.5 3410,-305.5 3564,-305.5 3564,-226.5 3410,-226.5"/>
+<text text-anchor="middle" x="3487" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LT</text>
+<polyline fill="none" stroke="#000000" points="3410,-286.5 3564,-286.5 "/>
+<text text-anchor="middle" x="3487" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3410,-267.5 3564,-267.5 "/>
+<text text-anchor="start" x="3418" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ LT()</text>
+<text text-anchor="start" x="3418" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3418" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node26 -->
 <g id="edge26" class="edge">
 <title>Node0&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M3229.9618,-392.7385C3281.2693,-377.8962 3346.5987,-355.9726 3401,-328 3407.5476,-324.6333 3414.1486,-320.805 3420.6266,-316.7416"/>
+<path fill="none" stroke="#191970" d="M3229.9618,-392.7385C3281.2693,-377.8962 3346.5987,-355.9726 3401,-328 3413.2767,-321.6874 3425.7414,-313.7522 3437.2304,-305.6868"/>
 <polygon fill="none" stroke="#191970" points="3228.8775,-389.4081 3220.2231,-395.5197 3230.7998,-396.139 3228.8775,-389.4081"/>
 </g>
 <!-- Node27 -->
 <g id="node28" class="node">
 <title>Node27</title>
 <g id="a_node28"><a xlink:href="classtvm_1_1tir_1_1Max.html" target="_top" xlink:title="Managed reference to MaxNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3582,-215.5 3582,-316.5 3736,-316.5 3736,-215.5 3582,-215.5"/>
-<text text-anchor="middle" x="3659" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Max</text>
-<polyline fill="none" stroke="#000000" points="3582,-297.5 3736,-297.5 "/>
-<text text-anchor="middle" x="3659" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3582,-278.5 3736,-278.5 "/>
-<text text-anchor="start" x="3590" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Max()</text>
-<text text-anchor="start" x="3590" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3590" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3590" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3590" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3582,-226.5 3582,-305.5 3736,-305.5 3736,-226.5 3582,-226.5"/>
+<text text-anchor="middle" x="3659" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Max</text>
+<polyline fill="none" stroke="#000000" points="3582,-286.5 3736,-286.5 "/>
+<text text-anchor="middle" x="3659" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3582,-267.5 3736,-267.5 "/>
+<text text-anchor="start" x="3590" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Max()</text>
+<text text-anchor="start" x="3590" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3590" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node27 -->
 <g id="edge27" class="edge">
 <title>Node0&#45;&gt;Node27</title>
-<path fill="none" stroke="#191970" d="M3230.2064,-408.2501C3319.4577,-398.8783 3460.611,-377.133 3573,-328 3580.2519,-324.8297 3587.494,-320.9752 3594.5249,-316.7557"/>
+<path fill="none" stroke="#191970" d="M3230.2064,-408.2501C3319.4577,-398.8783 3460.611,-377.133 3573,-328 3586.3233,-322.1755 3599.6134,-314.0415 3611.622,-305.5781"/>
 <polygon fill="none" stroke="#191970" points="3229.716,-404.7819 3220.1232,-409.2794 3230.4269,-411.7457 3229.716,-404.7819"/>
 </g>
 <!-- Node28 -->
 <g id="node29" class="node">
 <title>Node28</title>
 <g id="a_node29"><a xlink:href="classtvm_1_1tir_1_1Min.html" target="_top" xlink:title="Managed reference to MinNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3754,-215.5 3754,-316.5 3908,-316.5 3908,-215.5 3754,-215.5"/>
-<text text-anchor="middle" x="3831" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Min</text>
-<polyline fill="none" stroke="#000000" points="3754,-297.5 3908,-297.5 "/>
-<text text-anchor="middle" x="3831" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3754,-278.5 3908,-278.5 "/>
-<text text-anchor="start" x="3762" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Min()</text>
-<text text-anchor="start" x="3762" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3762" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3762" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3762" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3754,-226.5 3754,-305.5 3908,-305.5 3908,-226.5 3754,-226.5"/>
+<text text-anchor="middle" x="3831" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Min</text>
+<polyline fill="none" stroke="#000000" points="3754,-286.5 3908,-286.5 "/>
+<text text-anchor="middle" x="3831" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3754,-267.5 3908,-267.5 "/>
+<text text-anchor="start" x="3762" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Min()</text>
+<text text-anchor="start" x="3762" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3762" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node28 -->
 <g id="edge28" class="edge">
 <title>Node0&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M3230.3664,-407.5375C3374.0358,-394.4075 3653.3924,-365.0234 3745,-328 3752.6793,-324.8964 3760.3161,-320.9682 3767.6882,-316.6011"/>
+<path fill="none" stroke="#191970" d="M3230.3664,-407.5375C3374.0358,-394.4075 3653.3924,-365.0234 3745,-328 3758.652,-322.4825 3772.17,-314.3588 3784.3045,-305.7965"/>
 <polygon fill="none" stroke="#191970" points="3229.9038,-404.065 3220.2611,-408.4546 3230.5366,-411.0363 3229.9038,-404.065"/>
 </g>
 <!-- Node29 -->
 <g id="node30" class="node">
 <title>Node29</title>
 <g id="a_node30"><a xlink:href="classtvm_1_1tir_1_1Mod.html" target="_top" xlink:title="Managed reference to ModNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="3926,-215.5 3926,-316.5 4080,-316.5 4080,-215.5 3926,-215.5"/>
-<text text-anchor="middle" x="4003" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Mod</text>
-<polyline fill="none" stroke="#000000" points="3926,-297.5 4080,-297.5 "/>
-<text text-anchor="middle" x="4003" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="3926,-278.5 4080,-278.5 "/>
-<text text-anchor="start" x="3934" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Mod()</text>
-<text text-anchor="start" x="3934" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3934" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="3934" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3934" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="3926,-226.5 3926,-305.5 4080,-305.5 4080,-226.5 3926,-226.5"/>
+<text text-anchor="middle" x="4003" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Mod</text>
+<polyline fill="none" stroke="#000000" points="3926,-286.5 4080,-286.5 "/>
+<text text-anchor="middle" x="4003" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="3926,-267.5 4080,-267.5 "/>
+<text text-anchor="start" x="3934" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Mod()</text>
+<text text-anchor="start" x="3934" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3934" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node29 -->
 <g id="edge29" class="edge">
 <title>Node0&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M3230.3248,-410.7609C3405.4574,-401.3534 3793.3871,-375.7011 3917,-328 3924.8991,-324.9518 3932.7361,-320.9973 3940.2784,-316.5605"/>
+<path fill="none" stroke="#191970" d="M3230.3248,-410.7609C3405.4574,-401.3534 3793.3871,-375.7011 3917,-328 3930.9092,-322.6326 3944.6262,-314.4547 3956.8801,-305.7823"/>
 <polygon fill="none" stroke="#191970" points="3229.9158,-407.2776 3220.1158,-411.3038 3230.2876,-414.2678 3229.9158,-407.2776"/>
 </g>
 <!-- Node30 -->
 <g id="node31" class="node">
 <title>Node30</title>
 <g id="a_node31"><a xlink:href="classtvm_1_1tir_1_1Mul.html" target="_top" xlink:title="Managed reference to MulNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4098,-215.5 4098,-316.5 4252,-316.5 4252,-215.5 4098,-215.5"/>
-<text text-anchor="middle" x="4175" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Mul</text>
-<polyline fill="none" stroke="#000000" points="4098,-297.5 4252,-297.5 "/>
-<text text-anchor="middle" x="4175" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4098,-278.5 4252,-278.5 "/>
-<text text-anchor="start" x="4106" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Mul()</text>
-<text text-anchor="start" x="4106" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4106" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4106" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4106" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4098,-226.5 4098,-305.5 4252,-305.5 4252,-226.5 4098,-226.5"/>
+<text text-anchor="middle" x="4175" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Mul</text>
+<polyline fill="none" stroke="#000000" points="4098,-286.5 4252,-286.5 "/>
+<text text-anchor="middle" x="4175" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4098,-267.5 4252,-267.5 "/>
+<text text-anchor="start" x="4106" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Mul()</text>
+<text text-anchor="start" x="4106" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4106" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node30 -->
 <g id="edge30" class="edge">
 <title>Node0&#45;&gt;Node30</title>
-<path fill="none" stroke="#191970" d="M3230.0561,-412.8338C3433.1423,-406.8465 3932.8295,-386.4573 4089,-328 4096.9295,-325.0319 4104.786,-321.1286 4112.3398,-316.722"/>
+<path fill="none" stroke="#191970" d="M3230.0561,-412.8338C3433.1423,-406.8465 3932.8295,-386.4573 4089,-328 4103.1352,-322.709 4117.0386,-314.4463 4129.4085,-305.6586"/>
 <polygon fill="none" stroke="#191970" points="3229.9216,-409.3361 3220.0274,-413.1248 3230.1248,-416.3331 3229.9216,-409.3361"/>
 </g>
 <!-- Node31 -->
 <g id="node32" class="node">
 <title>Node31</title>
 <g id="a_node32"><a xlink:href="classtvm_1_1tir_1_1NE.html" target="_top" xlink:title="Managed reference to NENode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4270,-215.5 4270,-316.5 4424,-316.5 4424,-215.5 4270,-215.5"/>
-<text text-anchor="middle" x="4347" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::NE</text>
-<polyline fill="none" stroke="#000000" points="4270,-297.5 4424,-297.5 "/>
-<text text-anchor="middle" x="4347" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4270,-278.5 4424,-278.5 "/>
-<text text-anchor="start" x="4278" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NE()</text>
-<text text-anchor="start" x="4278" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4278" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4278" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4278" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4270,-226.5 4270,-305.5 4424,-305.5 4424,-226.5 4270,-226.5"/>
+<text text-anchor="middle" x="4347" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::NE</text>
+<polyline fill="none" stroke="#000000" points="4270,-286.5 4424,-286.5 "/>
+<text text-anchor="middle" x="4347" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4270,-267.5 4424,-267.5 "/>
+<text text-anchor="start" x="4278" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NE()</text>
+<text text-anchor="start" x="4278" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4278" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node31 -->
 <g id="edge31" class="edge">
 <title>Node0&#45;&gt;Node31</title>
-<path fill="none" stroke="#191970" d="M3230.4041,-414.2633C3459.3861,-411.3744 4072.0736,-397.2094 4261,-328 4269.123,-325.0243 4277.162,-321.0515 4284.8742,-316.5479"/>
+<path fill="none" stroke="#191970" d="M3230.4041,-414.2633C3459.3861,-411.3744 4072.0736,-397.2094 4261,-328 4275.172,-322.8084 4289.0886,-314.5814 4301.4595,-305.7963"/>
 <polygon fill="none" stroke="#191970" points="3230.0776,-410.767 3220.121,-414.3887 3230.163,-417.7664 3230.0776,-410.767"/>
 </g>
 <!-- Node32 -->
 <g id="node33" class="node">
 <title>Node32</title>
 <g id="a_node33"><a xlink:href="classtvm_1_1tir_1_1Not.html" target="_top" xlink:title="Managed reference to NotNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4442,-215.5 4442,-316.5 4596,-316.5 4596,-215.5 4442,-215.5"/>
-<text text-anchor="middle" x="4519" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Not</text>
-<polyline fill="none" stroke="#000000" points="4442,-297.5 4596,-297.5 "/>
-<text text-anchor="middle" x="4519" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4442,-278.5 4596,-278.5 "/>
-<text text-anchor="start" x="4450" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Not()</text>
-<text text-anchor="start" x="4450" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4450" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4450" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4450" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4442,-226.5 4442,-305.5 4596,-305.5 4596,-226.5 4442,-226.5"/>
+<text text-anchor="middle" x="4519" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Not</text>
+<polyline fill="none" stroke="#000000" points="4442,-286.5 4596,-286.5 "/>
+<text text-anchor="middle" x="4519" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4442,-267.5 4596,-267.5 "/>
+<text text-anchor="start" x="4450" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Not()</text>
+<text text-anchor="start" x="4450" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4450" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node32 -->
 <g id="edge32" class="edge">
 <title>Node0&#45;&gt;Node32</title>
-<path fill="none" stroke="#191970" d="M3230.4002,-411.8933C3502.1049,-401.8488 4320.5486,-368.5374 4433,-328 4441.1382,-325.0663 4449.1869,-321.12 4456.9047,-316.6318"/>
+<path fill="none" stroke="#191970" d="M3230.4002,-411.8933C3502.1049,-401.8488 4320.5486,-368.5374 4433,-328 4447.3717,-322.8192 4461.4644,-314.4805 4473.9483,-305.5762"/>
 <polygon fill="none" stroke="#191970" points="3230.0572,-408.4035 3220.1928,-412.2692 3230.3149,-415.3988 3230.0572,-408.4035"/>
 </g>
 <!-- Node33 -->
 <g id="node34" class="node">
 <title>Node33</title>
 <g id="a_node34"><a xlink:href="classtvm_1_1tir_1_1Or.html" target="_top" xlink:title="Managed reference to OrNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4614,-215.5 4614,-316.5 4768,-316.5 4768,-215.5 4614,-215.5"/>
-<text text-anchor="middle" x="4691" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Or</text>
-<polyline fill="none" stroke="#000000" points="4614,-297.5 4768,-297.5 "/>
-<text text-anchor="middle" x="4691" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4614,-278.5 4768,-278.5 "/>
-<text text-anchor="start" x="4622" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Or()</text>
-<text text-anchor="start" x="4622" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4622" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4622" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4622" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4614,-226.5 4614,-305.5 4768,-305.5 4768,-226.5 4614,-226.5"/>
+<text text-anchor="middle" x="4691" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Or</text>
+<polyline fill="none" stroke="#000000" points="4614,-286.5 4768,-286.5 "/>
+<text text-anchor="middle" x="4691" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4614,-267.5 4768,-267.5 "/>
+<text text-anchor="start" x="4622" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Or()</text>
+<text text-anchor="start" x="4622" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4622" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node33 -->
 <g id="edge33" class="edge">
 <title>Node0&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M3230.7133,-412.629C3526.4689,-404.2418 4475.8328,-373.9874 4605,-328 4613.1497,-325.0985 4621.2058,-321.1725 4628.9278,-316.6961"/>
+<path fill="none" stroke="#191970" d="M3230.7133,-412.629C3526.4689,-404.2418 4475.8328,-373.9874 4605,-328 4619.3921,-322.876 4633.4919,-314.5573 4645.9762,-305.6541"/>
 <polygon fill="none" stroke="#191970" points="3230.3678,-409.1372 3220.4705,-412.9181 3230.5654,-416.1344 3230.3678,-409.1372"/>
 </g>
 <!-- Node34 -->
 <g id="node35" class="node">
 <title>Node34</title>
 <g id="a_node35"><a xlink:href="classtvm_1_1tir_1_1ProducerLoad.html" target="_top" xlink:title="Managed reference to ProducerLoadNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4786,-215.5 4786,-316.5 4940,-316.5 4940,-215.5 4786,-215.5"/>
-<text text-anchor="middle" x="4863" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::ProducerLoad</text>
-<polyline fill="none" stroke="#000000" points="4786,-297.5 4940,-297.5 "/>
-<text text-anchor="middle" x="4863" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4786,-278.5 4940,-278.5 "/>
-<text text-anchor="start" x="4794" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ProducerLoad()</text>
-<text text-anchor="start" x="4794" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4794" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4794" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4794" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4786,-226.5 4786,-305.5 4940,-305.5 4940,-226.5 4786,-226.5"/>
+<text text-anchor="middle" x="4863" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::ProducerLoad</text>
+<polyline fill="none" stroke="#000000" points="4786,-286.5 4940,-286.5 "/>
+<text text-anchor="middle" x="4863" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4786,-267.5 4940,-267.5 "/>
+<text text-anchor="start" x="4794" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ProducerLoad()</text>
+<text text-anchor="start" x="4794" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4794" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node34 -->
 <g id="edge34" class="edge">
 <title>Node0&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M3230.0947,-413.2331C3547.4372,-406.4024 4630.8942,-379.5046 4777,-328 4785.1588,-325.1239 4793.2205,-321.2141 4800.9458,-316.747"/>
+<path fill="none" stroke="#191970" d="M3230.0947,-413.2331C3547.4372,-406.4024 4630.8942,-379.5046 4777,-328 4791.408,-322.9209 4805.5135,-314.618 4817.998,-305.7156"/>
 <polygon fill="none" stroke="#191970" points="3229.9528,-409.7353 3220.03,-413.4485 3230.1026,-416.7337 3229.9528,-409.7353"/>
 </g>
 <!-- Node35 -->
 <g id="node36" class="node">
 <title>Node35</title>
 <g id="a_node36"><a xlink:href="classtvm_1_1tir_1_1Ramp.html" target="_top" xlink:title="Managed reference to RampNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="4958,-215.5 4958,-316.5 5112,-316.5 5112,-215.5 4958,-215.5"/>
-<text text-anchor="middle" x="5035" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Ramp</text>
-<polyline fill="none" stroke="#000000" points="4958,-297.5 5112,-297.5 "/>
-<text text-anchor="middle" x="5035" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="4958,-278.5 5112,-278.5 "/>
-<text text-anchor="start" x="4966" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Ramp()</text>
-<text text-anchor="start" x="4966" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4966" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="4966" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4966" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="4958,-226.5 4958,-305.5 5112,-305.5 5112,-226.5 4958,-226.5"/>
+<text text-anchor="middle" x="5035" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Ramp</text>
+<polyline fill="none" stroke="#000000" points="4958,-286.5 5112,-286.5 "/>
+<text text-anchor="middle" x="5035" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="4958,-267.5 5112,-267.5 "/>
+<text text-anchor="start" x="4966" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Ramp()</text>
+<text text-anchor="start" x="4966" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4966" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node35 -->
 <g id="edge35" class="edge">
 <title>Node0&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M3230.2778,-413.7058C3569.0231,-408.2863 4786.004,-384.9957 4949,-328 4957.3397,-325.0838 4965.5755,-321.0815 4973.4531,-316.5029"/>
+<path fill="none" stroke="#191970" d="M3230.2778,-413.7058C3569.0231,-408.2863 4786.004,-384.9957 4949,-328 4963.4208,-322.9574 4977.5308,-314.6673 4990.0155,-305.7656"/>
 <polygon fill="none" stroke="#191970" points="3229.9775,-410.21 3220.0344,-413.8685 3230.0887,-417.2091 3229.9775,-410.21"/>
 </g>
 <!-- Node36 -->
 <g id="node37" class="node">
 <title>Node36</title>
 <g id="a_node37"><a xlink:href="classtvm_1_1tir_1_1Reduce.html" target="_top" xlink:title="Managed reference to ReduceNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5130,-215.5 5130,-316.5 5284,-316.5 5284,-215.5 5130,-215.5"/>
-<text text-anchor="middle" x="5207" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Reduce</text>
-<polyline fill="none" stroke="#000000" points="5130,-297.5 5284,-297.5 "/>
-<text text-anchor="middle" x="5207" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5130,-278.5 5284,-278.5 "/>
-<text text-anchor="start" x="5138" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Reduce()</text>
-<text text-anchor="start" x="5138" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5138" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5138" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5138" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5130,-226.5 5130,-305.5 5284,-305.5 5284,-226.5 5130,-226.5"/>
+<text text-anchor="middle" x="5207" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Reduce</text>
+<polyline fill="none" stroke="#000000" points="5130,-286.5 5284,-286.5 "/>
+<text text-anchor="middle" x="5207" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5130,-267.5 5284,-267.5 "/>
+<text text-anchor="start" x="5138" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Reduce()</text>
+<text text-anchor="start" x="5138" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5138" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node36 -->
 <g id="edge36" class="edge">
 <title>Node0&#45;&gt;Node36</title>
-<path fill="none" stroke="#191970" d="M3230.108,-414.1019C3588.7786,-410.0065 4940.9964,-390.5209 5121,-328 5129.3458,-325.1012 5137.5854,-321.1098 5145.4652,-316.5374"/>
+<path fill="none" stroke="#191970" d="M3230.108,-414.1019C3588.7786,-410.0065 4940.9964,-390.5209 5121,-328 5135.4313,-322.9876 5149.545,-314.7081 5162.0299,-305.8069"/>
 <polygon fill="none" stroke="#191970" points="3230.0013,-410.6028 3220.0416,-414.2158 3230.0806,-417.6024 3230.0013,-410.6028"/>
 </g>
 <!-- Node37 -->
 <g id="node38" class="node">
 <title>Node37</title>
 <g id="a_node38"><a xlink:href="classtvm_1_1tir_1_1Select.html" target="_top" xlink:title="Managed reference to SelectNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5302,-215.5 5302,-316.5 5456,-316.5 5456,-215.5 5302,-215.5"/>
-<text text-anchor="middle" x="5379" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Select</text>
-<polyline fill="none" stroke="#000000" points="5302,-297.5 5456,-297.5 "/>
-<text text-anchor="middle" x="5379" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5302,-278.5 5456,-278.5 "/>
-<text text-anchor="start" x="5310" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Select()</text>
-<text text-anchor="start" x="5310" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5310" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5310" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5310" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5302,-226.5 5302,-305.5 5456,-305.5 5456,-226.5 5302,-226.5"/>
+<text text-anchor="middle" x="5379" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Select</text>
+<polyline fill="none" stroke="#000000" points="5302,-286.5 5456,-286.5 "/>
+<text text-anchor="middle" x="5379" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5302,-267.5 5456,-267.5 "/>
+<text text-anchor="start" x="5310" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Select()</text>
+<text text-anchor="start" x="5310" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5310" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node37 -->
 <g id="edge37" class="edge">
 <title>Node0&#45;&gt;Node37</title>
-<path fill="none" stroke="#191970" d="M3230.0581,-414.4332C3607.95,-411.5738 5095.9545,-396.0525 5293,-328 5301.3509,-325.1159 5309.5936,-321.1336 5317.4752,-316.5664"/>
+<path fill="none" stroke="#191970" d="M3230.0581,-414.4332C3607.95,-411.5738 5095.9545,-396.0525 5293,-328 5307.6141,-322.9528 5321.8969,-314.5426 5334.4925,-305.5196"/>
 <polygon fill="none" stroke="#191970" points="3229.9761,-410.9336 3220.0026,-414.5083 3230.0284,-417.9334 3229.9761,-410.9336"/>
 </g>
 <!-- Node38 -->
 <g id="node39" class="node">
 <title>Node38</title>
 <g id="a_node39"><a xlink:href="classtvm_1_1tir_1_1Shuffle.html" target="_top" xlink:title="Managed reference to ShuffleNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5474,-204.5 5474,-327.5 5628,-327.5 5628,-204.5 5474,-204.5"/>
-<text text-anchor="middle" x="5551" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Shuffle</text>
-<polyline fill="none" stroke="#000000" points="5474,-308.5 5628,-308.5 "/>
-<text text-anchor="middle" x="5551" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5474,-289.5 5628,-289.5 "/>
-<text text-anchor="start" x="5482" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Shuffle()</text>
-<text text-anchor="start" x="5482" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5482" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5482" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5482" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
-<text text-anchor="start" x="5482" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Concat()</text>
-<text text-anchor="start" x="5482" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExtractElement()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5474,-215.5 5474,-316.5 5628,-316.5 5628,-215.5 5474,-215.5"/>
+<text text-anchor="middle" x="5551" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Shuffle</text>
+<polyline fill="none" stroke="#000000" points="5474,-297.5 5628,-297.5 "/>
+<text text-anchor="middle" x="5551" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5474,-278.5 5628,-278.5 "/>
+<text text-anchor="start" x="5482" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Shuffle()</text>
+<text text-anchor="start" x="5482" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5482" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<text text-anchor="start" x="5482" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Concat()</text>
+<text text-anchor="start" x="5482" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExtractElement()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node38 -->
 <g id="edge38" class="edge">
 <title>Node0&#45;&gt;Node38</title>
-<path fill="none" stroke="#191970" d="M3230.3708,-414.7139C3627.3421,-413.0119 5250.9309,-401.5735 5465,-328 5467.9591,-326.983 5470.9045,-325.8276 5473.8249,-324.5568"/>
+<path fill="none" stroke="#191970" d="M3230.3708,-414.7139C3627.3421,-413.0119 5250.9309,-401.5735 5465,-328 5473.3552,-325.1284 5481.6006,-321.154 5489.4837,-316.5912"/>
 <polygon fill="none" stroke="#191970" points="3230.0874,-411.215 3220.1022,-414.7569 3230.1168,-418.2149 3230.0874,-411.215"/>
 </g>
 <!-- Node39 -->
 <g id="node40" class="node">
 <title>Node39</title>
 <g id="a_node40"><a xlink:href="classtvm_1_1tir_1_1StringImm.html" target="_top" xlink:title="Managed reference to StringImmNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5646,-215.5 5646,-316.5 5800,-316.5 5800,-215.5 5646,-215.5"/>
-<text text-anchor="middle" x="5723" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::StringImm</text>
-<polyline fill="none" stroke="#000000" points="5646,-297.5 5800,-297.5 "/>
-<text text-anchor="middle" x="5723" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5646,-278.5 5800,-278.5 "/>
-<text text-anchor="start" x="5654" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ StringImm()</text>
-<text text-anchor="start" x="5654" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5654" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5654" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5654" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5646,-226.5 5646,-305.5 5800,-305.5 5800,-226.5 5646,-226.5"/>
+<text text-anchor="middle" x="5723" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::StringImm</text>
+<polyline fill="none" stroke="#000000" points="5646,-286.5 5800,-286.5 "/>
+<text text-anchor="middle" x="5723" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5646,-267.5 5800,-267.5 "/>
+<text text-anchor="start" x="5654" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ StringImm()</text>
+<text text-anchor="start" x="5654" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5654" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node39 -->
 <g id="edge39" class="edge">
 <title>Node0&#45;&gt;Node39</title>
-<path fill="none" stroke="#191970" d="M3230.25,-413.3799C3658.3673,-405.2497 5520.9589,-367.7149 5637,-328 5645.3589,-325.1392 5653.6067,-321.1715 5661.4911,-316.6126"/>
+<path fill="none" stroke="#191970" d="M3230.25,-413.3799C3658.3673,-405.2497 5520.9589,-367.7149 5637,-328 5651.6281,-322.9936 5665.9158,-314.5973 5678.5115,-305.5748"/>
 <polygon fill="none" stroke="#191970" points="3230.0358,-409.8832 3220.104,-413.5721 3230.1685,-416.8819 3230.0358,-409.8832"/>
 </g>
 <!-- Node40 -->
 <g id="node41" class="node">
 <title>Node40</title>
 <g id="a_node41"><a xlink:href="classtvm_1_1tir_1_1Sub.html" target="_top" xlink:title="Managed reference to SubNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="5818,-215.5 5818,-316.5 5972,-316.5 5972,-215.5 5818,-215.5"/>
-<text text-anchor="middle" x="5895" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Sub</text>
-<polyline fill="none" stroke="#000000" points="5818,-297.5 5972,-297.5 "/>
-<text text-anchor="middle" x="5895" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="5818,-278.5 5972,-278.5 "/>
-<text text-anchor="start" x="5826" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Sub()</text>
-<text text-anchor="start" x="5826" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5826" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="5826" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5826" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#ffffff" stroke="#000000" points="5818,-226.5 5818,-305.5 5972,-305.5 5972,-226.5 5818,-226.5"/>
+<text text-anchor="middle" x="5895" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Sub</text>
+<polyline fill="none" stroke="#000000" points="5818,-286.5 5972,-286.5 "/>
+<text text-anchor="middle" x="5895" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="5818,-267.5 5972,-267.5 "/>
+<text text-anchor="start" x="5826" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Sub()</text>
+<text text-anchor="start" x="5826" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5826" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node40 -->
 <g id="edge40" class="edge">
 <title>Node0&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M3230.3764,-413.5816C3676.5305,-406.1579 5684.3776,-370.4954 5809,-328 5817.3621,-325.1486 5825.6119,-321.1867 5833.4974,-316.6312"/>
+<path fill="none" stroke="#191970" d="M3230.3764,-413.5816C3676.5305,-406.1579 5684.3776,-370.4954 5809,-328 5823.6337,-323.01 5837.9233,-314.6194 5850.5191,-305.5971"/>
 <polygon fill="none" stroke="#191970" points="3230.07,-410.0861 3220.1295,-413.7517 3230.1863,-417.0851 3230.07,-410.0861"/>
 </g>
 <!-- Node41 -->
@@ -952,8 +888,8 @@
 <!-- Node7&#45;&gt;Node8 -->
 <g id="edge8" class="edge">
 <title>Node7&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M537.3364,-205.3472C532.1768,-182.4435 526.3647,-156.6434 521.4306,-134.7406"/>
-<polygon fill="none" stroke="#191970" points="533.967,-206.3165 539.5792,-215.3029 540.7959,-204.7781 533.967,-206.3165"/>
+<path fill="none" stroke="#191970" d="M539.7966,-216.2679C534.0811,-190.8965 527.1424,-160.0954 521.3993,-134.6018"/>
+<polygon fill="none" stroke="#191970" points="536.3902,-217.073 542.0024,-226.0593 543.2191,-215.5346 536.3902,-217.073"/>
 </g>
 <!-- Node9 -->
 <g id="node10" class="node">
@@ -981,8 +917,8 @@
 <!-- Node7&#45;&gt;Node9 -->
 <g id="edge9" class="edge">
 <title>Node7&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M586.0164,-206.4395C594.1006,-192.6887 602.8268,-177.846 611.3199,-163.3997"/>
-<polygon fill="none" stroke="#191970" points="582.8564,-204.9084 580.8055,-215.3029 588.8908,-208.4561 582.8564,-204.9084"/>
+<path fill="none" stroke="#191970" d="M579.7232,-217.1437C589.4374,-200.6205 600.5503,-181.7181 611.292,-163.4473"/>
+<polygon fill="none" stroke="#191970" points="576.5326,-215.6649 574.4816,-226.0593 582.567,-219.2126 576.5326,-215.6649"/>
 </g>
 <!-- Node42 -->
 <g id="node43" class="node">
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add-members.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add-members.html
index c358dde73c..1952559afb 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add-members.html
@@ -90,12 +90,11 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a>(int32_t value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">PrimExpr</a>(float value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Add.html#a296ec870264852fab48d248937898e13">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(AddNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Add.html">tvm::tir::Add</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Add.html#a34a18847e64689317b52b8357ab8df0c">TVM_DEFINE_OBJECT_REF_METHODS</a>(Add, PrimExpr, AddNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Add.html">tvm::tir::Add</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Add.html#a34a18847e64689317b52b8357ab8df0c">TVM_DEFINE_OBJECT_REF_METHODS</a>(Add, PrimExpr, AddNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Add.html">tvm::tir::Add</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add.html
index 8dd16a714a..da8ef60303 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add.html
@@ -77,13 +77,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::tir::Add:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1Add__inherit__graph.svg" width="216" height="831"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1Add__inherit__graph.svg" width="216" height="802"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::tir::Add:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1Add__coll__graph.svg" width="216" height="1122"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1Add__coll__graph.svg" width="216" height="1092"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -93,8 +93,6 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:adbeb706f1b0c12dbdfe152a143e5b31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a34a18847e64689317b52b8357ab8df0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1Add.html#a34a18847e64689317b52b8357ab8df0c">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1tir_1_1Add.html">Add</a>, <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a>)</td></tr>
 <tr class="separator:a34a18847e64689317b52b8357ab8df0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a296ec870264852fab48d248937898e13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1Add.html#a296ec870264852fab48d248937898e13">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a>)</td></tr>
-<tr class="separator:a296ec870264852fab48d248937898e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1PrimExpr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1PrimExpr')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td></tr>
 <tr class="memitem:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a> (int32_t value)</td></tr>
 <tr class="memdesc:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct from integer.  <a href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">More...</a><br /></td></tr>
@@ -211,24 +209,6 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a id="a296ec870264852fab48d248937898e13"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a296ec870264852fab48d248937898e13">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_COW_METHOD()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::tir::Add::TVM_DEFINE_OBJECT_REF_COW_METHOD </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a>&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
 <a id="a34a18847e64689317b52b8357ab8df0c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a34a18847e64689317b52b8357ab8df0c">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_METHODS()</h2>
 
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add__coll__graph.svg
index d97252ae44..370987baa9 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add__coll__graph.svg
@@ -4,132 +4,130 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::tir::Add Pages: 1 -->
-<svg width="162pt" height="841pt"
- viewBox="0.00 0.00 162.00 841.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 837)">
+<svg width="162pt" height="819pt"
+ viewBox="0.00 0.00 162.00 819.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 815)">
 <title>tvm::tir::Add</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-837 158,-837 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-815 158,-815 158,4 -4,4"/>
 <!-- Node4 -->
 <g id="node1" class="node">
 <title>Node4</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 154,-101.5 154,-.5 0,-.5"/>
-<text text-anchor="middle" x="77" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Add</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 154,-82.5 "/>
-<text text-anchor="middle" x="77" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 154,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Add()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 154,-79.5 154,-.5 0,-.5"/>
+<text text-anchor="middle" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Add</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 154,-60.5 "/>
+<text text-anchor="middle" x="77" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 154,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Add()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node5 -->
 <g id="node2" class="node">
 <title>Node5</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-139.5 0,-240.5 154,-240.5 154,-139.5 0,-139.5"/>
-<text text-anchor="middle" x="77" y="-228.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-221.5 154,-221.5 "/>
-<text text-anchor="middle" x="77" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-202.5 154,-202.5 "/>
-<text text-anchor="start" x="8" y="-190.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-179.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-117.5 0,-218.5 154,-218.5 154,-117.5 0,-117.5"/>
+<text text-anchor="middle" x="77" y="-206.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-199.5 154,-199.5 "/>
+<text text-anchor="middle" x="77" y="-187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-180.5 154,-180.5 "/>
+<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="8" y="-135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-124.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge1" class="edge">
 <title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M77,-129.2075C77,-120.0503 77,-110.6882 77,-101.7707"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-129.4246 77,-139.4246 80.5001,-129.4246 73.5001,-129.4246"/>
+<path fill="none" stroke="#191970" d="M77,-107.2732C77,-97.8606 77,-88.3534 77,-79.5688"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-107.411 77,-117.411 80.5001,-107.411 73.5001,-107.411"/>
 </g>
 <!-- Node6 -->
 <g id="node3" class="node">
 <title>Node6</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-278.5 0,-346.5 154,-346.5 154,-278.5 0,-278.5"/>
-<text text-anchor="middle" x="77" y="-334.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-327.5 154,-327.5 "/>
-<text text-anchor="middle" x="77" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-308.5 154,-308.5 "/>
-<text text-anchor="start" x="8" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-256.5 0,-324.5 154,-324.5 154,-256.5 0,-256.5"/>
+<text text-anchor="middle" x="77" y="-312.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-305.5 154,-305.5 "/>
+<text text-anchor="middle" x="77" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-286.5 154,-286.5 "/>
+<text text-anchor="start" x="8" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge2" class="edge">
 <title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M77,-268.2437C77,-259.3671 77,-249.9733 77,-240.8923"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-268.3769 77,-278.3769 80.5001,-268.377 73.5001,-268.3769"/>
+<path fill="none" stroke="#191970" d="M77,-246.2437C77,-237.3671 77,-227.9733 77,-218.8923"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-246.3769 77,-256.3769 80.5001,-246.377 73.5001,-246.3769"/>
 </g>
 <!-- Node7 -->
 <g id="node4" class="node">
 <title>Node7</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-384.5 10,-606.5 144,-606.5 144,-384.5 10,-384.5"/>
-<text text-anchor="middle" x="77" y="-594.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-587.5 144,-587.5 "/>
-<text text-anchor="start" x="18" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="10,-568.5 144,-568.5 "/>
-<text text-anchor="start" x="18" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-362.5 10,-584.5 144,-584.5 144,-362.5 10,-362.5"/>
+<text text-anchor="middle" x="77" y="-572.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-565.5 144,-565.5 "/>
+<text text-anchor="start" x="18" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="10,-546.5 144,-546.5 "/>
+<text text-anchor="start" x="18" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-380.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-369.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node6 -->
 <g id="edge3" class="edge">
 <title>Node7&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M77,-374.2198C77,-364.2931 77,-354.8914 77,-346.5572"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-374.3012 77,-384.3012 80.5001,-374.3012 73.5001,-374.3012"/>
+<path fill="none" stroke="#191970" d="M77,-352.2198C77,-342.2931 77,-332.8914 77,-324.5572"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-352.3012 77,-362.3012 80.5001,-352.3012 73.5001,-352.3012"/>
 </g>
 <!-- Node8 -->
 <g id="node5" class="node">
 <title>Node8</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="7,-654.5 7,-832.5 147,-832.5 147,-654.5 7,-654.5"/>
-<text text-anchor="start" x="15" y="-820.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="77" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="7,-802.5 147,-802.5 "/>
-<text text-anchor="middle" x="77" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="7,-783.5 147,-783.5 "/>
-<text text-anchor="start" x="15" y="-771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="7,-632.5 7,-810.5 147,-810.5 147,-632.5 7,-632.5"/>
+<text text-anchor="start" x="15" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="77" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="7,-780.5 147,-780.5 "/>
+<text text-anchor="middle" x="77" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="7,-761.5 147,-761.5 "/>
 <text text-anchor="start" x="15" y="-749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-727.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-716.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-694.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="15" y="-683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="15" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="15" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<text text-anchor="start" x="15" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-694.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="15" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="15" y="-650.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="15" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node8&#45;&gt;Node7 -->
 <g id="edge4" class="edge">
 <title>Node8&#45;&gt;Node7</title>
-<path fill="none" stroke="#404040" d="M77,-654.3167C77,-642.8765 77,-631.0062 77,-619.1402"/>
-<polygon fill="none" stroke="#404040" points="77.0001,-618.7944 73,-612.7944 77,-606.7944 81,-612.7943 77.0001,-618.7944"/>
-<text text-anchor="middle" x="96.5" y="-628" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M77,-632.3167C77,-620.8765 77,-609.0062 77,-597.1402"/>
+<polygon fill="none" stroke="#404040" points="77.0001,-596.7944 73,-590.7944 77,-584.7944 81,-590.7943 77.0001,-596.7944"/>
+<text text-anchor="middle" x="96.5" y="-606" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add__inherit__graph.svg
index ff59c20548..a765cdb6c1 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Add__inherit__graph.svg
@@ -4,102 +4,100 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::tir::Add Pages: 1 -->
-<svg width="162pt" height="623pt"
- viewBox="0.00 0.00 162.00 623.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 619)">
+<svg width="162pt" height="601pt"
+ viewBox="0.00 0.00 162.00 601.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 597)">
 <title>tvm::tir::Add</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-619 158,-619 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-597 158,-597 158,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 154,-101.5 154,-.5 0,-.5"/>
-<text text-anchor="middle" x="77" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Add</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 154,-82.5 "/>
-<text text-anchor="middle" x="77" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 154,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Add()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 154,-79.5 154,-.5 0,-.5"/>
+<text text-anchor="middle" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Add</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 154,-60.5 "/>
+<text text-anchor="middle" x="77" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 154,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Add()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-138.5 0,-239.5 154,-239.5 154,-138.5 0,-138.5"/>
-<text text-anchor="middle" x="77" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-220.5 154,-220.5 "/>
-<text text-anchor="middle" x="77" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-201.5 154,-201.5 "/>
-<text text-anchor="start" x="8" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-116.5 0,-217.5 154,-217.5 154,-116.5 0,-116.5"/>
+<text text-anchor="middle" x="77" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-198.5 154,-198.5 "/>
+<text text-anchor="middle" x="77" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-179.5 154,-179.5 "/>
+<text text-anchor="start" x="8" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="8" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M77,-128.1179C77,-119.2601 77,-110.2213 77,-101.5964"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-128.3975 77,-138.3975 80.5001,-128.3975 73.5001,-128.3975"/>
+<path fill="none" stroke="#191970" d="M77,-106.3446C77,-97.3388 77,-88.2565 77,-79.8243"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-106.4413 77,-116.4413 80.5001,-106.4414 73.5001,-106.4413"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-276.5 0,-344.5 154,-344.5 154,-276.5 0,-276.5"/>
-<text text-anchor="middle" x="77" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-325.5 154,-325.5 "/>
-<text text-anchor="middle" x="77" y="-313.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-306.5 154,-306.5 "/>
-<text text-anchor="start" x="8" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-254.5 0,-322.5 154,-322.5 154,-254.5 0,-254.5"/>
+<text text-anchor="middle" x="77" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-303.5 154,-303.5 "/>
+<text text-anchor="middle" x="77" y="-291.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-284.5 154,-284.5 "/>
+<text text-anchor="start" x="8" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge2" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M77,-266.1349C77,-257.5408 77,-248.474 77,-239.6952"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-266.3321 77,-276.3321 80.5001,-266.3322 73.5001,-266.3321"/>
+<path fill="none" stroke="#191970" d="M77,-244.1349C77,-235.5408 77,-226.474 77,-217.6952"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-244.3321 77,-254.3321 80.5001,-244.3322 73.5001,-244.3321"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-381.5 10,-614.5 144,-614.5 144,-381.5 10,-381.5"/>
-<text text-anchor="middle" x="77" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-595.5 144,-595.5 "/>
-<text text-anchor="start" x="18" y="-583.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="18" y="-572.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="10,-565.5 144,-565.5 "/>
-<text text-anchor="start" x="18" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-388.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-359.5 10,-592.5 144,-592.5 144,-359.5 10,-359.5"/>
+<text text-anchor="middle" x="77" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-573.5 144,-573.5 "/>
+<text text-anchor="start" x="18" y="-561.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="18" y="-550.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="10,-543.5 144,-543.5 "/>
+<text text-anchor="start" x="18" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-388.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-377.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-366.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge3" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M77,-371.2822C77,-361.749 77,-352.737 77,-344.7166"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-371.3857 77,-381.3857 80.5001,-371.3857 73.5001,-371.3857"/>
+<path fill="none" stroke="#191970" d="M77,-349.2822C77,-339.749 77,-330.737 77,-322.7166"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-349.3857 77,-359.3857 80.5001,-349.3857 73.5001,-349.3857"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst-members.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst-members.html
index 5bdbc673a1..344628f973 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst-members.html
@@ -87,11 +87,10 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4744bf4a1b48f202d41b51dc5e08e6ee">operator&lt;</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#affdf1b8cdb36e140de7b3ad7064e4617">operator==</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html#ad0dc62d50ef895369f48938c0388ae46">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(AllocateConstNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html">tvm::tir::AllocateConst</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html#a98e8fdd437e3caf59d111970873b5db9">TVM_DEFINE_OBJECT_REF_METHODS</a>(AllocateConst, Stmt, AllocateConstNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html">tvm::tir::AllocateConst</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Stmt.html#aaca2f7bd4110028470b82825bcbb87ac">tvm::tir::Stmt::TVM_DEFINE_OBJECT_REF_METHODS</a>(Stmt, ObjectRef, StmtNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Stmt.html">tvm::tir::Stmt</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html#a98e8fdd437e3caf59d111970873b5db9">TVM_DEFINE_OBJECT_REF_METHODS</a>(AllocateConst, Stmt, AllocateConstNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html">tvm::tir::AllocateConst</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Stmt.html#aaca2f7bd4110028470b82825bcbb87ac">tvm::tir::Stmt::TVM_DEFINE_OBJECT_REF_METHODS</a>(Stmt, ObjectRef, StmtNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Stmt.html">tvm::tir::Stmt</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst.html
index 0ae6a55eaa..9e7e562b9c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst.html
@@ -77,13 +77,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::tir::AllocateConst:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1AllocateConst__inherit__graph.svg" width="216" height="647"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1AllocateConst__inherit__graph.svg" width="216" height="618"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::tir::AllocateConst:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1AllocateConst__coll__graph.svg" width="216" height="936"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1AllocateConst__coll__graph.svg" width="216" height="907"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -93,8 +93,6 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:ac7cde2c6f98d30492596fd401425e8bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a98e8fdd437e3caf59d111970873b5db9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html#a98e8fdd437e3caf59d111970873b5db9">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1tir_1_1AllocateConst.html">AllocateConst</a>, <a class="el" href="classtvm_1_1tir_1_1Stmt.html">Stmt</a>, <a class="el" href="classtvm_1_1tir_1_1AllocateConstNode.html">Alloca [...]
 <tr class="separator:a98e8fdd437e3caf59d111970873b5db9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad0dc62d50ef895369f48938c0388ae46"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html#ad0dc62d50ef895369f48938c0388ae46">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1tir_1_1AllocateConstNode.html">AllocateConstNode</a>)</td></tr>
-<tr class="separator:ad0dc62d50ef895369f48938c0388ae46"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1tir_1_1Stmt"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1tir_1_1Stmt')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1tir_1_1Stmt.html">tvm::tir::Stmt</a></td></tr>
 <tr class="memitem:aaca2f7bd4110028470b82825bcbb87ac inherit pub_methods_classtvm_1_1tir_1_1Stmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1Stmt.html#aaca2f7bd4110028470b82825bcbb87ac">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1tir_1_1Stmt.html">Stmt</a>, <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a>, <a class="el" href="classtvm_1_1tir_1_ [...]
 <tr class="separator:aaca2f7bd4110028470b82825bcbb87ac inherit pub_methods_classtvm_1_1tir_1_1Stmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -224,24 +222,6 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a id="ad0dc62d50ef895369f48938c0388ae46"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad0dc62d50ef895369f48938c0388ae46">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_COW_METHOD()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::tir::AllocateConst::TVM_DEFINE_OBJECT_REF_COW_METHOD </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1tir_1_1AllocateConstNode.html">AllocateConstNode</a>&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
 <a id="a98e8fdd437e3caf59d111970873b5db9"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a98e8fdd437e3caf59d111970873b5db9">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_METHODS()</h2>
 
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst__coll__graph.svg
index 822e2cbd0f..10c392177d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst__coll__graph.svg
@@ -4,109 +4,107 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::tir::AllocateConst Pages: 1 -->
-<svg width="162pt" height="702pt"
- viewBox="0.00 0.00 162.00 702.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 698)">
+<svg width="162pt" height="680pt"
+ viewBox="0.00 0.00 162.00 680.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 676)">
 <title>tvm::tir::AllocateConst</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-698 158,-698 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-676 158,-676 158,4 -4,4"/>
 <!-- Node3 -->
 <g id="node1" class="node">
 <title>Node3</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 154,-101.5 154,-.5 0,-.5"/>
-<text text-anchor="middle" x="77" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::AllocateConst</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 154,-82.5 "/>
-<text text-anchor="middle" x="77" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 154,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AllocateConst()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 154,-79.5 154,-.5 0,-.5"/>
+<text text-anchor="middle" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::AllocateConst</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 154,-60.5 "/>
+<text text-anchor="middle" x="77" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 154,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AllocateConst()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node4 -->
 <g id="node2" class="node">
 <title>Node4</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1tir_1_1Stmt.html" target="_top" xlink:title="Container of all statements. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-139.5 0,-207.5 154,-207.5 154,-139.5 0,-139.5"/>
-<text text-anchor="middle" x="77" y="-195.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Stmt</text>
-<polyline fill="none" stroke="#000000" points="0,-188.5 154,-188.5 "/>
-<text text-anchor="middle" x="77" y="-176.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-169.5 154,-169.5 "/>
-<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-117.5 0,-185.5 154,-185.5 154,-117.5 0,-117.5"/>
+<text text-anchor="middle" x="77" y="-173.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Stmt</text>
+<polyline fill="none" stroke="#000000" points="0,-166.5 154,-166.5 "/>
+<text text-anchor="middle" x="77" y="-154.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-147.5 154,-147.5 "/>
+<text text-anchor="start" x="8" y="-135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-124.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node3 -->
 <g id="edge1" class="edge">
 <title>Node4&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M77,-129.2437C77,-120.3671 77,-110.9733 77,-101.8923"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-129.3769 77,-139.3769 80.5001,-129.377 73.5001,-129.3769"/>
+<path fill="none" stroke="#191970" d="M77,-107.3732C77,-98.2436 77,-88.6788 77,-79.718"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-107.4404 77,-117.4405 80.5001,-107.4405 73.5001,-107.4404"/>
 </g>
 <!-- Node5 -->
 <g id="node3" class="node">
 <title>Node5</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-245.5 10,-467.5 144,-467.5 144,-245.5 10,-245.5"/>
-<text text-anchor="middle" x="77" y="-455.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-448.5 144,-448.5 "/>
-<text text-anchor="start" x="18" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="10,-429.5 144,-429.5 "/>
-<text text-anchor="start" x="18" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-223.5 10,-445.5 144,-445.5 144,-223.5 10,-223.5"/>
+<text text-anchor="middle" x="77" y="-433.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-426.5 144,-426.5 "/>
+<text text-anchor="start" x="18" y="-414.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="10,-407.5 144,-407.5 "/>
+<text text-anchor="start" x="18" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-241.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-230.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge2" class="edge">
 <title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M77,-235.2198C77,-225.2931 77,-215.8914 77,-207.5572"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-235.3012 77,-245.3012 80.5001,-235.3012 73.5001,-235.3012"/>
+<path fill="none" stroke="#191970" d="M77,-213.2198C77,-203.2931 77,-193.8914 77,-185.5572"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-213.3012 77,-223.3012 80.5001,-213.3012 73.5001,-213.3012"/>
 </g>
 <!-- Node6 -->
 <g id="node4" class="node">
 <title>Node6</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="7,-515.5 7,-693.5 147,-693.5 147,-515.5 7,-515.5"/>
-<text text-anchor="start" x="15" y="-681.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="77" y="-670.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="7,-663.5 147,-663.5 "/>
-<text text-anchor="middle" x="77" y="-651.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="7,-644.5 147,-644.5 "/>
-<text text-anchor="start" x="15" y="-632.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-621.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="7,-493.5 7,-671.5 147,-671.5 147,-493.5 7,-493.5"/>
+<text text-anchor="start" x="15" y="-659.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="77" y="-648.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="7,-641.5 147,-641.5 "/>
+<text text-anchor="middle" x="77" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="7,-622.5 147,-622.5 "/>
 <text text-anchor="start" x="15" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-599.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-588.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-577.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-566.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="15" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="15" y="-533.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="15" y="-522.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<text text-anchor="start" x="15" y="-566.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-533.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="15" y="-522.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="15" y="-511.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="15" y="-500.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge3" class="edge">
 <title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#404040" d="M77,-515.3167C77,-503.8765 77,-492.0062 77,-480.1402"/>
-<polygon fill="none" stroke="#404040" points="77.0001,-479.7944 73,-473.7944 77,-467.7944 81,-473.7943 77.0001,-479.7944"/>
-<text text-anchor="middle" x="96.5" y="-489" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M77,-493.3167C77,-481.8765 77,-470.0062 77,-458.1402"/>
+<polygon fill="none" stroke="#404040" points="77.0001,-457.7944 73,-451.7944 77,-445.7944 81,-451.7943 77.0001,-457.7944"/>
+<text text-anchor="middle" x="96.5" y="-467" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst__inherit__graph.svg
index 1fd5a195dc..d00eff05b2 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConst__inherit__graph.svg
@@ -4,79 +4,77 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::tir::AllocateConst Pages: 1 -->
-<svg width="162pt" height="485pt"
- viewBox="0.00 0.00 162.00 485.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 481)">
+<svg width="162pt" height="463pt"
+ viewBox="0.00 0.00 162.00 463.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 459)">
 <title>tvm::tir::AllocateConst</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-481 158,-481 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-459 158,-459 158,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 154,-101.5 154,-.5 0,-.5"/>
-<text text-anchor="middle" x="77" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::AllocateConst</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 154,-82.5 "/>
-<text text-anchor="middle" x="77" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 154,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AllocateConst()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 154,-79.5 154,-.5 0,-.5"/>
+<text text-anchor="middle" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::AllocateConst</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 154,-60.5 "/>
+<text text-anchor="middle" x="77" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 154,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AllocateConst()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1tir_1_1Stmt.html" target="_top" xlink:title="Container of all statements. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-138.5 0,-206.5 154,-206.5 154,-138.5 0,-138.5"/>
-<text text-anchor="middle" x="77" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Stmt</text>
-<polyline fill="none" stroke="#000000" points="0,-187.5 154,-187.5 "/>
-<text text-anchor="middle" x="77" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-168.5 154,-168.5 "/>
-<text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-116.5 0,-184.5 154,-184.5 154,-116.5 0,-116.5"/>
+<text text-anchor="middle" x="77" y="-172.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Stmt</text>
+<polyline fill="none" stroke="#000000" points="0,-165.5 154,-165.5 "/>
+<text text-anchor="middle" x="77" y="-153.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-146.5 154,-146.5 "/>
+<text text-anchor="start" x="8" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M77,-128.1349C77,-119.5408 77,-110.474 77,-101.6952"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-128.3321 77,-138.3321 80.5001,-128.3322 73.5001,-128.3321"/>
+<path fill="none" stroke="#191970" d="M77,-106.3044C77,-97.4634 77,-88.2287 77,-79.5566"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-106.4447 77,-116.4447 80.5001,-106.4447 73.5001,-106.4447"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-243.5 10,-476.5 144,-476.5 144,-243.5 10,-243.5"/>
-<text text-anchor="middle" x="77" y="-464.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-457.5 144,-457.5 "/>
-<text text-anchor="start" x="18" y="-445.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="18" y="-434.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="10,-427.5 144,-427.5 "/>
-<text text-anchor="start" x="18" y="-415.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-404.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-393.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-221.5 10,-454.5 144,-454.5 144,-221.5 10,-221.5"/>
+<text text-anchor="middle" x="77" y="-442.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-435.5 144,-435.5 "/>
+<text text-anchor="start" x="18" y="-423.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="18" y="-412.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="10,-405.5 144,-405.5 "/>
+<text text-anchor="start" x="18" y="-393.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-239.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-228.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge2" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M77,-233.2822C77,-223.749 77,-214.737 77,-206.7166"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-233.3857 77,-243.3857 80.5001,-233.3857 73.5001,-233.3857"/>
+<path fill="none" stroke="#191970" d="M77,-211.2822C77,-201.749 77,-192.737 77,-184.7166"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-211.3857 77,-221.3857 80.5001,-211.3857 73.5001,-211.3857"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1And-members.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1And-members.html
index 0e60c7af17..b4d0b72832 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1And-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1And-members.html
@@ -90,12 +90,11 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a>(int32_t value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">PrimExpr</a>(float value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1And.html#a39a7be3a09cecc33eb07143adfdefac7">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(AndNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1And.html">tvm::tir::And</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1And.html#ac54718655deb9d2124b8ab1ba2593939">TVM_DEFINE_OBJECT_REF_METHODS</a>(And, PrimExpr, AndNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1And.html">tvm::tir::And</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1And.html#ac54718655deb9d2124b8ab1ba2593939">TVM_DEFINE_OBJECT_REF_METHODS</a>(And, PrimExpr, AndNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1And.html">tvm::tir::And</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">tvm::PrimExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1And.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1And.html
index acf77ec761..a91124ecee 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1And.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1And.html
@@ -77,13 +77,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::tir::And:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1And__inherit__graph.svg" width="216" height="831"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1And__inherit__graph.svg" width="216" height="802"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::tir::And:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1And__coll__graph.svg" width="216" height="1122"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1And__coll__graph.svg" width="216" height="1092"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -93,8 +93,6 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:a9be7f24a210bc595b34a999bc071b6d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac54718655deb9d2124b8ab1ba2593939"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1And.html#ac54718655deb9d2124b8ab1ba2593939">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1tir_1_1And.html">And</a>, <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="el" href="classtvm_1_1tir_1_1AndNode.html">AndNode</a>)</td></tr>
 <tr class="separator:ac54718655deb9d2124b8ab1ba2593939"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a39a7be3a09cecc33eb07143adfdefac7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1And.html#a39a7be3a09cecc33eb07143adfdefac7">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1tir_1_1AndNode.html">AndNode</a>)</td></tr>
-<tr class="separator:a39a7be3a09cecc33eb07143adfdefac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1PrimExpr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1PrimExpr')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td></tr>
 <tr class="memitem:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a> (int32_t value)</td></tr>
 <tr class="memdesc:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct from integer.  <a href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">More...</a><br /></td></tr>
@@ -211,24 +209,6 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a id="a39a7be3a09cecc33eb07143adfdefac7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a39a7be3a09cecc33eb07143adfdefac7">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_COW_METHOD()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::tir::And::TVM_DEFINE_OBJECT_REF_COW_METHOD </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1tir_1_1AndNode.html">AndNode</a>&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
 <a id="ac54718655deb9d2124b8ab1ba2593939"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ac54718655deb9d2124b8ab1ba2593939">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_METHODS()</h2>
 
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1And__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1tir_1_1And__coll__graph.svg
index cb5e108988..2fdd245b67 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1And__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1And__coll__graph.svg
@@ -4,132 +4,130 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::tir::And Pages: 1 -->
-<svg width="162pt" height="841pt"
- viewBox="0.00 0.00 162.00 841.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 837)">
+<svg width="162pt" height="819pt"
+ viewBox="0.00 0.00 162.00 819.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 815)">
 <title>tvm::tir::And</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-837 158,-837 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-815 158,-815 158,4 -4,4"/>
 <!-- Node4 -->
 <g id="node1" class="node">
 <title>Node4</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 154,-101.5 154,-.5 0,-.5"/>
-<text text-anchor="middle" x="77" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::And</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 154,-82.5 "/>
-<text text-anchor="middle" x="77" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 154,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ And()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 154,-79.5 154,-.5 0,-.5"/>
+<text text-anchor="middle" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::And</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 154,-60.5 "/>
+<text text-anchor="middle" x="77" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 154,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ And()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node5 -->
 <g id="node2" class="node">
 <title>Node5</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-139.5 0,-240.5 154,-240.5 154,-139.5 0,-139.5"/>
-<text text-anchor="middle" x="77" y="-228.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-221.5 154,-221.5 "/>
-<text text-anchor="middle" x="77" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-202.5 154,-202.5 "/>
-<text text-anchor="start" x="8" y="-190.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-179.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-117.5 0,-218.5 154,-218.5 154,-117.5 0,-117.5"/>
+<text text-anchor="middle" x="77" y="-206.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-199.5 154,-199.5 "/>
+<text text-anchor="middle" x="77" y="-187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-180.5 154,-180.5 "/>
+<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="8" y="-135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-124.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge1" class="edge">
 <title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M77,-129.2075C77,-120.0503 77,-110.6882 77,-101.7707"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-129.4246 77,-139.4246 80.5001,-129.4246 73.5001,-129.4246"/>
+<path fill="none" stroke="#191970" d="M77,-107.2732C77,-97.8606 77,-88.3534 77,-79.5688"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-107.411 77,-117.411 80.5001,-107.411 73.5001,-107.411"/>
 </g>
 <!-- Node6 -->
 <g id="node3" class="node">
 <title>Node6</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-278.5 0,-346.5 154,-346.5 154,-278.5 0,-278.5"/>
-<text text-anchor="middle" x="77" y="-334.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-327.5 154,-327.5 "/>
-<text text-anchor="middle" x="77" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-308.5 154,-308.5 "/>
-<text text-anchor="start" x="8" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-256.5 0,-324.5 154,-324.5 154,-256.5 0,-256.5"/>
+<text text-anchor="middle" x="77" y="-312.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-305.5 154,-305.5 "/>
+<text text-anchor="middle" x="77" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-286.5 154,-286.5 "/>
+<text text-anchor="start" x="8" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge2" class="edge">
 <title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M77,-268.2437C77,-259.3671 77,-249.9733 77,-240.8923"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-268.3769 77,-278.3769 80.5001,-268.377 73.5001,-268.3769"/>
+<path fill="none" stroke="#191970" d="M77,-246.2437C77,-237.3671 77,-227.9733 77,-218.8923"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-246.3769 77,-256.3769 80.5001,-246.377 73.5001,-246.3769"/>
 </g>
 <!-- Node7 -->
 <g id="node4" class="node">
 <title>Node7</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-384.5 10,-606.5 144,-606.5 144,-384.5 10,-384.5"/>
-<text text-anchor="middle" x="77" y="-594.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-587.5 144,-587.5 "/>
-<text text-anchor="start" x="18" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="10,-568.5 144,-568.5 "/>
-<text text-anchor="start" x="18" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-362.5 10,-584.5 144,-584.5 144,-362.5 10,-362.5"/>
+<text text-anchor="middle" x="77" y="-572.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-565.5 144,-565.5 "/>
+<text text-anchor="start" x="18" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="10,-546.5 144,-546.5 "/>
+<text text-anchor="start" x="18" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-380.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-369.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node6 -->
 <g id="edge3" class="edge">
 <title>Node7&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M77,-374.2198C77,-364.2931 77,-354.8914 77,-346.5572"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-374.3012 77,-384.3012 80.5001,-374.3012 73.5001,-374.3012"/>
+<path fill="none" stroke="#191970" d="M77,-352.2198C77,-342.2931 77,-332.8914 77,-324.5572"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-352.3012 77,-362.3012 80.5001,-352.3012 73.5001,-352.3012"/>
 </g>
 <!-- Node8 -->
 <g id="node5" class="node">
 <title>Node8</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="7,-654.5 7,-832.5 147,-832.5 147,-654.5 7,-654.5"/>
-<text text-anchor="start" x="15" y="-820.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="77" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="7,-802.5 147,-802.5 "/>
-<text text-anchor="middle" x="77" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="7,-783.5 147,-783.5 "/>
-<text text-anchor="start" x="15" y="-771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="7,-632.5 7,-810.5 147,-810.5 147,-632.5 7,-632.5"/>
+<text text-anchor="start" x="15" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="77" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="7,-780.5 147,-780.5 "/>
+<text text-anchor="middle" x="77" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="7,-761.5 147,-761.5 "/>
 <text text-anchor="start" x="15" y="-749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-727.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
 <text text-anchor="start" x="15" y="-716.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="15" y="-694.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="15" y="-683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="15" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="15" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<text text-anchor="start" x="15" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-694.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="15" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="15" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="15" y="-650.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="15" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node8&#45;&gt;Node7 -->
 <g id="edge4" class="edge">
 <title>Node8&#45;&gt;Node7</title>
-<path fill="none" stroke="#404040" d="M77,-654.3167C77,-642.8765 77,-631.0062 77,-619.1402"/>
-<polygon fill="none" stroke="#404040" points="77.0001,-618.7944 73,-612.7944 77,-606.7944 81,-612.7943 77.0001,-618.7944"/>
-<text text-anchor="middle" x="96.5" y="-628" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M77,-632.3167C77,-620.8765 77,-609.0062 77,-597.1402"/>
+<polygon fill="none" stroke="#404040" points="77.0001,-596.7944 73,-590.7944 77,-584.7944 81,-590.7943 77.0001,-596.7944"/>
+<text text-anchor="middle" x="96.5" y="-606" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1And__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1tir_1_1And__inherit__graph.svg
index 88cab3b7ef..3e07f0190a 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1And__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1And__inherit__graph.svg
@@ -4,102 +4,100 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::tir::And Pages: 1 -->
-<svg width="162pt" height="623pt"
- viewBox="0.00 0.00 162.00 623.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 619)">
+<svg width="162pt" height="601pt"
+ viewBox="0.00 0.00 162.00 601.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 597)">
 <title>tvm::tir::And</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-619 158,-619 158,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-597 158,-597 158,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 154,-101.5 154,-.5 0,-.5"/>
-<text text-anchor="middle" x="77" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::And</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 154,-82.5 "/>
-<text text-anchor="middle" x="77" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 154,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ And()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 154,-79.5 154,-.5 0,-.5"/>
+<text text-anchor="middle" x="77" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::And</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 154,-60.5 "/>
+<text text-anchor="middle" x="77" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 154,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ And()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-138.5 0,-239.5 154,-239.5 154,-138.5 0,-138.5"/>
-<text text-anchor="middle" x="77" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-220.5 154,-220.5 "/>
-<text text-anchor="middle" x="77" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-201.5 154,-201.5 "/>
-<text text-anchor="start" x="8" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="8" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-116.5 0,-217.5 154,-217.5 154,-116.5 0,-116.5"/>
+<text text-anchor="middle" x="77" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-198.5 154,-198.5 "/>
+<text text-anchor="middle" x="77" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-179.5 154,-179.5 "/>
+<text text-anchor="start" x="8" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="8" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M77,-128.1179C77,-119.2601 77,-110.2213 77,-101.5964"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-128.3975 77,-138.3975 80.5001,-128.3975 73.5001,-128.3975"/>
+<path fill="none" stroke="#191970" d="M77,-106.3446C77,-97.3388 77,-88.2565 77,-79.8243"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-106.4413 77,-116.4413 80.5001,-106.4414 73.5001,-106.4413"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-276.5 0,-344.5 154,-344.5 154,-276.5 0,-276.5"/>
-<text text-anchor="middle" x="77" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="0,-325.5 154,-325.5 "/>
-<text text-anchor="middle" x="77" y="-313.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-306.5 154,-306.5 "/>
-<text text-anchor="start" x="8" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-254.5 0,-322.5 154,-322.5 154,-254.5 0,-254.5"/>
+<text text-anchor="middle" x="77" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="0,-303.5 154,-303.5 "/>
+<text text-anchor="middle" x="77" y="-291.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-284.5 154,-284.5 "/>
+<text text-anchor="start" x="8" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge2" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M77,-266.1349C77,-257.5408 77,-248.474 77,-239.6952"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-266.3321 77,-276.3321 80.5001,-266.3322 73.5001,-266.3321"/>
+<path fill="none" stroke="#191970" d="M77,-244.1349C77,-235.5408 77,-226.474 77,-217.6952"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-244.3321 77,-254.3321 80.5001,-244.3322 73.5001,-244.3321"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="10,-381.5 10,-614.5 144,-614.5 144,-381.5 10,-381.5"/>
-<text text-anchor="middle" x="77" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="10,-595.5 144,-595.5 "/>
-<text text-anchor="start" x="18" y="-583.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="18" y="-572.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="10,-565.5 144,-565.5 "/>
-<text text-anchor="start" x="18" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="18" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="18" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="18" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="18" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="18" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="18" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="18" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="18" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="18" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="18" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="18" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="18" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="18" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="18" y="-388.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="10,-359.5 10,-592.5 144,-592.5 144,-359.5 10,-359.5"/>
+<text text-anchor="middle" x="77" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="10,-573.5 144,-573.5 "/>
+<text text-anchor="start" x="18" y="-561.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="18" y="-550.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="10,-543.5 144,-543.5 "/>
+<text text-anchor="start" x="18" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="18" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="18" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="18" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="18" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="18" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="18" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="18" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="18" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="18" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="18" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="18" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="18" y="-388.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="18" y="-377.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="18" y="-366.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge3" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M77,-371.2822C77,-361.749 77,-352.737 77,-344.7166"/>
-<polygon fill="none" stroke="#191970" points="73.5001,-371.3857 77,-381.3857 80.5001,-371.3857 73.5001,-371.3857"/>
+<path fill="none" stroke="#191970" d="M77,-349.2822C77,-339.749 77,-330.737 77,-322.7166"/>
+<polygon fill="none" stroke="#191970" points="73.5001,-349.3857 77,-359.3857 80.5001,-349.3857 73.5001,-349.3857"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any-members.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any-members.html
index 41d54cbd1e..80b1355a50 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any-members.html
@@ -91,11 +91,10 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">PrimExpr</a>(float value)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Any.html#abec494595554b3fced9cbdd74a61955b">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(Any, PrimExpr, AnyNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Any.html">tvm::tir::Any</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Any.html#a64019eb75831a80624ebc3b0bbc8fead">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(AnyNode)</td><td class="entry"><a class="el" href="classtvm_1_1tir_1_1Any.html">tvm::tir::Any</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html#a3ad47a31c4ce693077a93f154b2b1e12">TVM_DEFINE_OBJECT_REF_METHODS</a>(PrimExpr, BaseExpr, PrimExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html#aa513c6abed6e5b76c7fc9441649b3e4c">tvm::BaseExpr::TVM_DEFINE_OBJECT_REF_METHODS</a>(BaseExpr, ObjectRef, BaseExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseExpr.html">tvm::BaseExpr</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any.html
index 0f169b3c97..1717c2b848 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any.html
@@ -77,13 +77,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::tir::Any:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1Any__inherit__graph.svg" width="232" height="831"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1Any__inherit__graph.svg" width="232" height="802"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::tir::Any:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1Any__coll__graph.svg" width="232" height="1122"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1Any__coll__graph.svg" width="232" height="1092"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -93,8 +93,6 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:afdb8854b3952dbfa4b02f151ead3bdfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abec494595554b3fced9cbdd74a61955b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1Any.html#abec494595554b3fced9cbdd74a61955b">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1tir_1_1Any.html">Any</a>, <a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a>)</td></tr>
 <tr class="separator:abec494595554b3fced9cbdd74a61955b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a64019eb75831a80624ebc3b0bbc8fead"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1tir_1_1Any.html#a64019eb75831a80624ebc3b0bbc8fead">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a>)</td></tr>
-<tr class="separator:a64019eb75831a80624ebc3b0bbc8fead"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1PrimExpr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1PrimExpr')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></td></tr>
 <tr class="memitem:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a> (int32_t value)</td></tr>
 <tr class="memdesc:a7f0ca30e951608a0b36a77a66d4d19e0 inherit pub_methods_classtvm_1_1PrimExpr"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct from integer.  <a href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">More...</a><br /></td></tr>
@@ -227,24 +225,6 @@ Additional Inherited Members</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-</div>
-</div>
-<a id="a64019eb75831a80624ebc3b0bbc8fead"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a64019eb75831a80624ebc3b0bbc8fead">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_COW_METHOD()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::tir::Any::TVM_DEFINE_OBJECT_REF_COW_METHOD </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a>&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any__coll__graph.svg
index b5b10d2c8f..4657c133df 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1Any__coll__graph.svg
@@ -4,132 +4,130 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::tir::Any Pages: 1 -->
-<svg width="174pt" height="841pt"
- viewBox="0.00 0.00 174.00 841.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 837)">
+<svg width="174pt" height="819pt"
+ viewBox="0.00 0.00 174.00 819.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 815)">
 <title>tvm::tir::Any</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-837 170,-837 170,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-815 170,-815 170,4 -4,4"/>
 <!-- Node4 -->
 <g id="node1" class="node">
 <title>Node4</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 166,-101.5 166,-.5 0,-.5"/>
-<text text-anchor="middle" x="83" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Any</text>
-<polyline fill="none" stroke="#000000" points="0,-82.5 166,-82.5 "/>
-<text text-anchor="middle" x="83" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-63.5 166,-63.5 "/>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Any()</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-79.5 166,-79.5 166,-.5 0,-.5"/>
+<text text-anchor="middle" x="83" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Any</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 166,-60.5 "/>
+<text text-anchor="middle" x="83" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 166,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Any()</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_OBJECT_REF_METHODS()</text>
 </g>
 <!-- Node5 -->
 <g id="node2" class="node">
 <title>Node5</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="6,-139.5 6,-240.5 160,-240.5 160,-139.5 6,-139.5"/>
-<text text-anchor="middle" x="83" y="-228.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
-<polyline fill="none" stroke="#000000" points="6,-221.5 160,-221.5 "/>
-<text text-anchor="middle" x="83" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="6,-202.5 160,-202.5 "/>
-<text text-anchor="start" x="14" y="-190.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="14" y="-179.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
-<text text-anchor="start" x="14" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
-<text text-anchor="start" x="14" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-117.5 6,-218.5 160,-218.5 160,-117.5 6,-117.5"/>
+<text text-anchor="middle" x="83" y="-206.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="6,-199.5 160,-199.5 "/>
+<text text-anchor="middle" x="83" y="-187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-180.5 160,-180.5 "/>
+<text text-anchor="start" x="14" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="14" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="14" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="14" y="-135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="14" y="-124.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge1" class="edge">
 <title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M83,-129.2075C83,-120.0503 83,-110.6882 83,-101.7707"/>
-<polygon fill="none" stroke="#191970" points="79.5001,-129.4246 83,-139.4246 86.5001,-129.4246 79.5001,-129.4246"/>
+<path fill="none" stroke="#191970" d="M83,-107.2732C83,-97.8606 83,-88.3534 83,-79.5688"/>
+<polygon fill="none" stroke="#191970" points="79.5001,-107.411 83,-117.411 86.5001,-107.411 79.5001,-107.411"/>
 </g>
 <!-- Node6 -->
 <g id="node3" class="node">
 <title>Node6</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="6,-278.5 6,-346.5 160,-346.5 160,-278.5 6,-278.5"/>
-<text text-anchor="middle" x="83" y="-334.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
-<polyline fill="none" stroke="#000000" points="6,-327.5 160,-327.5 "/>
-<text text-anchor="middle" x="83" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="6,-308.5 160,-308.5 "/>
-<text text-anchor="start" x="14" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="14" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-256.5 6,-324.5 160,-324.5 160,-256.5 6,-256.5"/>
+<text text-anchor="middle" x="83" y="-312.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="6,-305.5 160,-305.5 "/>
+<text text-anchor="middle" x="83" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-286.5 160,-286.5 "/>
+<text text-anchor="start" x="14" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="14" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
... 26331 lines suppressed ...